news 2026/9/3 2:49:42

Logstash运维故障问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Logstash运维故障问题

你需要在openEuler系统中安装Filebeat来采集日志,并实现日志的传输(如发送到Logstash/Elasticsearch),我会为你提供从环境准备到配置、启动、验证的完整步骤,适配openEuler的系统特性(如包管理器、权限机制)。

一、前置条件

  1. 系统环境:openEuler 20.03 LTS/22.03 LTS(x86_64/ARM64架构,本文以x86_64为例)。
  2. 网络要求:服务器能访问外网(用于下载Filebeat安装包或配置Elastic YUM源)。
  3. 权限要求:使用root用户或具有sudo权限的用户执行操作。
  4. 目标准备:若需将日志发送到Logstash/ES,确保目标服务已运行且网络互通。

二、安装Filebeat(两种方式,推荐官方YUM源)

方式1:通过Elastic官方YUM源安装(推荐,便于版本管理)
步骤1:配置Elastic YUM源

创建Elastic官方源配置文件:

vi/etc/yum.repos.d/elastic.repo

添加以下内容(适配7.x版本,与ES/Logstash版本保持一致,如7.17.5):

[elastic-7.x] name=Elastic repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
步骤2:导入Elastic GPG密钥
rpm--import https://artifacts.elastic.co/GPG-KEY-elasticsearch
步骤3:安装Filebeat
# 安装指定版本(推荐,避免自动升级)dnfinstall-y filebeat-7.17.5# 安装最新版本(不推荐,可能与ES/Logstash版本不兼容)# dnf install -y filebeat

安装完成后,Filebeat的默认路径:

  • 配置文件:/etc/filebeat/filebeat.yml
  • 可执行文件:/usr/share/filebeat/bin/filebeat
  • 日志文件:/var/log/filebeat/filebeat.log
方式2:手动下载RPM包安装(无外网场景)
步骤1:下载对应架构的RPM包
# 切换到临时目录cd/tmp# x86_64架构wgethttps://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.5-x86_64.rpm# ARM64架构(openEuler鲲鹏版)# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.5-aarch64.rpm
步骤2:安装RPM包
rpm-ivh filebeat-7.17.5-x86_64.rpm

三、配置Filebeat(核心步骤,采集日志并发送)

Filebeat的核心配置分为日志输入(inputs)数据输出(outputs),以下以采集系统日志并发送到Logstash为例(最常用场景),也可直接发送到ES。

步骤1:编辑Filebeat主配置文件
vi/etc/filebeat/filebeat.yml
步骤2:配置日志输入(采集系统日志/自定义日志)

注释默认的filebeat.inputs配置,添加以下内容(采集/var/log/messages系统日志和/var/log/nginx/access.lognginx访问日志,可根据需求修改):

filebeat.inputs:# 输入1:采集系统日志-type:filestream# openEuler推荐使用filestream(替代旧的log类型)enabled:true# 启用该输入paths:-/var/log/messages# 要采集的日志路径,支持通配符(如/var/log/*.log)tags:["system-log"]# 标记日志类型,便于后续过滤fields:log_source:"openeuler-system"# 自定义字段,标识日志来源# 输入2:采集nginx访问日志(若未安装nginx,可注释该部分)-type:filestreamenabled:truepaths:-/var/log/nginx/access.logtags:["nginx-access-log"]fields:log_source:"openeuler-nginx"# 禁用默认的模块(如system、nginx,若需使用模块可保留)filebeat.config.modules:path:${path.config}/modules.d/*.ymlreload.enabled:false
步骤3:配置数据输出(发送到Logstash,若直接发送到ES可替换为output.elasticsearch)

注释默认的output.elasticsearch,添加以下内容(指向Logstash的5044端口,即Logstash的beats输入端口):

# 输出到Logstashoutput.logstash:hosts:["10.0.0.22:5044"]# 替换为你的Logstash服务器IP和端口# 若直接发送到Elasticsearch,取消以下注释并注释output.logstash# output.elasticsearch:# hosts: ["10.0.0.22:9200"] # 替换为你的ES服务器IP和端口# # 若ES开启认证,添加账号密码# # username: "elastic"# # password: "your-es-password"# 开启控制台输出(调试用,生产环境可注释)# output.console:# pretty: true # 格式化输出
步骤4:配置文件权限(openEuler安全机制要求)

确保Filebeat用户拥有配置文件和日志文件的权限:

# 赋予配置文件读取权限chmod644/etc/filebeat/filebeat.yml# 递归赋予Filebeat目录权限(若出现权限错误时执行)chown-R filebeat:filebeat /etc/filebeat/chown-R filebeat:filebeat /var/log/filebeat/

四、启动Filebeat并设置开机自启

步骤1:启动Filebeat服务
# 启动Filebeatsystemctl start filebeat# 查看服务状态(确保显示active (running))systemctl status filebeat

若启动失败,可查看日志排查问题:

tail-f /var/log/filebeat/filebeat.log
步骤2:设置开机自启
# 配置开机自启systemctlenablefilebeat# 验证自启配置systemctl is-enabled filebeat

五、验证Filebeat采集与传输(关键步骤)

步骤1:验证日志采集

手动向采集的日志文件中写入测试数据,触发Filebeat采集:

# 向系统日志中写入测试数据echo"Test log from Filebeat on openEuler$(date)">>/var/log/messages# 若采集nginx日志,写入测试数据# echo "Test nginx log from Filebeat on openEuler $(date)" >> /var/log/nginx/access.log
步骤2:验证数据传输
场景1:发送到Logstash

在Logstash服务器上查看日志,确认是否接收到数据:

tail-f /var/log/logstash/logstash-plain.log

若能看到来自openEuler的日志数据,说明传输成功。

场景2:直接发送到ES

在ES服务器上查看索引,确认是否生成Filebeat索引:

# 查看所有索引curl-X GET"http://10.0.0.22:9200/_cat/indices?v"# 查看Filebeat索引的文档数量curl-X GET"http://10.0.0.22:9200/filebeat-7.17.5-2025.12.23/_count?pretty"

若索引存在且文档数量大于0,说明传输成功。

六、openEuler特有的问题排查

问题1:dnf安装时提示“无法验证证书”

原因:openEuler系统缺少根证书,导致无法验证Elastic的HTTPS证书。
解决方法:安装ca-certificates包:

dnfinstall-y ca-certificates update-ca-trust extract
问题2:Filebeat无法读取日志文件(权限被拒)

原因:openEuler的SELinux默认开启,或日志文件属于root用户且权限为600。
解决方法:

# 临时关闭SELinux(测试环境)setenforce0# 永久关闭SELinux(编辑/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,重启生效)# 或赋予Filebeat读取日志的权限(推荐)setfacl -m u:filebeat:r /var/log/messages# 为filebeat用户添加读取权限
问题3:网络不通,无法连接Logstash/ES

原因:openEuler的防火墙默认开启,拦截了5044(Logstash)/9200(ES)端口。
解决方法:

# 开放5044端口(Logstash)firewall-cmd --add-port=5044/tcp --permanent# 开放9200端口(ES)# firewall-cmd --add-port=9200/tcp --permanent# 重新加载防火墙规则firewall-cmd --reload

总结

  1. 核心步骤:在openEuler中安装Filebeat的关键是配置Elastic YUM源(或手动下载RPM包),然后配置日志输入和输出,启动服务并验证传输。
  2. openEuler适配:需要处理证书验证、SELinux权限、防火墙端口开放等特有问题,确保Filebeat正常运行。
  3. 关键配置:使用filestream类型采集日志(openEuler推荐),通过tagsfields自定义日志标识,便于后续过滤分析。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 23:40:42

零基础实战:完成一个LED灯阵列的PCB布线项目

从点亮第一颗LED开始:手把手带你完成人生第一个PCB设计你有没有过这样的经历?看着别人做的智能灯带、像素屏、动画面板,心里直痒痒,却总觉得“PCB设计”四个字高深莫测,像是只有科班出身的工程师才能碰的领域&#xff…

作者头像 李华
网站建设 2026/9/2 23:41:57

Anthropic 收购 Bun:当 AI 巨头决定掌控底层代码基建

硅谷的 AI 竞赛已经进入 next level 了,原本卷模型参数,现在开始卷应用生态和底层基建。 当地时间 12 月 2 日,Anthropic 宣布收购热门 JavaScript 运行时工具 Bun。这并非一次简单的人才收购(Acqui-hire)&#xff0c…

作者头像 李华
网站建设 2026/9/2 23:40:52

FPGA中时序逻辑电路构建的操作指南

FPGA时序逻辑设计实战:从触发器到跨时钟域的系统构建 你有没有遇到过这样的情况?代码写得严丝合缝,仿真波形完美无瑕,结果下载到FPGA板子上一跑,数据错乱、状态跳变异常,甚至直接“死机”?别急—…

作者头像 李华
网站建设 2026/9/3 0:55:21

Proteus蜂鸣器电路常见问题及解决方案全面讲解

Proteus蜂鸣器仿真不响?别急,这才是你该掌握的实战调试指南最近带学生做单片机课程设计,好几个同学跑来问我:“老师,我电路连得没错,程序也烧进去了,怎么Proteus里的蜂鸣器就是不‘嘀’一声&…

作者头像 李华
网站建设 2026/9/2 23:13:35

[Web自动化] CSS选择器与样式规则

4.2 CSS选择器与样式规则 在CSS中,选择器是核心概念之一,它决定了哪些HTML元素会被应用样式规则。本章将详细介绍CSS的选择器以及样式规则的构成,并通过实例加深理解。 4.2.1 选择器进阶 除了第一章介绍的基础选择器外,CSS还提…

作者头像 李华
网站建设 2026/9/3 0:05:09

事件时间线梳理:从多个文档中还原发展脉络

从零构建企业级AI知识中枢:基于Anything-LLM的RAG实践 在当今信息爆炸的时代,企业每天都在产生大量非结构化文档——合同、报告、会议纪要、产品手册。这些“沉睡的知识”往往散落在员工的邮箱、网盘和本地硬盘中,查找效率低、更新不同步、权…

作者头像 李华