centos4.8源码安装zabbix-agent-4.0.33

一、背景

  公司有几台CentOS4.8服务器,需要使用Zabbix4.0服务监控起来,Zabbix4.0服务器已经搭建完成,但是官方没有适用于CentOS4.x的zabbix-agent4.0的RPM包,需要自己使用源码编译成二进制后安装。编译及安装方法参考官方文档:https://www.zabbix.com/documentation/4.0/manual/installation/install,源码下载地址:https://www.zabbix.com/download_sources#40LTS。整个过程使用root权限,请小心操作!

二、源码编译

1、环境准备

  创建/tmp/zbx-agent目录,下载最新的源码包zabbix-4.0.33.tar.gz放入工作目录中并解压,然后安装gcc和pcre:

mkdir /tmp/zbx-agent
cd /tmp/zbx-agent
curl -k https://cdn.zabbix.com/zabbix/sources/stable/4.0/zabbix-4.0.33.tar.gz -O
tar -zxf zabbix-4.0.33.tar.gz
cd zabbix-4.0.33
yum -y install gcc pcre pcre-devel

2、创建zabbix用户

# 必须创建zabbix组及用户:
groupadd -r zabbix
useradd -r -g zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

3、编译并安装

  计划将二进制文件安装在/usr/local/zabbix-agent下,编译、安装命令如下:

# 指定路径/usr/local/zabbix-agent,将所有文件安装在此目录下,便于‘步骤四’制作安装包:
./configure --prefix=/usr/local/zabbix-agent --enable-agent --with-libpcre-include=/usr/include/pcre --with-libpcre-lib=/lib/
# 执行安装命令:
make install

三、修改配置文件

1、配置自启动服务

  源码中自带了一个System V风格的启动脚本,但是不支持chkconfig命令管理,需要在文件开头位置加入两行代码并修改DAEMON变量即可:

cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd

sed -i '1i # chkconfig:   2345 90 10' /etc/init.d/zabbix_agentd  
# chkconfig参数,2345是运行级,90是第90个启动程序,10是第10个关闭程序。

sed -i '2i # description:  Zabbix Agent' /etc/init.d/zabbix_agentd
# chkconfig参数,description是对服务的描述。

# 将原文件中的DAEMON路径变量修改为实际安装的路径:
sed -i '/^DAEMON=/c DAEMON=\/usr\/local\/zabbix-agent\/sbin\/zabbix_agentd' /etc/init.d/zabbix_agentd

# 将zabbix_agentd服务设置为开机启动:
chkconfig zabbix_agentd on

# 将修改好的zabbix_agentd服务脚本文件拷贝到安装目录的etc目录下,便于‘步骤四’制作安装包:
cp /etc/init.d/zabbix_agentd /usr/local/zabbix-agent/etc/zabbix_agentd

2、修改zabbix-agent配置文件

  源码中自带了一个配置文件zabbix_agentd.conf,将其拷贝到安装目录并修改:

cp conf/zabbix_agentd.conf /usr/local/zabbix-agent/etc/zabbix_agentd.conf

# 修改PidFile路径变量,将pid文件放至/tmp下:
sed -i '/^PidFile=/c PidFile=\/tmp\/zabbix_agentd.pid' /usr/local/zabbix-agent/etc/zabbix_agentd.conf
:
# 修改Server变量,zbx.xxxx.com为Zabbix服务器的域名:
sed -i '/^Server=/c Server=zbx.xxxx.com' /usr/local/zabbix-agent/etc/zabbix_agentd.conf

# 将ServerActive注释掉,使用被动模式:
sed -i '/^ServerActive=/c #ServerActive=127.0.0.1' /usr/local/zabbix-agent/etc/zabbix_agentd.conf

# 修改Hostname,与Zabbix服务中的主机名称保持一致:
sed -i '/^Hostname=/c Hostname=MyCentOS4-1' /usr/local/zabbix-agent/etc/zabbix_agentd.conf

3、修改防火墙并启动zabbix_agentd服务

# 允许zbx.xxxx.com服务器访问本机10050端口:
iptables -I RH-Firewall-1-INPUT -s zbx.xxxx.com -p tcp -m tcp --dport 10050 -j ACCEPT
service iptables save

# 启动zabbix_agentd服务:
service zabbix_agentd start

  自此,一台CentOS4服务器的zabbix-agent服务就安装完成了。

四、制作安装包并用于其他服务器安装

  为了让其他同版本的服务器可以无需编译直接安装,需要将zabbix-agent安装目录打包,拷贝到其他服务器后,解包并修改配置文件即可使用。

1、打包zabbix-agent目录并上传

# 在之前安装好zabbix-agent的服务器上打包整个/usr/local/zabbix-agent目录
tar -zcf zabbix-agent-bin-4.0.33.tar.gz  /usr/local/zabbix-agent/ 

# 上传zabbix-agent-bin-4.0.33.tar.gz至某个web服务器,便于下载使用
#操作略

2、下载并解压安装包

# 从某个web服务器下载安装包到CentOS4服务器:
curl -k https://web.xxxx.com/linux/tools/zabbix-agent-bin-4.0.33.tar.gz -o /tmp/zabbix-agent-bin-4.0.33.tar.gz

# 解压安装包至/usr/local/下:
tar --strip-path=2  -zxf zabbix-agent-bin-4.0.33.tar.gz -C /usr/local/

# 如果确认压缩包制作没有问题,不会覆盖根目录树下的文件,也可不使用上一条命令,直接解压至根目录:
tar -zxf zabbix-agent-bin-4.0.33.tar.gz -C /

3、拷贝自启动服务脚本

cp /usr/local/zabbix-agent/etc/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd

4、创建zabbix用户

# 必须创建zabbix组及用户:
groupadd -r zabbix
useradd -r -g zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
chown zabbix:zabbix -R /usr/local/zabbix-agent

5、修改zabbix-agent配置文件

# 修改Hostname,与Zabbix服务中的主机名称保持一致:
sed -i '/^Hostname=/c Hostname=MyCentOS4-2' /usr/local/zabbix-agent/etc/zabbix_agentd.conf

6、修改防火墙并启动zabbix_agentd服务

# 允许zbx.xxxx.com服务器访问本机10050端口:
iptables -I RH-Firewall-1-INPUT -s zbx.xxxx.com -p tcp -m tcp --dport 10050 -j ACCEPT
service iptables save

# 启动zabbix_agentd服务:
service zabbix_agentd start

7、配置自启动服务

# 将zabbix_agentd服务设置为开机启动:
chkconfig zabbix_agentd on
posted @ 2021-09-29 22:57  会游泳的鱼·bytefish  阅读(126)  评论(0编辑  收藏  举报