最近rancher平臺上docker日誌收集搗騰挺久的,尤爲在配置上,特寫下記錄前端
Unix/Linux系統中的大部分日誌都是經過一種叫作syslog的機制產生和維護的。syslog是一種標準的協議,分爲客戶端和服務器端,客戶端是產生日誌消息的一方,而服務器端負責接收客戶端發送來的日誌消息,並作出保存到特定的日誌文件中或者其餘方式的處理。web
ryslog 是一個快速處理收集系統日誌的程序,提供了高性能、安全功能和模塊化設計。rsyslog 是syslog 的升級版,它將多種來源輸入輸出轉換結果到目的地,據官網介紹,如今能夠處理100萬條信息。docker
ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成:json
本文是在rancher管理的docker平臺上配置啓用,具體的流程圖爲瀏覽器
優先配置elasticsearch緣由是其做爲中間樞紐做用,不須要依賴其餘服務安全
其添加服務頁面服務器
啓用簡單,拉取elasticsearch鏡像便可restful
Kibana須要依賴elasticsearch的restAPI接口elasticsearch
其添加服務頁面以下tcp
注意圖中紅圈地方,其添加的環境變量名稱能夠參考拉取的docker鏡像kibana的說明。具體功能是添加elasticsearch的依賴。
能夠瀏覽http://ip:5601查看是否連接成功,成功顯示圖下
logstash 採用的的是rancher商店的版本
其中配置主要是紅圈中,具體爲
具體的詳細你們能夠百度
拉取panoptix/rsyslog
經過執行命令行,添加配置文件
在 etc/rsyslog.d/ 目錄下添加文件 01-json-template.conf 和 60-logstash.conf
01-json-template.conf 內容:
template(name="json_lines" type="list" option.json="on") { constant(value="{") constant(value="\"@timestamp\":\"") property(name="timereported" dateFormat="rfc3339") constant(value="\", \"@version\":\"1") constant(value="\",\"tag\":\"") property(name="syslogtag") constant(value="\",\"message\":\"") property(name="msg") constant(value="\",\"severity\":\"") property(name="syslogseverity-text") constant(value="\",\"facility\":\"") property(name="syslogfacility-text") constant(value="\",\"hostname\":\"") property(name="hostname") constant(value="\", \"procid\":\"") property(name="procid") constant(value="\", \"programname\":\"") property(name="programname") constant(value="\"}\n") }
60-logstash.conf 內容 # :programname, contains, "docker" *.* @@(Logstash服務IP):5000;json_lines
template 爲轉發的格式設定,logstash文件爲轉發的地址,如上,爲全部轉發到 (Logstash服務IP):5000,以json_lines的模板
而後重啓服務
具體配置如圖
syslog-address: 爲剛纔的rsyslog地址。
tag:爲區分不一樣的服務的日誌,定義一個標記{{.Name}}.{{.ID}}