目錄
將ELK部署到同一臺服務器中(所以每次都會指定主機),elasticsearch使用單節點模式。
第一步:下載鏡像
logstash、kibana、elasticsearch和filebeat的7.6.2版本的鏡像
第二步:將鏡像導出上傳到私有harbor倉庫中
第三步:安裝ElasticSearch
在elasticsearch的docker版本文檔中,官方提到了vm.max_map_count的值在生產環境最少要設置成262144:
vi /etc/sysctl.conf
在文件的末尾添加:
vm.max_map_count=262144 # 修改或者新增
1.新建/home/elasticsearch/config文件夾,並新建elasticsearch.yml文件,文件內容爲:
http.host: 0.0.0.0
保存退出
2.新建/home/elasticsearch/data文件夾,用於存儲日誌文件;
3.在Rancher2.4.2配置:
在集羣中新建項目爲ELK,命名空間爲elk,然後在新的命名空間中部署服務elasticsearch:
填寫鏡像地址和添加端口映射:
添加環境變量(DISCOVERY_TYPE=single-node)和指定相應的服務器
數據卷1(/home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml)
數據卷2(/home/elasticsearch/data:/usr/share/elasticsearch/data)
點擊啓動,容器啓動成功;
第四步:安裝kibana
打開rancher在elk命名空間中添加kibana服務:
添加環境變量(ELASTICSEARCH_HOSTS)
指定主機是爲了方便我們訪問kibana的5601端口,使用IP地址是因爲,如果使用服務明進行訪問,有時候可能會出現DNS解析異常,點擊啓動。
第五步:安裝logstash
在服務器中新建/home/elk/config文件夾,用於存放logstash.conf和filebeat.yml。
在文件夾中新建logstash.conf
vi logstash.conf
i
文件內容爲:
input {
#開啓filebeats的監聽
beats {
#端口號
port => "5043"
#將日誌以json格式輸入
codec => "json"
#允許其他服務器推送日誌
host => "0.0.0.0"
}
#開啓tcp模式的監聽
tcp {
#端口號
port => "5044"
#將日誌以json格式輸入
codec => "json_lines"
#允許其他服務器推送日誌
host => "0.0.0.0"
}
}
#數據過濾,包含特定字符時丟棄該行
filter {
if [message] =~ "Resolving eureka endpoints via configuration" {
drop { }
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => [ "xxx.yyy.zzz.nnn:9200" ]
index => "%{[fields][doc_type]}-%{+YYYY.MM.dd}"
}
}
Rancher安裝logstash
5044用於接收tcp的日誌,比如springboot集成logstash的接口,而5043用於filebeat的接口;
添加數據卷(/home/elk/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf)
點擊啓動,啓動成功;
第六步:安裝filebeat
在/home/elk/config文件夾中新建filebeat.yml
內容爲
filebeat.inputs:
- paths:
- /home/csdn/apache-tomcat-8.5.51/logs/*.log
multiline:
pattern: ^\d{4}
negate: true
match: after
fields:
doc_type: order
- paths:
- /home/csdn/nginx/logs/error.log
multiline:
pattern: ^\d{4}
negate: true
match: after
fields:
doc_type: customer
output.logstash: # 輸出地址
hosts: ["192.168.1.104:5043"]
打開Rancher,在els命名空間中添加filebeat
添加配置文件卷(/home/elk/config/filebeat.yml:/usr/share/filebeat/filebeat.yml)
添加數據卷(/home/:/home/),有我們計劃將tomcat和nginx的日誌進行採集,而兩個都在home文件夾中,故將文件夾映射到filebeat中。
我比較喜歡先刪除再重新部署方式,不喜勿噴。
點擊啓動,啓動後將可以在kibana中查看到springboot的日誌和filebeat的解析日誌。
完成。