/code/shell/setup_smokeping.sh
Shell | 110 lines | 59 code | 32 blank | 19 comment | 0 complexity | 9e5b82a009133c8e449f19306210f68a MD5 | raw file
- ### Setup SmokePing on CentOS/RHEL/Fedora based systems
-
- # @see http://lzheng.blogspot.com/2007/02/install-smokeping-via-yum.html
- # @see http://slog.carlheaton.co.uk/index.php/2009/06/centos-5-3-smokeping-2-4-2-install-quick/
-
- # Install the prerequisites
-
- yum install rrdtool perl-CGI-SpeedyCGI fping
-
- # Get the latest SmokePing download
-
- wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.4.2.tar.gz
- tar xvzf smokeping-*.tar.gz
- rm -f smokeping-*.tar.gz
-
- # Move SmokePing to the right place
-
- mv smokeping-* /usr/local/smokeping
- chown -R `id -nu`:`id -ng` /usr/local/smokeping
-
- # Copy distributed files
-
- cp /usr/local/smokeping/bin/smokeping.dist /usr/local/smokeping/bin/smokeping
- cp /usr/local/smokeping/bin/tSmoke.dist /usr/local/smokeping/bin/tSmoke
- cp /usr/local/smokeping/etc/tmail.dist /usr/local/smokeping/etc/tmail
- cp /usr/local/smokeping/etc/basepage.html.dist /usr/local/smokeping/etc/basepage.html
- cp /usr/local/smokeping/etc/smokemail.dist /usr/local/smokeping/etc/smokemail
- cp /usr/local/smokeping/etc/smokeping_secrets.dist /usr/local/smokeping/etc/smokeping_secrets
- cp /usr/local/smokeping/etc/config.dist /usr/local/smokeping/etc/config
- cp /usr/local/smokeping/htdocs/smokeping.cgi.dist /usr/local/smokeping/htdocs/smokeping.cgi
- cp /usr/local/smokeping/htdocs/tr.cgi.dist /usr/local/smokeping/htdocs/tr.cgi
-
- # Configure SmokePing exec
-
- #use lib qw(/usr/pack/rrdtool-1.3.0-rp/lib/perl);
- sed -i 's#use lib qw(/usr/pack/rrdtool-1.3.0-rp/lib/perl);#use lib qw(/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/auto/RRDs);#g' /usr/local/smokeping/bin/smokeping
- sed -i 's#use lib qw(lib);#use lib qw(/usr/local/smokeping/lib);#g' /usr/local/smokeping/bin/smokeping
- sed -i 's#Smokeping::main("etc/config.dist");#Smokeping::main("/usr/local/smokeping/etc/config");#g' /usr/local/smokeping/bin/smokeping
-
- # Configure SmokePing CGI
-
- sed -i 's#use lib qw(/usr/pack/rrdtool-1.3.0-rp/lib/perl);#use lib qw(/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/auto/RRDs);#g' /usr/local/smokeping/htdocs/smokeping.cgi
- sed -i 's#use lib qw(/home/oetiker/checkouts/smokeping/trunk/software/lib);#use lib qw(/usr/local/smokeping/lib);#g' /usr/local/smokeping/htdocs/smokeping.cgi
- sed -i 's#Smokeping::cgi("/home/oetiker/checkouts/smokeping/trunk/software/etc/config.dist");#Smokeping::cgi("/usr/local/smokeping/etc/config");#g' /usr/local/smokeping/htdocs/smokeping.cgi
-
- # Setup directories
-
- mkdir -p /usr/local/smokeping/htdocs/img
- mkdir /usr/local/smokeping/var
-
- # Configure for Apache
-
- echo "AddHandler cgi-script cgi" >> /usr/local/smokeping/htdocs/.htaccess
- echo "Options ExecCGI Indexes FollowSymLinks" >> /usr/local/smokeping/htdocs/.htaccess
- echo "DirectoryIndex index.html smokeping.cgi" >> /usr/local/smokeping/htdocs/.htaccess
-
- # Set permissions for security and apache
-
- chmod 600 /usr/local/smokeping/etc/smokeping_secrets
- chmod 600 /usr/local/smokeping/etc/smokeping_secrets
- chown -R apache:apache /usr/local/smokeping/htdocs/
- chmod 755 /usr/local/smokeping/htdocs/
- chmod 755 /usr/local/smokeping/htdocs/*.cgi
-
- # Create the symbolic link for httpd document root
-
- ln -s /usr/local/smokeping/htdocs `grep -i '^DocumentRoot' /etc/httpd/conf/httpd.conf | cut -f2 -d'"'`/smokeping
-
- # Configuration
-
- sed -i 's#owner = Peter Random#owner = '`whoami`'#g' /usr/local/smokeping/etc/config
- sed -i 's#contact = some@address.nowhere#contact = '`whoami`@`hostname`'#g' /usr/local/smokeping/etc/config
- sed -i 's#mailhost = my.mail.host#mailhost = '`hostname`'#g' /usr/local/smokeping/etc/config
- sed -i 's#imgcache = /home/oetiker/public_html/smokeping-ms/cache#imgcache = /usr/local/smokeping/htdocs/img#g' /usr/local/smokeping/etc/config
- sed -i 's#imgurl = cache#imgurl = http://'`hostname`'/smokeping/img#g' /usr/local/smokeping/etc/config
- sed -i 's#datadir = /tmp/smokeping-ms/data#datadir = /usr/local/smokeping/var#g' /usr/local/smokeping/etc/config
- sed -i 's#piddir = /tmp/smokeping-ms/var#piddir = /usr/local/smokeping/var#g' /usr/local/smokeping/etc/config
- sed -i 's#cgiurl = http://some.url/smokeping.cgi#cgiurl = http://'`hostname`'/cgi-bin/smokeping.cgi#g' /usr/local/smokeping/etc/config
- sed -i 's#smokemail = /home/oetiker/checkouts/smokeping/trunk/software/etc/smokemail.dist#smokemail = /usr/local/smokeping/etc/smokemail#g' /usr/local/smokeping/etc/config
- sed -i 's#tmail = /home/oetiker/checkouts/smokeping/trunk/software/etc/tmail.dist#tmail = /usr/local/smokeping/etc/tmail#g' /usr/local/smokeping/etc/config
- sed -i 's#to = alertee@address.somewhere#to = '`whoami`@`hostname`'#g' /usr/local/smokeping/etc/config
- sed -i 's#from = smokealert@company.xy#from = smokeping@'`hostname`'#g' /usr/local/smokeping/etc/config
- sed -i 's#template = /home/oetiker/checkouts/smokeping/trunk/software/etc/basepage.html.dist#template = /usr/local/smokeping/etc/basepage.html#g' /usr/local/smokeping/etc/config
- sed -i 's#secrets=/home/oetiker/checkouts/smokeping/trunk/software/etc/smokeping_secrets.dist#secrets=/usr/local/smokeping/etc/smokeping_secrets#g' /usr/local/smokeping/etc/config
- sed -i 's#remark = Welcome to the SmokePing website of xxx Company. \\#remark = Welcome to the SmokePing website of '`hostname`'.\\#g' /usr/local/smokeping/etc/config
-
- # Configure targets
-
- sed -i 's#+ Test#+ Targets#g' /usr/local/smokeping/etc/config
-
- sed -i 's#++ James#++ Google#g' /usr/local/smokeping/etc/config
- sed -i 's#menu = James#menu = Google#g' /usr/local/smokeping/etc/config
- sed -i 's#title =James#title = Google#g' /usr/local/smokeping/etc/config
- sed -i 's/slaves = boomer slave2/#slaves = boomer slave2/g' /usr/local/smokeping/etc/config
- sed -i 's#host = james.address#host = www.google.com#g' /usr/local/smokeping/etc/config
-
- sed -i 's/++ MultiHost/#++ MultiHost/g' /usr/local/smokeping/etc/config
- sed -i 's/menu = Multihost/#menu = Multihost/g' /usr/local/smokeping/etc/config
- sed -i 's/title = James and James as seen from Boomer/#title = James and James as seen from Boomer/g' /usr/local/smokeping/etc/config
- sed -i 's|host = /Test/James /Test/James~boomer|#host = /Test/James /Test/James~boomer|g' /usr/local/smokeping/etc/config
-
- # Add to startup
-
- echo /usr/local/smokeping/bin/smokeping & >> /etc/rc.d/rc.local
-
- # Run
-
- /usr/local/smokeping/bin/smokeping &
-
- # Done!