#!/bin/bash # installs the zabbix agent and configures it # make sure we are running as sudo if [ "$EUID" -ne 0 ]; then echo "Please run as root" exit fi # zabbix server ZABBIX_SERVER="gauntzabbix.home.johnhgaunt.com" if [ -f /etc/debian_version ]; then # Install the repository configuration package. This package contains apt (software package manager) configuration files. wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb dpkg -i zabbix-release_4.0-2+stretch_all.deb # update the cache apt update # install the agent apt install -y zabbix-agent elif [ -f /etc/redhat-release ]; then # Install the repository configuration package. This package contains yum (software package manager) configuration files. rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm # install the zabbix agent yum install -y zabbix-agent cat << EOF >> /etc/firewalld/services/zabbix-agent.xml zabbix agent zabbix agent EOF sleep 5 firewall-cmd --add-service=zabbix-agent --permanent firewall-cmd --reload else echo "Unable to determine linux distro" exit fi # ask for the hostname read -e -p "Enter Hostname: " -i "$(cat /etc/hostname)" hostname # configure the hostname sed --in-place 's/^Hostname=Zabbix\ server/Hostname='${hostname}'/' /etc/zabbix/zabbix_agentd.conf # configure the zabbix server sed --in-place 's/^Server=127.0.0.1/Server='${ZABBIX_SERVER}'/' /etc/zabbix/zabbix_agentd.conf # configure the zabbix server sed --in-place 's/^ServerActive=127.0.0.1/ServerActive='${ZABBIX_SERVER}'/' /etc/zabbix/zabbix_agentd.conf # configure the encryption, cheeck before running this as it adds lines to keep comments if [ $(grep -c TLSAccept=psk /etc/zabbix/zabbix_agentd.conf) -eq 0 ]; then sed --in-place $'s/^# TLSAccept=unencrypted/# TLSAccept=unencrypted\\\nTLSAccept=psk/' /etc/zabbix/zabbix_agentd.conf sed --in-place $'s/^# TLSConnect=unencrypted/# TLSConnect=unencrypted\\\nTLSConnect=psk/' /etc/zabbix/zabbix_agentd.conf # generate random PSK ID PSKID=$(openssl rand -hex 8) sed --in-place $'s/^# TLSPSKIdentity=/# TLSPSKIdentity=\\\nTLSPSKIdentity='${PSKID}'/' /etc/zabbix/zabbix_agentd.conf # generate psk TLSPSK=$(openssl rand -hex 32 | tee /etc/zabbix/zabbix_agentd.psk) sed --in-place $'s/^# TLSPSKFile=/# TLSPSKFile=\\\nTLSPSKFile=\/etc\/zabbix\/zabbix_agentd.psk/' /etc/zabbix/zabbix_agentd.conf echo "############################################################" echo "## Encryption Details ##" echo "## Please enter the PSK ID and PSK into the Zabbix Server ##" echo "############################################################" echo "PSK Identity = ${PSKID}" echo "PSK = ${TLSPSK}" fi systemctl restart zabbix-agent systemctl enable zabbix-agent