一、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,需要输入账号密码才能登陆了~