复制 #!/bin/ksh NAGIOSSRC=nagios-3.0.6 NAGIOSPLUGINSRC=nagios-plugins-1.4.13 NAGIOSCONTACTSCFG=/usr/local/nagios/etc/objects/contacts.cfg NAGIOSPASSWD=/usr/local/nagios/etc/htpasswd.users PASSWD=cluster OS=foo function buildNagiosPlug { if [ -e $NAGIOSPLUGINSRC.tar.gz ] then echo "found $NAGIOSPLUGINSRC.tar.gz building and installing Nagios" else echo "could not find $NAGIOSPLUGINSRC.tar.gz in current directory." echo "Please run $0 in the same directory as the source files." exit 1 fi echo "Extracting Nagios Plugins..." tar zxf $NAGIOSPLUGINSRC.tar.gz cd $NAGIOSPLUGINSRC echo "Configuring Nagios Plugins..." if ./configure --with-nagios-user=nagios --with-nagios-group=nagios -prefix=/usr/local/nagios > config.LOG.$$ 2>&1 then echo "Making Nagios Plugins..." if make -j8 > make.LOG.$$ 2>&1 then make install > make.LOG.$$ 2>&1 else echo "Make failed of Nagios plugins. See $NAGIOSPLUGINSRC/make.LOG.$$" exit 1 fi else echo "configure of Nagios plugins failed. See config.LOG.$$" exit 1 fi echo "Successfully built and installed Nagios Plugins!" cd .. } function buildNagios { if [ -e $NAGIOSSRC.tar.gz ] then echo "found $NAGIOSSRC.tar.gz building and installing Nagios" else echo "could not find $NAGIOSSRC.tar.gz in current directory." echo "Please run $0 in the same directory as the source files." exit 1 fi echo "Extracting Nagios..." tar zxf $NAGIOSSRC.tar.gz cd $NAGIOSSRC echo "Configuring Nagios..." if ./configure --with-command-group=nagcmd> config.LOG.$$ 2>&1 then echo "Making Nagios..." if make all -j8 > make.LOG.$$ 2>&1 then make install > make.LOG.$$ 2>&1 make install-init > make.LOG.$$ 2>&1 make install-config > make.LOG.$$ 2>&1 make install-commandmode > make.LOG.$$ 2>&1 make install-webconf > make.LOG.$$ 2>&1 else echo "make all failed. See log:" echo "$NAGIOSSRC/make.LOG.$$" exit 1 fi else echo "configure of Nagios failed. Please read $NAGIOSSRC/config.LOG.$$ for details." exit 1 fi echo "Done Making Nagios!" cd .. } function configNagios { echo "Well now configure Nagios." LOOP=1 while [[ $LOOP -eq 1 ]] do echo "Youll need to put in a user name. This should be the person" echo "who will be receiving alerts. This person should have an account" echo "on this server. " print "Type in the userid of the person who will receive alerts (e.g. bob)> \c" read NAME print "What is ${NAME}s email?使用> \c" read EMAIL echo echo echo "Nagios alerts will be sent to $NAME at $EMAIL" print "Is this correct? [y/N] \c" read YN if [[ "$YN" = "y" ]] then LOOP=0 fi done if [ -r $NAGIOSCONTACTSCFG ] then perl -pi -e "s/nagiosadmin/$NAME/g" $NAGIOSCONTACTSCFG EMAIL=$(echo $EMAIL | sed s/\@/\\\\@/g) perl -pi -e "s/nagios\@localhost/$EMAIL/g" $NAGIOSCONTACTSCFG else echo "$NAGIOSCONTACTSCFG does not exist" exit 1 fi echo "setting ${NAME}s password to be cluster in Nagios" echo " you can change this later by running: " echo " htpasswd -c $NAGIOSPASSWD $Name)" htpasswd -bc $NAGIOSPASSWD $NAME cluster if [ "$OS" = "rh" ] then service httpd restart fi } function preNagios { if [ "$OS" = "rh" ] then echo "making sure prereqs are installed" yum -y install httpd gcc glibc glibc-common gd gd-devel perl-TimeDate /usr/sbin/useradd -m nagios echo $PASSWD | passwd --stdin nagios /usr/sbin/groupadd nagcmd /usr/sbin/usermod -a -G nagcmd nagios /usr/sbin/usermod -a -G nagcmd apache fi } function postNagios { if [ "$OS" = "rh" ] then chkconfig --add nagios chkconfig nagios on # touch this file so that if it doesnt exist we wont get errors touch /var/www/html/index.html service nagios start fi echo "You may now be able to access Nagios at the URL below:" echo "http://localhost/nagios" } if [ -e /etc/redhat-release ] then echo "installing monitoring on Red Hat system" OS=rh fi # make sure youre root: ID=$(id -u) if [ "$ID" != "0" ] then echo "Must run this as root!" exit 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.99.100.101.102.103.104.105.106.107.108.109.110.111.112.113.114.115.116.117.118.119.120.121.122.123.124.125.126.127.128.129.130.131.132.133.134.135.136.137.138.139.140.141.142.143.144.145.146.147.148.149.150.151.152.153.154.155.156.157.158.159.160.161.162.163.164.165.166.167.168.169.170.171.172.173.174.175.176.177.178.179.180.181.182.183.184.185.186.187.188.189.190.191.192.193.194.195.196.197.198.199.200.201.202.203.204.205.206.207.208.209.210.211.212.213.214.215.216.217.218.219.220.221.222.223.224.225.226.227.228.229.230.231.232.233.234.235.236.237.238.239.240.241.242.243.244.245.246.247.248.249.250.251.252.253.254.255.256.257.258.259.260.261.262.263.264.265.266.267.268.269.270.271.272.273.274.275.276.277.278.279.280.281.282.283.284.285.286.287.288.289.290.291.292.293.294.295.296.