统信UOS上可通过APT源或二进制包安装Filebeat,配置journald输入与UOS特有日志路径,适配ULogService输出,并通过dissect处理器解析审计日志字段,同时需处理MAC权限限制。

如果您在统信UOS操作系统上需要实现日志集中采集,但尚未部署Filebeat,则可能是由于缺少适配UOS的安装包或配置未针对国产化环境优化。以下是适用于统信UOS的Filebeat安装与日志采集配置方法:
一、通过APT源安装Filebeat(推荐)
统信UOS基于Debian系,支持APT包管理器,可直接从官方或可信源安装稳定版本Filebeat,避免手动编译兼容性问题。
1、更新系统软件源列表:
sudoadapt-getupdate
2、安装Filebeat:
sudoadapt-getinstallfilebeat-y
3、验证安装是否成功:
filebeatversion
4、启用并启动服务:
sudosystemctlenablefilebeat
sudosystemctlstartfilebeat
二、使用二进制包安装(适配UOS ARM64或无网络环境)
当UOS系统为ARM64架构、内网隔离或APT源不可用时,需下载预编译二进制包,解压后手动部署,确保与UOS内核及glibc版本兼容。
1、创建部署目录:
sudo mkdir -p /opt/filebeat
2、下载适配UOS的Filebeat二进制包(如filebeat-8.11.2-linux-arm64.tar.gz或x86_64):
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.2-linux-x86_64.tar.gz -O /tmp/filebeat.tar.gz
3、解压至目标目录:
sudo tar -xzf /tmp/filebeat.tar.gz -C /opt/filebeat --strip-components=1
4、赋予执行权限:
sudo chmod +x /opt/filebeat/filebeat
5、创建systemd服务单元文件:
sudo tee /etc/systemd/system/filebeat.service << 'EOF'
[Unit]
Description=Filebeat sends log files to Logstash or Elasticsearch
Documentation=https://www.elastic.co/products/beats/filebeat
Wants=network-online.target
After=network-online.target
[Service]
Type=exec
User=root
ExecStart=/opt/filebeat/filebeat -c /opt/filebeat/filebeat.yml -path.home /opt/filebeat -path.config /opt/filebeat -path.data /var/lib/filebeat -path.logs /var/log/filebeat
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
6、重载systemd配置并启动:
sudo systemctl daemon-reload
sudosystemctlstartfilebeat
三、配置Filebeat采集UOS系统日志(含journal日志)
UOS默认使用systemd-journald,其二进制日志需通过journald input插件采集,不能仅依赖文件路径监控;同时需兼容UOS日志路径规范(如/var/log/utmp、/var/log/uos-audit.log)。
1、编辑主配置文件:
sudo nano /etc/filebeat/filebeat.yml
2、禁用默认file输入,启用journald输入:
filebeat.inputs:
- type: journald
paths: ["/run/log/journal"]
include_matches: ["SYSLOG_IDENTIFIER=systemd", "SYSLOG_IDENTIFIER=kernel", "SYSLOG_IDENTIFIER=uos-audit"]
3、补充UOS特有日志路径:
- type: log
enabled: true
paths:
- /var/log/uos-audit.log
- /var/log/utmp
- /var/log/apt/history.log
fields:
log_type: uos_system
4、设置输出至UOS兼容的后端(以ULogService为例):
output.uls:
enabled: true
endpoint: internal.cn-wlcb.uls.ucloud.cn
protocol: http
topic_id: uos-prod-logs
public_key: your_public_key_here
private_key: your_private_key_here
format: json
四、启用UOS安全审计日志字段解析(进阶)
UOS审计日志(uos-audit.log)采用固定格式,包含时间戳、事件类型、进程PID、用户UID等关键字段;需通过dissect或grok处理器提取结构化字段,便于后续分析。
1、在filebeat.yml中添加processors段:
processors:
- dissect:
tokenizer: "%{time} %{+time} %{+time} %{event_type} %{pid} %{uid} %{comm} %{msg}"
field: "message"
target_prefix: "audit"
2、添加时间字段标准化:
- convert:
fields:
- {field: "audit.time", type: "date", formats: ["2006-01-02T15:04:05"]}
3、过滤非审计日志行(避免解析失败):
- drop_event.when:
not: contains.message: "AUDIT"
五、验证Filebeat在UOS上的采集状态与权限适配
UOS默认启用强制访问控制(MAC)与安全策略,Filebeat可能因SELinux或uos-security-policy限制无法读取部分日志路径;需检查权限上下文并授权。
1、检查Filebeat进程安全上下文:
ps -eZ | grep filebeat
2、确认日志路径访问权限:
ls -ldZ /var/log/uos-audit.log
3、若提示Permission denied,临时放宽策略测试:
sudo setsebool -P filebeat_read_audit_log on
4、查看实时采集状态:
sudo filebeat test config
sudo filebeat test output
sudo journalctl -u filebeat -f --no-pager
5、确认日志已进入目标主题:
curl -X GET "internal.cn-wlcb.uls.ucloud.cn/v1/topics/uos-prod-logs/messages?limit=1" -H "Authorization: UCloud your_public_key:signature"

















