日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Docker部署ELK7.3.0日志收集服務最佳實踐

瀏覽:169日期:2024-11-18 08:13:07

寫在最前面

本文僅包含ELK7.3.0部署!

部署環境:

系統 CentOS 7 Docker Docker version 19.03.5 CPU 2核 內存 2.5G 磁盤 30G(推薦設置,磁盤不足可能會引發es報錯) Filebeat v7.3.0,單節點 ElasticSearch v7.3.0,兩份片 Kibana v7.3.0,單節點 Logstash v7.3.1,單節點

ELK分布式集群部署方案

Docker部署ELK7.3.0日志收集服務最佳實踐

linux中elasticsearch用戶擁有的內存權限太小,至少需要262144,報錯信息(max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]),因此先修改系統配置。

# 修改配置sysctl.confvi /etc/sysctl.conf# 添加下面配置:vm.max_map_count=262144# 重新加載:sysctl -p# 最后重新啟動elasticsearch,即可啟動成功。

環境均采用Docker部署,為了更方便的使用Docker命令,我們安裝一下bash-completion自動補全插件:

# 安裝依賴工具bash-completeyum install -y bash-completionource /usr/share/bash-completion/completions/dockersource /usr/share/bash-completion/bash_completion

部署順序:ES --> Kibana --> Logstash --> Filebeat

ElasticSearch7.3.0部署

主節點部署

創建配置文件和數據存放目錄

mkdir -p {/mnt/es1/master/data,/mnt/es1/master/logs}vim /mnt/es1/master/conf/es-master.yml

es-master.yml配置

# 集群名稱cluster.name: es-cluster# 節點名稱node.name: es-master# 是否可以成為master節點node.master: true# 是否允許該節點存儲數據,默認開啟node.data: false# 網絡綁定network.host: 0.0.0.0# 設置對外服務的http端口http.port: 9200# 設置節點間交互的tcp端口transport.port: 9300# 集群發現discovery.seed_hosts: - 172.17.0.2:9300 - 172.17.0.3:9301# 手動指定可以成為 mater 的所有節點的 name 或者 ip,這些配置將會在第一次選舉中進行計算cluster.initial_master_nodes: - 172.17.0.2# 支持跨域訪問http.cors.enabled: truehttp.cors.allow-origin: '*'# 安全認證xpack.security.enabled: false#http.cors.allow-headers: 'Authorization'bootstrap.memory_lock: falsebootstrap.system_call_filter: false#解決跨域問題#http.cors.enabled: true#http.cors.allow-origin: '*'#http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE#http.cors.allow-headers: 'X-Requested-With, Content-Type, Content-Length, X-User'

pull鏡像時會有些慢,耐心等待!

# 拉取鏡像,可以直接構建容器,忽略此步docker pull elasticsearch:7.3.0# 構建容器## 映射5601是為Kibana預留的端口docker run -d -e ES_JAVA_OPTS='-Xms256m -Xmx256m' -p 9200:9200 -p 9300:9300 -p 5601:5601 -v /mnt/es1/master/conf/es-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mnt/es1/master/data:/usr/share/elasticsearch/data -v /mnt/es1/master/logs:/usr/share/elasticsearch/logs -v /etc/localtime:/etc/localtime --name es-master elasticsearch:7.3.0

/etc/localtime:/etc/localtime:宿主機與容器時間同步。

從節點部署

創建配置文件和數據存放目錄

mkdir -p {/mnt/es1/slave1/data,/mnt/es1/slave1/logs}vim /mnt/es1/slave1/conf/es-slave1.yml

es-slave1.yml配置

# 集群名稱cluster.name: es-cluster# 節點名稱node.name: es-slave1# 是否可以成為master節點node.master: true# 是否允許該節點存儲數據,默認開啟node.data: true# 網絡綁定network.host: 0.0.0.0# 設置對外服務的http端口http.port: 9201# 設置節點間交互的tcp端口transport.port: 9301# 集群發現discovery.seed_hosts: - 172.17.0.2:9300 - 172.17.0.3:9301# 手動指定可以成為 mater 的所有節點的 name 或者 ip,這些配置將會在第一次選舉中進行計算cluster.initial_master_nodes: - 172.17.0.2# 支持跨域訪問http.cors.enabled: truehttp.cors.allow-origin: '*'# 安全認證xpack.security.enabled: false#http.cors.allow-headers: 'Authorization'bootstrap.memory_lock: falsebootstrap.system_call_filter: false

pull鏡像時會有些慢,耐心等待!

# 拉取鏡像,可以直接構建容器,忽略此步docker pull elasticsearch:7.3.0# 構建容器docker run -d -e ES_JAVA_OPTS='-Xms256m -Xmx256m' -p 9201:9200 -p 9301:9300 -v /mnt/es1/slave1/conf/es-slave1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mnt/es1/slave1/data:/usr/share/elasticsearch/data -v /mnt/es1/slave1/logs:/usr/share/elasticsearch/logs -v /etc/localtime:/etc/localtime --name es-slave1 elasticsearch:7.3.0

修改配置重啟容器

# 查看主從容器IPdocker inspect es-masterdocker inspect es-slave1

Docker部署ELK7.3.0日志收集服務最佳實踐

Docker部署ELK7.3.0日志收集服務最佳實踐

修改ES配置文件es-master.yml、es-slave1.yml中的discovery.seed_hostscluster.initial_master_nodes為對應的IP!重啟容器:

docker restart es-masterdocker restart es-slave1# 查看es日志docker logs -f --tail 100f es-master

訪問http://IP:9200/_cat/nodes確認查看ES集群信息,可以看到有主從節點部署成功:

Docker部署ELK7.3.0日志收集服務最佳實踐

節點部署常用API:

API 功能 http://IP:9200 查看ES版本信息 http://IP:9200/_cat/nodes

查看所有分片

http://IP:9200/_cat/indices 查看所有索引

Kibana7.3.0部署

創建Kibana配置文件

vim /mnt/kibana.yml### ** THIS IS AN AUTO-GENERATED FILE **##### Default Kibana configuration for docker targetserver.name: kibana#配置Kibana的遠程訪問server.host: '0.0.0.0'#配置es訪問地址elasticsearch.hosts: [ 'http://127.0.0.1:9200' ]#漢化界面i18n.locale: 'zh-CN'#xpack.monitoring.ui.container.elasticsearch.enabled: true

查看es-master容器ID

docker ps|grep es-master

Docker部署ELK7.3.0日志收集服務最佳實踐

部署Kibana

注意將命令中的40eff5876ffd 修改成es-master容器ID,拉取鏡像,情耐性等待!

# 拉取鏡像,可以直接構建容器,忽略此步docker pull docker.elastic.co/kibana/kibana:7.3.0# 構建容器## --network=container 表示共享容器網絡docker run -it -d -v /mnt/kibana.yml:/usr/share/kibana/config/kibana.yml -v /etc/localtime:/etc/localtime -e ELASTICSEARCH_URL=http://172.17.0.2:9200 --network=container:40eff5876ffd --name kibana docker.elastic.co/kibana/kibana:7.3.0

查看Kibana容器日志,看到如下圖所示日志則表示啟動成功

docker logs -f --tail 100f kibana

Docker部署ELK7.3.0日志收集服務最佳實踐

訪問http://IP:5601,可能會出現503,等一會在訪問就OK了。可以訪問到Kibana控制臺則表示Kibana已安裝成功,并已于es-master建立連接。

Docker部署ELK7.3.0日志收集服務最佳實踐

Logstash7.3.1部署

編寫Logstash配置文件

vim /mnt/logstash-filebeat.conf

input { # 來源beats beats { # 端口 port => '5044' }}# 分析、過濾插件,可以多個filter { grok {# grok 表達式存放的地方patterns_dir => '/grok'# grok 表達式重寫 # match => {'message' => '%{SYSLOGBASE} %{DATA:message}'}# 刪除掉原生 message字段overwrite => ['message'] # 定義自己的格式match => {'message' => '%{URIPATH:request} %{IP:clientip} %{NUMBER:response:int} '%{WORD:sources}' (?:%{URI:referrer}|-) [%{GREEDYDATA:agent}] {%{GREEDYDATA:params}}'} } # 查詢歸類插件 geoip { source => 'message' }}output {# 選擇elasticsearchelasticsearch {# es 集群hosts => ['http://172.17.0.2:9200'] #username => 'root' #password => '123456'# 索引格式index => 'omc-block-server-%{[@metadata][version]}-%{+YYYY.MM.dd}'# 設置為true表示如果你有一個自定義的模板叫logstash,那么將會用你自定義模板覆蓋默認模板logstashtemplate_overwrite => true}}

部署Logstash

# 拉取鏡像,可以直接構建容器,忽略此步docker pull logstash:7.3.1 # 構建容器# xpack.monitoring.enabled 打開X-Pack的安全和監視服務# xpack.monitoring.elasticsearch.hosts 設置ES地址,172.17.0.2為es-master容器ip# docker允許在容器啟動時執行一些命令,logsatsh -f 表示通過指定配置文件運行logstash,/usr/share/logstash/config/logstash-sample.conf是容器內的目錄文件docker run -p 5044:5044 -d -v /mnt/logstash-filebeat.conf:/usr/share/logstash/config/logstash-sample.conf -v /etc/localtime:/etc/localtime -e elasticsearch.hosts=http://172.17.0.2:9200 -e xpack.monitoring.enabled=true -e xpack.monitoring.elasticsearch.hosts=http://172.17.0.2:9200 --name logstash logstash:7.3.1 -f /usr/share/logstash/config/logstash-sample.conf

這里需要注意es集群地址,這里我們只配置es-master的ip(172.17.0.2),詳細Logstash配置。 查看到如下日志則表示安裝成功:

Docker部署ELK7.3.0日志收集服務最佳實踐

Filebeat7.3.0部署

Filebeat 并不是一個必須的組件,通過Logstash我們同樣也可以實現日志的搬運工作。

例如,實現將所有非“20”開頭的日志進行合并,可以使用如下Logstash配置:

input { # 來源beats beats { # 端口 port => '5044' } file { type => 'server-log' path => '/logs/*.log' start_position => 'beginning' codec=>multiline{// 正則表達式,所有“20”前綴日志, 如果你的日志是以“[2020-06-15”這類前綴則,可以替換成'^['pattern => '^20'// 是否對正則規則取反negate => true// previous 表示合并到上一行,next 表示合并到下一行what => 'previous' } }}

注意,Filebeat必須與應用部署在同一服務器,這里應用采用docker部署,/mnt/omc-dev/logs應用日志文件的映射目錄,如果你也是通過docker進行服務部署,請記得通過【-v /mnt/omc-dev/logs:/應用工作/logs】日志文件映射出來哦!

創建Filebeat配置文件

## /mnt/omc-dev/logs 為應用日志目錄,必須將應用的部署目錄映射出來mkdir -p {/mnt/omc-dev/logs,/mnt/filebeat/logs,/mnt/filebeat/data}vim /mnt/filebeat/filebeat.yml

filebeat.inputs:- type: log enabled: true paths: # 當前目錄下的所有.log文件 - /home/project/spring-boot-elasticsearch/logs/*.log multiline.pattern: ’^20’ multiline.negate: true multiline.match: previouslogging.level: debugfilebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: falsesetup.template.settings: index.number_of_shards: 1setup.dashboards.enabled: falsesetup.kibana: host: 'http://172.17.0.2:5601'# 不直接傳輸至ES#output.elasticsearch:# hosts: ['http://es-master:9200']# index: 'filebeat-%{[beat.version]}-%{+yyyy.MM.dd}'output.logstash: hosts: ['172.17.0.5:5044']#scan_frequency: 1sclose_inactive: 12hbackoff: 1smax_backoff: 1sbackoff_factor: 1flush.timeout: 1sprocessors: - add_host_metadata: ~ - add_cloud_metadata: ~

注意修改Logstash IP和端口。

# 拉取鏡像,可以直接構建容器,忽略此步docker pull docker.elastic.co/beats/filebeat:7.3.0# 構建容器## --link logstash 將指定容器連接到當前連接,可以設置別名,避免ip方式導致的容器重啟動態改變的無法連接情況,logstash 為容器名docker run -d -v /mnt/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml -v /mnt/omc-dev/logs:/home/project/spring-boot-elasticsearch/logs -v /mnt/filebeat/logs:/usr/share/filebeat/logs -v /mnt/filebeat/data:/usr/share/filebeat/data -v /etc/localtime:/etc/localtime --link logstash --name filebeat docker.elastic.co/beats/filebeat:7.3.0

查看日志,我們在配置文件中將Filebeat的日志級別配置成了debug,因此會開到所有收錄到的信息

docker logs -f --tail 100f filebeat

Docker部署ELK7.3.0日志收集服務最佳實踐

可以看到,通過查詢ES索引,多出了三條索引,通過我們配置的按天進行索引分割,因為我這個環境已經跑了三天了,所以存在三個omc服務的索引(omc 是一個定時任務的服務,你也可以寫一個簡單的定時任務來進行測試)。

Docker部署ELK7.3.0日志收集服務最佳實踐

接下來我們創建一個Kibana索引模式,并進行日志查詢:

Docker部署ELK7.3.0日志收集服務最佳實踐

Docker部署ELK7.3.0日志收集服務最佳實踐

索引創建完成,到Discover視圖就可以通過索引模式查詢日志了。

文章到這里就結束了,如果你還有別的服務需要引入的話,只需要將日志掛載到指定目錄就行了,當然如果服務是部署在其他服務器上,則需要在服務器上部署Filebeat,并且要保證服務器之間網絡互通哦~~

最后,在這里推薦一個開源ELK自動化Docker部署項目:https://github.com/deviantony/docker-elk.git

--------------------------------------------------------

2020.6.28更新

最近發生了一起Logstash導致的物理內存暴漲問題。

簡單闡述一下主要問題:

目前單服務單日日志量在2.2GB左右,由于早期沒有限制Logstash內存,導致大量數據上來時,Logstash瘋狂占用內存與IO。

隨著近日,在同一服務器上面應用服務流量上漲,最終導致內存不足,出現OutOfMemoryError問題。

隨后,通過設置優化JVM內存(具體我就不說了,網上一大把),并添加上Logstash響應內存配置,得以解決早前的遺留問題。

最后,將Logstash 添加到Kibana進行監控(當然你還可以將Logstash日志配置到ES上去):

https://blog.csdn.net/QiaoRui_/article/details/97667293

標簽: Docker
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
se01亚洲视频| 日韩av一区二| 国产一区二区三区四区| 精品一区二区三区中文字幕| 日本一区二区中文字幕| 亚洲麻豆一区| 丝袜美腿成人在线| 一本综合精品| 日韩欧美四区| 国产亚洲高清在线观看| 国产日产精品一区二区三区四区的观看方式| 亚洲男人在线| 国产66精品| 一区二区精品| 丁香六月综合| 高清日韩欧美| 日韩中文欧美在线| 亚洲激情二区| 午夜在线精品| 亚洲女人av| 99国产精品99久久久久久粉嫩| 欧美色综合网| 日本高清久久| 亚洲一级淫片| 日本在线不卡视频一二三区| 婷婷亚洲五月| 蜜桃视频在线观看一区| 蜜桃av一区| 视频一区在线视频| 亚洲毛片一区| 欧美在线精品一区| 日韩av中文字幕一区| 日韩影片在线观看| 欧美日韩91| 福利片在线一区二区| 中文字幕系列一区| 久久久久久久久久久9不雅视频| 嫩草伊人久久精品少妇av杨幂| 国产情侣久久| 久久久久黄色| 日韩精品看片| 国产视频亚洲| 日本欧美一区二区在线观看| 国产日产高清欧美一区二区三区| 久久精品女人| 桃色一区二区| 亚洲97av| 久久在线电影| 日产欧产美韩系列久久99| 成人高清一区| 国产精品美女久久久浪潮软件| 亚洲欧美日韩专区| 国产福利资源一区| 欧美二区视频| 欧美日一区二区在线观看| 福利一区视频| 婷婷综合福利| 伊人精品一区| 欧美激情五月| 狠狠爱成人网| 久久精品免费看| 只有精品亚洲| 国产99在线| 亚洲+小说+欧美+激情+另类| 麻豆精品视频在线观看免费| 黄色亚洲精品| 欧美片网站免费| 欧美日韩在线网站| 国产精品午夜一区二区三区| 国产一区日韩一区| 精品中文在线| 久久精品国产亚洲一区二区三区| 亚洲精品a级片| 国产精品伦理久久久久久| 日本不卡一区二区三区| 免费国产亚洲视频| 狠狠久久婷婷| 日韩高清中文字幕一区二区| 国产日产精品_国产精品毛片 | 亚洲欧美视频| 日韩欧美看国产| 欧美aa在线视频| 日韩综合小视频| 免费的成人av| 蜜桃一区二区三区在线| 在线亚洲成人| 91久久黄色| 图片区亚洲欧美小说区| 999国产精品| 99精品在线观看| 日韩在线中文| 快播电影网址老女人久久| 日韩动漫一区| 日本视频中文字幕一区二区三区| 天堂av在线一区| 日韩午夜在线| 激情婷婷欧美| 亚洲一区二区动漫| 亚洲欧美日韩专区| 亚洲精品第一| 日韩精品一页| 久久字幕精品一区| 正在播放日韩精品| 欧美日韩国产传媒| 99在线|亚洲一区二区| 亚洲少妇在线| 色综合视频一区二区三区日韩 | 亚洲手机视频| 亚洲精品1区| 爽好多水快深点欧美视频| 日韩精品一级二级| 免费在线日韩av| 99视频精品全国免费| 亚洲精品激情| 久草免费在线视频| 一区二区不卡| 精品九九久久| www成人在线视频| 91精品国产调教在线观看| 精品一区欧美| 蜜桃91丨九色丨蝌蚪91桃色| 91九色精品国产一区二区| 久久婷婷av| 天堂√8在线中文| 国产精品色在线网站| 91精品国产自产在线丝袜啪| 先锋影音久久久| 尤物网精品视频| 99久久婷婷| 久久精品二区亚洲w码| 日韩精品中文字幕吗一区二区| 99久久久国产精品美女| 国产99久久久国产精品成人免费| 日韩精品久久久久久久软件91| 成人在线免费观看91| 蜜桃久久久久久| 精品中文字幕一区二区三区| 国产精品97| 美女在线视频一区| 日韩专区欧美专区| 色天使综合视频| 欧美国产另类| 视频在线观看一区二区三区| 香蕉视频亚洲一级| 深夜福利亚洲| 欧美+日本+国产+在线a∨观看| 国产视频网站一区二区三区| 一区二区亚洲视频| 一区福利视频| 日韩高清国产一区在线| 婷婷亚洲五月色综合| 久久精品国语| 红杏一区二区三区| 久久精品亚洲一区二区| 在线国产一区二区| 日韩伦理在线一区| 欧美精品97| 欧美一区=区三区| 日韩精品五月天| 亚洲免费成人av在线| 激情久久中文字幕| 日韩1区在线| 精品国产欧美日韩| 日本黄色精品| 国产精品99久久精品| 鲁大师精品99久久久| 久久xxxx| 蜜臀av性久久久久蜜臀aⅴ四虎 | 播放一区二区| 国产成人精品一区二区三区免费| 国产日韩一区二区三区在线播放 | 久久av一区| 久久国产日本精品| 免费在线小视频| 婷婷六月综合| 亚洲免费福利一区| 另类综合日韩欧美亚洲| 国产一区二区三区探花| 国产aⅴ精品一区二区四区| 国产一区二区三区日韩精品| 久久av影视| 亚洲一级少妇| 99亚洲视频| 日本v片在线高清不卡在线观看| 中文在线а√天堂| 成人午夜国产| 久久精品国产精品亚洲毛片| 久久久久网站| 久久麻豆视频| 国产资源在线观看入口av| 国产精品av久久久久久麻豆网| 黄色av日韩| 国产日韩免费| 久久蜜桃精品| 在线精品国产亚洲| 精品国产欧美| 亚洲免费影院| 国产精品xvideos88| 日本成人在线网站| 亚洲精品国产日韩|