smokeping在centos 6.8上安装记录

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。