由於 agent 的安裝需要配置每臺機器的 hostname ,所以需要先給每臺機器進行 host 命名。
#!/bin/bash
HOST_NAME=$1
function change_hostname_network(){
local hostName
hostName=`grep "HOSTNAME" /etc/sysconfig/network | awk -F= '{print $NF}'`
sed -i "s#${hostName}#${HOST_NAME}#g" /etc/sysconfig/network ;
hostname ${HOST_NAME} ;
}
change_hostname_network ${HOST_NAME}
如果用 docker 版本的 agent,其實你是無法監控到具體物理機的磁盤使用情況。所以一般不建議安裝 docker 版本的 zabbix-agent
#!/bin/bash
function install_zabbix_conf(){
local hostName=`hostname`
sed -i "s#Server=127.0.0.1#Server=${ZABBIX_SERVER}#g" /users/manager/zabbix-agent/etc/zabbix_agentd.conf
sed -i "s#ServerActive=127.0.0.1#ServerActive=${ZABBIX_SERVER}#g" /users/manager/zabbix-agent/etc/zabbix_agentd.conf
sed -i "s#Hostname=Zabbix server#Hostname=${hostName}#g" /users/manager/zabbix-agent/etc/zabbix_agentd.conf
#sed -i "s/UnsafeUserParameters=0/UnsafeUserParameters=1/g" /users/manager/zabbix-agent/etc/zabbix_agentd.conf
}
function remove_zabbix_agent_docker(){
sudo docker ps -a | grep "zabbix" | grep -v grep | awk '{print $1}' | xargs sudo docker stop
sudo docker ps -a | grep "zabbix" | grep -v grep | awk '{print $1}' | xargs sudo docker rm -v
}
function run_zabbix_agent(){
chmod u+x /users/manager/zabbix-agent/sbin/zabbix_agentd
sh /users/manager/zabbix-agent/zabbix_agentd start
}
echo "================== start remove docker =================="
remove_zabbix_agent_docker
echo "================== end remove docker && start install zabbix agent conf =================="
ZABBIX_SERVER=$1
install_zabbix_conf
echo "================== end install zabbix agent conf && start run zabbix agent =================="
run_zabbix_agent
echo "================== end run zabbix agent =================="
注意 docker 一般情況下是需要 sudo 運行的,這個時候,需要設置 sudo 不用輸入密碼。