ELK日志系统Docker搭建与入门

骑猪看日落 2021-10-24 00:48 508阅读 0赞

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格式数据返回既为成功
在这里插入图片描述

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

Kibana安装

docker pull kibana:7.3.0

  • kibana中默认配置:
    在这里插入图片描述
    官网给出的命令中需要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进入页面没有报错即为成功
在这里插入图片描述

参考官网: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 {

    1. port => 5044
    2. # 这个很重要不配置的话filebeat会出现连接被关闭的错
    3. client_inactivity_timeout => 36000

    }
    }

    过滤器过滤日志

    filter{

    1. #tag 是在filebeat中配置的
    2. if "login" in [tags]{
    3. grok{
    4. match =>{
    5. "message" => "^\[%{DATA:LOGINTIME}\] %{DATA:PROTOCOL} %{DATA:STATUS}\]$"
    6. }
    7. add_field => {"status" => "%{STATUS}"}
    8. }
    9. }

    }

    输出到elasticsearch

    output {

    1. if "login" in [tags] {
    2. elasticsearch {
    3. hosts => ["http://192.168.16.12:9200"]
    4. # 索引名很重要,等下用来搜索日志
    5. index => "login"
    6. }
    7. }
    8. if "excep" in [tags] {
    9. elasticsearch {
    10. hosts => ["http://192.168.16.12:9200"]
    11. index => "excep"
    12. }
    13. }

    }

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


在后台启动它。

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

启动后查看启动日志 cat nohup.out
在这里插入图片描述

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相对应
    在这里插入图片描述在这里插入图片描述
  • 创建完成后就可以开始查看日志了
    在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,508人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ELK+kafka日志系统-实战

    日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安