ELK是三個開源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開源軟件。新增了一個FileBeat,它是一個輕量級的日誌收集處理工具(Agent),Filebeat佔用資源少,適合於在各個服務器上搜集日誌後傳輸給Logstash,官方也推薦此工具。html
Filebeat隸屬於Beats。目前Beats包含四種工具:docker
ELK鏡像地址 : https://hub.docker.com/r/sebp...shell
[root@localhost /]# docker pull sebp/elk:740
注:740爲ELK版本號,這裏的版本號指的是ELK集成鏡像的版本號。json
[root@localhost /]# echo "vm.max_map_count=262144" > /etc/sysctl.conf [root@localhost /]# sysctl -p [root@localhost /]# docker run -dit --name elk \ -p 5601:5601 \ -p 9200:9200 \ -p 5044:5044 \ -v /opt/elk-data:/var/lib/elasticsearch \ -v /etc/localtime:/etc/localtime \ sebp/elk:740
注:-p 指定映射端口,5601kibana訪問,9200es端口,5044 logstash收集日誌端口;-v 指定es數據目錄。vim
進入docker容器centos
[root@localhost /]# docker exec -it elk /bin/bash /etc/logstash/ ## logstash 配置文件路徑 /etc/elasticsearch/ ## es 配置文件路徑 /var/log/ ## 日誌路徑
[root@localhost /]# vim /etc/logstash/conf.d/02-beats-input.conf # 數據輸入配置:port -> 端口號;codec -> 輸入格式。這裏以logback爲例。 input { tcp { port => 5044 codec=>json_lines } } # 數據輸出配置:hosts -> 主機集合;index -> 你將要建立的索引名稱。這裏es爲例。 output { elasticsearch { hosts => ["127.0.0.1:9200"] index => "%{[appName]}-%{+YYYY.MM.dd}" } }
注:這個配置文件能夠在/etc/logstash/conf.d/目錄下建立,也可直接修改原有配置文件,看我的需求。bash
[root@localhost /]# vim /opt/kibana/config/kibana.yml
注:打開文件後,在文件內追加 i18n.locale: "zh-CN" ,重啓服務便可。服務器
[root@localhost /]# service logstash start/restart/stop/status [root@localhost /]# service elasticsearch start/restart/stop/status [root@localhost /]# service kibana start/restart/stop/status
注:上面是各個服務 啓動 / 重啓 / 中止 / 狀態,服務較大操做會比較緩慢,不要重複執行命令。restful
參照 Kibana 用戶手冊,中文文檔,演示的Kibana爲英文版本。網絡
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>xxx.xxx.xxx.xxx:xxx</destination> <includeCallerData>true</includeCallerData> <encoder class="net.logstash.logback.encoder.LogstashEncoder"> <includeCallerData>true</includeCallerData> <!-- 根據應用名稱建立索引--> <customFields>{"appName":"appName"}</customFields> </encoder> </appender>