多服务器 elk 搭建 [elasticsearch 7.0 ]
大家好,我是烤鴨:
? ? 今天分享一下多服務器的elk搭建。
1.? ? 流程規劃
2.? ?執行搭建
? ? 最新的版本和對應下載地址可以在官網查詢到?
?? ?https://www.elastic.co/cn/products/
? ? 2.1 elasticsearch 7.0 搭建
?? ??? ? 2.1.1 下載
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-linux-x86_64.tar.gz
?我這邊的目錄是? ? /opt/web_app/elk/elasticsearch-7.0.0/
tar -zxvf elasticsearch-7.0.0-linux-x86_64.tar.gz? ? ? ??2.1.2 安裝
? ? ? ??由于es 不允許root賬戶啟動,先創建用戶和用戶組
groupadd elk useradd -g elk elk #添加權限 chown -R elk:elk /opt/web_app/elk/elasticsearch-7.0.0/? ? ? ?2.1.3 修改配置? ?? ?
elasticsearch.yml 修改內容 cluster.name: test1 node.name: test1-node1 network.host: 0.0.0.0 #允許外網訪問 discovery.seed_hosts: ["內網ip"] #集群ip cluster.initial_master_nodes: ["test1-node1"] #默認節點? ? ? ?2.1.4 啟動和停止:??
su elk cd /opt/web_app/elk/elasticsearch-7.0.0/ ./bin/elasticsearch & ps -ef|grep elasticsearch kill pid? ? ?啟動成功,訪問如圖:
? ? ?
? ? ??2.1.5 異常記錄:
? ? ??1、 Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
?? ??? ?
?? ??? ?修改 elasticsearch 目錄中 config/jvm.options??
? ? ? ??2、 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]? ?? ? ?
vi /etc/sysctl.conf #添加下面配置: vm.max_map_count=655360 #單個jvm能開啟的最大線程數 sysctl -p? ? ? 3、 max number of threads [3795] for user [esuser] is too low, increase to at least [4096]
?? ??? ?
? ? ?4、 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
vi /etc/security/limits.conf ? #用戶最大打開文件數(ulimit -n可以查看) #添加如下內容: soft nofile 65536 hard nofile 131072 soft nproc 2048 hard nproc 40962.2 kinaba 搭建
? ? ? 由于在es 6.0之后X-Pack 就不再開源了,如果想做權限控制的話,可以用nginx。這里由于是內網訪問,就暫時沒考慮安全方面的。
?? ???2.2.1 下載
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.0.0-linux-x86_64.tar.gz
#我這邊的目錄是 /opt/web_app/elk/kibana-7.0.0-linux-x86_64
tar -zxvf kibana-7.0.0-linux-x86_64.tar.gz
? ? ? 2.2.2 修改配置文件
?? ??? ?更改配置文件:
?? ??? ?2.2.3 啟動和停止? ? ? ??
./bin/kinaba &
ps -ef|grep node
ps -ef|grep 5601
kill pid
啟動成功,如圖:
2.3 logstash 搭建
?? ??? ?2.3.1 下載
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.0.0.tar.gz
#我這邊的目錄是 /opt/web_app/elk/logstash-7.0.0
tar -zxvf logstash-7.0.0.tar.gz
? ? ? ? 2.3.2 修改配置文件
?vi /opt/web_app/elk/logstash-7.0.0/config/logstash.conf#輸入input {beats {port => 5044}}#過濾器 (可不加,為了看著格式方便)#filter{#?? ?#去除換行符#?? ?mutate{#?? ?gsub => [ "message", "\r", "" ] ??#?? ?}#?? ??#?? ?#逗號分割#?? ?mutate { ?#?? ? ?split => ["message",","] ? ??#?? ?}#?? ??#?? ?#字段里的日期識別,以及時區轉換,生成date#?? ?date {#?? ? ?match => [ "mydate", "MM/dd/yyyy HH:mm:ss" ]#?? ? ?target => "date"#?? ? ?locale => "en"#?? ? ?timezone => "+00:00" ?#?? ?}#?? ??#?? ?#刪除無用字段#?? ?mutate { ? ?#?? ? ?remove_field => "mydate" ? ?#?? ? ?remove_field => "@version" ? ?#?? ? ?remove_field => "host" ? ?#?? ? ?remove_field => "path" ? ?#?? ?}#?? ?#將兩個字段轉換為整型#?? ?mutate{#?? ?convert => { "size" => "integer" }#?? ?convert => { "attachments" => "integer" }#?? ?}#}#輸出#不同的服務器,不同的tag,下面用于區分不同的服務器生成不同的index索引output {if "test1" in [tags]{elasticsearch {hosts => ["http://127.0.0.1:9200"]index => "etc_manage-%{+YYYY.MM.dd}"}}if "test2" in [tags]{elasticsearch {hosts => ["http://127.0.0.1:9200"]index => "test2-%{+YYYY.MM.dd}"}}}
?? ??? ?2.3.3 啟動和停止
cd /opt/web_app/elk/logstash-7.0.0/
./bin/logstash -f config/logstash.conf
ps -ef|grep logstash
kill pid
2.4 filebeat 搭建?
?? ??? ?在需要的服務器安裝 filebeat
?? ??? ?我這里是另外兩臺服務器。
?? ??? ?2.4.1 下載
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.0.0-linux-x86_64.tar.gz
#我這邊的目錄是 /opt/web_app/elk/filebeat
tar -zxvf filebeat-7.0.0-linux-x86_64.tar.gz
?? ??? ?2.4.2 修改配置文件(這里展示其中一臺的配置文件,另一個類似,tag不同)
?vi /opt/web_app/elk/filebeat/filebeat.ymlpaths: #監聽的日志路徑- /opt/web_app/logs/*.log# 和logstash的filter配合使用,filter不配置的話,這個可以不配#multiline.pattern: ^\[ #必須匹配的正則表達式模式#multiline.negate: true #定義是否應取消在模式下設置的模式。 默認值為false。#multiline.match: aftertags: ["test1"] #標簽,用于區分不同的服務器來源或者日志來源output.logstash: #輸出到logstash的地址和端口hosts: ["logstath的ip:5044"]
?? ??? ?filebeat 多行日志的處理
?? ??? ?https://www.cnblogs.com/toSeek/p/6120778.html?utm_source=itdadao&utm_medium=referral
? ? ? ? ?2.4.3 啟動和停止
?./filebeat -e -c filebeat.yml &ps -ef|grep filebeatkill pid? ? ? ? ?2.4.4 問題
?? ??? ?解決kibana后臺服務掛的方法
?? ??? ?https://blog.csdn.net/qq_37184313/article/details/79168526
?? ??? ?關于老版本kibana進程會掛掉的問題
?? ??? ?https://blog.csdn.net/caocao80/article/details/87601513?? ??? ?
?? ??? ?2.4.5 官方配置
?? ??? ?https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-configuration.html
?
3.? ?配置kinaba和日志索引
首頁的 management ——> Index Patterns ——> Create index pattern
如圖所示:
創建索引:
看到日志:
4.? ?優化和不足
不足:
kinaba 頻繁掛掉。(可能是內存不足的原因)
啟動過慢。
日志丟失。
其他的后續待總結。
5.? ?各個流行日志框架分析和對比
開源日志管理最全對比:
https://blog.csdn.net/weixin_33842304/article/details/87636213
借鑒開源框架自研日志收集系統:
https://blog.csdn.net/bigsec/article/details/80110923
?
總結
以上是生活随笔為你收集整理的多服务器 elk 搭建 [elasticsearch 7.0 ]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序:插件踩坑
- 下一篇: BZOJ3670: [Noi2014]动