• linux6下网络环境监控工具smokeping部署


    smokeping简介

    smokeping是一款监控网络状态和稳定性的开源软件(它是rrdtool的作者开发的),通过它可以监控到公司IDC的网络状况,如延时,丢包率,是否BGP多线等;

    smokeping会向目标设备和系统发送各种类型的测试数据包,测量、记录,并通过rrdtool制图方式,图形化地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况;

    通过smokeping来监控IDC机房网络质量情况,可以从监控图上的延时与丢包情况分辨出机房的网络是否稳定,是否为多线,是否为BGP机房以及到各城市的三个运行商网络各是什么情况。如果出现问题,可以有针对性的去处理;如果选择新机房的时候,还可以根据smokeping的监控结果来判断这个机房是否适合。

    需要注意的是:smokeping监控的是网络稳定性,而cacti或zabbix监控的是带宽使用情况(即进出口流量)、

    smokeping部署过程

     安装smokeping的依赖包

    [root@linux-node1 ~]# yum -y install perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-RadiusPerl perl-IO-Socket-SSL perl-Socket6 perl-CGI-SpeedyCGI perl-FCGI perl-CGI-SpeedCGI perl-Time-HiRes perl-ExtUtils-MakeMaker perl-RRD-Simple rrdtool rrdtool-perl curl fping echoping  httpd httpd-devel gcc make  wget libxml2-devel libpng-devel glib pango pango-devel freetype freetype-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel mod_fastcgi screen
    

     部署smokeping

    [root@linux-node1 ~]# cd /usr/local/src/   #进入默认源码包存放路径
    
    [root@linux-node1 ~]# wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.9.tar.gz #下载smokeping包
    
    [root@linux-node1 src]# tar xf smokeping-2.6.9.tar.gz   #解压smokeping
    
    [root@linux-node1 src]# cd smokeping-2.6.9 
    
    [root@linux-node1 smokeping-2.6.9]# ./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty
    
    [root@linux-node1 smokeping-2.6.9]# ./configure --prefix=/usr/local/smokeping   #编译smokeping到/usr/local
    
    [root@linux-node1 smokeping-2.6.9]# /usr/bin/gmake install
    
    [root@linux-node1 smokeping-2.6.9]# cd /usr/local/smokeping/    #进入smokeping目录
    
    [root@linux-node1 smokeping]# mkdir cache data var   #创建三个目录
    
    [root@linux-node1 smokeping]# touch /var/log/smokeping.log    #创建smokeping日志文件
    
    [root@linux-node1 smokeping]# chown apache.apache cache/ data/ var/ /var/log/smokeping.log   #授权属主属组为apache
    
    [root@linux-node1 smokeping]# cd /usr/local/smokeping/htdocs/   #进入smokeping下htdocs目录
    
    [root@linux-node1 htdocs]# mv smokeping.fcgi.dist smokeping.fcgi   #修改smokeping文件名
    
    [root@linux-node1 smokeping]# mv /usr/local/smokeping/etc/config.dist /usr/local/smokeping/etc/config   #修改smokeping配置文件名称
    

     修改smokeping配置文件如下:

    [root@goser1 smokeping]# vim  /usr/local/smokeping/etc/config 
    
    cgiurl   = http://192.168.1.120/smokeping.cgi  #配置smokeping主机地址
    *** Database ***
    
    step     = 60      #默认检测时间300秒修改60秒
    pings    = 60      #默认ping20次,修改为60秒ping60次
    *** Presentation ***
    
    charset = utf-8    #在presentation添加utf-8中文字符集
    

     修改smokeping密码文件的权限为root

    [root@linux-node1 smokeping]# chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist
    

     设置smokeping登录密码认证

    [root@linux-node1 htdocs]# htpasswd -c /usr/local/smokeping/htdocs/htpasswd darker
    New password:
    Re-type new password:
    Adding password for user darker
    

     修改apache的配置文件,配置smokeping的站点

    [root@linux-node1 ~]# vim /etc/httpd/conf/httpd.conf
    
    #ServerName www.example.com:80  # 在此行下面添加如下一行,不然启动会报错
    ServerName localhost:80
    
    
    DocumentRoot "/var/www/html"   #在这行下面添加如下---标红的代表密码验证
    
    Alias /cache "/usr/local/smokeping/cache/"
    Alias /cropper "/usr/local/smokeping/htdocs/cropper/"
    Alias /smokeping "/usr/local/smokeping/htdocs/smokeping.fcgi"
    <Directory "/usr/local/smokeping">
    AllowOverride None
    Options All
    AddHandler cgi-script .fcgi .cgi
    Order allow,deny
    Allow from all
    AuthName "Smokeping"
    AuthType Basic
    AuthUserFile /usr/local/smokeping/htdocs/htpasswd
    Require valid-user
    DirectoryIndex smokeping.fcgi
    </Directory>
    

     创建smokeping的启动脚本,让smokeping可以启动、停止、重启、开机自启动等

    [root@linux-node1 ~]# cat /etc/init.d/smokeping 
    #!/bin/bash
    #
    # chkconfig: 2345 80 05
    # Description: Smokeping init.d script
    # Write by : goser
    # Get function from functions library
    . /etc/init.d/functions
    
    # Start the service Smokeping
    
    function start() {
    echo -n "Starting Smokeping: "
    /usr/local/smokeping/bin/smokeping >/dev/null 2>&1
    ### Create the lock file ###
    
    touch /var/lock/subsys/smokeping
    
    success $"Smokeping startup"
    echo
    }
    
    # Restart the service Smokeping
    
    function stop() {
    echo -n "Stopping Smokeping: "
    kill -9 `ps ax |grep "/usr/local/smokeping/bin/smokeping" |
    grep -v grep | awk '{ print $1 }'` >/dev/null 2>&1
    
    ### Now, delete the lock file ###
    
    rm -f /var/lock/subsys/smokeping
    success $"Smokeping shutdown"
    echo
    }
    
    #Show status about Smokeping
    
    function status() {
    
    NUM="`ps -ef|grep smokeping|grep -v grep|wc -l`"
    
    if [ "$NUM" == "0" ];then
        echo "Smokeping is not run"
    else
        echo "Smokeping is running"
    fi
    
    }
    
    ### main logic ###
    
    case "$1" in
    
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status
        ;;
    
    restart|reload)
        stop
        start
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart|reload|status}"
        exit 1
        ;;
    esac
    
    exit 0
    

     启动httpd、smokeping服务并设置其开机自启动

    [root@linux-node1 ~]# chmod 755 /etc/init.d/smokeping   #添加脚本755权限
    
    [root@linux-node1 ~]# chkconfig --add smokeping    #将smokeping加入开机启动
    
    [root@linux-node1 ~]# chkconfig smokeping on   #设置smokeping为开机启动
    
    [root@linux-node1 ~]# chkconfig httpd on    #设置apache为开机启动
    
    [root@linux-node1 ~]# /etc/init.d/httpd start    #启动apache服务
    
    [root@linux-node1 ~]# /etc/init.d/smokeping start   #启动smokeping服务
    

     添加需要监控网络状态的站点或服务主机

      要添加站点或主机ip地址的话,只能再smokeping的配置文件中添加,无法通过smokeping的web界面添加,在添加完站点后重启smokeping,会在在/usr/local/smokeping/data 之下添加moniter文件夹,其下包含website子文件夹

      注意添加监控节点方式为:+是第一层,++是第二层,+++ 是第三层

    + Other
    
    menu = 三大网络监控
    title = 监控统计
    
    ++ dianxin
    
    menu = 电信网络监控
    title = 电信网络监控列表
    host = /Other/dianxin/dianxin-bj /Other/dianxin/dianxin-hlj /Other/dianxin/dianxin-tj /Other/dianxin/dianxin-sc /Other/dianxin/dianxin-sh /Other/dianxin/dianxin-gz
    
    +++ dianxin-bj
    
    menu = 北京电信
    title = 北京电信
    alerts = someloss
    host = 202.96.199.133
    
     
    
    +++ dianxin-hlj
    
    menu = 黑龙江电信
    title = 黑龙江电信
    alerts = someloss
    host = 219.147.198.242
    
     
    
    +++ dianxin-tj
    
    menu = 天津电信
    title = 天津电信
    alerts = someloss
    host = 219.150.32.132
    
     
    
    +++ dianxin-sc
    
    menu = 四川电信
    title = 四川电信
    alerts = someloss
    host = 61.139.2.69
    
     
    
    +++ dianxin-sh
    
    menu = 上海电信
    title = 上海电信
    alerts = someloss
    host = 116.228.111.118
    
     
    
    +++ dianxin-gz
    
    menu = 广东电信
    title = 广东电信
    alerts = someloss
    host = 113.111.211.22
    
     
    
    ++ liantong
    
    menu = 联通网络监控
    title = 联通网络监控列表
    host = /Other/liantong/liantong-bj /Other/liantong/liantong-hlj /Other/liantong/liantong-tj /Other/liantong/liantong-sc /Other/liantong/liantong-sh /Other/liantong/liantong-gz
    
     
    
    +++ liantong-bj
    
    menu = 北京联通
    title = 北京联通
    alerts = someloss
    host = 61.135.169.121
    
     
    
    +++ liantong-hlj
    
    menu = 黑龙江联通
    title = 黑龙江联通
    alerts = someloss
    host = 202.97.224.69
    
     
    
    +++ liantong-tj
    
    menu = 天津联通
    title = 天津联通
    alerts = someloss
    host = 202.99.96.68
    
     
    
    +++ liantong-sc
    
    menu = 四川联通
    title = 四川联通
    alerts = someloss
    host = 119.6.6.6
    
     
    
    +++ liantong-sh
    
    menu = 上海联通
    title = 上海联通
    alerts = someloss
    host = 210.22.84.3
    
     
    
    +++ liantong-gz
    
    menu = 广东联通
    title = 广东联通
    alerts = someloss
    host = 221.5.88.88
    
     
    
    ++ yidong
    
    menu = 移动网络监控
    title = 移动网络监控列表
    host = /Other/yidong/yidong-bj /Other/yidong/yidong-hlj /Other/yidong/yidong-tj /Other/yidong/yidong-sc /Other/yidong/yidong-sh /Other/yidong/yidong-gz
    
     
    
    +++ yidong-bj
    
    menu = 北京移动
    title = 北京移动
    alerts = someloss
    host = 221.130.33.52
    
     
    
    +++ yidong-hlj
    
    menu = 黑龙江移动
    title = 黑龙江移动
    alerts = someloss
    host = 211.137.241.35
    
     
    
    +++ yidong-tj
    
    menu = 天津移动
    title = 天津移动
    alerts = someloss
    host = 211.137.160.5
    
     
    
    +++ yidong-sc
    
    menu = 四川移动
    title = 四川移动
    alerts = someloss
    host = 218.201.4.3
    
     
    
    +++ yidong-sh
    
    menu = 上海移动
    title = 上海移动
    alerts = someloss
    host = 117.131.19.23
    
     
    
    +++ yidong-gz
    
    menu = 广东移动
    title = 广东移动
    alerts = someloss
    host = 211.136.192.6
    添加三大运营商的站点

     要是添加的站点生效,必须重启smokeping服务(因为修改了smokeping的配置文件)

    [root@goser1 smokeping]# /etc/init.d/smokeping restart  
    

     最后通过浏览器访问smokeping监控页面:http://192.168.1.120/smokeping  这时候页面可能会显示乱码,这是因为没有加载中文字体,接下来为smokeping添加一个字体

      安装字体:yum -y install wqy-zenhei-fonts.noarch

      编辑Graphs.pm:

    vim /usr/local/smokeping/lib/Smokeping/Graphs.pm
    #第147行下边插入下边一行
    
    '--font TITLE:20:"WenQuanYi Zen Hei Mono"',
    

      这样再刷新页面后,中文便显示正常,显示的smokeping页面如下:

     

  • 相关阅读:
    spring-cloud 微服务
    oracle高级部分
    RabbitMq
    如何创建个人网站
    redis
    restFull api接口
    mongodb replSet upgrade
    mongodb sharding upgrade
    Oracle索引梳理系列(三)- Oracle索引种类之反向索引
    Oracle索引梳理系列(二)- Oracle索引种类及B树索引
  • 原文地址:https://www.cnblogs.com/goser/p/8605632.html
Copyright © 2020-2023  润新知