背景:
公司之前一直是用的預編譯好的zabbix agent包在redhat、centos等進行安裝部署。最近內部部署了一套新的操作系統(TencentOS Server),用之前的agent包發現并不能正常啟動agent,具體報錯是關于bash變量的: /bin/bash: 沒有那個文件或目錄
最開始以為是bash沒有安裝,經查,實際上文件是存在的且其他預編譯好agent包也一樣存在該問題,最終判斷是預編譯的好的環境與TencentOS Server的系統并不適用。
解決:
嘗試使用編譯安裝的方式去處理。
首先到官網下載相應的zabbix源包(我這里使用的版本是5.0.46)
1.安裝c編譯器等環境依賴
#yum install gcc ?pcre ???pcre-devel ?make ?-y
2.創建用戶組、用戶
#groupadd zabbix
#useradd -g zabbix zabbix
3.解壓zabbix-5.0.46.tar.gz源包
#tar -zxvf zabbix-5.0.46.tar.gz
4.編譯安裝agent
#cd zabbix-5.0.46
#./configure --prefix=/usr/local/zabbix --sysconfdir=/usr/local/zabbix/etc --enable-agent --disable-dependency-tracking
#make install
5.創建日志、配置文件等目錄
#mkdir /usr/local/zabbix/logs
#mkdir /usr/local/etc/zabbix_agentd.conf.d/
6.修改agent配置文件
#vim /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid#指定進程文件位置
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log#指定日志文件位置
Server=192.168.7.15 ????????????????????#指定數據采集代理/server 服務ip地址
ServerActive=192.168.7.15 ???????????????#指定數據推送代理/server 服務ip地址
ListenPort=10050#agent進程指定端口
Hostname=host725 ?????????????????????#指定注冊對象名(可填寫主機名)
Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf#指定自定義監控鍵值位置(沒有,可不用配置)
7.修改目錄所屬權限
#chown zabbix:zabbix /usr/local/zabbix -R
8.啟動agent服務
#/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
9.查看服務進程
#netstat -tnpl | grep zabbix_agent
10.增加自啟服務配置
#vim /lib/systemd/system/zabbix_agentd.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Type=forking
Restart=always
PIDFile=/usr/local/zabbix/logs/zabbix_agentd.pid
KillMode=mixed
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd ?-c /usr/local/zabbix/etc/zabbix_agentd.conf
[Install]
WantedBy=multi-user.target
11.修改權限
#chmod u+x /lib/systemd/system/zabbix_agentd.service
12.加載服務啟動文件
#systemctl daemon-reload
13.嘗試重新啟動Zabbix Agent
#systemctl stop zabbix_agentd
#systemctl start zabbix_agentd
14.設置服務開機自啟動
systemctl enable zabbix_agentd
15.觀察主機是否上線,且監控數據是否已經正常獲取