ELK+FileBeat日志分析系统(正式环境nginx日志)

ELK+FileBeat日志分析系统(正式环境nginx日志)

在这里插入图片描述

ELK顾名思义就是:

ElasticSearch、Logstash和Kibana
这里还用到一个插件那就是filebeat进行进行采集日志
添加filebeat插件现在已经是非常提倡的做法

Logstash太耗费cpu 内存等资源了,所以可以通过filebeat来取代它

原理就是通过filebeat进行采集日志,发送到logstash主机然后logstash主机收集之后进行过滤发送到es进行分析方便搜索,最后用kibana进行图形化展示

实验环境为正式环境

节点 服务 IP
proxy02 Nginx / Filebeat 192.168.80.3
log2 ElasticSearch / Logstash / Kibana 192.168.80.52

上传所需要的安装包,放到对应的节点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验步骤

log2需要jdk(java)/es/logstash/kibana

如jdk已经安装直接跳过

[root@elasticsearch-master ~]# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

安装es

tar zxf elasticsearch-6.3.2.tar.gz
mv elasticsearch-6.3.2 /usr/local/es

调整系统文件描述符的软硬限制

vim /etc/security/limits.conf
 末尾添加
 打开文件的软限制,ES要求系统文件描述符大于65535
* soft nofile 655360
 打开文件的硬限制
* hard nofile 655360
 用户可用进程数软限制
* soft nproc 2048
 用户可用进程数硬限制
* hard nproc 4096
 JVM能够使用最大线程数
echo "vm.max_map_count=655360" >> /etc/sysctl.conf
sysctl -p 

配置Elasticsearch服务环境

useradd es
mkdir -p /es/{
   data,logs}  # 日志及数据存放目录
chown -R es:es /usr/local/es /es # 使用es用户启动时,权限不对也会报错

网络对时

ntpdate ntp.ntsc.ac.cn

重启log2主机

编辑elasticsearch.yml配置文件,ES默认就是集群模式的,所以只有一个节点也是集群模式

vim /usr/local/es/config/elasticsearch.yml 
 取消注释
cluster.name: my-application
node.name: node-1
 添加
node.master: true
node.data: true
 取消注释并修改
path.data: /es/data
path.logs: /es/logs
network.host: 192.168.80.52   # 改为本机ip
discovery.zen.minimum_master_nodes: 1 # master的最少节点数
 取消注释
http.port: 9200

安装Kibana

tar zxf kibana-6.3.2-linux-x86_64.tar.gz
mv kibana-6.3.2-linux-x86_64 /usr/local/kibana

修改Kibana配置文件

vim /usr/local/kibana/config/kibana.yml
 取消注释
server.port: 5601
server.host: "192.168.80.52"
 用来连接es服务
elasticsearch.url: "http://192.168.80.52:9200"

安装Logstash

tar zxf logstash-6.3.2.tar.gz 
mv logstash-6.3.2 /usr/local/logstash

编辑logstash配置文件

vim /usr/local/logstash/config/logstash.yml 
 取消注释
path.config: /usr/local/logstash/config/*.conf  # 配置文件路径
config.reload.automatic: true  # 开启自动加载配置文件
config.reload.interval: 3s   # 自动加载配置文件时间间隔
http.host: "192.168.80.52"  # 改为本机ip

proxy02需要Filebeat/Nginx
Nginx已经安装跳过
安装Filebeat

tar zxf filebeat-6.3.2-linux-x86_64.tar.gz 
mv filebeat-6.3.2-linux-x86_64 /usr/local/filebeat

整合环境
修改filebeat配置文件,将本机的nginx日志文件打标签为nginx,方便elasticsearch来创建索引
proxy02

vim /usr/local/filebeat/filebeat.yml
 添加注释
 filebeat.inputs:
- type: log
 paths:
    - /var/log/*.log
 添加以下内容为inputs配置
filebeat:
  prospectors:
    - type: log
      paths:
        - /usr/local/nginx/logs/access.log
      tags: ["nginx"]
 修改
  enabled: true # 表示以上配置是否生效
 添加注释
 output.elasticsearch:
  hosts: ["localhost:9200"]
 取消注释
output.logstash:
  hosts: ["192.168.80.52:5044"]  # 该ip为logstash的主机ip

log2
新建nginx-logstash.conf文件,用来匹配日志索引

vim /usr/local/logstash/config/nginx-logstash.conf
添加:
input {
   
  beats {
   
    port => 5044  # filebeat端口号
  }
}
 
output {
   
  elasticsearch {
    
    hosts => "192.168.80.52:9200"   # 该ip为elasticsearch的ip和端口
    index => "nginx"  # 数据索引名
  }
}

进行启动
log2
启动es

su es
/usr/local/es/bin/elasticsearch

proxy02
启动filebeat

/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml

log2
启动logstash

/usr/local/logstash/bin/logstash -t /usr/local/logstash/config/nginx-logstash.conf

log2
启动kibana

/usr/local/kibana/bin/kibana

各个服务启动之后阻塞信息都是INFO就没问题,遇到WARN是no route的就关闭防火墙或者放行端口

在访问kibana的ip:5601,http://192.168.80.52:5601
在这里插入图片描述
进入管理界面,通过设置索引样式可以匹配出具体索引的数据
在这里插入图片描述
设置在这个索引里使用时间字段来进行过滤数据
在这里插入图片描述
创建成功
在这里插入图片描述
创建可视化图表
在这里插入图片描述
选择样式为条形图样式
在这里插入图片描述
选择为刚才创建的索引数据生成图表
在这里插入图片描述
右上方可保存图表,自动刷新间隔,时间维度
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101945.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java多线程常用面试题

    Java多线程常用面试题一、什么是多线程?线程是指程序在运行的过程中,能够执行程序代码的一个执行单元。Java语言中,线程有五种状态:新建、就绪、运行、阻塞及死亡。二、线程与进程的区别?进程是指一段正在执行的程序。而线程有时也被称为轻量级进程,它是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空间(代码段、数据段、堆空间)及一些…

    2022年5月22日
    39
  • es6 转es5_es5 es6是什么

    es6 转es5_es5 es6是什么项目js没有用vue的福音情景问题 项目有很多新的js语法es6es7等等 如你所愿市面上很多浏览器已经大部分支持这些与语法了 但是ie就差强人意了直接歇菜如何解决 利用node插件完成语法降级实施情景 #安装babel npminstall–save-dev@babel/core #安装转码规则 npminstall–save-dev@babel/preset-env #规则加入babel.config.json

    2022年9月25日
    5
  • 数据分析的具体案例(通过数据分析得到什么)

    今天给大家分享一个数据分析案例:线下连锁水果店销售数据分析案例,分析过程我也会以类动图的方式呈现给大家,真正意义上做到收藏即学会。目录1案例背景2问题确认与指标拆解题3问题解决思路4案例实操4.1利用分组分析找到亏损店铺做营销优化,实验验证结论4.2运用对比分析法解决哪类产品销售好的问题?4.3利用矩阵关联法找到销量好和利润高的品类4.4运用趋势分析法分析水果总需求如何?5结论分析报告1案例背景果多吃水果连锁超市是华北地区的热门线下水果超市。该超市覆盖华北5个省份,且在京津冀地区门

    2022年4月11日
    114
  • 计算机蓝屏代码0x000000ED,电脑蓝屏代码0x000000ed解决步骤[通俗易懂]

    计算机蓝屏代码0x000000ED,电脑蓝屏代码0x000000ed解决步骤[通俗易懂]电脑蓝屏代码现象是我们在使用电脑中最常见的一种启动问题,令小白用户很头痛。比如,我们在启动电脑的时候,它并没有正常地启动,屏幕反而一片蓝色,出现了一串奇怪的代码:0x000000ed,怎么办?下面,小编给大伙演示电脑蓝屏代码0x000000ed的修复流程。电脑蓝屏代码0x000000ed怎么解决蓝屏代码0x000000ed原因分析:一般是由于磁盘存在错误导致的。有可能是电脑非常关机导致系统错误,…

    2022年10月8日
    3
  • SQL语句大全大全(经典珍藏版)

    SQL语句大全大全(经典珍藏版)SQL语句大全–语句功能–数据操作SELECT–从数据库表中检索数据行和列INSERT–向数据库表添加新数据行DELETE–从数据库表中删除数据行UPDATE–更新数据库表中的数据-数据定义CREATETABLE–创建一个数据库表DROPTABLE–从数据库中删除表ALTERTABLE–修改数据库表结构CREATEVIEW

    2022年5月19日
    46
  • python中zipfile的使用_python调用winrar解压

    python中zipfile的使用_python调用winrar解压压缩f=zipfile.ZipFile(file,mode="r",compression=ZIP_STORED,allowZip64=False)创建一个zip文件对象,压缩是需要把mode改为‘w’,这个是源码中的注释OpentheZIPfilewithmoderead"r",write"w"orappend"a",a为追加压缩,不会清空原来的zipf…

    2025年12月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号