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

smokeping简介

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

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

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

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

smokeping部署过程

 安装smokeping的依赖包

[[email protected] ~]# 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

[[email protected] ~]# cd /usr/local/src/   #进入默认源码包存放路径

[[email protected] ~]# wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.9.tar.gz #下载smokeping包

[[email protected] src]# tar xf smokeping-2.6.9.tar.gz   #解压smokeping

[[email protected] src]# cd smokeping-2.6.9 

[[email protected] smokeping-2.6.9]# ./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty

[[email protected] smokeping-2.6.9]# ./configure --prefix=/usr/local/smokeping   #编译smokeping到/usr/local

[[email protected] smokeping-2.6.9]# /usr/bin/gmake install

[[email protected] smokeping-2.6.9]# cd /usr/local/smokeping/    #进入smokeping目录

[[email protected] smokeping]# mkdir cache data var   #创建三个目录

[[email protected] smokeping]# touch /var/log/smokeping.log    #创建smokeping日志文件

[[email protected] smokeping]# chown apache.apache cache/ data/ var/ /var/log/smokeping.log   #授权属主属组为apache

[[email protected] smokeping]# cd /usr/local/smokeping/htdocs/   #进入smokeping下htdocs目录

[[email protected] htdocs]# mv smokeping.fcgi.dist smokeping.fcgi   #修改smokeping文件名

[[email protected] smokeping]# mv /usr/local/smokeping/etc/config.dist /usr/local/smokeping/etc/config   #修改smokeping配置文件名称

 修改smokeping配置文件如下:

[[email protected] 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

[[email protected] smokeping]# chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist

 设置smokeping登录密码认证

[[email protected] htdocs]# htpasswd -c /usr/local/smokeping/htdocs/htpasswd darker
New password:
Re-type new password:
Adding password for user darker

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

[[email protected] ~]# 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可以启动、停止、重启、开机自启动等

[[email protected] ~]# 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服务并设置其开机自启动

[[email protected] ~]# chmod 755 /etc/init.d/smokeping   #添加脚本755权限

[[email protected] ~]# chkconfig --add smokeping    #将smokeping加入开机启动

[[email protected] ~]# chkconfig smokeping on   #设置smokeping为开机启动

[[email protected] ~]# chkconfig httpd on    #设置apache为开机启动

[[email protected] ~]# /etc/init.d/httpd start    #启动apache服务

[[email protected] ~]# /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的配置文件)

[[email protected]oser1 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页面如下:

原文地址:https://www.cnblogs.com/goser/p/8605632.html

时间: 2024-10-29 07:00:35

linux6下网络环境监控工具smokeping部署的相关文章

linux下网络流量监控工具

今天QA同学让我协助检测下一台服务器的网络流量.没干过这活,在网上随便找了个命令.后来,发现是不对的,为了以后不出丑,决定收集下网络流量监测相关的工具. 查看某个网卡收发数据的总量 方法一 方法二 2.查看网卡的实时的流量 工具一 网上找到的一个脚本,基本上来说是处理ifconfig的结果,得到单位时间内的流量.也可以通过处理/proc/net/dev文件得到同样的结果. 使用方法:bash scriptfile eth1  不加参数默认为eth0 #!/bin/bash if [ -n "$1

linux下的网络环境部署1.2(网关,dns,网桥)

网关 路由器:两台主机处于不同网段,nat(net adress transfer)源地址转换,伪装成目的地地址可以识别的地址路由器上和客户主机处在同一网段的ip即网关修改网卡设定网关实验 实验在rhel7中添加网卡,使得rhel7作为路由器,添加网卡:在窗口栏中将光标放置在rhel7,单击右键,设置,网络适配器,添加网络适配器,选择桥接模式,设置完以后会有两块网卡rhel7可以同时跟两台网段不同的主机通信,所以将它作为路由器,让两台网段不同的主机之间通信使这两块网卡可以使用内核进行路由,所以开

Linux下网络流量实时监控工具

Linux下网络流量实时监控工具大全 在工作中发现,经常因为业务的原因,需要即时了解某台服务器网卡的流量,虽然公司也部署了cacti软件,但cacti是五分钟统计的,没有即时性,并且有时候打开监控页面不方便,个人喜欢随手在某台服务器上输入一个命令,查看网卡即时流量.百度了一下,发现有这么几种方法,现对此类软件进行了一个总结.一.iptraf软件   rhel的iso里有包含,我公司的系统,并没有默认安装,它功能强大,可以按照协议,网卡等进行分析.1.1 iptraf安装源码安装wget ftp:

Linux系统下Jsp环境部署

-------本文大纲 简介 Jsp环境部署 Tomcat目录结构 SHOP++网上商城系统安装 --------------- 一.简介 JSP JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp).简单地说,jsp就是可能包含了java程序段的html文件(由ja

CentOS 6.3下CHEF环境部署

一.前言: 初识Chef,我们可以先了解一下DevOps运动 http://zh.wikipedia.org/wiki/DevOps,简单点说,就是传统的软件组织将开发.IT运营和质量保障设为各自分离的部门,而DevOps运动的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作.所以Chef简单点说,就是DevOps运动中的一项重要工具成员,是一个同时面向开发与运维的集中管理工具. 就服务器的集中管理工具而言,知名度与Chef平分天下的是叫"Puppet&

linux网络环境下socket套接字编程(UDP文件传输)

今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中,如果我们使用TCP传输,会造成传输速度较慢的情况,所以我们在进行文件传输的过程中,最好要使用UDP传输. 在其中,我们需要写两个程序,一个客户端,一个服务端,在一个终端中,先运行服务端,在运行客户端,在服务端和客户端都输入IP地址和端口号,注意服务端和客户端的端口号要相同,然后选择功能,在linux

主机WIFI网络环境下,Linux虚拟机网络设置

在主机使用WIFI网络环境下,怎么样进行虚拟机静态ip设置和连接互联网呢,原理什么太麻烦,另类的网络共享而已: 1.其实简单将网络连接模式设置成NAT模式即可. 2.虚拟网络编辑器依旧是桥接模式,选择自动就能正常设置虚拟机静态ip和上网了,要是不放心的话可以选择 无线wifi的虚拟桥接.

Ubuntu12.04在无网络环境下配置apt-get光盘源的简单方法

许多数据库服务器是不能连上internet,想更新安装包就比较麻烦. 通常可以先在有internet环境的计算机上下载deb包,在拷贝到服务器安装deb,这样很难处理包的依赖关系. apt-get可以解决包的依赖关系,但是默认配置下需要从internet下载包,如果可以从本地读取安装源就可以解决包的依赖关系和无internet的问题. 步骤参考: 1.把光盘插入光驱,并且挂载到本地: mount /dev/cdrom  /mnt 2.备份后修改source.list仓库配置文件: mv /etc

虚拟化环境下的CentOS7网络环境存在的问题

为什么要进行一次测试? 在使用CentOS7的过程中发现网络部分有很多与CentOS6所不同的地方. 1.CentOS7默认使用NetworkManager管理系统的网络而不再是network 2.NetworkManager默认使用的是nmtui或nmcli进行管理,不再是sysconfig中的ifcfg配置文件,但这些ifcfg文件依然被支持 3.默认NetworkManager和network同时在系统中工作,但NetworkManager要先于network启动 4.实际使用过程中发现即