Skip to main content

Checks to see if Zabbix is installed and if not, installs it. Covers Centos and Ubuntu, but can be extended for other Linux flavors fairly easily.



Evaluation code:



#!/bin/bash

service=zabbix_agent



if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))

then

exit 0

else

exit 1

fi



Remediation code:



#!/bin/bash



#Get OS

os_id="$(grep -w ID /etc/os-release | cut -d'=' -f2)"



#Functions

centos () {

if [ $os_ver == '8.0' ]; then

#Remove all dirty packages

rpm -e zabbix-release-*



#Get the Package

rpm -Uvh http://repo.zabbix.com/zabbix/4.0/rhel/8/x86_64/zabbix-release-4.0-2.el8.noarch.rpm



#Clean and Install with Yum

yum clean all

yum -y install zabbix-agent



#Overwrite the conf file with attached

cp zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf



#Edit config to personalize for new system

CONFIGPATH="/etc/zabbix/zabbix_agentd.conf"

TARGET_KEY="Hostname"

REPLACEMENT_VALUE="$(hostname)"

sed -c -i "s/\($TARGET_KEY *= *\).*/\1$REPLACEMENT_VALUE/" $CONFIGPATH



#Enable Zabbix as Service (Automatic Startup at Boot)

systemctl enable zabbix-agent



#Start the agent

systemctl start zabbix-agent



fi



if [ $os_ver == '7' ]; then

#Remove all dirty packages

rpm -e zabbix-release-*



#Get the Package

rpm -Uvh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm



#Clean and install with Yum

yum clean all

yum -y install zabbix-agent



#Overwrite the conf file with attached

cp zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf



#Edit config to personalize for new system

CONFIGPATH="/etc/zabbix/zabbix_agentd.conf"

TARGET_KEY="Hostname"

REPLACEMENT_VALUE="$(hostname)"

sed -c -i "s/\($TARGET_KEY *= *\).*/\1$REPLACEMENT_VALUE/" $CONFIGPATH



#Enable Zabbix as Service (Automatic Startup at Boot)

systemctl enable zabbix-agent



#Start the agent

systemctl start zabbix-agent



fi



if [ $os_ver == '6' ]; then

#Remove all dirty packages

rpm -e zabbix-release-*



#Get the Package

wget https://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-release-4.0-2.el6.noarch.rpm

rpm -Uvh zabbix-release-4.0-2.el6.noarch.rpm



#Clean and install with Yum

yum clean all

yum -y install zabbix-agent



#Overwrite the conf file with attached

cp zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf



#Edit config to personalize for new system

CONFIGPATH="/etc/zabbix/zabbix_agentd.conf"

TARGET_KEY="Hostname"

REPLACEMENT_VALUE="$(hostname)"

sed -c -i "s/\($TARGET_KEY *= *\).*/\1$REPLACEMENT_VALUE/" $CONFIGPATH



#Enable Zabbix as Service (Automatic Startup at Boot)

service zabbix-agent enable



#Start the agent

service zabbix-agent start



fi

}



ubuntu () {

#Get the Package

#wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb

#dpkg -i zabbix-release_4.0-3+bionic_all.deb



#Install with apt

apt-get update

apt-get -y install zabbix-agent



#Overwrite the conf file with attached

cp zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf



#Edit config to personalize for new systemctl

CONFIGPATH="/etc/zabbix/zabbix_agentd.conf"

TARGET_KEY="Hostname"

REPLACEMENT_VALUE="$(hostname)"

sed -i "s/\($TARGET_KEY *= *\).*/\1$REPLACEMENT_VALUE/" $CONFIGPATH



#Restart Zabbix Agent

service zabbix-agent restart

}



#Find OS and Forward to Appropriate Function

if (os_id == "ubuntu")

then

ubuntu

else

os_ver="$(rpm -q centos-release | cut -d'-' -f3)"

centos

fi



exit 0



Note for the Ubuntu section, the wget is commented out. If the Zabbix package isn’t already in your Ubuntu install, then uncomment that line.

Be the first to reply!

Reply