一、Docker部署ELK
#docker run -itd -p 5601:5601 -p 9200:9200 -p 5044:5044 -v /home/docker/elk_data/:/var/lib/elasticsearch --name elk sebp/elk
#備註:5601爲kibana端口,9200爲elasticsearch端口,5044爲logstach端口
二、部署Filebeat收集日誌
在日誌所在服務器下載及安裝Filebeat
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.0-x86_64.rpm
rpm -ivh filebeat-7.2.0-x86_64.rpm
修改Filebeat配置文件
vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
paths:
- /var/log/system.log
- /var/log/wifi.log
- type: log
paths:
- "/var/log/apache2/*"
#配置自定義標籤便於查找
fields:
app_name: apache
#設置爲true,會把自定義字段放前
fields_under_root: true
#設置直接輸出到es,ip配置爲es及kibana對應ip
output.elasticsearch:
hosts: ["172.17.0.1:9200"]
setup.kibana:
host: "172.17.0.1:5601"
#備註:filebeat有部分模塊可用
#filebeat modules list
#模塊的配置文件位於/etc/filebeat/modules.d/
修改模塊並啓用,這裏以nginx爲例
#filebeat modules enable nginx
修改nginx模塊配置文件
#vim /etc/filebeat/modules.d/nginx.yml
#Module: nginx
#Docs: https://www.elastic.co/guide/en/beats/filebeat/7.2/filebeat-module-nginx.html
- module: nginx
access:
enabled: true
#var.paths:
var.paths: ["/usr/local/nginx/logs/access.log"]
#var.convert_timezone: true
error:
enabled: true
var.paths: ["/usr/local/nginx/logs/error.log"]
啓用filebeat
#filebeat setup -e
#systemctl start filebeat.service
三、登陸Kibana並配置日誌
1、登陸kibana並進入:
Management--Index patterns--Create index pattern
輸入filebeat,成功匹配後點擊Next step
2、配置nginx module
首頁點擊 Add-log-data,選擇Nginx logs,按提示操作(之前已配置),check data成功後點擊Nginx logs dashboard即可
四、Kibana查看日誌
1、在首頁點擊discover,選擇之前配置的filebeat,可以配置的自定義字段查找日誌
2、在首頁點擊logs,輸入字段查找日誌,點擊Stream live可實時查看
3、點擊Dashboard,查找filebeat-nginx即可查看之前創建的~
五、Kibana配置訪問密碼
#yum install httpd-tools
#生成密碼,用戶名爲admin
htpasswd -c /usr/local/nginx/.htpasswd admin
#nginx的配置
location / {
#設置 auth
auth_basic "kibana login auth";
auth_basic_user_file /usr/local/nginx/.htpasswd;
#轉發到 kibana
proxy_pass http://localhost:5601;
proxy_redirect off;
}
打開Kibana,需要輸入賬號密碼才能登陸了~