当前位置: 首页 > news >正文

Logstash 管理

file输入插件

使用Logstash file 输入插件读取本地系统日志文件/var/log/messages,实时采集日志并写入 Elasticsearch

编写 file 插件采集配置 # cd /etc/logstash/conf.d # vim test.conf input { file { path => "/var/log/messages" start_position => "beginning" } } # /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf

当 Logstash 第一次发现这个文件时,从文件开头读取

sincedb 作用

1.sincedb 文件里保存日志文件的读取偏移量(读到文件哪个字节位置)

2.Logstash 重启后,读取 sincedb 记录,不会重复采集已经读过的日志,避免数据冗余、重复写入 ES

3.sincedb 文件名由日志文件 inode 编号哈希生成。

4.想要强制从头重新读取日志:

  • 先停止 Logstash

  • 删除对应的 sincedb 文件

  • 重启 Logstash

.sincedb文件保存文件读取进度,避免数据冗余读取 # cd /usr/share/logstash/data/plugins/inputs/file # l. . .. .sincedb_452905a167cf4509fd08acb964fdb20c # ls -i /var/log/messages 50695316 /var/log/messages 删除后重新读取 # rm -f .sincedb_452905a167cf4509fd08acb964fdb20c

下方截图可以看到:日志成功进入 ES 索引messages-2026.08.11

  • 自动生成索引:messages-2026.08.11(由 output 里 index 模板定义按日期生成索引)

  • 原始日志内容被提取到message字段,可以看到原始日志文本/var/log/messages相关系统日志;

再写入一条messages # cd /usr/share/logstash/data/plugins/inputs/file/ # logger helloworld # tail -1 /var/log/messages Aug 11 14:38:10 server5 root: helloworld

日志写入/var/log/messages之后,Logstash 实时监听到文件新增内容,自动采集,很快在 Elasticsearch 的messages-2026.08.11索引中出现这条helloworld日志。

syslog 插件

Logstash syslog 插件负责监听 514 端口,接收其他服务器 rsyslog 推送过来、遵守 syslog 协议的日志,并自动解析字段。

Logstash 服务端配置(接收端 server5) [root@server5 conf.d]# vim test.conf input { syslog {} } output { stdout {} elasticsearch { hosts => "192.168.36.170:9200" index => "syslog-%{+YYYY.MM.dd}" } } [root@server4 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf 配置客户端日志输出 [root@server1 ~]# vim /etc/rsyslog.conf 去掉注释: *.* @@192.168.223.174:514 [root@server1 ~]# systemctl restart rsyslog.service

Logstash 内置 syslog 输入插件,默认监听 UDP 514 端口,等待其他主机 rsyslog 推送日志。

符号重点解释

  • *.*:所有设施、所有级别日志全部转发;

  • @@= TCP 协议发送 syslog;

  • @= UDP 协议发送 syslog;

  • 192.168.223.174:514:Logstash 服务端 IP+514 端口。

在server1.2.3执行 # vim /etc/rsyslog.conf 去掉以下行的注释 $ModLoad imudp $UDPServerRun 514 *.* @@192.168.223.174:514 # systemctl restart rsyslog.service # logger server2

logger xxx命令会向本机/var/log/messages写入一条日志,同时 rsyslog 会把这条日志转发给 Logstash。

代表 server3 执行logger server3产生的测试日志成功被 Logstash 收到。

说明Elasticsearch 中存储的数据 ,日志自带自动解析字段:

·host:产生日志的源服务器主机名(server1/server2/server3)

Logstash 多行过滤插件:multiline 过滤器

作用

日志场景常见:一条业务报错会分成多行打印(Java 异常堆栈、Python 报错、程序调用栈) 示例原始日志:

2026-08-11 10:00:00 INFO 启动服务 2026-08-11 10:00:05 ERROR 出现异常 java.lang.NullPointerException at Test.main(Test.java:20) ...

如果不做多行处理,Logstash 会把每一行当成单独一条日志multiline多行过滤器:把属于同一个事件的连续多行日志合并成单条日志

从server1拷贝模板文件 [root@server1 ]# cd /var/log/elasticsearch [root@server1 elasticsearch]# scp my-es.log server5:/var/log/ [root@server5 conf.d]# vim test.conf

先将下面的行注释掉进行测试

图中的报错是由于注释掉了multiline编解码器:把堆栈异常、多行日志合并成一条完整日志

导致出现了一条完整日志变为多行日志报错。

解决方法:删除myeslog,,让其重新生成,并且删除/usr/share/logstash/data/plugins/inputs/file/下面的“. 文件”;取消注释,再重新执行命令

# cd /usr/share/logstash/data/plugins/inputs/file/ [root@server5 file]# ls [root@server5 file]# l. . .. .sincedb_4d10e6fb4e3ffdf0fe00d1ce0f25b0fd [root@server5 file]# rm -f .sincedb_4d10e6fb4e3ffdf0fe00d1ce0f25b0fd

Logstash Grok 过滤器

作用

原始非结构化文本日志 → 切割成结构化字段绝大多数系统、应用日志是一整串文本,没有字段。grok使用正则模板把一行日志拆分出:时间、级别、进程、IP、URL、状态码等独立字段,方便 ES 检索、Kibana 筛选。

[root@server4 ~]# yum install -y httpd [root@server4 ~]# systemctl enablel --now httpd [root@server4 ~]# echo helloword > /var/www/html/index.html 访问此站点生成日志信息 [root@k8s1 ~]# ab -c1 -n 100 http://192.168.223.174/index.html

进入 Logstash 配置文件目录

编辑名为grok.conf的配置文件(采集 Apache 日志 + grok 解析)

指定配置文件启动 Logstash

# cd /etc/logstash/conf.d/ # vim grok.conf # /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/grok.conf

  1. 日志已经成功发送存入 Elasticsearch,索引名称:apachelog-2026.08.11
  2. 弹窗展开了单条日志完整 JSON,和第一张控制台输出的日志内容完全一致
  3. ES 中完整保留了 grok 解析出来的所有字段:clientipresponseverbagent

http://www.jsqmd.com/news/1384336/

相关文章:

  • 破解物理AI技术困局(20):TVA实现弹性记忆回放
  • 初学opencv2
  • 如何在Windows、Linux、macOS三大平台快速安装MelonLoader:Unity游戏模组加载器完整指南
  • 免费 星座运势查询接口推荐:含无需 Key 可直接调用方案
  • 上新:安徽省专业的航空复合抗菌板加工厂 - 品牌推广大师
  • 2026年AI视频素材下载网站TOP5:国内商用与海外免费素材平台深度评测
  • 从CRUD到系统架构师:构建技术内功的四大心法与实战路径
  • AI合规高阶:AI产品上市后的合规持续管控
  • PS 2026智能交互升级:高光显示与预测UI解析
  • 嵌入式TLS安全通信:BearSSL轻量库设计原理与实战集成指南
  • ncmdumpGUI:3分钟解锁网易云音乐NCM文件格式限制的Windows图形界面工具
  • 鸣潮自动化工具:3分钟上手,每天为你节省2小时游戏时间
  • 终极智慧树自动化学习助手:Python刷课工具的完整使用指南
  • 2026前端面试题(五)
  • ComfyUI-VideoHelperSuite终极指南:5步打造专业级AI视频工作流
  • 2小时,我搭了一套项目任务进度跟踪系统,再也不用每天追着员工问进度
  • 第8讲:查询优化器
  • Claude Code源码深度解析:AI编程助手架构设计与工程实践
  • 企业AI和普通大模型有什么区别? - 甄选测评官
  • 【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 5 篇】
  • Flutter开发鸿蒙版贪吃蛇游戏实战指南
  • 3步免费下载Steam动态壁纸:Wallpaper Engine下载器终极指南
  • 为什么ChatGPT认识你但Perplexity不认识你?多平台AI可见度差异分析
  • NVIDIA Nemotron 3.5 Lightning 上线 OpenRouter:快速集成与生产级调用指南
  • 终极M3U8视频下载指南:如何用N_m3u8DL-CLI-SimpleG轻松保存在线视频
  • 3分钟快速上手:OBS RTSP服务器插件终极指南
  • SKILL脚本接口对接实战:手写文档与稳健代码实现
  • 2026蒙自品质装修公司推荐|本地人真实测评!透明整装**,好房源装饰凭17年地产底蕴+闭口零增项+水电50年质保出圈 - 推途云
  • 本地CTF靶场搭建指南:从入门到实战
  • Java PDF表格数据提取实战:Tabula核心原理与工程应用指南