PHPの依存関係を調整してCactiをインストール
RPMforgeリポジトリをつかえばCactiのパッケージをyumから管理できるけど、NagiosのパッケージがPHP5.1依存していて、RPMforgeリポジトリからインストール済みのPHP5.3パッケージと干渉してしまう。
Cactiをインストールするときの依存関係チェック以外では問題なさそうなので、CactiのRPMをRPMforgeからダウンロードして依存関係を無視してインストールする。
モニタリングするサーバにSNMPデーモンをインストールしておく。
#!/bin/sh set -e set -u CONF_FILE="/etc/snmp/snmpd.conf" yum -q -y install yum rrdtool net-snmp net-snmp-utils mv ${CONF_FILE} "${CONF_FILE}.org" cp "${CONF_FILE}.org" ${CONF_FILE} sed -i \ -e 's/^com2sec/#com2sec/gi' \ -e 's/^group/#group/gi' \ -e 's/^view/#view/gi' \ -e 's/^access/#access/gi' \ -e 's/^syslocation/#syslocation/gi' \ -e 's/^syscontact/#syscontact/gi' \ "${CONF_FILE}" echo "" >> $CONF_FILE echo -e "com2sec\tlocalnet\tlocalhost\tlocal" >> $CONF_FILE echo -e "com2sec\tprivatenet\t192.168.0.0/16\tprivate" >> $CONF_FILE echo "" >> $CONF_FILE echo -e "group\tLocalNetworkGroup\tusm\tlocalnet" >> $CONF_FILE echo -e "group\tLocalNetworkGroup\tv2c\tlocalnet" >> $CONF_FILE echo -e "group\tLocalNetworkGroup\tv1\tlocalnet" >> $CONF_FILE echo -e "group\tLocalNetworkGroup\tusm\tprivatenet" >> $CONF_FILE echo -e "group\tLocalNetworkGroup\tv2c\tprivatenet" >> $CONF_FILE echo -e "group\tLocalNetworkGroup\tv1\tprivatenet" >> $CONF_FILE echo "" >> $CONF_FILE echo -e "view\tview_all\tincluded\t.1" >> $CONF_FILE echo "" >> $CONF_FILE echo -e "access\tLocalNetworkGroup\t\"\"\tany\tnoauth\texact\tview_all\tnone\tnone" >> $CONF_FILE echo "" >> $CONF_FILE echo "syslocation CentOS" >> $CONF_FILE echo "syscontact company admin@example.com" >> $CONF_FILE echo "" >> $CONF_FILE /sbin/chkconfig --level 2345 snmpd on /etc/rc.d/init.d/snmpd start echo "done."
必要なパッケージをyumでインストールしてから、CactiのパッケージをRPMコマンドから依存関係無視でインストールする。
#!/bin/sh set -e set -u TMPDIR=/tmp/rpm-cacti.$$ trap "exit 1" HUP INT PIPE QUIT TERM trap "rm -f ${TMPDIR}/*; rmdir ${TMPDIR}" EXIT yum -q -y install net-snmp net-snmp-utils yum --enablerepo=rpmforge -q -y install rrdtool mkdir -p $TMPDIR yumdownloader --enablerepo=rpmforge --destdir=${TMPDIR} cacti for RPM in `ls ${TMPDIR}/*.rpm` do rpm -ivh --nodeps ${RPM} rm -f ${RPM} done rmdir ${TMPDIR} mysql -u $MYSQLUSER -p $MYSQLPASS -e "CREATE DATABASE cacti;" mysql -u $MYSQLUSER -p $MYSQLPASS -e "GRANT ALL ON cacti.* TO cacti@'192.168.0.0/255.255.0.0' IDENTIFIED BY 'password';" mysql -u $MYSQLUSER -p $MYSQLPASS -e "FLUSH PRIVILEGES;" mysql -u $MYSQLUSER -p $MYSQLPASS -D cacti < /var/www/cacti/cacti.sql" echo "done."