Last active
September 13, 2021 01:54
-
-
Save mainframe/5646082 to your computer and use it in GitHub Desktop.
Install and configure zabbix agent on OpenNode or CentOS/RHEL host
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Copyright (C) 2013, OpenNode LLC. All rights reserved. | |
# Email: [email protected] | |
# | |
# This program is free software; you can redistribute it and/or | |
# modify it under the terms of the GNU General Public License | |
# as published by the Free Software Foundation; either version 2 | |
# of the License, or (at your option) any later version. | |
# | |
# This program is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
# GNU General Public License for more details. | |
# | |
# You should have received a copy of the GNU General Public License | |
# along with this program; if not, write to the Free Software | |
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
# | |
# DESCRIPTION: | |
# Install and configure zabbix agent on OpenNode or CentOS/RHEL host | |
# Config | |
CONFIG_FILE=/etc/zabbix/zabbix_agentd.conf | |
ZBX_REPO_KEY=http://repo.zabbixzone.com/centos/RPM-GPG-KEY-zabbixzone | |
ZBX_REPO_RPM=http://repo.zabbixzone.com/centos/zabbixzone-release-0.0-1.noarch.rpm | |
usage() | |
{ | |
echo 'Usage: on-zbx-agentinstall.sh -h -e -s <zabbix_server>' | |
cat << EOF | |
Options: | |
-h help | |
-e start and enable zabbix agent on boot | |
-s zabbix server hostname/ip | |
EOF | |
exit 1 | |
} | |
chkZbxAgent() | |
{ | |
[ -z "$(rpm -qa|grep zabbix-agent)" ] && ZBX_AGENT="no" || ZBX_AGENT="yes" | |
if [ "x${ZBX_AGENT}" = "xno" ]; then | |
# Check for EPEL zabbix20 version of agent package | |
if [ -z "$(rpm -qa|grep zabbix20-agent)" ]; then | |
ZBX_AGENT="no" | |
else | |
ZBX_AGENT="yes" | |
CONFIG_FILE=/etc/zabbix_agentd.conf | |
fi | |
fi | |
echo "Zabbix agent installed: ${ZBX_AGENT}" | |
} | |
chkZbxAgentVersion() | |
{ | |
ZBX_AGENT_VERSION=`zabbix_agent -V | head -1 | awk '{ print $3 }'` | |
echo "Zabbix agent version: ${ZBX_AGENT_VERSION}" | |
echo "Zabbix agent config: ${CONFIG_FILE}" | |
} | |
chkOnHost() | |
{ | |
[ -z "$(rpm -qa|grep opennode)" ] && ON_HOST="no" || ON_HOST="yes" | |
echo "OpenNode OS host: ${ON_HOST}" | |
} | |
setZbxServer() | |
{ | |
echo "Setting Zabbix server to: ${ZBX_SERVER}" | |
sed -i "s/\(^Server *= *\).*/\1$ZBX_SERVER/" $CONFIG_FILE | |
} | |
setZbxServerActive() | |
{ | |
echo "Setting Zabbix active checks server to: ${ZBX_SERVER}" | |
sed -i "s/\(^ServerActive *= *\).*/\1$ZBX_SERVER/" $CONFIG_FILE | |
} | |
setZbxAgentHostname() | |
{ | |
echo "Setting Zabbix agent hostname to: ${HOSTNAME}" | |
sed -i "s/\(^Hostname *= *\).*/\1$HOSTNAME/" $CONFIG_FILE | |
} | |
installZbxAgent() | |
{ | |
echo "Installing zabbix agent..." | |
yum install zabbix-agent -y | |
} | |
installZbxRepo() | |
{ | |
echo "Installing zabbixzone yum repository..." | |
rpm --import $ZBX_REPO_KEY | |
rpm -Uv $ZBX_REPO_RPM | |
} | |
enableZbxAgent() | |
{ | |
echo "Enabling Zabbix agent..." | |
service zabbix-agent restart && chkconfig zabbix-agent on | |
} | |
# MAIN | |
while getopts "hes:" opt; do | |
case $opt in | |
h) | |
usage >&2 | |
;; | |
e) | |
ENABLE_AGENT=yes | |
;; | |
s) | |
ZBX_SERVER=$OPTARG | |
;; | |
\?) | |
echo "Invalid option: -$OPTARG" >&2 | |
usage | |
;; | |
:) | |
echo "Option -$OPTARG requires an argument." >&2 | |
usage | |
;; | |
esac | |
done | |
if [ -z "$ZBX_SERVER" ]; then | |
echo "Zabbix server name option missing!" | |
usage | |
exit 1 | |
fi | |
chkZbxAgent | |
if [ "x${ZBX_AGENT}" = "xno" ]; then | |
chkOnHost | |
if [ "x${ON_HOST}" = "xno" ]; then | |
installZbxRepo | |
fi | |
installZbxAgent | |
fi | |
chkZbxAgentVersion | |
setZbxServer | |
setZbxServerActive | |
setZbxAgentHostname | |
if [ "x${ENABLE_AGENT}" = "xyes" ]; then | |
enableZbxAgent | |
fi | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
wget -q -O - https://gist.github.com/mainframe/5646082/raw/on-zbx-agentinstall.sh > on-zbx-agentinstall.sh
chmod 700 on-zbx-agentinstall.sh
./on-zbx-agentinstall.sh -s 10.0.0.4 -e