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

在国产麒麟V10上手动编译Zabbix-Agent,我踩过的坑和最佳实践

在国产麒麟V10上手动编译Zabbix-Agent的深度实践指南

麒麟操作系统作为国产化替代的重要选择,在信创领域扮演着关键角色。而Zabbix作为企业级监控解决方案,其客户端部署在国产环境中的适配往往充满挑战。本文将分享我在麒麟V10(arm64架构)上从源码编译Zabbix-Agent的全过程,特别是那些官方文档未曾提及的"坑"与解决方案。

1. 环境准备与依赖处理

1.1 系统基础检查

在开始编译前,必须确认系统环境符合要求。执行以下命令检查系统信息:

uname -a cat /etc/os-release

典型输出应显示类似内容:

Linux hostname 4.19.90-24.4.v2101.ky10.aarch64 #1 SMP Mon Jan 18 17:03:23 CST 2021 aarch64 aarch64 aarch64 GNU/Linux NAME="Kylin Linux Advanced Server" VERSION="V10 (Tercel)"

常见问题1:麒麟V10的默认软件源可能缺少部分开发依赖包。解决方法是通过以下命令添加必要的软件源:

sudo tee /etc/yum.repos.d/extra.repo <<-'EOF' [extra] name=Extra Packages baseurl=http://archive.kylinos.cn/kylin/KYLIN-ALL/10.1/partner/aarch64/ enabled=1 gpgcheck=0 EOF

1.2 依赖库安装

Zabbix-Agent编译需要以下关键依赖:

依赖包作用安装命令
gcc编译器sudo yum install gcc
make构建工具sudo yum install make
pkg-config库配置工具sudo yum install pkgconfig
openssl-devel加密支持sudo yum install openssl-devel
zlib-devel压缩支持sudo yum install zlib-devel

注意:麒麟V10特有的依赖问题:

  • 某些情况下需要额外安装libevent-devel
  • 如果遇到configure: error: Invalid OpenSSL library,尝试指定openssl路径:
export LDFLAGS="-L/usr/lib64/openssl" export CPPFLAGS="-I/usr/include/openssl"

2. 源码获取与编译优化

2.1 源码下载策略

推荐从Zabbix官方下载稳定版本,同时考虑国内网络环境:

wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.9.tar.gz

验证完整性

echo "a1b2c3d4e5f6... zabbix-6.0.9.tar.gz" | sha256sum -c

2.2 编译参数调优

针对arm64架构的编译优化配置:

./configure \ --prefix=/usr/local/zabbix \ --sysconfdir=/etc/zabbix \ --enable-agent \ --enable-ipv6 \ --with-openssl \ --with-libcurl \ --with-libpthread \ --with-libmodbus

关键参数解析

  • --enable-agent:仅编译agent组件
  • --with-openssl:启用加密通信
  • --sysconfdir:指定配置文件目录

常见编译错误处理

  • 若出现undefined reference to 'clock_gettime',在LDFLAGS中添加-lrt
  • 内存不足时,可添加-j2参数限制并行编译任务数

3. 系统服务集成与权限管理

3.1 专用用户创建

安全最佳实践是使用专用用户运行Zabbix-Agent:

sudo groupadd --system zabbix sudo useradd --system -g zabbix -d /usr/lib/zabbix \ -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

目录权限设置:

sudo mkdir -p /usr/lib/zabbix /run/zabbix sudo chown zabbix:zabbix /usr/lib/zabbix /run/zabbix sudo chmod 750 /usr/lib/zabbix

3.2 systemd服务文件定制

麒麟V10使用systemd管理服务,创建/usr/lib/systemd/system/zabbix-agent.service

[Unit] Description=Zabbix Agent After=network.target syslog.target [Service] Type=forking Restart=on-failure PIDFile=/run/zabbix/zabbix_agentd.pid ExecStart=/usr/local/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf ExecStop=/bin/kill -SIGTERM $MAINPID User=zabbix Group=zabbix RestartSec=10s [Install] WantedBy=multi-user.target

关键配置项说明

  • Type=forking:Zabbix-Agent以守护进程方式运行
  • Restart=on-failure:异常退出时自动重启
  • User/Group:指定运行身份

启用服务:

sudo systemctl daemon-reload sudo systemctl enable --now zabbix-agent

4. 配置调优与连通性验证

4.1 关键配置参数

/etc/zabbix/zabbix_agentd.conf核心配置:

Server=192.168.1.100 # Zabbix Server IP ServerActive=192.168.1.100 # 主动检查的Server IP Hostname=Kylin-V10-Node1 # 客户端主机标识 PidFile=/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=10 EnableRemoteCommands=0 Timeout=30

安全增强建议

  • 设置AllowKey=system.run[*]限制可执行命令
  • 通过TLSConnect=pskTLSAccept=psk启用加密通信

4.2 连通性测试方法

被动模式测试

zabbix_get -s 127.0.0.1 -k "system.cpu.load[all,avg1]"

主动模式检查

tail -f /var/log/zabbix/zabbix_agentd.log | grep "sending"

防火墙配置

sudo firewall-cmd --permanent --add-port=10050/tcp sudo firewall-cmd --reload

5. 疑难问题排查指南

5.1 常见错误与解决方案

问题1:服务启动失败,日志显示"cannot create PID file"

解决方案

sudo mkdir -p /run/zabbix sudo chown zabbix:zabbix /run/zabbix

问题2:Server端显示"host [xxx] not found"

排查步骤

  1. 确认agent配置中的Hostname与Server端定义一致
  2. 检查DNS解析或/etc/hosts配置
  3. 验证网络连通性

5.2 性能监控与日志分析

关键监控指标:

  • zabbix_agentd.ping:基础存活检查
  • proc.num[zabbix_agentd]:进程数监控
  • system.cpu.util:CPU使用率

日志分析技巧:

journalctl -u zabbix-agent -f --since "1 hour ago"

对于高频监控需求,建议调整:

StartAgents=3 BufferSize=100

6. 高级配置与安全加固

6.1 PSK加密通信配置

生成PSK密钥:

openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk chown zabbix:zabbix /etc/zabbix/zabbix_agentd.psk chmod 400 /etc/zabbix/zabbix_agentd.psk

配置zabbix_agentd.conf

TLSConnect=psk TLSAccept=psk TLSPSKIdentity=Kylin_PSK_01 TLSPSKFile=/etc/zabbix/zabbix_agentd.psk

6.2 自定义监控项开发

示例:监控麒麟系统特定指标

创建自定义配置文件/etc/zabbix/zabbix_agentd.d/kylin.conf

UserParameter=kylin.version,cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2 UserParameter=kylin.security.update,dnf check-update --security | wc -l

测试自定义监控项:

zabbix_agentd -t "kylin.version"

6.3 资源限制配置

通过cgroups限制资源使用:

sudo tee /etc/systemd/system/zabbix-agent.service.d/limits.conf <<-'EOF' [Service] MemoryLimit=512M CPUQuota=50% EOF

应用配置:

sudo systemctl daemon-reload sudo systemctl restart zabbix-agent
http://www.jsqmd.com/news/880874/

相关文章:

  • 2026年5月河南CPVC电力管优质厂家盘点:恒鼎通等品牌深度解析 - 2026年企业推荐榜
  • 【ChatGPT】未来先进CMP(化学机械抛光)设备及其控制系统软硬件架构的深度拆解、爆炸图、信息图、C++代码框架
  • Cortex-M7 AXIM接口时序约束与DCLS优化实践
  • Unity FPS瞄准系统:Animation Rigging七层IK约束实战
  • 【前端无障碍】ARIA属性详解:提升Web应用的可访问性
  • 拯救老软件!Windows 10/11高DPI屏幕下界面模糊、错位的终极修复指南
  • 国内做北欧线路体验好的旅行社的有哪些?口碑好的北欧路线老年旅行团推荐 - 品牌2025
  • 【前端无障碍】键盘导航:确保所有用户都能操作你的应用
  • ChatGPT企业版与Microsoft 365 Copilot、Gemini for Workspace横向测评(2024Q2真实POC数据)
  • Unity实时木材切割系统:物理驱动的可交互原木剖分框架
  • Fiddler HTTPS抓包失败原因与证书信任机制详解
  • DL:扩散模型的基本原理与 PyTorch 实现
  • 2026钛制3D打印基板可靠厂家实力解析:TC4钛饼、石油用高强度钛棒、船舶用钛锻件、钛方条、钛法兰、锻件钛棒选择指南 - 优质品牌商家
  • 【Gemini图像理解能力深度测评】:20年AI架构师实测17类视觉任务,准确率暴跌的3个致命盲区你绝不能忽视?
  • FModel深度指南:UE5.3+ Pak解包与Nanite资源导出实战
  • 从‘边缘密度’到‘贝叶斯推断’:一个被概率论教材忽略的实战应用场景
  • 牛顿《自然哲学的数学原理》,实为《星体呼啦圈运动方程》——既不是自然哲学,也不是数学原理,是蚂蚁冒充大象
  • JMeter、ab、Postman并发压测原理与避坑指南
  • 2026重晶石混凝土优质产品推荐榜专业服务护航:钢渣混凝土生产厂家/钢珠混凝土公司/钢珠混凝土厂家/钢珠混凝土推荐/选择指南 - 优质品牌商家
  • ARM Trace Buffer扩展与调试同步机制详解
  • Unity项目降级回退的四层错误诊断与三步修复法
  • OTSU算法实战:用Python+NumPy从零实现图像二值化(附常见坑点解析)
  • Windows关机修复机制:漏洞补丁静默安装原理与实操
  • 别再死磕OFDMA了!用Python+PyTorch手把手复现NOMA的SIC接收机(附代码)
  • 魔兽争霸3终极优化指南:5分钟彻底解决画面拉伸和帧率锁定问题
  • K6云原生性能测试:JavaScript脚本+Go运行时的现代压测实践
  • 出行体验感好的北欧路线旅行社推荐:好的北欧路线老年旅行团推荐 - 品牌2025
  • 从客户分群到市场细分:系统聚类法在Python/R中的商业案例分析
  • 北欧高品质纯玩团,靠谱旅行社推荐?口碑好的北欧路线暑期家庭旅行团推荐 - 品牌2025
  • 不只是Tiny11:手把手教你用开源脚本定制专属Windows 11镜像(可自选版本和组件)