小白带你学习linux的ELK日志收集系统

news2024/12/24 3:14:37

目录

目录

一、概述

1、ELK由三个组件构成

2、作用

3、为什么使用?

二、组件

1、elasticsearch

 2、logstash

3、kibana

三、架构类型

1、ELK

2、ELKK

3、ELFK

4、ELFKK

四、ELK日志收集系统集群实验

1、实验拓扑

2、环境配置

3、 安装node1与node2节点的elasticsearch

3.1.安装

3.2配置

4、启动elasticsearch服务

4.1查看节点信息

5、在node1安装elasticsearch-head插件

5.1安装node

5.2拷贝命令

5.3安装elasticsearch-head

5.4修改elasticsearch配置文件

5.5启动elasticsearch-head

5.6测试

6、node1服务器安装logstash

7、logstash日志收集文件格式(默认存储在/etc/logstash/conf.d)

7.1案例:通过logstash收集系统信息日志

8、node1节点安装kibana

9、企业案例:


目录

ELK日志收集系统是一种集中式日志管理系统,由Elasticsearch(搜索和分析引擎)、Logstash(数据收集、过滤、转换工具)和Kibana(可视化和分析工具)组成。ELK系统可以帮助用户收集、存储、搜索、分析和可视化大量的日志数据。

ELK日志收集系统的工作流程如下:

  1. Logstash从各种来源(如文件、网络、数据库)收集日志数据。
  2. Logstash将收集到的数据进行过滤和转换,然后将其发送给Elasticsearch进行存储和索引。
  3. Elasticsearch对接收到的日志数据建立索引,以便快速搜索和分析。
  4. Kibana作为可视化和分析工具,可以通过Web界面连接到Elasticsearch,提供丰富的搜索、过滤、分析和可视化功能。

ELK日志收集系统的优点包括:

  1. 高可扩展性:ELK系统可以处理TB级别的日志数据,并能够水平扩展以应对日志数据量的增长。
  2. 实时性:ELK系统能够实时收集、存储和分析日志数据,使用户可以及时监控系统运行状态和处理潜在问题。
  3. 多样化的数据源支持:Logstash支持从各种来源收集数据,包括文件、网络、数据库等。
  4. 强大的搜索和分析功能:Elasticsearch提供了全文搜索、聚合分析、实时监控等功能,帮助用户快速定位和解决问题。
  5. 可视化界面:Kibana提供了直观易用的可视化界面,用户可以通过简单的拖拽操作创建仪表盘、图表和报告。

总的来说,ELK日志收集系统是一种功能强大的日志管理工具,可以帮助用户实时收集、存储、搜索、分析和可视化大量的日志数据,提高系统监控和故障排查的效率。

一、概述

1、ELK由三个组件构成

2、作用

日志收集

日志分析

日志可视化

3、为什么使用?

日志对于分析系统、应用的状态十分重要,但一般日志的量会比较大,并且比较分散。

如果管理的服务器或者程序比较少的情况我们还可以逐一登录到各个服务器去查看、分析。但如果服务器或者程序的数量比较多了之后这种方法就显得力不从心。基于此,一些集中式的日志系统也就应用而生。目前比较有名成熟的有,Splunk(商业)、FaceBook 的Scribe、Apache的Chukwa Cloudera的Fluentd、还有ELK等等。

二、组件

1、elasticsearch

日志分析

开源的日志收集、分析、存储程序

特点

分布式

零配置

自动发现

索引自动分片

索引副本机制

Restful风格接口

 多数据源

  自动搜索负载

 2、logstash

日志收集

搜集、分析、过滤日志的工具

工作过程

一般工作方式为c/s架构,Client端安装在需要收集日志的服务器上,Server端负责将收到的节点日志进行过滤、修改等操作,再一并发往Elasticsearch上去

Inputs → Filters → Outputs

输入-->过滤-->输出

INPUT

File:从文件系统的文件中读取,类似于tail -f命令

Syslog:在514端口上监听系统日志消息,并根据RFC3164标准进行解析

Redis:从redis service中读取

Beats:从filebeat中读取

FILETER

Grok:解析任意文本数据,Grok 是 Logstash 最重要的插件。它的主要作用就是将文本格式的字符串,转换成为具体的结构化的数据,配合正则表达式使用。

官方提供的grok表达式:logstash-patterns-core/patterns at main · logstash-

plugins/logstash-patterns-core · GitHub

Grok在线调试:Grok Debugger

Mutate:对字段进行转换。例如对字段进行删除、替换、修改、重命名等。

Drop:丢弃一部分Events不进行处理。

Clone:拷贝Event,这个过程中也可以添加或移除字段。

Geoip:添加地理信息(为前台kibana图形化展示使用)

OUTPUTS

Elasticsearch:可以高效的保存数据,并且能够方便和简单的进行查询。

File:将Event数据保存到文件中。

Graphite:将Event数据发送到图形化组件中,踏实一个当前较流行的开源存储图形化展示的组件。

3、kibana

日志可视化

 为Logstash和ElasticSearch在收集、存储的日志基础上进行分析时友好的Web界面,可以帮助汇总、分析和搜索重要数据日志

三、架构类型

1、ELK

es

logstash

kibana

2、ELKK

es

logstash

kafka

kibana

3、ELFK

es

logstash

重量级

占用系统资源较多

filebeat

轻量级

占用系统资源较少

kibana

4、ELFKK

es

logstash

filebeat

kafka

kibana

四、ELK日志收集系统集群实验

1、实验拓扑

机子必须是4核4g

2、环境配置

设置各个主机的IP地址为拓扑中的静态IP,在两个节点中修改主机名为node1和node2并设置hosts文件

node1:

hostnamectl set-hostname node1

vim /etc/hosts

192.168.1.1  node1

192.168.1.2  node2

node2:

hostnamectl set-hostname node2

vim /etc/hosts

192.168.1.1  node1

192.168.1.2  node2

3、 安装node1与node2节点的elasticsearch

3.1.安装

 mv elk软件包  elk

 cd elk

 rpm -ivh elasticsearch-5.5.0.rpm

3.2配置

node1:

vim /etc/elasticsearch/elasticsearch.yml

cluster.name:my-elk-cluster  //集群名称   

node.name:node1 //节点名字

path.data:/var/lib/elasticsearch  //数据存放路径

path.logs: /var/log/elasticsearch/  //日志存放路径

bootstrap.memory_lock:false //在启动的时候不锁定内存

network.host:0.0.0.0  //提供服务绑定的IP地址,0.0.0.0代表所有地址

http.port:9200 //侦听端口为9200

discovery.zen.ping.unicast.hosts:【"node1","node2"】 //群集发现通过单播实现

systemctl daemon-reload

systemctl restart elasticsearch.service 

node2:

vim /etc/elasticsearch/elasticsearch.yml

cluster.name:my-elk-cluster  //集群名称   

node.name:node2 //节点名字

path.data:/var/lib/elasticsearch  //数据存放路径

path.logs: /var/log/elasticsearch/  //日志存放路径

bootstrap.memory_lock:false //在启动的时候不锁定内存

network.host:0.0.0.0  //提供服务绑定的IP地址,0.0.0.0代表所有地址

http.port:9200 //侦听端口为9200

discovery.zen.ping.unicast.hosts:【"node1","node2"】 //群集发现通过单播实现

4、启动elasticsearch服务

node1和node2

systemctl start elasticsearch

4.1查看节点信息

http://192.168.28.3:9200

http://192.168.28.4:9200

5、在node1安装elasticsearch-head插件

5.1安装node

cd elk

tar xf node-v8.2.1.tar.gz

cd node-v8.2.1

./configure && make -j4 && make install

等待安装完毕。

5.2拷贝命令

cd elk

tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2

cd phantomjs-2.1.1-linux-x86_64/bin

cp phantomjs  /usr/local/bin

5.3安装elasticsearch-head

cd elk

tar xf elasticsearch-head.tar.gz

cd elasticsearch-head

npm install

5.4修改elasticsearch配置文件

vim /etc/elasticsearch/elasticsearch.yml

 # Require explicit names when deleting indices:

#

#action.destructive_requires_name:true

http.cors.enabled: true  //开启跨域访问支持,默认为false

http.cors.allow-origin:"*"  //跨域访问允许的域名地址

 重启服务: systemctl restart elasticsearch

systemctl restart elasticsearch

5.5启动elasticsearch-head

cd /root/elk/elasticsearch-head

npm run start &

 查看监听: netstat -anput | grep :9100

访问:

5.6测试

在node1的终端中输入:

curl  -XPUT  '192.168.28.3:9200/index-demo/test/1?pretty&pretty' -H  'Content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

刷新浏览器可以看到对应信息即可

 

6、node1服务器安装logstash

cd  elk

rpm -ivh logstash-5.5.1.rpm

systemctl start logstash.service

ln -s /usr/share/logstash/bin/logstash  /usr/local/bin/

测试1: 标准输入与输出

logstash -e 'input{ stdin{} }output { stdout{} }'

测试2: 使用rubydebug解码

logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug }}'

测试3:输出到elasticsearch

logstash -e 'input { stdin{} } output { elasticsearch{ hosts=>["192.168.28.3:9200"]} }'

查看结果:

http://192.168.28.3:9100

 若看不到,请刷新!!!

7、logstash日志收集文件格式(默认存储在/etc/logstash/conf.d)

Logstash配置文件基本由三部分组成:input、output以及 filter(根据需要)。标准的配置文件格式如下:

input (...)  输入

filter {...}   过滤

output {...}  输出

在每个部分中,也可以指定多个访问方式。例如,若要指定两个日志来源文件,则格式如下:

input {

file{path =>"/var/log/messages" type =>"syslog"}

file { path =>"/var/log/apache/access.log"  type =>"apache"}

}

7.1案例:通过logstash收集系统信息日志

chmod o+r /var/log/messages

vim /etc/logstash/conf.d/system.conf

input {
file{
path =>"/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch{
hosts =>["192.168.28.3:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}

 

重启日志服务: systemctl restart logstash

 systemctl restart logstash

查看日志: http://192.168.28.3:9100

8、node1节点安装kibana

cd elk

rpm -ivh kibana-5.5.1-x86_64.rpm

配置kibana

vim /etc/kibana/kibana.yml

server.port:5601  //Kibana打开的端口

server.host:"0.0.0.0" //Kibana侦听的地址

elasticsearch.url: "http://192.168.8.134:9200"  

//和Elasticsearch 建立连接

kibana.index:".kibana"  //在Elasticsearch中添加.kibana索引

启动kibana

systemctl start kibana

访问一下端口192.168.28.3:9100

访问kibana :

http://192.168.28.3:5601

 首次访问需要添加索引,我们添加前面已经添加过的索引:system-*

 

9、企业案例:

收集httpd访问日志信息

在httpd服务器上安装logstash,参数上述安装过程,可以不进行测试

logstash在httpd服务器上作为agent(代理),不需要启动

编写httpd日志收集配置文件

vim /etc/logstash/conf.d/httpd.conf

input {
file{
path =>"/var/log/httpd/access_log"
type => "access"
start_position => "beginning"
}
}
output {
elasticsearch{
hosts =>["192.168.28.3:9200"]
index => "httpd_access-%{+YYYY.MM.dd}"
}
}
 

使用logstash命令导入配置:

 /usr/share/logstash/bin/logstash -f  /etc/logstash/conf.d/httpd.conf

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

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

相关文章

算法设计 || 第12题:12皇后回溯算法(C语言代码)

之前关于8皇后更详细总结: 算法设计 || 实验四 回溯算法-八皇后问题(纯手敲保姆级详细讲解小白适用头歌解析)_MSY~学习日记分享的博客-CSDN博客 学习的功夫一定要在平时,这样你考试前不必慌张,不用着急&a…

Leetcode54螺旋矩阵

思路:用set记录走过的地方,记下走的方向,根据方向碰壁变换 class Solution:def spiralOrder(self, matrix: list[list[int]]) -> list[int]:max_rows len(matrix)max_cols len(matrix[0])block_nums max_cols * max_rowscount 1i 0j…

这个 web 自动化测试框架真香 ,selenium进阶pro plus版

在 web 自动化测试当中, selenium 架构应该是很难绕过的,很多宣称要超 selenium 的下一代 web 自动化测试框架最终都败下阵来。 不过, selenium 的 api 确实比较复杂,所以也有很多库尝试对他进行上层封装,splinter 是其…

Ubuntu18.04安装cuDNN

注册账号 https://developer.nvidia.com/rdp/cudnn-archive 该网站下载安装包需要先进行注册。登录成功后,找到与CUDA对应的版本。 选择Linux版本进行下载。 下载后的格式为.tar.xz 解压 tar xvJf cudnn-linux-x86_64-8.9.3.28_cuda12-archive.tar.xz配置环境 su…

全新配色 smart 精灵#1 BRABUS性能版于成都车展正式上市

新奢智能纯电汽车品牌smart携旗下全系车型,盛大亮相第二十六届成都国际汽车展览会(4号馆H402展台)。此次车展上,smart首次公开披露智能驾驶技术迭代战略路线、“南拓西进”全球化市场布局策略,加速成为全球领先的智能纯…

运动耳机怎么选、运动耳机排行榜前十名推荐

对于热爱跑步和运动的人来说,音乐是最好的伴侣,可以消除孤独感和乏味。随着蓝牙无线耳机的出现,耳机的无线化给我们的生活带来了巨大改变,特别是在运动场景下,蓝牙无线耳机的优势更加明显。然而,在选择适合…

网工内推 | 信息安全工程师,五险一金,技术氛围浓厚

01 正佳科技 招聘岗位:信息安全工程师 职责描述: 1、负责运维管理IT基础设施,包括数据中心、网络、安全等; 2、负责公司内外网络的策略调整,安全策略、网络准入等的推进及优化; 3、负责建设、完善公司信息…

python购物程序

本文主要内容:用python实现一个购物程序 功能介绍: 1、显示商品列表 2、根据输入的工资判断是否能买得起选择的商品 3、购物车存放已经购买的商品 #1.购物车程序 # 输入工资 while True:wage input("请输入您的工资:")if not wage.isdigit()…

语音专线如何接入呼叫中心系统

想要了解语音专线是否可以接入呼叫中心系统,首先要分别了解什么是语音专线和什么是呼叫中心系统。语音专线接入呼叫中心系统想要实现什么功能,下面小易就来科普一下。 什么是语音专线?语音专线可以理解为联通、电信、移动运营商提供的一种语音…

IDEA使用Docker插件

修改Docker配置 1.执行命令vim /usr/lib/systemd/system/docker.service,在ExecStart配置的后面追加 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock -H tcp://0.0.0.0:…

SAP如何添加货币类型。TCODE : OY03

最近公司业务增加了个白俄罗斯的卢布货币收入BYN 类型。系统没有这个类型(系统有BYR),于是我找了下资料。添加货币类型步骤如下。或者TCODE: OY03

CSS魔术师Houdini,用浏览器引擎实现高级CSS效果

开门见山,直接上货 🔍 CSS Houdini是什么? “Houdini”一词引用自“Harry Houdini”,他是一位20世纪的著名魔术师,亦被称为史上最伟大的魔术师、逃脱术师及特级表演者。 我们都知道,浏览器在渲染网页显示样…

MySQL的字符转义

表象 表结构如下: 其中 content 字段存放json之后的数据,这个json数据里面 extra 字段的内容又是一段json,如下: INSERT INTO future.test_escape_character( id, title, content, is_del )VALUES ( 2, 我的博客, {"web_id":31415,"name":"清澄秋…

搭建Ubuntu本地web小游戏网站并通过内网穿透实现公网用户远程访问的步骤指南

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《高效编程技巧》《cpolar》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. 本地环境服务搭建2. 局域网测试访问3. 内网穿透3.1 ubuntu本地安装cpolar内网穿透3.2 创建隧道3.3 测试公网访…

ActiveMQ配置初探

文章目录 配置wrapper相关配置wrapper是干什么用的MQ的运行内存修改【需修改】修改内容题外话 wrapper.log配置【需修改】引起的问题优化方式 activemq.xml相关配置官网介绍配置管理后台的认证授权【建议修改】配置broker【根据自己需求更改】配置允许jmx监控关闭消息通知持久化…

YOLO V5 和 YOLO V8 对比学习

参考文章: 1、YOLOv5 深度剖析 2、如何看待YOLOv8,YOLOv5作者开源新作,它来了!? 3、anchor的简单理解 完整网络结构 YOLO v5和YOLO v8的Head部分 YOLO v8的Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构…

半导体晶片机器视觉测量及MARK点视觉定位

半导体晶片机器视觉测量及MARK点视觉定位 客户的需求: 检测内容: SMT行业晶片位置角度与PCB板Mark点位置的测试测量 检测要求: 精度0.04mm,移动速度100mm/s 视觉可行性分析: 对样品进行了光学实验,并进行图像处理&#xff0c…

华为OD机试 - 硬件产品销售方案 - 回溯(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、补充说明五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(…

【SVN】 代码版本管理工具使用步骤以及全局忽略不需要提交的文件夹

2023年,第36周。给自己一个目标,然后坚持总会有收货,不信你试试! SVN是Subversion的简称,是一个开源的版本控制系统,用于管理软件开发过程中的代码版本和文件变更。 它提供了跟踪文件修改、协同开发、版本回…

上海市青少年算法2023年7月月赛(丙组)

T1先行后列 题目描述 从 1 开始的 nm 个整数按照先行后列的规律排列如下: 给定 n 与 m,再给定一个数字 c,请输出 c 所在的行数与列数。 输入格式 第一行:两个整数表示 n 与 m 第二行:一个整数表示 c 输出格式 两个整数:表示 c 所在的行数与列数。 数据范围 1≤n,m≤10000…