• 使用ELK8.4.1环境+Filebeat收集nginx日志


    1.简介

    ELK是Elastic企业的ElasticSerach、Logstash、Kibana三款产品名称的首字母集合,用于日志的搜索,收集,可视化查看。

    使用到的四个组件介绍:

    • ElasticSerach: 位于 Elastic Stack 核心的分布式搜索和分析引擎。
    • Logstash: 具有实时流水线能力的开源的数据收集引擎。Logstash可以动态统一不同来源的数据,并将数据标准化到您选择的目标输出。它提供了大量插件,可帮助我们解析,丰富,转换和缓冲任何类型的数据。
    • Kibana: 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。
    • Filebeat: Beats在是一个轻量级日志采集器,Filebeat是Beats下其中收集文件数据使用的。

    在这里插入图片描述

    2.下载安装

    测试环境说明:
    系统:centos7
    nginx: 1.18
    ELK+Filebeat: 8.4.1

    重下面网址下载linux-x86_64安装包
    https://www.elastic.co/cn/downloads/elasticsearch
    https://www.elastic.co/cn/downloads/kibana
    https://www.elastic.co/cn/downloads/logstash
    https://www.elastic.co/cn/downloads/beats/filebeat

    上传文件到服务器上面
    在这里插入图片描述
    解压文件

    cd /home/elk
    tar -zxvf elasticsearch-8.4.1-linux-x86_64.tar.gz
    tar -zxvf logstash-8.4.1-linux-x86_64.tar.gz
    tar -zxvf kibana-8.4.1-linux-x86_64.tar.gz
    tar -zxvf filebeat-8.4.1-linux-x86_64.tar.gz
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    nginx安装请参考: 点我跳转

    3.ElasticSerach配置

    在这里插入图片描述

    因为ElasticSerach运行时不允许以root用户身份的,所以这里需要手动创建用户并分配权限,具体如下:

    创建用户

    #创建用户组
    ​​groupadd elk
    #创建用户加入用户组
    useradd elk -g ​​elk 
    #设置/home/elk文件夹归属elk用户和用户组
    chown -R elk:elk /home/elk/
    #切换用户
    su elk
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    编辑系统文件

    vi /etc/security/limits.conf
    #在尾部添加下面4行内容:
    * soft nofile 65536 
    * hard nofile 131072 
    * soft nproc 2048 
    * hard nproc 4096
    :wq  #保存退出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    vi /etc/sysctl.conf
    #在尾部添加下面1行内容:
    vm.max_map_count=262144
    :wq #保存退出
    
    • 1
    • 2
    • 3
    • 4

    刷新配置重启系统

    #加载sysctl配置
    ​​sysctl -p​​
    #重启系统
    ​​reboot​​
    
    • 1
    • 2
    • 3
    • 4

    编辑elasticsearch配置文件
    elasticsearch-8.4.1版本默认开启了安全配置需要用https协议访问,为了方便测试我这边改成http协议访问

    vi elasticsearch-8.4.1/config/elasticsearch.yml
    :set nu     #显示行号
    #network.host: 192.168.0.1  去注释56行修改成下面
    network.host: 0.0.0.0
    #下面可以改成用security配置,用http协议访问(如果没有在尾部添加下面2行)
    xpack.security.enabled: false #98行 
    xpack.security.enrollment.enabled: false #100行
    :wq #保存退出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    启动服务
    -d 以守护进程方式启动

    /home/elk/elasticsearch-8.4.1/bin/elasticsearch -d
    
    • 1

    在这里插入图片描述

    使用 curl http://127.0.0.1:9200/ 查看elasticsearch运行信息
    在这里插入图片描述

    使用 curl http://127.0.0.1:9200/_cat/health?v 查看集群健康情况
    在这里插入图片描述
    status代表着集群状态,它有三种

    • green: 集群所有数据都是可以访问的
    • yellow: 集群所有数据都是可以访问的,但一些数据的副本还没有分配
    • red: 集群部分数据不可访问

    4.Logstash配置

    基于模板配置复制一份配置文件

    cp /home/elk/logstash-8.4.1/config/logstash-sample.conf /home/elk/logstash-8.4.1/config/filebeat.conf
    
    • 1

    修改filebeat.conf配置

    • 如果elasticsearch和logstash不是在同一台机器需要修改host字段为elasticsearch服务部署的ip
    • index字段内容改成nginx_log
    vi /home/elk/logstash-8.4.1/config/filebeat.conf
    
    • 1

    在这里插入图片描述
    改完按:wq保存退出

    指定配置文件启动Logstash服务

    nohup /home/elk/logstash-8.4.1/bin/logstash -f /home/elk/logstash-8.4.1/config/filebeat.conf
    
    • 1

    在这里插入图片描述

    5.Filebeat配置

    需要配置采集日志的输入源和数据输出源改成Logstash

    vi /home/elk/filebeat-8.4.1-linux-x86_64/filebeat.yml
    
    • 1
    • 28行enabled改为true
    • 32行改成nginx日志的存储路径
    • 139行和141行注释掉
    • 152行和154行放开注释
    • 154配置logstash部署服务器的ip
      在这里插入图片描述
      在这里插入图片描述
      修改完按:wq保存退出

    启动filebeat服务

    #可以在命令前面加nohup命令以守护进程启动
    /home/elk/filebeat-8.4.1-linux-x86_64/filebeat -e -c /home/elk/filebeat-8.4.1-linux-x86_64/filebeat/filebeat.yml 
    
    • 1
    • 2

    可以看到日志正常打印表示启动成功
    在这里插入图片描述

    6.Kabana配置

    修改server.host成部署服务的ip用于在浏览器访问

    vi /home/elk/kibana-8.4.1/config/kibana.yml
    
    • 1

    在这里插入图片描述

    启动kabana

    #可以在命令前面加nohup命令以守护进程启动
    /home/elk/kibana-8.4.1/bin/kibana
    
    • 1
    • 2

    在这里插入图片描述

    在这里插入图片描述

    6.1.通过ElasticSerach读取日志数据

    点击左侧菜单里的Dev Tools工具
    在这里插入图片描述
    通过GET获取收集的nginx日志
    在控制面版输入下面的命令

    GET  /nginx_log/_search
    
    • 1

    nginx_log为Logstash配置文件里定义的索引名称
    在这里插入图片描述

    6.2.可视化显示日志数据

    • 点击菜单名称为Discover的列
    • 点击Create data View按钮
    • 输入视图名称和索引名称然后点击Save按钮保存
      在这里插入图片描述
      在这里插入图片描述

    右下角的表格显示的是收集的日志数据,可以分页查看
    在这里插入图片描述

    可以点击左上角的下拉框切换视图查看其它数据
    在这里插入图片描述

    到此本文的内容就结束了,由于写作水平有限,写的不合理或有问题的地方麻烦各位同学在评论中指出。

  • 相关阅读:
    YAML 学习笔记
    Vue的计算属性/侦听器/组件用法详解
    Java数组—精讲篇
    Redis 线程模式
    haas506 2.0开发教程-高级组件库-modem.voiceCall(仅支持2.2以上版本)
    JavaScript实现简单的数据库查询(不完整)
    react写一个简单的3d滚轮picker组件
    Redis 三种缓存问题 -- 缓存穿透、缓存雪崩、缓存击穿
    GPT-5 一年半后发布?对此你有何期待?
    Spring事务的实现方式
  • 原文地址:https://blog.csdn.net/ming19951224/article/details/126768739