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。