1、环境:
centos 6.8 64位系统
所需软件:smokeping-2.6.11
2、运行smokeping所需软件以及perl模块:
fping-3.13、echoping-6.0.2、apache、rrdtool、gcc、make
perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-IO-Socket-SSL perl-Socket6 perl-RadiusPerl perl-Time-HiRes perl-IO-Socket-SSL perl-Socket6 perl-FCGI perl-RRD-Simple perl-CPAN rrdtool-perl perl-CGI-SpeedCGI perl-ExtUtils-MakeMaker
3、使用yum直接安装一些依赖包:
yum install -y perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-IO-Socket-SSL perl-Socket6 perl-RadiusPerl perl-Time-HiRes perl-IO-Socket-SSL perl-Socket6 perl-FCGI perl-RRD-Simple perl-CPAN rrdtool-perl perl-CGI-SpeedCGI perl-ExtUtils-MakeMaker rrdtool rrdtool-perl curl httpd httpd-devel gcc make wget libxml2-devel libpng-devel pango pango-devel freetype freetype-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel popt popt-devel libidn libidn-devel
4、安装fping:
可以从http://www.fping.org/这里自行下载
解压安装:./configure && make && make install 直接安装就行,不多做展示了。
做个链接供以后使用:ln -s /usr/local/sbin/fping /usr/sbin/fping
5、安装echoping:
popt popt-devel libidn libidn-devel这几个是安装echoping必须的,上边已经安装过。
软件包自己找吧:echoping-6.0.2.tar.gz
解压安装:./configure && make && make install
6、安装smokeping:
此时需要一些perl模块,源码中提供了自动安装perl模块的脚本,运行过自动安装perl脚本以后再安装可能会提示缺少Sys::Syslog这个模块,根据情况自己安装就行:
./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty/ #此处如果有些模块安装失败了就用cpan手动安装就行。
cpan修改镜像站为境内的,第一次运行第一处选no,
然后一路回车到选镜 像站地点即可。
./configure --prefix=/usr/local/smokeping
出现下边界面说明正常:
** Ready to install Smokeping ******************************
Settings:
PERL5LIB = not set
PERL = /usr/bin/perl
The Smokeping Makefiles use GNU make functionality.
Continue installation with
/usr/bin/gmake install
最后执行这个安装即可:
/usr/bin/gmake install
7、配置smokeping:
安装完成先创建几个必须文件,以下操作在/usr/local/smokeping下执行:
mkdir {data,cache,var}
mv cache htdocs/
cp etc/config.dist etc/config
cp htdocs/smokeping.fcgi.dist htdocs/smokeping.fcgi
chown apache.apache /usr/local/smokeping -R
chmod 600 etc/smokeping_secrets.dist
touch /var/log/smokeping.log
chown apache:apache /var/log/smokeping.log
配置etc/config,此处只列出需要修改的地方:
*** General ***
imgcache = /usr/local/smokeping/htdocs/cache
cgiurl = http://some.url/smokeping.cgi #some.url改为本机IP或者域名
*** Database ***
step = 300 #ping检测周期,单位S
pings = 30 #检测周期内ping的次数
此处自行修改就行,可以60s内ping30次。
*** Presentation ***
charset = utf-8 #添加支持中文显示
+ overview
width = 1000
height = 150
range = 12h
+ detail
width = 1000
height = 200
unison_tolerance = 2
"Last 3 Hours" 3h
"Last 24 Hours" 24h
"Last 7 Days" 7d
"Last 30 Days" 30d
*** Slaves *** 一台主机可以不用配置slaves需要用到了自行配置即可
secrets=/usr/local/smokeping/etc/smokeping_secrets.dist #验证slave节点的文件
+boomer #slave配置模板
display_name=boomer
color=0000ff #slave检测的丢包率曲线颜色
*** Targets *** #下面是写需要监控的目标IP
+ FIRST
menu = FIRST1 # 浏览器左栏的节点名
title = FIRST-1 # 标题
remark = FIRST-1 # 注释
++ host1
menu = host1
title = host_1
host = 172.16.10.10
++ host2
menu = host2
title = host_2
host = 172.16.10.11
slaves=192.168.10.100 # (单节点模式可以不配置slave)
此处一个+表示一级栏目,++表示一级下的二级栏目
8、启动测试
可以用一下几个命令检测下,更多的命令可以使用help查看如:/usr/local/smokeping/bin/smokeping –help
先check一下配置,没问题会输出OK:
/usr/local/smokeping/bin/smokeping –check
Configuration file ‘/usr/local/smokeping/bin/../etc/config’ syntax OK.
再用–debug-daemon运行下试试:
/usr/local/smokeping/bin/smokeping –logfile=/var/log/smokeping.log –debug-daemon
最后出现这两行说明成功,具体日志可以去logfile查看,里边会有绘图信息的:
Note: logging to syslog as local0/info.
Daemonizing /usr/local/smokeping/bin/smokeping …
9、结合apache在网页中显示
在apache配置文件中新建一个虚拟主机,配置如下:
<VirtualHost *:80>
DocumentRoot /usr/local/smokeping/htdocs
ServerName 改成本机IP
ErrorLog /var/log/smokeping.log
CustomLog /var/log/smokeping.log common
<Directory "/usr/local/smokeping/htdocs">
Options FollowSymLinks ExecCGI
AllowOverride None
Options All
AddHandler cgi-script .fcgi .cgi
Order allow,deny
Allow from all
DirectoryIndex smokeping.fcgi
</Directory>
</VirtualHost>
此时打开页面以后发现页面上汉字可以正常显示,图上的中文不显示,安装一个中文字体就可以了。这个是我从网上找的字体包:
yum -y install wqy-zenhei-fonts.noarch
安装以后再刷新页面,图上的中文也可以正常显示了。友情提示:最好先关闭selinux,要不就自己调权限,报错可以从运行日志查看。
这个登陆本身是没有验证的。不是太安全。可以自己用 htpasswd自己加验证。但是这样加以后使用slave以后会出现登陆验证问题。方便起见,直接修改apache虚拟主机配置,设置允许访问的IP即可,修改这几个就行:
Order deny,allow
Deny from all
Allow from IP1
Allow from IP2
10、master和slaves的配置:
实际应用中会使用多个节点监控来做对比,所以可以使用smokeping的slave来检测主机情况,并将结果传送到master端显示。
slave节点上不需要安装apache服务。只需安装fping、echoping以及smokeping即可。安装方法看最上边即可。slave端需要做下简单的配置:
mkdir data var cache
echo "slavesecret" /usr/local/smokeping/etc/slave_secert.txt
chmod 600 /usr/local/smokeping/etc/slave_secert.txt
chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist
cp etc/config.dist etc/config
touch /var/log/smokeping.log
master端需要做如下处理,编辑etc/config文件修改一下地方:
*** Slaves ***
secrets=/usr/local/smokeping/etc/smokeping_secrets.dist
+zhengzhou1 #节点名称
display_name=郑州节点
color=00ff00
+xiangg1 #节点名称
display_name=香港节点
color=8b0000
*** Targets *** #下面是写需要监控的目标IP
+ FIRST
menu = FIRST1 # 浏览器左栏的节点名
title = FIRST-1 # 标题
remark = FIRST-1 # 注释
++ host1
menu = host1
title = host_1
host = 172.16.10.10
slaves = zhengzhou1 xiangg1
++ host2
menu = host2
title = host_2
host = 172.16.10.11
slaves = zhengzhou1 xiangg1
修改master端的smokeping_secrets.dist文件,配置节点名称和通信秘钥,内容格式如下:
zhengzhou1:slavesecret
xiangg1:slavesecret
先给master和slave服务器上配置好。然后启动slave,否则会提示报错,无法从master端读取需要监控的节点。下面是在slave节点上启动命令:
/usr/local/smokeping/bin/smokeping \
--master-url=http://sp.lls0.com \
--cache-dir=/usr/local/smokeping/cache/ \
--shared-secret=/usr/local/smokeping/etc/slave_secret.txt \
--slave-name=192.168.10.100 --logfile=/var/log/smokeping.log
使用–help可以看到每个的含义,就不做说明了。此时通过网页应该可以查看到每个节点的检测情况的。提示:关闭selinux。