ELK

一、什么是ELK

​ ELK是Elasticsearch + Logstash + Kibana 这种架构的简写.

​ 这是一种日志分析平台的架构.

如果没有ELK这样的日志分析平台,我们同样可以使用shell三剑客(grep、sed、awk)来分析日志。

这种方式略显原始而简陋,虽然也能应对大多数的场景,但是当日志量变大,分析频繁的时候,仅靠人工shell 的方式来查看分析日志,就很不方便。

尤其适当使用者,对于shell不是很擅长的情况下,一个操作简单,配置方便的日志分析平台,就显得很有必要了。

ELK是开源的,社区活跃,用户众多。

二、ELK常见的架构

  • Elasticsearch + Logstash + Kibana
    这是一种最简单的架构。这种架构,通过logstash收集日志,Elasticsearch分析日志,然后在Kibana(web界面)中展示。这种架构虽然是官网介绍里的方式,但是往往在生产中很少使用。

  • Elasticsearch + Logstash + filebeat + Kibana
    与上一种架构相比,这种架构增加了一个filebeat模块。filebeat是一个轻量的日志收集代理,用来部署在客户端,优势是消耗非常少的资源(较logstash), 所以生产中,往往会采取这种架构方式,但是这种架构有一个缺点,当logstash出现故障, 会造成日志的丢失。

  • Elasticsearch + Logstash + filebeat + redis(也可以是其他中间件,比如kafka(集群化)) + Kibana
    这种架构是上面那个架构的完善版,通过增加中间件,来避免数据的丢失。当Logstash出现故障,日志还是存在中间件中,当Logstash再次启动,则会读取中间件中积压的日志。目前我司使用的就是这种架构,我个人也比较推荐这种方式。

请添加图片描述

说明: logstash节点和elasticsearch节点可以根据日志量伸缩数量, filebeat部署在每台需要收集日志的服务器上。

三、简单ELK部署

  • 部署环境,关闭防火墙

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t8s9JCFB-1640835483395)(C:\Users\杨醇\OneDrive\桌面\1)]

- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sZ1ld2PK-1640835483395)(C:\Users\杨醇\OneDrive\桌面\2)]

  • 安装elasticsearch-rpm包

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d2odKsE6-1640835483396)(C:\Users\杨醇\OneDrive\桌面\3)]

  • 加载系统服务.

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yWCcDdDV-1640835483397)(C:\Users\杨醇\OneDrive\桌面\4)]

  • 更改elasticsearch主配置文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LdenVjFs-1640835483398)(C:\Users\杨醇\OneDrive\桌面\5)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mr8tXGRO-1640835483399)(C:\Users\杨醇\OneDrive\桌面\6)]

  • 创建数据存放路径并授权

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WyohKRtT-1640835483400)(C:\Users\杨醇\OneDrive\桌面\7)]

  • 启动查看是否成功开启

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZaKAbLNa-1640835483400)(C:\Users\杨醇\OneDrive\桌面\8)]

  • 查看节点信息

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j71pN8cp-1640835483401)(C:\Users\杨醇\OneDrive\桌面\9)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Al9Yn2A-1640835483401)(C:\Users\杨醇\OneDrive\桌面\10)]

  • 查看集群状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CUGTtLS1-1640835483402)(C:\Users\杨醇\OneDrive\桌面\11)]

  • 安装head插件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mr5HsEOb-1640835483403)(C:\Users\杨醇\OneDrive\桌面\12)]

  • 安装phantomjs

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0yLYnchv-1640835483403)(C:\Users\杨醇\OneDrive\桌面\13)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EBQUoqOX-1640835483404)(C:\Users\杨醇\OneDrive\桌面\14)]

  • 安装可视化工具

file:///C:/Users/%E6%9D%A8%E9%86%87/OneDrive/%E6%A1%8C%E9%9D%A2/15

  • 修改主配置文件,启动head插件及服务

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VMP96UQW-1640835483405)(C:\Users\杨醇\OneDrive\桌面\16)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6DVqMgt1-1640835483405)(C:\Users\杨醇\OneDrive\桌面\17)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F674jxO4-1640835483406)(C:\Users\杨醇\OneDrive\桌面\18)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MpYaB2mH-1640835483406)(C:\Users\杨醇\OneDrive\桌面\19)]

  • 创建索引

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y5UvJcNX-1640835483407)(C:\Users\杨醇\OneDrive\桌面\20)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ew93LRJU-1640835483407)(C:\Users\杨醇\OneDrive\桌面\21)]

  • apache主机上安装logstash,并启动

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9xgwtYqj-1640835483407)(C:\Users\杨醇\OneDrive\桌面\22)]

  • 建立logstash软连接

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hruMtQgC-1640835483408)(C:\Users\杨醇\OneDrive\桌面\23)]

  • logstash与elasticsearch做对接测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h6EwMr1T-1640835483408)(C:\Users\杨醇\OneDrive\桌面\24)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r3BHVZN0-1640835483409)(C:\Users\杨醇\OneDrive\桌面\25)]

- 使用logstash将信息写入elasticsearch中[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qOwGM2jx-1640835483409)(C:\Users\杨醇\OneDrive\桌面\26)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4rOBxFxA-1640835483409)(C:\Users\杨醇\OneDrive\桌面\27)]

  • 登录主机做对接配置

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YcfHUBju-1640835483410)(C:\Users\杨醇\OneDrive\桌面\28)]

vi /etc/logstash/conf.d/system.conf

input {
       file{
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
        }
      }
output {
        elasticsearch {
          hosts => ["192.168.9.139:9200"]
          index => "system-%{+YYYY.MM.dd}"
          }
        }

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tMkdjiSA-1640835483410)(C:\Users\杨醇\OneDrive\桌面\29)]

  • node1上安装kibana

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZM6EPraI-1640835483411)(C:\Users\杨醇\OneDrive\桌面\30)]

  • 修改配置文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JnuGwJCO-1640835483411)(C:\Users\杨醇\OneDrive\桌面\31)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yCMY9v9z-1640835483411)(C:\Users\杨醇\OneDrive\桌面\32)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gODe52Ou-1640835483412)(C:\Users\杨醇\OneDrive\桌面\33)]

  • 配置索引

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P56rZLYF-1640835483412)(C:\Users\杨醇\OneDrive\桌面\34)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DxCrklf2-1640835483413)(C:\Users\杨醇\OneDrive\桌面\35)]

  • 对接apache主机的日志文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jqZ0rIlX-1640835483413)(C:\Users\杨醇\OneDrive\桌面\36)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gd9t8jNG-1640835483414)(C:\Users\杨醇\OneDrive\桌面\37)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l0Zz5Xes-1640835483415)(C:\Users\杨醇\OneDrive\桌面\38)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QIxN9aMb-1640835483415)(C:\Users\杨醇\OneDrive\桌面\39)]

四、扩展

在生产环境中,由于logstash消耗资源过多,我们一半采用filebeat轻量级日志收集代理,让logstash专注于日志格式化,又由于生产环境中日志量过大,logs他是一旦故障,会导致日志的丢失,所以要在filebeat与logstash中增加一个中间件redis或kafka来起一个缓存汇聚作用。如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WFJ3i6lB-1640835483416)(C:\Users\杨醇\OneDrive\桌面\40)]

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐