ELK日志系统Docker搭建与入门

ELK日志系统搭建与入门

  • 简介
  • 搭建环境
  • 安装
    • ElasticSearch安装
    • Kibana安装
    • Logstash安装
    • FileBeat安装
    • 测试

简介

ELK指的是三个组件Elasticsearch(数据存储全文检索)+Logstash(日志接收过滤输出)+Kibana(可视化)。本篇只介绍搭建过程,详细配置入门在下一篇博客,原理嘛…有时间再探索。

搭建环境

  1. ELK+Filebeats统一7.3.0版本
  2. CentOS7
  3. Windows7
  4. Docker19.03.1

安装

docker的安装可以参考:https://www.runoob.com/docker/docker-tutorial.html


ElasticSearch安装

docker pull elasticSearch:7.3.0

  • 镜像中已经有了默认的配置文件(/usr/share/elasticsearch/config/elasticsearch.yml),只指定了允许远程访问,如果有需要自定义配置文件需要进行映射。
  • 存储数据的目录(/usr/share/elasticsearch/data)通常会映射到本地磁盘上,防止容器崩溃后的数据丢失。
  • 需要绑定9200和9300端口进行使用

综上所述给出启动镜像的启动命令为:

docker run -itd --name elasticsearch -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” -v /usr/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/elasticsearch/data:/usr/share/elasticsearch/data elasticsearch:7.3.0

启动成功后在浏览器中输入地址:http://192/168/16.12:9200有json格式数据返回既为成功
ELK日志系统Docker搭建与入门_第1张图片

不同机器安装时可能会出现问题,自行百度或者参考官网:https://www.elastic.co/guide/en/elasticsearch/reference/6.4/docker.html

Kibana安装

docker pull kibana:7.3.0

  • kibana中默认配置:
    ELK日志系统Docker搭建与入门_第2张图片
    官网给出的命令中需要link elasticsearch的容器,但是docker新版本中不建议使用–link 指令,所以我们自定义配置文件重新指定地址。
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://172.17.0.2:9200" ]
  • 需要映射5601端口,当然可以在配置文件改。

启动命令:

docker run -itd --name kibana -p 5601:5601 -v /usr/elk/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.3.0

启动完成后在浏览器输入:http://192.168.16.12:5601进入页面没有报错即为成功
ELK日志系统Docker搭建与入门_第3张图片

参考官网:https://www.elastic.co/guide/en/kibana/current/docker.html

Logstash安装

Logstash比较小巧我就直接在CentOS上直接解压使用了。

  • 去官网下载7.3.0版本的压缩包.tar.gz结尾的https://www.elastic.co/cn/downloads/logstash
  • tar -zxvf filename 解压到指定目录
  • 本次使用的输入源是filebeat,输出到elasticsearch所以暂时不需要安装插件
  • 编写Logstash配置文件
input {
  # filebeat插件
  beats {
    port => 5044
    # 这个很重要不配置的话filebeat会出现连接被关闭的错
    client_inactivity_timeout  => 36000
  }
}

#过滤器过滤日志
filter{
    #tag 是在filebeat中配置的
    if "login" in [tags]{
         grok{
              match =>{
               "message" => "^\[%{DATA:LOGINTIME}\] %{DATA:PROTOCOL} %{DATA:STATUS}\]$"
                        }
                add_field => {"status" => "%{STATUS}"}
                }
        }

}

# 输出到elasticsearch
output {
        if "login" in [tags] {
                elasticsearch {
                hosts => ["http://192.168.16.12:9200"]
                # 索引名很重要,等下用来搜索日志
                index => "login"
                }
        }

        if "excep" in [tags] {
                elasticsearch {
                hosts => ["http://192.168.16.12:9200"]
                index => "excep"
                }
        }
}

配置暂时简单介绍,官网的文档写的很详细:https://www.elastic.co/guide/en/logstash/current/configuration.html


在后台启动它。

nohup ./bin/logstash -f ./conf/test.conf &

启动后查看启动日志 cat nohup.out
ELK日志系统Docker搭建与入门_第4张图片

FileBeat安装

filebeat我是跑在windows上的,为了方便输出日志。

  • 先在官网下载7.3.0版本的filebeat,注意这次要Windows版本的
  • 更改配置文件,在安装目录下的filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - D:\home\logs\login.log.*
  #这里配置的tag和Logstash的相对应
  tags: ["login", "ptv6-wf"]
 
#yml格式要注意缩进
- type: log
  enabled: true
  paths:
    - D:\home\logs\\excep.*
  tags: ["excep", "ptv6-wf"]

#============================= Filebeat modules ===============================

filebeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml
  # Set to true to enable config reloading
  reload.enabled: false
  # Period on which files under path should be checked for changes
  #reload.period: 10s
#----------------------------- Logstash output --------------------------------
output.logstash:
#  enabled: true
  # The Logstash hosts
  hosts: ["192.168.16.14:5044"]
#================================ Processors =====================================

# Configure processors to enhance or manipulate events generated by the beat.

processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

配置完毕后,使用cmd命令行去启动filebeat.exe,最后在安装目录下logs文件夹中有日志信息,查看是否报错。

测试

在上述的组件全部启动完毕后,我们模拟程序产生日志。然后在kibana中查看它。

  • 首先需要添加索引,这个索引和Logstash中配置的out中的index相对应
    ELK日志系统Docker搭建与入门_第5张图片ELK日志系统Docker搭建与入门_第6张图片
  • 创建完成后就可以开始查看日志了
    ELK日志系统Docker搭建与入门_第7张图片

你可能感兴趣的:(ELK日志系统Docker搭建与入门)