[TOC]
一锌钮、安裝zabbix_agent
1. 源碼安裝
步驟略仅颇,本文將zabbix_agent安裝到/zabbix_agent目錄下宪肖。
2. 指定程序安裝目錄
我們計(jì)劃rpm安裝時(shí)俊戳,安裝在/opt/zabbix_agent目錄澳腹,因此需要修改啟動(dòng)腳本煎谍。編輯/zabbix_agent/conf/zabbix_agentd/zabbix_agentd文件修改BASEDIR=/opt/zabbix_agent
砰粹,修改啟動(dòng)配置增加-c參數(shù)指定參數(shù)文件全路徑宋下。$FULLPATH -c $BASEDIR/conf/zabbix_agentd.conf
枕磁。
# Zabbix-Directory
BASEDIR=/opt/zabbix_agent
......略過(guò)多行代碼......
# functions
start() {
if [ $RUNNING -eq 1 ]
then
echo "$0 $ARG: $BINARY_NAME (pid $PID) already running"
else
action $"Starting $BINARY_NAME: " $FULLPATH -c $BASEDIR/conf/zabbix_agentd.conf
touch /var/lock/subsys/$BINARY_NAME
fi
}
二渡蜻、制作rpm包
1. 安裝依賴(lài)包
# yum -y install rpmdevtools
2.生成rpmbuild工作目錄
執(zhí)行rpmdev-setuptree 命令,會(huì)在家目錄下生成rpmbuild工作目錄。網(wǎng)上推薦使用非root用戶(hù)制作rpm包茸苇。
# rpmdev-setuptree
# ls /root/rpmbuild/
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
3. 進(jìn)入SPECS目錄編寫(xiě)specs文件
#more zabbix_agent.spec
Name: zabbix_agent
Version: 3.0.28
Release: loongson%{?dist}
Summary: 描述
License: 軟件版權(quán)許可證
Vendor:XXXX
%description
描述
%install
mkdir -p %{buildroot}%{_sysconfdir}
mkdir -p ../BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el/opt #創(chuàng)建必要的目錄
cp -R /zabbix_agent ../BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el/opt #/BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el/ 相當(dāng)于rpm安裝后的/目錄排苍,我們需要將程序拷貝到這個(gè)目錄下,BUILDROOT的下一級(jí)目錄名字根據(jù)specs文件的配置決定学密√匝茫可以不創(chuàng)建目錄和拷貝文件,按第4步打包名錄打包一次腻暮,報(bào)錯(cuò)就會(huì)提示目錄下的文件不存在彤守。
%prep
%files #配置目錄和文件的權(quán)限
%defattr(-,root,root,-)
/opt/zabbix_agent/
%doc
%pre
%post #配置安裝后的操作,此處可以進(jìn)行服務(wù)注冊(cè)
chmod a+x /opt/zabbix_agent/bin/disk_*
\cp -f /opt/zabbix_agent/conf/zabbix_agentd/zabbix_agentd /etc/init.d/zabbix_agentd
chkconfig --add zabbix_agentd
chkconfig --level 345 zabbix_agentd on
%preun #配置刪除rpm時(shí)的操作哭靖,前文%files目錄會(huì)自動(dòng)刪除具垫。不需要單獨(dú)處理。
systemctl stop zabbix_agentd
chkconfig --del zabbix_agentd
rm -f /etc/init.d/zabbix_agentd
%changelog
4. 打包
在SPECS目錄執(zhí)行rpmbuild -bb zabbix_agent.spec名錄试幽,制作rpm包筝蚕。rpm包會(huì)生成在/root/rpmbuild/RPMS目錄下。
[root@node-172162480 /]# cd /root/rpmbuild/SPECS/
[root@node-172162480 SPECS]# rpmbuild -bb zabbix_agent.spec
執(zhí)行(%prep): /bin/sh -e /var/tmp/rpm-tmp.1zg1Mj
+ umask 022
+ cd /root/rpmbuild/BUILD
+ exit 0
執(zhí)行(%install): /bin/sh -e /var/tmp/rpm-tmp.j5RQ9p
+ umask 022
+ cd /root/rpmbuild/BUILD
+ '[' /root/rpmbuild/BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el '!=' / ']'
+ rm -rf /root/rpmbuild/BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el
++ dirname /root/rpmbuild/BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el
+ mkdir -p /root/rpmbuild/BUILDROOT
+ mkdir /root/rpmbuild/BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el
+ mkdir -p /root/rpmbuild/BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el/etc
+ mkdir -p ../BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el/opt
+ cp -R /zabbix_agent ../BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el/opt
+ '[' '%{buildarch}' = noarch ']'
+ QA_CHECK_RPATHS=1
+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/neokylin/brp-compress
+ /usr/lib/rpm/neokylin/brp-strip /usr/bin/strip
+ /usr/lib/rpm/neokylin/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/neokylin/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/neokylin/brp-python-hardlink
+ /usr/lib/rpm/neokylin/brp-java-repack-jars
處理文件:zabbix_agent-3.0.28-loongson.ns7_4.mips64el
Provides: zabbix_agent = 3.0.28-loongson.ns7_4 zabbix_agent(mips64el-64) = 3.0.28-loongson.ns7_4
Requires(interp): /bin/sh /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(pre): /bin/sh
Requires(post): /bin/sh
Requires(preun): /bin/sh
Requires: /bin/bash libc.so.6()(64bit) libc.so.6(GLIBC_2.0)(64bit) libc.so.6(GLIBC_2.17)(64bit) libc.so.6(GLIBC_2.2)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.0)(64bit) libdl.so.2(GLIBC_2.2)(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2)(64bit) libresolv.so.2()(64bit) libresolv.so.2(GLIBC_2.0)(64bit) libresolv.so.2(GLIBC_2.2)(64bit)
檢查未打包文件:/usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el
寫(xiě)道:/root/rpmbuild/RPMS/mips64el/zabbix_agent-3.0.28-loongson.ns7_4.mips64el.rpm
執(zhí)行(%clean): /bin/sh -e /var/tmp/rpm-tmp.7l44sx
+ umask 022
+ cd /root/rpmbuild/BUILD
+ /usr/bin/rm -rf /root/rpmbuild/BUILDROOT/zabbix_agent-3.0.28-loongson.ns7_4.mips64el
+ exit 0
5. 安裝測(cè)試
RPMS的下一級(jí)目錄名字根據(jù)spec文件中的配置決定铺坞,會(huì)與本例有差別起宽。安裝后啟動(dòng)服務(wù)并查看服務(wù)狀態(tài)。Active: active (running)表示啟動(dòng)成功济榨。
[root@node-172162480 mips64el]# rpm -ivh /root/rpmbuild/RPMS/mips64el/zabbix_agent-3.0.28-loongson.ns7_4.mips64el.rpm
準(zhǔn)備中... ################################# [100%]
正在升級(jí)/安裝...
1:zabbix_agent-3.0.28-loongson.ns7_################################# [100%]
[root@node-172162480 mips64el]# systemctl start zabbix_agentd
[root@node-172162480 mips64el]# systemctl status zabbix_agentd
● zabbix_agentd.service - SYSV: Starts and stops Zabbix Agent using chkconfig
Loaded: loaded (/etc/rc.d/init.d/zabbix_agentd; bad; vendor preset: disabled)
Active: active (running) since 五 2019-10-11 15:53:08 CST; 57min ago
Docs: man:systemd-sysv-generator(8)
Process: 17322 ExecStart=/etc/rc.d/init.d/zabbix_agentd start (code=exited, status=0/SUCCESS)
Memory: 2.0M
CGroup: /system.slice/zabbix_agentd.service
├─17340 /opt/zabbix_agent/sbin/zabbix_agentd -c /opt/zabbix_agent/conf/zabbix_agentd.conf
├─17342 /opt/zabbix_agent/sbin/zabbix_agentd: collector [idle 1 sec]
├─17343 /opt/zabbix_agent/sbin/zabbix_agentd: listener #1 [waiting for connection]
├─17344 /opt/zabbix_agent/sbin/zabbix_agentd: listener #2 [waiting for connection]
├─17345 /opt/zabbix_agent/sbin/zabbix_agentd: listener #3 [waiting for connection]
└─17346 /opt/zabbix_agent/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
10月 11 15:53:07 node-172162480 systemd[1]: Starting SYSV: Starts and stops Zabbix Agent using chkconfig...
10月 11 15:53:08 node-172162480 zabbix_agentd[17322]: Starting zabbix_agentd: [ 確定 ]
10月 11 15:53:08 node-172162480 systemd[1]: Started SYSV: Starts and stops Zabbix Agent using chkconfig.
6. 修改zabbix_server地址并重啟服務(wù)
編輯/opt/zabbix_agent/conf/zabbix_agentd.conf文件坯沪,修改服務(wù)地址等信息,并重啟agent擒滑。測(cè)試是否可以將主機(jī)加入監(jiān)控屏箍。