ELK企业级日志分析系统

    文档作者:传棋
    创作日期:2022年3月12日
    联系方式:Jaking@vip.163.com
    注意事项:本文档仅供个人学习使用,未经作者同意,禁止用于任何商业用途!

    ELK
    ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。
    Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。
    Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。
    Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建自己的数据的定制仪表板视图,还允许用户以特殊的方式查询和过滤数据。

    原理介绍
    本次部署的是FileBeat(客户端),ElasticSearch + FileBeat + Kibana + LogStash (服务端)组成的架构
    业务请求到达Nginx客户端机器上的Nginx,Nginx响应请求,并在access.log文件中增加访问记录;FileBeat搜集新增的日志,通过LogStash的5044端口上传日志;LogStash将日志信息通过本机的9200端口传入到ElasticSearch;搜集日志的用户通过浏览器访问Kibana,服务器端口是5601;Kibana通过9200端口访问ElasticSearch;
    1.png


    整体架构
    2.png

    实战环境
    1. RHEL7(3台)
    2. 关闭iptables
    3. 关闭SELinux

    ELK功能
    4. Kibana用来展现数据
    5. Elasticsearch用来存储数据
    6. Logstash用来收集数据

    实战环境
    7. 192.168.10.11部署Kibana、ES
    8. 192.168.10.12部署Logstash

    JDK1.8环境搭建
    9. 安装JDK
    10. 配置环境变量

    yum安装jdk1.8,不建议
    11. 链接:https://www.elastic.co/downloads/logstash
    12. yum install java-1.8.0-openjdk -y
    13. Elasticsearch、Logstash依赖于java环境

    JDK的二进制安装
    14. jdk1.8二进制包下载路径http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    15. 解压到对应安装目录/usr/local/或者/opt/
    16. 验证安装/usr/local/jdk1.8.0_201/bin/java -version

    安装命令
    cd /usr/local/src
    tar xvf jdk-8u201-linux-x64.tar.gz
    mv jdk1.8.0_201 /usr/local/

    配置Java环境变量/etc/profile
    export JAVA_HOME=/usr/local/jdk1.8.0_201/
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH




    验证环境变量

    source /etc/profile
    java –version