smokeping安装手册
一、【Smokeping 简介】
Smokeping是 rrdtool 的作者 Tobi Oetiker 的作品,所以它在图形显示方面有很大优势,也是一个很有特点的 opensource 工具:
多种探测方式,包括 fping、echoping、dig、curl 等;
易用可扩展的插件;
master/slave 的工作方式,可以在多个节点收集同一个监测点的数据;
很有特色的 alert 设置,不只是简单的设置一个阀值。
二、安装smokeping
据说安装smokeping 分为普通安装和脚本安装两种,脚本安装尚在研究中,我们这里仅介绍普通安装方法。
前提软件需求:
⑴freetype-devel-2.1.9-1.i386.rpm
⑵zlib-devel-1.2.1.2-1.i386.rpm
⑶libpng-devel-1.2.7-1.i386.rpm
⑷libart_lgpl-devel-2.3.16-3.i386.rpm
⑸CGI-SpeedyCGI-2.22.tar.gz
⑹libwww-perl-5.837.tar.gz
我们做的时候用的是CentOS 5.5
关闭 防火墙
# service iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
(一)、安装相关软件(RPM包)
smokeping 是一个用 perl 写的程序,所以不需要安装。但是他需要使用一些工具以及 perl 的 module,还有 rrdtool、fping、echoping 等,这些都需要预先安装好。smokeping 启动的时候,也会自己去检查需要用到的程序是否能找到。
# yum install gccgcc是一个用于linux系统下编程的编译器.假如不安装他的话在后面做CGI-SpeedyCGI时候会出错.
# yum install -y freetype-devel
# yum install -y zlib-devel
# yum install -y libpng-devel
# yum install -y libart_lgpl-devel
# yum install -y httpd-devel
Yum install –y perl*
除了以上的 rpm 包,还需手动安装以下的包。
rrdtool、cgilib、fping-2.4b2_to、echoping、CGI-SpeedyCGI-2.22、smokeping
rrdtool 依赖以下程序
# yum install freetype
# yum install libart_lgpl
# yum install libpng
# yum install zlib
# yum install –y freetype libart_lgpl libpng zlib
查看各软件包是否安装
# rpm -qa | grep freetype
freetype-devel-2.2.1-28.el5_5
freetype-2.2.1-28.el5_5
# rpm -qa | grep zlib
zlib-1.2.3-3
zlib-devel-1.2.3-3
# rpm -qa | grep libpng
libpng-1.2.10-7.1.el5_5.3
libpng-devel-1.2.10-7.1.el5_5.3
# rpm -qa | grep libart_lgpl
libart_lgpl-2.3.17-4
libart_lgpl-devel-2.3.17-4
(二)编译安装相关软件包(大部分软件包我都下载下来了,放在了我的FTP上面IP:211.151.88.7,用户名:wangrp,密码:1357)
1、安装CGI-SpeedyCGI
tar zxvf CGI-SpeedyCGI-2.22.tar.gz
cd CGI-SpeedyCGI-2.22
perl Makefile.PL 保持默认选项即可
遇到问题选择默认选项()
# ls /etc/httpd/modules/
libphp5.so mod_cgid.so mod_include.so mod_proxy.so
……
mod_cern_meta.so mod_imap.so mod_proxy_http.so
这个目录下没有 mod_speedycgi.so,现在需要去下载安装 mod_speedycgi.so
搜到了一个源
# wget ftp://195.220.108.108/linux/epel/5/i386/mod_speedycgi-2.22-4.el5.i386.rpm
warning: mod_speedycgi-2.22-4.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6
error: Failed dependencies:
perl-CGI-SpeedyCGI = 2.22-4.el5 is needed by mod_speedycgi-2.22-4.el5.i386
# wget ftp://fr.rpmfind.net/linux/EPEL/5Server/i386/perl-CGI-SpeedyCGI-2.22-4.el5.i386.rpm
# rpm -ivh --force perl-CGI-SpeedyCGI-2.22-4.el5.i386.rpm
# rpm -ivh mod_speedycgi-2.22-4.el5.i386.rpm
make
make test
make install
2、安装cgilib *//如果没有安装cgilib在编译rrdtool时会提示出错
tar zxvf cgilib-0.5.tar.gz
cd cgilib-0.5
对于0.5版本的cgilib源码部分需做一定的修改:
(1)在 cgi.c 里寻找 #include <malloc.h> ,把那行删掉
(2)修改cgitest.c中116行的错误
116行的代码如下:
printf ("<h3>Cookie "Library" set</h3>\n");
应为代码出错,正确的应是
printf ("<h3>Cookie \"Library\" set</h3>\n");
之后
gmake
gmake install *//采用gmake是因为cgilib版本为linux版本,用make无法安装
cp *.h /usr/include
cp libcgi* /usr/lib
3、安装rrdtool
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.26.tar.gz
tar zxvf rrdtool-1.2.26.tar.gz
cd rrdtool-1.2.26
./configure --prefix=/usr/local/rrdtool
如果确认以上没问题,
----------------------------------------------------------------
Config is DONE!
With MMAP IO: yes
Build rrd_getopt: no
Static programs: no
Perl Modules: perl_piped perl_shared
Perl Binary: /usr/bin/perl
Perl Version: 5.8.8
Perl Options: PREFIX=$(DESTDIR)/usr/local/rrdtool-1.3.6 LIB=$(DESTDIR)/usr/local/rrdtool-1.3.6/lib/perl/5.8.8
Ruby Modules:
Ruby Binary: no
Ruby Options: sitedir=$(DESTDIR)/usr/local/rrdtool-1.3.6/lib/ruby
Build Tcl Bindings: no
Build Python Bindings: yes
Build rrdcgi: yes
Build librrd MT: yes
Link with libintl: yes
Libraries: -lxml2 -lcairo -lcairo -lcairo -lm -lcairo -lpng12 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
Type 'make' to compile the software and use 'make install' to
install everything to: /usr/local/rrdtool-1.3.6.
... that wishlist is NO JOKE. If you find RRDtool useful
make me happy. Go to http://tobi.oetiker.ch/wish and
place an order.
-- Tobi Oetiker <tobi@oetiker.ch>
----------------------------------------------------------------
如果执行./configure还报configure: error: Please fix the library issues listed above and try again错误的话,那就执行
# yum -y install pango*
make
make install
4、Install Perl modules libwww-perl
tar -zxvf libwww-perl-5.837.tar.gz
cd libwww-perl-5.837
perl Makefile.PL
make; make install
5、安装fping2.4b2_to
tar zxvf fping-2.4b2_to.tar.tar
cd fping-2.4b2_to
./configure
make
make check
make install
完成后执行cd ..退回安装包的目录
6、安装echoping-5.2.0
安装之前首先需要安装一个软件包:libind-0.5.20.tar.gz,这是一个gnu的包,
Tar zxvf libind-0.5.20.tar.gz
Cd libind-0.5.20
./configure
Make
Make install
在我的FTP上也可以找到。
tar zxvf echoping-5.2.0.tar.gz
cd echoping-5.2.0
./configure
make
make test
遇到测试不成功等信息就ctrl+c回到命令行;
make install
完成后执行cd ..退回安装包的目录
7、安装smokeping
tar zxvf smokeping-2.4.2.tar.gz
mv smokeping-2.4.2 smokeping
cp –r smokeping /usr/local/smokeping 复制smokeping 目录及其子目录到/usr/local下
8、配置smokeping
相应文件改名:
转到/usr/local/smokeping下
bin下:cp smokeping.dist smokeping
etc下:cp config.dist config
cp basepage.html.dist basepage.html同时cp到/var/www下
cp smokemail.dist smokemail
cp tmail.dist tmail
htdocs下:cp smokeping.cgi.dist smokeping.cgi
建立目录:
mkdir /usr/local/smokeping/cache
mkdir /usr/local/smokeping/var //smokeping.pid
mkdir data
chmod 777 data 这里设置用户对data文件的权限
chown apache:apache data
cd /var/www
makedir /var/www/cache
chmod 777 cache
然后修改如下几个配置文件:
(1)cd /usr/local/smokeping/etc
cp config.dist config
vi config
sendmail = /usr/lib/sendmail
imgcache = /var/www/cache
imgurl = ../cache
datadir = /usr/local/smokeping/data
piddir = /usr/local/smokeping/var
cgiurl = http://211.151.88.12/cgi-bin/smokeping.cgi
smokemail = /usr/local/smokeping/etc/smokemail
tmail = /usr/local/smokeping/etc/tmail
template = /usr/local/smokeping/etc/basepage.html
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of CERNET Company. \
Here you will learn all about the latency of our network.
+ Interconnection
menu = Interconnection
title = IDC TO Operator
++ TO-21vianet
menu = TO-21vianet
title = TO-21vianet:211.151.88.253
host = 211.151.88.253
++ TO-CNC
menu = TO-CNC
title = TO-CNC:202.108.100.166
host = 202.108.100.166
++ TO-CNC1
menu = TO-CNC1
title = TO-CNC1:211.94.68.77
host = 211.94.68.77
++ TO-CNC2
menu = TO-CNC2
title = TO-CNC2:202.98.1.2
host = 202.98.1.2
***Probes***
+Fping
binary = /usr/local/sbin/fping
注释掉如下(或者删除):
#*** Slaves ***
#secrets=/usr/local/smokeping/etc/smokeping_secrets.dist
#+boomer
#display_name=boomer
#color=0000ff
+slave2
display_name=another
color=00ff00
(2) /usr/local/smokeping/htdocs/smokeping.cgi
#!/usr/bin/speedy
# -*-perl-*-
use strict;
use warnings;
use lib qw(/usr/local/rrdtool/lib/perl);
use lib qw(/usr/local/smokeping/lib);
use CGI::Carp qw(fatalsToBrowser);
use Smokeping 2.004002;
Smokeping::cgi("/usr/local/smokeping/etc/config");
(3) /usr/local/smokeping/bin/smokeping
#!/usr/bin/perl -w
# -*-perl-*-
use lib qw(/usr/local/rrdtool/lib/perl);
use lib qw(lib);
use strict;
use warnings;
use Smokeping 2.004002;
Smokeping::main("/usr/local/smokeping/etc/config");
(4) 启动smokeping
Cd /usr/local/smokeping
./bin/smokeping
(5) 建立启动脚本文件
参照:http://oss.oetiker.ch/smokeping/pub/contrib/smokeping-start-script
(6) 配置apache的httpd.conf
DocumentRoot "/var/www"
<Directory "/var/www">
#<Directory />
# Options FollowSymLinks
# AllowOverride None
#</Directory>
Option Indexes FollowSymlinks
去掉 Indexes
删除进程:
killall smokeping(多执行)
ps -efH |grep smokeping
启动进程:
#cd /usr/local/smokeping
./bin/smokeping
Service httpd restart
查看apache是否启动。
http://211.151.88.13/cgi-bin/smokeping.cgi
若出现:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@music.tiantui.com and inform them of the time the error occurred, and anything you might have done that may have caused the error
提示错误:
System-config-securitylevel-iul
关闭防火墙与selinux(皆选择disable) |