elk 為 elasticsearch(查詢搜索引擎),logstash(對日誌進行分析和過濾,然後轉發給elasticsearch),kibana(一個web圖形界面用於可視化elasticsearch數據)縮寫 1.安裝docker環境 2. 準備鏡像 拉取 elk鏡像,我們用sebp/elk ...
elk 為 elasticsearch(查詢搜索引擎),logstash(對日誌進行分析和過濾,然後轉發給elasticsearch),kibana(一個web圖形界面用於可視化elasticsearch數據)縮寫
1.安裝docker環境
2. 準備鏡像
拉取 elk鏡像,我們用sebp/elk
docker pull sebp/elk,
3. 啟動容器
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk -d
-p 埠映射,5601為kibana 使用,9200為elasticsearch使用,5044為logstash使用
-d 守護進程運行容器
在瀏覽器輸入hostip:5601
正常情況下會顯示界面,但是沒有日誌,因為還沒有收集日誌信息,我們要做的是將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的部分功能進行了說明。