選擇鏡像
選擇docker images(在hub.docker.com 搜索 elk 選擇 start或pulls比較多的鏡像) 本次安裝選擇的是 sebp/elk,默認(rèn)本地已安裝docker環(huán)境
docker pull sebp/elk
- 選擇docker鏡像
登錄 hub.docker.com 搜索 'elk', 選擇stars 和 pulls 比較多的鏡像 - 下載鏡像
docker pull sebp/elk
啟動(dòng)docker容器
docker run --ulimit nofile=65536:65536 -p 5601:5601 -p 9200:9200 -p 5044:5044 -p 5045:5045 -p 5046:5046 -d --restart=always -v /etc/logstash:/etc/logstash -v /etc/localtime:/etc/localtime --name elk sebp/elk
參數(shù)介紹
--ulimit 來修改容器的ulimit參數(shù)(該鏡像默認(rèn)的ulimit值為4096。 不帶該參數(shù),啟動(dòng)容器會(huì)出現(xiàn)類似 “max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]” 錯(cuò)誤)
-p 指定容器和宿主機(jī)映射端口
5601: kibana服務(wù)端口 HTTP (web訪問)
9200: Elasticsearch 開發(fā)端口 HTTP,保存數(shù)據(jù)到Elasticsearch中使用
5044: logstash 收集日志端口 TCP
-v 掛載目錄 可以將logstash 的配置文件掛載在宿主機(jī)的目錄上, 方便隨時(shí)修改。掛載 /etc/localtime 該目錄是為了保證容器和宿主機(jī)的時(shí)區(qū)相同。
配置logstash
- logstash 配置文件所在路徑 /etc/logstash/conf.d/logstash.conf
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
}
}
修改完配置文件后,執(zhí)行如下命令來重啟logstash
docker exec elk /etc/init.d/logstash restart
客戶端服務(wù)器
安裝filebeat
Debian/Ubuntu:
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.3.2-amd64.deb
sudo dpkg -i filebeat-5.3.2-amd64.deb
Redhat/Centos/Fedora:
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.3.2-x86_64.rpm
sudo rpm -vi filebeat-5.3.2-x86_64.rpm配置filebeat (默認(rèn)文件路徑 /etc/filebeat/filebeat.yml)
filebeat.prospectors:
- input_type: log
document_type: info
paths:
- /data/logs/info.log
output.logstash:
hosts: ["18.18.18.18:5044"]
paths 需要收集的日志文件路徑
hosts: logstash 服務(wù)IP和端口
- 測(cè)試配置文件語法是否正確
/usr/bin/filebeat.sh -configtest /etc/filebeat/filebeat.yml
修改完成后,重啟filebeat
/etc/init.d/filebeat restart
訪問kibana頁面
- 在已經(jīng)安裝filebeat的客戶端服務(wù)器上,測(cè)試日志收集
echo 'test log ......' >> /data/logs/info.log - 在瀏覽器輸入 18.18.18.18:5601(IP修改為ELK所在服務(wù)器的IP地址)創(chuàng)建默認(rèn)的索引后,可以在web上看到輸入的測(cè)試日志。