自定义zabbix agent rpm包

1.安装软件包

yum install rpm-build rpmrebuild

2.解包

2.1 创建打包目录

https://repo.huaweicloud.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.5-1.el7.x86_64.rpm

cd /root
[root@local ~]# rpmrebuild -p zabbix-agent-4.0.5-1.el7.x86_64.rpm
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
result: /root/rpmbuild/RPMS/x86_64/zabbix-agent-4.0.5-1.el7.x86_64.rpm
# 目录说明:
[root@local ~]# tree /root/rpmbuild/
/root/rpmbuild/
├── BUILD
├── BUILDROOT
├── RPMS
│   └── x86_64
│       └── zabbix-agent-4.0.5-1.el7.x86_64.rpm
├── SOURCES
├── SPECS
└── SRPMS
​
BUILDROOT     #编译后生成的软件临时安装目录
SPECS         #存放SPEC文件的目录
BUILD         #编译rpm包的临时目录
RPM           #最终生成的可安装rpm包的所在目录
SRPM          #软件最终的rpm源码格式存放路径

2.2 提取SPEC文件

[root@local ~]# rpmrebuild -s /root/rpmbuild/SPECS/zabbix-agent.spec -p zabbix-agent-4.0.5-1.el7.x86_64.rpm
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
警告:zabbix-agent-4.0.5-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY

2.3 提取rpm文件

# 创建编译文件夹:
mkdir -p /root/rpmbuild/BUILDROOT/zabbix-agent-4.0.5-1.el7.x86_64
​
# 提取rpm
cd /root/rpmbuild/BUILDROOT/zabbix-agent-4.0.5-1.el7.x86_64
​
rpm2cpio /root/zabbix-agent-4.0.5-1.el7.x86_64.rpm  |cpio -div
​
cd /root/rpmbuild
[root@local rpmbuild]# tree -F
.
├── BUILD/
├── BUILDROOT/
│   └── zabbix-agent-4.0.5-1.el7.x86_64.rpm/
│       ├── etc/
│       │   ├── logrotate.d/
│       │   │   └── zabbix-agent
│       │   └── zabbix/
│       │       ├── zabbix_agentd.conf
│       │       └── zabbix_agentd.d/
│       │           └── userparameter_mysql.conf
│       ├── usr/
│       │   ├── lib/
│       │   │   ├── systemd/
│       │   │   │   └── system/
│       │   │   │       └── zabbix-agent.service
│       │   │   └── tmpfiles.d/
│       │   │       └── zabbix-agent.conf
│       │   ├── sbin/
│       │   │   └── zabbix_agentd*
│       │   └── share/
│       │       ├── doc/
│       │       │   └── zabbix-agent-4.0.5/
│       │       │       ├── AUTHORS
│       │       │       ├── ChangeLog
│       │       │       ├── COPYING
│       │       │       ├── NEWS
│       │       │       └── README
│       │       └── man/
│       │           └── man8/
│       │               └── zabbix_agentd.8.gz
│       └── var/
│           ├── log/
│           │   └── zabbix/
│           └── run/
│               └── zabbix/
├── RPMS/
│   └── x86_64/
│       └── zabbix-agent-4.0.5-1.el7.x86_64.rpm
├── SOURCES/
├── SPECS/
│   └── zabbix-agent.spec
└── SRPMS/

2.4自定义zabbix_agentd.conf

[root@local rpmbuild]# grep -v ^# /root/rpmbuild/BUILDROOT/zabbix-agent-4.0.5-1.el7.x86_64/etc/zabbix/zabbix_agentd.conf |sed '/^$/d'
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=200
DebugLevel=3
EnableRemoteCommands=1
Server=Zabbix Server
ListenIP=0.0.0.0
ServerActive=Zabbix Server
Hostname=Zabbix Server
RefreshActiveChecks=60
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1

2.5修改spec文件

# 创建目录,上传文件
cd /root/rpmbuild/BUILDROOT/zabbix-agent-4.0.5-1.el7.x86_64/etc/zabbix
mkdir {scripts,templates}
# 上传conf文件到/root/rpmbuild/BUILDROOT/zabbix-agent-4.0.5-1.el7.x86_64/etc/zabbix/zabbix_agentd.d目录下
# 上传脚本文件到/root/rpmbuild/BUILDROOT/zabbix-agent-4.0.5-1.el7.x86_64/etc/zabbix/scripts目录下
# 上传模板文件到/root/rpmbuild/BUILDROOT/zabbix-agent-4.0.5-1.el7.x86_64/etc/zabbix/templates目录下
​
[root@local rpmbuild]# cd /root/rpmbuild/SPECS/
[root@local SPECS]# vim zabbix-agent.spec
​
# 增加自定义脚本的路径及文件权限, 其中一部分内容
%files
%config(noreplace) %attr(0644, root, root) "/etc/logrotate.d/zabbix-agent"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/zabbix_agentd.conf"
%dir %attr(0755, root, root) "/etc/zabbix/zabbix_agentd.d"
# ----- start 新增内容 ------
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/zabbix_agentd.d/clickhouse.conf"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/zabbix_agentd.d/mysql.conf"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/zabbix_agentd.d/osBase.conf"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/zabbix_agentd.d/zookeeper.conf"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/zabbix_agentd.d/serviceStatus.conf"
# 
%dir %attr(0755, root, root) "/etc/zabbix/scripts"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/scripts/clickhouse.sh"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/scripts/mysql.sh"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/scripts/procCheck.sh"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/scripts/tcpStatus.sh"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/scripts/zookeeper.sh"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/scripts/serviceStatus.sh"
%dir %attr(0755, root, root) "/etc/zabbix/templates"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/templates/zbx_templates_mysql_master3306.xml"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/templates/zbx_templates_clickhouse18100.xml"
%config(noreplace) %attr(0644, root, root) "/etc/zabbix/templates/zbx_templates_zookeeper18127.xml"
# ----- start 新增内容 ------
​
* Tue Sep 29 2015 Kodai Terashima <kodai.terashima@zabbix.com> - 3.0.0alpha2-3
- add IfModule for mod_php5 in apache configuration file
%doc %attr(0644, root, root) "/usr/share/doc/zabbix-agent-4.0.5/NEWS"
%doc %attr(0644, root, root) "/usr/share/doc/zabbix-agent-4.0.5/README"
%doc %attr(0644, root, root) "/usr/share/man/man8/zabbix_agentd.8.gz"
%dir %attr(0755, zabbix, zabbix) "/var/log/zabbix"
%dir %attr(0755, zabbix, zabbix) "/var/run/zabbix"
%pre -p /bin/sh
getent group zabbix > /dev/null || groupadd -r zabbix
getent passwd zabbix > /dev/null || \
        useradd -r -g zabbix -d /var/lib/zabbix -s /sbin/nologin \
        -c "Zabbix Monitoring System" zabbix
:
%post -p /bin/sh
​
if [ $1 -eq 1 ] ; then
        # Initial installation
        /usr/bin/systemctl preset zabbix-agent.service >/dev/null 2>&1 || :
        # 新增内容
        sed -i "/^Hostname=/cHostname=`hostname`" /etc/zabbix/zabbix_agentd.conf >/dev/null
fi
​

3.打包

rpmbuild常用参数:
-bb 只编译二进制rpm包
-bs 只编译源码rpm包
-ba 同时编译二进制和源码rpm包
​
cd /root/rpmbuild/SPECS/
[root@local SPECS]# rpmbuild -ba /root/rpmbuild/SPECS/zabbix-agent.spec
处理文件:zabbix-agent-4.0.5-1.el7.x86_64
Provides: config(zabbix-agent) = 4.0.5-1.el7 zabbix-agent = 4.0.5-1.el7 zabbix-agent(x86-64) = 4.0.5-1.el7
Requires(interp): /bin/sh /bin/sh /bin/sh /bin/sh
Requires(rpmlib): rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires(pre): /bin/sh
Requires(post): /bin/sh
Requires(preun): /bin/sh
Requires(postun): /bin/sh
Obsoletes: zabbix
写道:/root/rpmbuild/SRPMS/zabbix-agent-4.0.5-1.el7.src.rpm
写道:/root/rpmbuild/RPMS/x86_64/zabbix-agent-4.0.5-1.el7.x86_64.rpm
执行(%clean): /bin/sh -e /var/tmp/rpm-tmp.OSE0ta
+ umask 022
+ cd /root/rpmbuild/BUILD
+ /usr/bin/rm -rf /root/rpmbuild/BUILDROOT/zabbix-agent-4.0.5-1.el7.x86_64
+ exit 0
​
​
# 新生成的rpm包:/root/rpmbuild/RPMS/x86_64/zabbix-agent-4.0.5-1.el7.x86_64.rpm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值