elk 爲 elasticsearch(查詢搜索引擎),logstash(對日誌進行分析和過濾,而後轉發給elasticsearch),kibana(一個web圖形界面用於可視化elasticsearch數據)縮寫web
1.安裝docker環境docker
2. 準備鏡像json
拉取 elk鏡像,咱們用sebp/elkvim
docker pull sebp/elk,瀏覽器
3. 啓動容器服務器
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk -delasticsearch
-p 端口映射,5601爲kibana 使用,9200爲elasticsearch使用,5044爲logstash使用工具
-d 守護進程運行容器搜索引擎
在瀏覽器輸入hostip:5601spa
正常狀況下會顯示界面,可是沒有日誌,由於尚未收集日誌信息,咱們要作的是將docker的日誌導入elk.
4.安裝filebeat
咱們知道docker 會將容器日誌記錄到 /var/lib/docker/containers/id/id-json.log
只要將此文件發給elk就能夠實現日誌管理,elk提供了一個配套工具filebeat,轉發日誌和監控日誌文件
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.1-x86_64.rpm
rpm -ivh filebeat-6.1.1-x86_64.rpm
修改配置文件
cd /etc/filebeat
vim filebeat.yml
enable 改成 true
paths:改成
- /var/lib/docker/container/*/*.log
- /var/log/syslog
啓動filebeat,systemctl start filebeat
進入ELK容器,修改cd /etc/logstash/conf.d/
vim 02-beats-input.conf
下三行刪除掉,意思是否使用證書,本例是不使用證書的,若是你須要使用證書,將logstash.crt拷貝到客戶端,而後在filebeat.yml裏面添加路徑便可
ssl => true
ssl_certificate => "/pki/tls/certs/logstash.crt"
ssl_key => "/pki/tls/private/logstash.key"
注意:sebp/elk docker是自創建了一個證書logstash.crt,默認使用*通配配符,若是你使用證書,filebeat.yml使用的服務器地址必須使用域名,不能使用IP地址,不然會報錯,這個坑是我踩後得出來的心得,說見官網文檔說明便可
5.
打開kibana管理頁面:http://ip:5601 新建filebeat-*
這時咱們啓動容器,就能夠在kibana看到有新的日誌輸出。
在此,咱們只是對elk的部分功能進行了說明。