• ELK日志分析系统


    ELK日志分析系统

    是基于Elasticsearch、Logstash、Kibana三个开源的日志收集、存储检索和可视化的解决方案。

    elk可以帮助用户快速定位和分析应用程序的故障,监控应用程序的性能和安全性,以及提供丰富的数据分析和展示功能。

    ELK日志分析系统包括

    Elasticsearch

    Logstash

    Kibana

    日志处理步骤

    1.将日志进行集中化管理

    2.将日志格式化(Logstash) 并输出到Elasticsearch

    3.对格式化后的数据进行索引和存储 (Elasticsearch)

    4.前端数据的展示(Kibana)

    Elasticsearch

    是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。是一个分布式和搜索和分析引擎,它可以对各种类型的数据进行近实时的索引和查询,支持高可用和水平扩展性。

    它提供了一个分布式多用户能力的全文搜索引擎。

    Logstash

    是一个数据处理管道,它可以从多个来源采集数据,对数据进行过滤、转换和增强,然后将数据发送到Blasticsearch或者其他的目的地。

    LogStash主要组件

    1. Shipper 日志收集者
    2. Indexer 日志存储
    3. Broker 日志hub(用于连接)
    4. Search and Storage 搜索和存储
    5. Web Interface 基于Web的展示的界面
    6. input (数据采集) filter (数据过滤) output(数据输出)
    7. 用jdk启动,基于Jana,会占用大量资源。

    Kibana

    是一个针对Easticsearch的数据可视化平台,它可以通过各种图表、仪表盘和地图来展示和探索Elasticsearch中的数据。

    Kibana主要功能

    1、Elasticsearch无缝之集成

    2、整合数据,复杂数据分析

    3、让更多团队成员受益

    4、接口灵活,分享更容易

    5、配置简单,可视化多数据源

    6、简单数据导出

    为什么要使用 ELK

    往往单台机器的日志我们使用grep、awk等工具就能基本实现简单分析,但是当日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。

    一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。

    ELK 工作原理

    (1)在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。

    (2)Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。

    (3)Elasticsearch 对格式化后的数据进行索引和存储。

    (4)Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

    ELK Elasticsearch 集群部署 

    1、部署 Elasticsearch 软件

    1. 上传elasticsearch-5.5.0.rpm到/opt目录下
    2. cd /opt
    3. rpm -ivh elasticsearch-5.5.0.rpm
    4. systemctl daemon-reload
    5. systemctl enable elasticsearch.service
    6. 修改elasticsearch主配置文件
    7. cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
    8. vim /etc/elasticsearch/elasticsearch.yml
    9. --17--取消注释,指定集群名字
    10. cluster.name: my-elk-cluster
    11. --23--取消注释,指定节点名字:day6节点为day6day7节点为day7
    12. node.name: day6
    13. --33--取消注释,指定数据存放路径
    14. path.data: /data/elk_data
    15. --37--取消注释,指定日志存放路径
    16. path.logs: /var/log/elasticsearch/
    17. --43--取消注释,改为在启动的时候不锁定内存
    18. bootstrap.memory_lock: false
    19. --55--取消注释,设置监听地址,0.0.0.0代表所有地址
    20. network.host: 0.0.0.0
    21. --59--取消注释,ES 服务的默认监听端口为9200
    22. http.port: 9200
    23. --68--取消注释,集群发现通过单播实现,指定要发现的节点 day6day7
    24. discovery.zen.ping.unicast.hosts: ["day6", "day7"]
    25. grep -v "^#" /etc/elasticsearch/elasticsearch.yml

    1. 创建数据存放路径并授权
    2. mkdir -p /data/elk_data
    3. chown elasticsearch:elasticsearch /data/elk_data/
    4. 启动elasticsearch是否成功开启
    5. systemctl start elasticsearch.service
    6. netstat -antp | grep 9200

    1. 查看节点信息
    2. 浏览器访问 http://192.168.11.66:9200/_cluster/health?pretty 、 http://192.168.11.77:9200/_cluster/health?pretty查看群集的健康情况,可以看到 status 值为 green(绿色), 表示节点健康运行。

     

    2、 ELK Logstash 部署(在 Apache 节点上操作)

    1. 更改主机名
    2. hostnamectl set-hostname apache
    3. 安装Apahce服务(httpd)
    4. yum -y install httpd
    5. systemctl start httpd
    6. 安装Java环境
    7. yum -y install java
    8. java -version
    9. 安装logstash
    10. #上传软件包 logstash-5.5.1.rpm 到/opt目录下
    11. cd /opt
    12. rpm -ivh logstash-5.5.1.rpm
    13. systemctl start logstash.service
    14. systemctl enable logstash.service
    15. ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
    1. 测试 Logstash
    2. logstash -e 'input { stdin{} } output { stdout{} }'
    3. ......
    4. www.baidu.com

     

    1. 修改logstash配置文件
    2. chmod +r /var/log/messages
    3. 让 Logstash 可以读取日志
    4. vim /etc/logstash/conf.d/system.conf
    5. input {
    6. file{
    7. path =>"/var/log/messages" 指定要收集的日志的位置
    8. type =>"system" 自定义日志类型标识
    9. start_position =>"beginning" 表示从开始处收集
    10. }
    11. }
    12. output {
    13. elasticsearch { 输出到 elasticsearch
    14. hosts => ["192.168.11.66:9200"] 指定 elasticsearch 服务器的地址和端口
    15. index =>"system-%{+YYYY.MM.dd}" 指定输出到 elasticsearch 的索引格式
    16. }
    17. }
    18. systemctl restart logstash

    ELK Kiabana 部署

    1. 安装 Kiabana
    2. #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录
    3. cd /opt
    4. rpm -ivh kibana-5.5.1-x86_64.rpm
    5. 设置 Kibana 的主配置文件
    6. vim /etc/kibana/kibana.yml
    7. --2--取消注释,Kiabana 服务的默认监听端口为5601
    8. server.port: 5601
    9. --7--取消注释,设置 Kiabana 的监听地址,0.0.0.0代表所有地址
    10. server.host: "0.0.0.0"
    11. --21--取消注释,设置和 Elasticsearch 建立连接的地址和端口
    12. elasticsearch.url: "http://192.168.11.66:9200"
    13. --30--取消注释,设置在 elasticsearch 中添加.kibana索引
    14. kibana.index: ".kibana"
    15. 启动 Kibana 服务
    16. systemctl start kibana.service
    17. systemctl enable kibana.service
    18. netstat -natp | grep 5601
    19. 验证 Kibana
    20. 浏览器访问 http://192.168.11.66:5601
    21. 第一次登录需要添加一个 Elasticsearch 索引:
    22. Index name or pattern
    23. //输入:system-* #在索引名中输入之前配置的 Output 前缀“system”
    24. 单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。
    25. 数据展示可以分类显示,在“Available Fields”中的“host”,然后单击 “add”按钮,可以看到按照“host”筛选后的结果
  • 相关阅读:
    cognex Insight相机与机器人配合标定的方法(转载不易)
    LC-992. K 个不同整数的子数组(滑动窗口)
    【从零开始的Java开发】1-6-2 泛型:概述、泛型作为方法参数、自定义泛型、自定义泛型方法
    Linux安装MySQL8.0
    Springboot 集成 RabbitMq 实现消息确认机制
    自定义RBAC(1)
    面试经验——面试项目准备工作
    【LeetCode与《代码随想录》】数组篇:做题笔记与总结-JavaScript版
    同为科技(TOWE)智能机柜PDU助力上海华为数据中心完善机房末端配电
    K8s复习笔记-1
  • 原文地址:https://blog.csdn.net/ffdtj/article/details/133156825