news 2026/4/23 13:03:32

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/4/16 9:17:47

硬件电路设计原理分析入门:通俗解释基本概念

硬件电路设计原理分析入门:从“看图说话”到真正理解电路逻辑你有没有过这样的经历?翻开一张电路图,所有元器件符号都认识——电阻、电容、运放、MOS管……但合上图纸,却说不清它们是怎么协同工作的。这几乎是每个硬件工程师初学时…

作者头像 李华
网站建设 2026/4/22 23:57:31

Vivado使用中Zynq-7000 PS端配置深度剖析

Vivado中Zynq-7000 PS端配置:从启动失败到稳定运行的实战指南你有没有遇到过这样的情况?Vivado工程明明“绿色对勾”全亮,比特流也生成了,可板子上电后JTAG连不上、串口没输出、DDR初始化直接卡死……最后翻遍手册才发现——问题出…

作者头像 李华
网站建设 2026/4/15 20:25:43

“切”出未来:Spring AOP 全景实战指南(含 AI 场景融合)

📌 摘要 Spring AOP(面向切面编程)是现代 Java 企业级开发的核心能力之一,致力于解决横切关注点的解耦问题,如日志、安全、事务、监控等。本文从原理到实战,系统梳理 Spring AOP 的核心知识体系&#xff0…

作者头像 李华
网站建设 2026/4/20 9:25:07

【金猿产品展】Smartbi AIChat白泽——企业智能分析师

思迈特软件产品该大数据类产品由思迈特软件投递并参与金猿组委会数据猿上海大数据联盟共同推出的《2025中国大数据产业年度创新服务产品——十年标杆产品》榜单/奖项评选。大数据产业创新服务媒体——聚焦数据 改变商业Smartbi AIChat的雏形,诞生于大数据产业从自助…

作者头像 李华
网站建设 2026/4/18 16:21:48

实战案例:构建高可靠USB3.1传输速度工控U盘

实战案例:如何打造一款真正稳定的工业级USB3.1 U盘你有没有遇到过这样的场景?在一台运行中的PLC控制柜前,操作员插入U盘准备导出一周的运行日志——文件大小约5GB。结果等了将近两分钟才写完,系统还弹出“设备无法安全移除”的警告…

作者头像 李华
网站建设 2026/4/19 1:39:39

PWA渐进式网页应用:将anything-llm添加到桌面

PWA渐进式网页应用:将anything-llm添加到桌面 在本地AI助手日益成为个人与企业知识管理核心工具的今天,如何让一个功能强大的Web应用摆脱“浏览器标签”的束缚,真正融入用户的日常使用习惯?这正是许多开发者和用户共同面临的挑战。…

作者头像 李华