1. ELK日志分析

ELK日志分析

  • 一、ELK作用、组件
    • 1、作用
    • 2、核心组件
      • 2.1 beat软件
      • 2.1 Logstash
      • 2.2 Elasticsearch
      • 2.3 Kibana
  • 二、ELK部署、测试
    • 1、环境规划
    • 2、确保SELinux关闭、时间同步
    • 3、所有主机添加主机名解析
    • 4、三台ES主机安装jdk 1.15
    • 5、调整系统资源限制
    • 6、部署es集群
      • 6.1 创建普通用户elk、安装es软件
      • 6.2 编辑es的配置文件
      • 6.3 启动es集群
      • 6.4 查看es集群状态
    • 7、配置logstash
      • 7.1 安装logstash
      • 7.2 编辑logstash配置
      • 7.3 启动logstash
    • 8、安装kibana可视化工具
    • 9、在业务服务器上部署filebeat
      • 9.1 测试访问web,形成日志
      • 9.2 安装filebeat
      • 9.3 编辑filebeat配置
      • 9.4 启动filebeat
  • 三、测试ELK可正常搜集日志
    • 1、在kibana webUI根据索引查看日志
    • 2、创建图表,分析网站访问量

一、ELK作用、组件

1、作用

统一日志搜集、分析

2、核心组件

在这里插入图片描述

2.1 beat软件

部署在业务服务器的客户端agent, 用于让ELK联系beat采用日志
典型beat软件:
1、topbeat, 适用于搜集系统日志
2、filebeat, 适用于搜集应用级别日志
3、winbeat, 适用于windows日志
4、packetbeat, 适用于网络设备的日志

2.1 Logstash

日志过滤器,做日志过滤功能

2.2 Elasticsearch

简称es, 分布式搜索引擎,负责日志数据的存储、搜索功能

2.3 Kibana

提供webUI,可视化功能

二、ELK部署、测试

1、环境规划

192.168.140.10 es-master.linux.com jdk/elasticsearch/kibana/logstash
192.168.140.11 es-node01.linux.com jdk/elasticsearch
192.168.140.12 es-node02.linux.com jdk/elasticsearch
192.168.140.13 web_server.linux.com httpd/filebeat

2、确保SELinux关闭、时间同步

3、所有主机添加主机名解析

[root@es-master ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.140.10	es-master.linux.com	es-master
192.168.140.11	es-node01.linux.com	es-node01
192.168.140.12	es-node02.linux.com	es-node02
192.168.140.13	web.linux.com	web

4、三台ES主机安装jdk 1.15

[root@es-master ~]# tar xf jdk-15.0.2_linux-x64_bin.tar.gz -C /usr/local/[root@es-master ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk-15.0.2
export PATH=$PATH:$JAVA_HOME/bin[root@es-master ~]# source /etc/profile[root@es-master ~]# java -version
java version "15.0.2" 2021-01-19
Java(TM) SE Runtime Environment (build 15.0.2+7-27)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.2+7-27, mixed mode, sharing)

5、调整系统资源限制

[root@es-master ~]# vim /etc/security/limits.conf
* soft nofile 65536 
* hard nofile 65536
* soft noproc 2048
* hard noproc 4096nofile:系统允许的最大文件描述符数量
noproc:系统允许的最大进程数
[root@es-master ~]# vim /etc/sysctl.conf 
vm.max_map_count = 262144
fs.file-max = 655360[root@es-master ~]# sysctl -p

6、部署es集群

6.1 创建普通用户elk、安装es软件

[root@es-master ~]# useradd elk[root@es-master ~]# mkdir -p /app/elk[root@es-master ~]# tar xf elasticsearch-7.6.2-linux-x86_64.tar.gz -C /app/elk/
[root@es-master ~]# chown -R elk.elk /app/elk/

6.2 编辑es的配置文件

es-master:

[root@es-node01 ~]# su - elk
[elk@es-node01 ~]$ mkdir /app/elk/elasticsearch-7.6.2/data
[elk@es-master ~]$ vim /app/elk/elasticsearch-7.6.2/config/elasticsearch.ymlcluster.name: es
node.name: es-master
path.data: /app/elk/elasticsearch-7.6.2/data/
path.logs: /app/elk/elasticsearch-7.6.2/logsnetwork.host: 192.168.140.10
http.port: 9200
transport.tcp.port: 9300discovery.seed_hosts: ["192.168.140.10:9300", "192.168.140.11:9300", "192.168.140.12:9300" ]
cluster.initial_master_nodes: ["192.168.140.10:9300"]node.master: true         // 主节点
node.data: true
node.ingest: false
node.ml: false
cluster.remote.connect: falsehttp.cors.enabled: true
http.cors.allow-origin: true

节点类型说明:

Master node
负责集群自身的管理操作;例如创建索引、添加节点、删除节点
node.master: true

Data node
负责数据读写
建议实际部署时,使用高内存、高硬盘的服务器
node.data: true

Ingest node
预处理节点
负责数据预处理(解密、压缩、格式转换)

Client node
负责路由用户的操作请求
node.master: false
node.data: false

es-node01:

cluster.name: es
node.name: es-node02
path.data: /app/elk/elasticsearch-7.6.2/data
path.logs: /app/elk/elasticsearch-7.6.2/logs
network.host: 192.168.140.11
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.140.10:9300", "192.168.140.11:9300", "192.168.140.12:9300"]
cluster.initial_master_nodes: ["192.168.140.10:9300"]node.master: false
node.data: true             // 数据节点
node.ingest: false
node.ml: false
cluster.remote.connect: falsehttp.cors.enabled: true
http.cors.allow-origin: "*"

es-node02:

cluster.name: es
node.name: es-node01
path.data: /app/elk/elasticsearch-7.6.2/data
path.logs: /app/elk/elasticsearch-7.6.2/logs
network.host: 192.168.140.12
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.140.10:9300", "192.168.140.11:9300", "192.168.140.12:9300"]
cluster.initial_master_nodes: ["192.168.140.10:9300"]node.master: false
node.data: true              // 数据节点
node.ingest: false
node.ml: false
cluster.remote.connect: falsehttp.cors.enabled: true
http.cors.allow-origin: "*"

6.3 启动es集群

[elk@es-node01 ~]$ /app/elk/elasticsearch-7.6.2/bin/elasticsearch -d
[elk@es-node01 ~]$ 
[elk@es-node01 ~]$ 
[elk@es-node01 ~]$ netstat -tunlp | grep java 
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
tcp6       0      0 192.168.140.11:9200     :::*                    LISTEN      18675/java          
tcp6       0      0 192.168.140.11:9300     :::*                    LISTEN      18675/java          

6.4 查看es集群状态


C:\Users\admin>curl -X GET "http://192.168.140.11:9200/_cluster/health?pretty"
{"cluster_name" : "es",        // 集群名称"status" : "green",          // 状态,green代表主从均正常、yellow代表主正常、从故障、red代表所有节点均故障"timed_out" : false,"number_of_nodes" : 3,       // 节点数量"number_of_data_nodes" : 3,  // 数据节点数量"active_primary_shards" : 0,"active_shards" : 0,"relocating_shards" : 0,"initializing_shards" : 0,"unassigned_shards" : 0,"delayed_unassigned_shards" : 0,"number_of_pending_tasks" : 0,"number_of_in_flight_fetch" : 0,"task_max_waiting_in_queue_millis" : 0,"active_shards_percent_as_number" : 100.0
}

7、配置logstash

7.1 安装logstash

[root@es-master ~]# tar xf logstash-7.6.2.tar.gz -C /app/elk/[root@es-master ~]# cd /app/elk/logstash-7.6.2/config/
[root@es-master config]# cp logstash-sample.conf logstash.conf

7.2 编辑logstash配置

[root@es-master config]# pwd
/app/elk/logstash-7.6.2/config[root@es-master config]# cat logstash.conf 
input {beats {port => 5044}
}filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}
}output {elasticsearch {hosts => ["http://192.168.140.10:9200"]index => "web-access-log-%{+YYYY.MM.dd}"#user => "elastic"#password => "changeme"}
}

查看logstash自带的过滤日志的方法
[root@es-master patterns]# pwd
/app/elk/logstash-7.6.2/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns
[root@es-master patterns]#

7.3 启动logstash

[root@es-master ~]# vim /app/elk/logstash-7.6.2/config/jvm.options // 禁用GC垃圾回收机制#-XX:+UseConcMarkSweepGC
#-XX:CMSInitiatingOccupancyFraction=75
#-XX:+UseCMSInitiatingOccupancyOnly
[root@es-master ~]# nohup /app/elk/logstash-7.6.2/bin/logstash -f /app/elk/logstash-7.6.2/config/logstash.conf & 
[1] 19110
[root@es-master ~]# netstat -tunlp | grep 5044
tcp6       0      0 :::5044                 :::*                    LISTEN      19110/java          
[root@es-master ~]# netstat -tunlp | grep 5044
tcp6       0      0 :::5044                 :::*                    LISTEN      19110/java   

8、安装kibana可视化工具

[root@es-master ~]# tar xf kibana-7.6.2-linux-x86_64.tar.gz -C /app/elk/[elk@es-master ~]$ vim /app/elk/kibana-7.6.2-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "192.168.140.10"
elasticsearch.hosts: ["http://192.168.140.10:9200"][elk@es-master ~]$ ps -elf | grep kibana
0 R elk       40227  39800 99  80   0 - 293743 -     14:47 pts/0    00:00:57 /app/elk/kibana-7.6.2-linux-x86_64/bin/../node/bin/node /app/elk/kibana-7.6.2-linux-x86_64/bin/../src/cli[elk@es-master ~]$ netstat -antp | grep 5601
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
tcp        0      0 192.168.140.10:5601     0.0.0.0:*               LISTEN      40436/node       

在这里插入图片描述

9、在业务服务器上部署filebeat

9.1 测试访问web,形成日志

[root@web ~]# wc -l /var/log/httpd/access_log 
4243 /var/log/httpd/access_log

9.2 安装filebeat

[root@web_server ~]# tar xf filebeat-7.6.2-linux-x86_64.tar.gz -C /usr/local/

9.3 编辑filebeat配置

[root@web_server ~]# vim /usr/local/filebeat-7.6.2-linux-x86_64/filebeat.yml#=========================== Filebeat inputs =============================filebeat.inputs:
- type: logenabled: truepaths:- /var/log/httpd/access_log#============================== Dashboards =====================================
setup.dashboards.enabled: false#============================== Kibana =====================================
setup.kibana:host: "192.168.140.10:5601"#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:# Array of hosts to connect to.
#  hosts: ["localhost:9200"]#----------------------------- Logstash output --------------------------------
output.logstash:# The Logstash hostshosts: ["192.168.140.10:5044"]

9.4 启动filebeat

[root@web filebeat-7.6.2-linux-x86_64]# pwd
/usr/local/filebeat-7.6.2-linux-x86_64[root@web filebeat-7.6.2-linux-x86_64]# nohup ./filebeat -c filebeat.yml & [root@web filebeat-7.6.2-linux-x86_64]# ps -elf | grep file
4 S dbus        693      1  0  80   0 - 14555 ep_pol 11:37 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
0 S root       1844   1288 13  80   0 - 154003 futex_ 16:23 pts/0   00:00:00 ./filebeat -c filebeat.yml

三、测试ELK可正常搜集日志

1、在kibana webUI根据索引查看日志

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

2、创建图表,分析网站访问量

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的面向对象设计原则与实践

Java中的面向对象设计原则与实践 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 引言 面向对象设计原则是软件工程中的重要概念,它们指导着我们如…

FastAdmin数据库设计规范

FastAdmin数据库设计规范,官方文档上也有,仅仅是为了我自己做一次笔记增加记忆强度 表名和字段名全小写,只允许出现a-z和_这几种字符,且不能有拼音,只能为英文单词存储引擎统一使用innodb引擎字符集统一使用utf8mb4,排序规则使用…

瑞尼克定制聚四氟乙烯布氏漏斗配抽滤瓶四氟抽滤装置药厂

一、产品介绍 布氏漏斗是实验室中使用的一种仪器,用来使用真空或负压力抽吸进行过滤。布氏漏斗可代替陶瓷布氏漏斗,避免碎裂,聚四氟乙烯材质的布氏漏斗性强,使用真空或负压力抽吸进行过滤也可与吸滤瓶配套,用于无机制…

面试计算机网络八股文十问十答第十一期

面试计算机网络八股文十问十答第十一期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)JWT Token 听过吗&am…

前端判断电脑是否断网 并且在重连的时候发请求给后端记录

用electron 打包的电脑软件 加了一个断网提示和联网发请求给后端做记录 <!DOCTYPE html> <html lang""><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta nam…

基于振弦采集仪的高速公路路基工程安全监测技术研究

基于振弦采集仪的高速公路路基工程安全监测技术研究 高速公路是现代交通系统的重要组成部分&#xff0c;对于保障人民生命财产安全以及经济社会发展起着至关重要的作用。然而&#xff0c;由于高速公路长期承受车辆的运行荷载和自然环境的影响&#xff0c;路基工程的安全问题一…

gma 2 教程(三)坐标参考系统:4.内置单位和子午线

安装 gma&#xff1a;pip install gma 内置单位 gma内置单位主要包括地理坐标系的角度单位和投影坐标系的线性单位两大类。 角度单位 内置常用的角度单位&#xff08;在crs.AngularUnits下&#xff09;名称及值见下表&#xff1a; 内置角度单位中文名值&#xff08;弧度&…

众筹首发 | 当当狸智能天文望远镜TW2,大屏实时观景 长焦定格远方!

满天的繁星和远方景色&#xff0c;让人无比向往&#xff0c;你是否也曾渴望探索星空的奥秘&#xff0c;沉醉在无垠的美景之中&#xff1f; 然而&#xff0c;当我们用望远镜远眺星空时&#xff0c;固定姿势的观测经常让人感到疲惫&#xff0c;而普通相机亦是难以触及更远的距离…

nodejs爬取小红书图片

昨天的文章已经描述了可以抓取评论区内容&#xff0c; 抓取图片内容和抓取评论区的内容基本一致 我们可以看到接口信息中含有图片链接&#xff0c;我们要做的就是爬取图片链接然后下载 这边要用到的模块为const downloadrequire(download) 将爬到的图片链接存放到images数组…

绝杀 GETPOST 嵌套的 JSON 参数

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;常用于Web应用程序中的数据传输。在HTTP数据包信息传递时&#xff0c;JSON扮演着非常正常的角色&#xff0c;因为它是一种通用的数据格式&#xff0c;可以被多种编程语言和应用程…

Kimichat使用案例019:15个Kimichat提示词案例

文章目录 一、扮演招聘经理二、扮演英语教师三、文章修改润色四、模仿特定作者写文章五、扮演任何一个角色六、像董宇辉一样介绍一本书七、写商业计划书的大纲八、头脑风暴九、总结文章十、推荐书籍十一、写电子邮件十二、学习Python编程十三、Python编程十四、制作菜谱十五、写…

前端 JS 经典:Vue 状态仓库持久化

前言&#xff1a;当我们刷新页面的时侯&#xff0c;在状态仓库的数据会被重置&#xff0c;当我们不希望这些数据被重置时&#xff0c;可以通过给状态管理的插件添加插件方法实现。Vue 的状态管理有 Vuex 和 Pinia。下面分别是两种状态库的数据持久化的实现。 1. Vuex 在 stor…

三、map可迭代对象中的每个函数应用函数

函数map&#xff08;&#xff09;的使用 def square(x):return x **2#函数方法 numbers[1,2,3,4,5,6,7,8,9] #print(list(map(square,numbers))) clist(map(square,numbers))#转换为列表 print(c)

网格布局之重复轨道

网格布局之重复轨道 欢迎关注&#xff1a;xssy5431 小拾岁月 参考链接&#xff1a;https://mp.weixin.qq.com/s/FQboZRMhdOFWqVDZ5JScDg 点击查看 使用场景 在网页开发中&#xff0c;我们尝尝会遇到宫格布局&#xff0c;比如&#xff1a;3 * 3&#xff0c;4 * 4布局等等。 …

串扰(二)

三、感性串扰 首先看下串扰模型及电流方向&#xff1a; 由于电感是阻碍电流变化&#xff0c;受害线的电流方向和攻击线的电流方向相反。同时由于受害线阻抗均匀&#xff0c;故有Vb-Vf&#xff08;感应电流属于电池内部电流&#xff09;。 分析感性串扰大小仍然是按微分的方法…

C++11(下):线程库

线程库 1.线程1.1线程类介绍以及简单使用1.2线程函数参数1.3如何获取线程函数返回值 2.锁2.1锁的种类2.2 lock_guard与unique_lock 3.原子库3.1介绍与基本使用3.2CAS&#xff08;原子操作原理&#xff09; 4.条件变量 1.线程 1.1线程类介绍以及简单使用 在C11之前&#xff0c…

2024年仿真建模与多媒体技术国际学术会议(ISMMT 2024)

全称&#xff1a;2024年仿真建模与多媒体技术国际学术会议&#xff08;ISMMT 2024&#xff09; 会议网址:http://www.ismmt.com 会议时间&#xff1a;最终通知见官网&#xff01; 会议地点: 深圳 投稿邮箱&#xff1a;ismmtsub-conf.com投稿标题&#xff1a;ArticleTEL。投稿时…

工程咨询单位申请乙级资信预评价的关键要素与条件

工程咨询单位申请乙级资信预评价的关键要素与条件可以归纳如下&#xff1a; 一、专业技术力量 单位咨询工程师&#xff08;投资&#xff09;数量&#xff1a;不少于4人。 专业人员配备&#xff1a; 申请评价的专业应配备至少3名咨询工程师&#xff08;投资&#xff09;。同时…

LabVIEW在中国航天中的应用

​LabVIEW是一种系统设计平台及开发环境&#xff0c;由美国国家仪器公司&#xff08;NI&#xff09;开发。它在中国航天领域的应用非常广泛&#xff0c;涵盖了测试与测量、数据采集、控制系统设计等多个方面。以下是LabVIEW在中国航天中的几个主要应用实例&#xff1a; 1. 测试…

QT系列教程(11) TextEdit实现Qt 文本高亮

文本高亮 对于textedit里录入的部分单词我们可以实现高亮&#xff0c;实现高亮主要依赖于QSyntaxHighlighter。 我们先创建一个Qt Application类&#xff0c;类名MainWindow, 然后新增一个C类&#xff0c;类名为MySyntaxHighlighter。 #ifndef MYSYNTAXHIGHLIGHTER_H #define …