nagios 安装脚本
来源:互联网 发布:mac连接服务器失败 编辑:程序博客网 时间:2024/06/05 07:02
研究了一段时间nagios,其实安装很简单,但头懒得做,要求脚本啊。。。
#! /usr/bin/env bash# Author: Lawrency Meng# Date: 2013-3-1# Version: v1.0.2# Description: the nagios install sh# dirs contTOP_DIR=`cd $(dirname "$0") && pwd`SRC_DIR="${TOP_DIR}/src"DEPEND="${TOP_DIR}/apt"PLUGIN_DIR="${TOP_DIR}/plugin"ETC_DIR="${TOP_DIR}/etc"NAGIOS_DIR="/usr/local/nagios/"UNTAR_TMP="/tmp/nagios/"PLUGIN_DIR="$NAGIOS_DIR/libexec/"# srcs contCORE_SRC="nagios-3.4.4.tar.gz"NRPE_SRC="nrpe-2.14.tar.gz"PLUGIN_SRC="nagios-plugins-1.4.16.tar.gz"NDOUTILS_SRC="ndoutils-1.5.2.tar.gz"# check the depends in apt filefunction check_depends(){#apt-get update while read -r line do dpkg -l $line > /dev/null || apt-get install -y $line done < $DEPEND}# check the use inputfunction check_input(){ if [ "x${CHOOSE}" == "x" ]; then return "ok" fi if [[ "${CHOOSE}" =~ (c|C|n|N|p|P|d|D) ]]; then return "err" else return "err" fi}# check the untar tmp dirfunction check_dir(){ if [ ! -z ${UNTAR_TMP} ]; then sudo mkdir -p ${UNTAR_TMP} echo "[Info] Create the untar temp dir ${UNTAR_TMP}" fi}# create users and groups function create_UG(){ if [ ! `getent passwd nagios` > /dev/null ]; then echo "[Info] Creating a user called nagios..." useradd -U -G sudo -s /bin/bash -m nagios groupadd nagcmd usermod -a -G nagcmd www-data get_sudocp -r $TOP_DIR /home/nagios/chown -R nagios:nagios /home/nagios/ else echo "[Info] user nagios is exist..." fi}# give sudo privfunction get_sudo(){ echo "[Info] Giving nagios user passwordless sudo priviledges" grep -q "^#includedir.*/etc/sudoers.d" /etc/sudoers || echo "#includedir /etc/sudoers.d" >> /etc/sudoers ( umask 226 && echo "nagios ALL=(ALL) NOPASSWD:ALL" \ > /etc/sudoers.d/50_nagios_sh )}# switch userfunction switch_user(){chown -R nagios:nagios /usr/local/nagios/}# clean install filesfunction clean(){if [ $1 = 'PLUGIN' ]; thencd ${UNTAR_TMP}/${PLUGIN_SRC/.tar.gz/}make cleanfiif [ $1 = 'NRPE' ]; thencd ${UNTAR_TMP}/${NRPE_SRC/.tar.gz/}make clean[ `iptables --list | grep 'nrpe' > /dev/null` ] && sudo iptables -D INPUT -p tcp -m tcp --dport 5666 -j ACCEPT[ `grep -i 'nrpe' /etc/services > /dev/null` ] && sed -i "/nrpe/ d" /etc/services [ `grep -i "iptables-restore" /etc/network/interfaces > /dev/null` ] && sed -i "/iptables-restore/ d" /etc/network/interfacesfiif [ $1 = 'CORE' ]; thencd ${UNTAR_TMP}/${CORE_SRC%%-*}make cleanfi}# core install funcfunction core_install(){ switch_user nagios cd ${SRC_DIR} check_dir sudo tar -zxvf ${CORE_SRC} -C ${UNTAR_TMP} && cd ${UNTAR_TMP}/${CORE_SRC%%-*} ./configure --with-command-group=nagcmdmake clean make all make install && make install-init && make install-config && make install-commandmode echo "[Info] Install nagios core successfully..." switch_user root}function nrpe_install(){ switch_user nagios`clean "NRPE"` cd ${SRC_DIR} check_dir sudo tar -xzvf ${NRPE_SRC} -C ${UNTAR_TMP} && cd ${UNTAR_TMP}/${NRPE_SRC/.tar.gz/} ./configure --with-ssl=/usr/lib/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu/ --enable-command-args make all make install-plugin && make install-daemon && make install-daemon-config && make install-xinetd cp -r ${ETC_DIR} ${NAGIOS_DIR}/etc/ sed -i "s/dont_blame_nrpe=0/dont_blame_nrpe=1/g" /usr/local/nagios/etc/nrpe.cfg[ ! `grep -i 'nrpe' /etc/services > /dev/null` ] && echo -e "nrpe\t5666/tcp\t#NRPE" >> /etc/servicesservice xinetd restart[ ! `iptables --list | grep 'nrpe' > /dev/null` ] && sudo iptables -A INPUT -p tcp -m tcp --dport 5666 -j ACCEPTiptables-save[ ! `grep -i "iptables-restore" /etc/network/interfaces > /dev/null` ] && sed -i "/iface eth0/a\\pre-up iptables-restore < /etc/iptables.up.rules" /etc/network/interfaces [ ! "`netstat -at | grep nrpe`" ] && echo "[info] Install nagios nrpe successfully..." switch_user root}function plugin_install(){ switch_user`clean "PLUGIN"` cd ${SRC_DIR} check_dir tar -xzvf ${PLUGIN_SRC} -C ${UNTAR_TMP} && cd ${UNTAR_TMP}/${PLUGIN_SRC/.tar.gz/} ./configure --with-nagios-user=nagios --with-nagios-group=nagios make && make installcp ${PLUGIN_DIR}/* /usr/local/nagios/libexec/ [ -d "/usr/local/nagios/libexec" ] && echo "[Info] Install nagios plugin successfully..." echo "[Info] Nagios plugin default install in dir: /usr/local/nagios/libexec/" switch_user }function main(){ check_depends create_UG while true do echo "[Info] Please choose to install nagios modules: " echo "[c] Nagios core" echo "[n] Nagios NRPE" echo "[p] Nagios plugin"# echo "[d] Nagios NDOUtils" echo "[e] exit..." read -p ">>>>" CHOOSE case "${CHOOSE}" in [cC]) core_install ;; [nN]) nrpe_install ;; [pP]) plugin_install ;;# [dD]) ndoutil_install ;; [eE]) exit 0;; *) echo "[Err] only accept input [ cC | nN | pP | dD | eE ]" ;; esac done}main $@