使用docker快速部署ELK
使用docker快速部署elk
1.軟體&工具介紹
ELK是三個開源軟體的縮寫,分別表示: Elasticsearch, Logstash, Kibana,它們都是開源軟體。新增了一
個FileBeat,它是一個輕量級的日誌收集處理I具(Agent), Filebeat佔用資源少, 適合於在各個伺服器上
蒐集日誌後傳輸給Logstash,官方也推薦此工具。
●Elasticsearch是個開源分散式搜尋引擎,提供蒐集、分析、儲存資料三大功能。它的特點有:分佈
式,零配置,自動發現,索引自動分片,索引副本機制,restful風格介面,多資料來源,自動搜尋賴
載等。
●Logstash主要是用來日誌的蒐集、 分析、過濾日誌的工具,支援大量的資料獲取方式。-般工作方
式為c/s架構,client端安裝在需 要收集日誌的主機上,server端負責將收到的各 節點日誌進行過
濾、修改等操作在一併發往elasticsearch上去。
●Kibana也是一個開源和免費的工具,Kibana可以為Logstash和ElasticSearch提供的日誌分析友好
的Web介面,可以幫助彙總、分析和搜尋重要資料日誌。
Filebeat隸屬於Beats。目前Beats包含四種工具:
1. Packetbeat (蒐集網路流量資料)
2. Topbeat (蒐集系統、程序和檔案系統級別的CPU和記憶體使用情況等資料)
3. Filebeat (蒐集檔案資料)
4. Winlogbeat (蒐集Windows事件日誌資料)
2.拉取ELK整合映象
ELK映象地址:https://hub.docker.com/r/sebp/elk/tags
[root@localhost ~]# docker full sebp/elk
注:不加版本號預設拉取最新的整合映象版本(本次拉的最新版本為7.9.2)
3.啟動ELK
[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 /opt/elk/logstash:/etc/logstash/conf.d \
-v /etc/localtime:/etc/localtime \
--restart=always sebp/elk
4.配置ELK
進入容器
[root@localhost ~]# docker exec -it elk /bin/bash
/etc/logstash/ ## logstash配置檔案路徑
/etc/elasticsearch /# es配置檔案路徑
/var/1og/ ##日誌路徑
配置Logstash
[root@localhost ~]# cd /opt/elk/logstash/
[root@localhost logstash]# vim logstash.conf
input {
tcp {
port => 5044
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
5.啟動ELK服務
[root@localhost ~]# docker restart elk
[root@localhost ~]# docker ps
訪問 http://[ip]:5601
訪問: http://locahost:9200