一、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

CentOS7 Docker 部署日志系统ELK及使用_第1张图片

2、配置nginx module

首页点击 Add-log-data,选择Nginx logs,按提示操作(之前已配置),check data成功后点击Nginx logs dashboard即可

CentOS7 Docker 部署日志系统ELK及使用_第2张图片

四、Kibana查看日志

1、在首页点击discover,选择之前配置的filebeat,可以配置的自定义字段查找日志

CentOS7 Docker 部署日志系统ELK及使用_第3张图片

2、在首页点击logs,输入字段查找日志,点击Stream live可实时查看

CentOS7 Docker 部署日志系统ELK及使用

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