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

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自定义日志标识,便于后续过滤分析。
http://www.jsqmd.com/news/131105/

相关文章:

  • 组合逻辑电路FPGA实现新手教程
  • Vivado使用中Zynq-7000 PS端配置深度剖析
  • MIPS/RISC-V ALU设计入门必看:教学实验完整指南
  • 会议纪要自动生成:录音转文字+要点提炼
  • Log4j 的安全盲点:TLS新漏洞可用于拦截敏感日志
  • 标签系统引入设想:更灵活的知识标注机制
  • 靠谱过碳酸钠生产厂家盘点 供应商批发商供货商合作指南 - 品牌2026
  • 过碳酸钠供应商、生产厂家汇总:过碳酸钠制造商、批发商推荐 - 品牌2026
  • 图表数据提取实验:从PDF中读取柱状图信息
  • 江西过碳酸钠生产厂、浙江过碳酸钠生产厂名单精选,TOP榜单盘点 - 品牌2026
  • 成膜助剂源头工厂在哪里?全球成膜助剂供成膜助剂源头厂家名单 - 品牌2026
  • 成膜助剂代理商有哪些?全球成膜助剂供应商名单TOP名单精选 - 品牌2026
  • 自定义Prompt模板:标准化输出格式的捷径
  • 可视化数据分析看板:anything-llm日志统计展示方案
  • 在Vivado2018.3中实现编码器/译码器的完整示例
  • 渗透测试报告公开:增强客户信任的基础
  • 多模态处理前瞻:图片、表格等内容的理解能力
  • GUI_Syre报错问题解决
  • Windows 11下Multisim安装操作指南
  • STM32实战——DHT11温湿度获取并展示
  • anything-llm社区活跃度分析:更新频率与问题响应
  • 深度学习<3>4个冷门但封神的工具库,解决你90%的实战痛点
  • 【Hadoop+Spark+python毕设】全球香水市场趋势分析系统、计算机毕业设计、包括数据爬取、数据分析、数据可视化、实战教学
  • 浏览器兼容性测试:Chrome/Firefox/Safari表现对比
  • 静态代码扫描:CI/CD流程中加入安全检测环节
  • 技术演进中的开发沉思-268 Ajax:JSON
  • 【RocketMQ 】核心技术详解:架构、可靠性、集群、持久化及与Kafka对比
  • 计费模式设计参考:借鉴anything-llm做商业化变现
  • P1478 陶陶摘苹果(升级版)题解
  • 技术演进中的开发沉思-269 Ajax:拖放功能