smokeping网络监控

article/2025/9/22 15:15:58
smokeping网络监控
一、smokeping介绍
我们在选择机房的时候,如何知道这个机房的网络情况,这个时候就要用到网络监控软件:smokeping  
      本文主要介绍如何使用smokeping来监控idc机房的网络质量情况,从监控图上的延时与丢包能分辨出你机房的网络是否稳定,是否为多线,是否为BGP机房,到各城市的3个运营商之间的网络,各是什么情况,如果出现问题,如何有针对性的解决。而且如果选择新机房的时候,你可以根据smokeping的监控结果来判断这个机房是否适合。


smokeping是rrdtool的作者Tobi Oetiker的作品,所以它在图形显示方面有很大优势,也是一个很 有特点的opensource工具:
1、多种探测方式,包括fping、echoping、dig、curl等;
2、易用可扩展的插件;
3、master/slave 的 工作方式,可以在多个节点收集同一个监测点的数据


二、安装smokeping
1、软件环境
[root@MJ-Zabbix ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)
[root@MJ-Zabbix ~]# uname -r
2.6.32-696.1.1.el6.x86_64
[root@MJ-Zabbix ~]# 


2、软件下载
wget http://www.fping.org/dist/fping-3.10.tar.gz
wget https://fossies.org/linux/misc/old/echoping-6.0.2.tar.gz
wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.9.tar.gz


3、安装软件
1、安装依赖包:
yum install perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-IO-Socket-SSL perl-Socket6 perl-Time-HiRes perl-ExtUtils-MakeMaker rrdtool rrdtool-perl curl 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 popt popt-devel libidn libidn-devel -y


2、解压、编译安装fping
tar xf fping-3.10.tar.gz
cd fping-3.10
./configure
make && make install


3、解压、编译安装echoping
tar xf echoping-6.0.2.tar.gz
cd echoping-6.0.2
./configure
make && make install


4、解压、编译安装smokeping
tar xf smokeping-2.6.9.tar.gz
cd smokeping-2.6.9
./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty
./configure --prefix=/usr/local/smokeping
/usr/bin/gmake install


5、配置 smokeping 
cd /usr/local/smokeping/
mkdir cache data var
touch /var/log/smokeping.log
chown apache:apache cache data var
chown apache:apache /var/log/smokeping.log
chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist
cd /usr/local/smokeping/htdocs
mv smokeping.fcgi.dist smokeping.fcgi
cd /usr/local/smokeping/etc
mv config.dist config


 
6、更改配置文件
vim /usr/local/smokeping/etc/config
主要修改如下内容:
#cgiurl = http://some.url/smokeping.cgi
cgiurl = http://10.0.0.62/smokeping.cgi


*** Database ***
#step = 300
step = 60 #此处建议改为 60 , 一分钟采集一次数据
pings = 20


7、编辑apache配置文件
vim /etc/httpd/conf/httpd.conf
#结尾最后边添加如下代码:


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
DirectoryIndex smokeping.fcgi
</Directory>
 
8、图像浏览界面的中文支持
安装字体
yum -y install wqy-zenhei-fonts.noarch


编辑smokeping的配置文件
vim /usr/local/smokeping/etc/config


第50行添加
charset = utf-8 #添加此行,解决出图乱码问题


编辑Graphs.pm
vim /usr/local/smokeping/lib/Smokeping/Graphs.pm
#第147行下边插入下边一行
'--font TITLE:20:"WenQuanYi Zen Hei Mono"',
设置开机启动:
echo "/usr/local/smokeping/bin/smokeping --logfile=/var/log/smokeping.log 2>&1 &" >> /etc/rc.local


#########################################################
 if ($mode =~ /[anc]/){
        my $val = 0;
        for my $host (@hosts){
            my ($graphret,$xs,$ys) = RRDs::graph
            ("dummy",
            '--start', $tasks[0][1],
            '--end', $tasks[0][2],
            "DEF:maxping=$cfg->{General}{datadir}${host}.rrd:median:AVERAGE",
            '--font TITLE:20:"WenQuanYi Zen Hei Mono"',
            'PRINT:maxping:MAX:%le' );
            my $ERROR = RRDs::error();
            return "<div>RRDtool did not understand your input: $ERROR.</div>" if $ERROR;
            $val = $graphret->[0] if $val < $graphret->[0];
        }
        $val = 1e-6 if $val =~ /nan/i;
        $max = { $tasks[0][1] => $val * 1.5 };
    }
#########################################################


9、Config 配置文件的最后边
vim /usr/local/smokeping/etc/config


 


##################################################
+ Test
menu= Targets
#parents = owner:/Test/James location:/


#++ James


#menu = James
#title =James
#alerts = someloss
#slaves = boomer slave2
#host = james.address


#++ MultiHost


#menu = Multihost
#title = James and James as seen from Boomer
#host = /Test/James /Test/James~boomer
+ Internet
menu = Internet
title = Internet


++ IDC
menu = IDC
title = IDC


+++ MJ-Baidu
menu = MJ-Baidu
title = MJ-Baidu
host = 61.135.169.121


+++ MJ-163
menu = MJ-163
title = MJ-163
host = 61.149.9.224


+++ ZW-IDC
menu = ZW-IDC
title = ZW-IDC
host = 101.251.x.x


+++ SD-IDC
menu = SD-IDC
title = SD-IDC
host = 219.143.x.x


++ Office-DS
menu = office-DS
title = office-DS


+++ UC-500M
menu = UC-500M
title = UC-500M
host = 103.36.x.x


+++ CT-50M
menu = CT-50M
title = CT-50M
host = 124.127.x.x


+++ UC-100M
menu = UC-100M
title = UC-100M
host = 114.255.x.x


++ Office-FenBu
menu = office-FenBu
title = office-FenBu


+++ JN-CT-100M
menu = JN-100M
title = JN-100M
host = 123.168.x.x


+++ WT-CT-50M
menu = WT-50M
title = WT-50M
host = 58.132.x.x


+++ JiuJiang
menu = JiuJiang
title = JiuJiang


++++ JiuJiang-CT
menu = CT-50M
title = CT-50M
host = 218.87.90.x


++++ JiuJiang-UC
menu = CT-20M
title = CT-20M
host = 58.17.120.x


10.启动服务:
httpd:
[root@MJ-Zabbix etc]# /etc/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
11.启动问题
smokeping:
[root@MJ-Zabbix etc]# /usr/local/smokeping/bin/smokeping    看到如下信息说明smokeping 配置无问题,可出图
Note: logging to syslog as local0/info.
Daemonizing /usr/local/smokeping/bin/smokeping ...
如果启动有问题:
1、File '/usr/local/smokeping/etc/smokeping_secrets.dist' is world-readable
2、ERROR: /usr/local/smokeping/bin/../etc/config, line 112: File '/usr/local/smokeping/etc/smokeping_secrets.dist' is world-readable or writable, refusing it
查看smokeping_secrets.dist文件属性是否为400,如不是请按照如下修改:
[root@MJ-Zabbix etc]# ll
total 24
-rw-r--r-- 1 root root 2041 Feb 27 17:21 basepage.html.dist
-rw-r--r-- 1 root root 3829 Mar  1 10:19 config
drwxr-xr-x 2 root root 4096 Feb 27 17:21 examples
-rw-r--r-- 1 root root 1563 Feb 27 17:21 smokemail.dist
-rw-r--r-- 1 root root   59 Feb 27 17:21 smokeping_secrets.dist
-rw-r--r-- 1 root root 3815 Feb 27 17:21 tmail.dist


注意etc/smokeping_secrets.dist文件属性必须400


chmod 400 smokeping_secrets.dist    修改权限
/usr/local/smokeping/bin/smokeping  --check   检查语法


[root@MJ-Zabbix etc]# ps -ef |grep smokeping
root     15946     1  0 10:20 ?        00:00:02 /usr/local/smokeping/bin/smokeping [FPing]
root     21066 20350  0 11:49 pts/1    00:00:00 grep smokeping
注意:每次修改smokeping配置文件/usr/local/smokeping/etc/config都要先杀进程,然后重启服务才生效
[root@MJ-Zabbix etc]# kill -9 15946     
[root@MJ-Zabbix etc]# /usr/local/smokeping/bin/smokeping
Note: logging to syslog as local0/info.
Daemonizing /usr/local/smokeping/bin/smokeping ...


12. Zabbix和Smokeping部署在同一台服务器,占用端口80
修改端口80为8080,重启httpd服务
[root@MJ-Zabbix /]# cd /etc/httpd/conf/http.conf

13、验证测试:
10.2.66.200:8080/zabbix
10.2.66.200:8080/smokeping



############################
补充:
14、smokeping的默认配置文件110行的fping安装目录与此次安装目录不相符需修改!

vim /usr/local/smokeping/etc/config

#第110更改fping的目录为
binary = /usr/local/sbin/fping


15、启动apache和smokeping&设置环境变量
/etc/init.d/httpd start
/usr/local/smokeping/bin/smokeping


echo 'export PATH=/usr/local/smokeping/bin/:$PATH' >> /etc/profile

http://chatgpt.dhexx.cn/article/F8eQBJXg.shtml

相关文章

网络性能监控工具Smokeping

什么是 Smokeping &#xff1f; SmokePing 是一款监控网络状态和稳定性的开源软件&#xff08;它是 RRDTool 的作者开发的&#xff09;&#xff0c;通过它可以监控如延时&#xff0c;丢包率&#xff0c;是否 BGP 多线等网络状况&#xff1b;smokeping 会向目标设备和系统发送各…

网络监控smokeping搭建配置(一)

网络监控smokeping搭建配置(一) 网络监控smokeping邮件告警(二) 注&#xff1a;本次smokeping搭建采用centos7编译安装 一、安装步骤 1、添加yum镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo2、安装Apache yum -y ins…

尚硅谷Java学习笔记Lecture1

/* 利用cmd窗口编译运行程序 1.编译&#xff1a;javac.exe 格式&#xff1a; javac 源文件名.java运行&#xff1a;java.exe 格式&#xff1a; java 类名 2.可以有多个类&#xff0c;但只能有一个类声明为public类型&#xff0c;声明为public类型的类的类名要和文件名相同 3…

Java学习笔记2——java的安装和配置

Java的安装&#xff1a; 下载地址&#xff1a;Java Downloads | Oracle安装时注意安装路径不能有中文或特殊符号等 bin目录下为java开发工具&#xff0c;jre为运行环境 Java的配置——配置环境变量path 1、为什么需要配置环境变量&#xff1f; 当输入指令后&#xff0c;W…

JAVA学习笔记- - - day 2

&#x1f495;前言&#xff1a;作者是一名正在学习JAVA的初学者&#xff0c;每天分享自己的学习笔记&#xff0c;希望能和大家一起进步成长&#x1f495; 目录 &#x1f495;前言&#xff1a;作者是一名正在学习JAVA的初学者&#xff0c;每天分享自己的学习笔记&#xff0c;希望…

JAVA学习笔记- - - day 1

&#x1f495;前言&#xff1a;作者是一名正在学习JAVA的初学者&#xff0c;每天分享自己的学习笔记&#xff0c;希望能和大家一起进步成长&#x1f495; 目录 &#x1f495;前言&#xff1a;作者是一名正在学习JAVA的初学者&#xff0c;每天分享自己的学习笔记&#xff0c;希…

Java学习笔记11

Object类是所有类、数组、枚举类的父类&#xff0c;是类层次结构的根类。每个类都使用Object作为超类。所有对象&#xff08;包括 数组&#xff09;都实现这个类的方法。 Object类实现了以下方法&#xff1a; 我们来看看在源码中registerNatives()方法&#xff1a; private st…

java 学习笔记之多参数传递

第一次写博客记录学习java遇到的问题&#xff0c;学习java学到方法的时候&#xff0c;在想见过c语言有类似多个参数传递的写法&#xff0c;java也应该有类似的写法&#xff0c;通过学习掌握的这种写法&#xff0c;如下 public class Test {public static void print(String ..…

韩顺平 零基础30天学会Java 学习笔记

学习记录 第一章 第二章 方法源码可以在jdk文件里面的src文件里面看。 注释&#xff1a; 1、多行注释里面不允许再加多行注释 2、javadoc文档注释 (/** * */) 3、javadoc -d 生成文档 4、类与方法要用javadoc文档注释 JDK,JRE,JVM关系 1、JDK JRE Java开发工具 2、JRE J…

java中预编译是啥意思_JAVA学习笔记预编译

JAVA学习笔记预编译 (2011-07-30 02:36:17) 标签&#xff1a; 杂谈 第顺次运行jsp时jsp将被改换成servlet(第顺次工夫较长&#xff0c;而尔后就会快许多) 搭配好的利用过程能够穿越设置jsp版面的URI照射&#xff0c;尔后只安装编译后的java类文件来告终安装(能够只将servlet类文…

Java学习笔记(一)

目录 一&#xff1a;java语言的发展史 二&#xff1a;java语言跨平台原理 三&#xff1a;JRE与JDK 四&#xff1a;JDK的下载和安装 五&#xff1a;常用DOS命令 六&#xff1a;path环境的配置 七&#xff1a;基础语法 一&#xff1a;java语言的发展史 1.1 java语言 …

Java学习笔记 --- IDEA

一、IDEA介绍 1、IDEA全称IntelliJ IDEA 2、在业界被公认为最好的Java开发工具 3、IDEA是JetBrains公司的产品&#xff0c;总部位于捷克的首都布拉格 4、除了支持Java开发&#xff0c;还支持HTML、CSS、PHP、MySQL、Python等 二、IDEA常用快捷键 1、删除当前行&#xff0…

Java 学习笔记(手写版)

Java 学习笔记(手写版) 文章目录 Java 学习笔记(手写版)变量控制流程包机制 & 用户交互 Scanner方法&#xff08;函数&#xff09; & 驼峰命名法递归 & 数组OOP & 构造器封装继承 &#xff08;super & this&#xff09;方法重写 静态方法 & 非静态方法…

Java学习笔记一

Java学习笔记一 1、Java语言的特点2、Java程序开发过程3、Java虚拟机JVM 学习方式&#xff1a; 书籍&#xff1a;《Java基础教程》 吴仁群 清华大学出版社 第1章&#xff1a;Java语言概述 1、Java语言的特点 一种面向对象且与平台无关的多线程动态语言 2、Java程序开发过程 文…

Java基础笔记(初学者适用)

目录 一、Java主函数解析 二、Java学习注意事项 三、JDK和JRE的区别 1、jdk--开发环境&#xff08;核心&#xff09; 2、jre--运行环境 3、JVM——转换环境 四、常见转义字符 五、变量 1.变量介绍 2.变量细节 3.作用域 4.数据类型 &#xff08;1&#xff09;Java数…

java学习笔记(详细)

java学习笔记 文章目录 java学习笔记1.基本的输入输出2.基本数据类型3.复合数据类型4.程序流程语句5.数组6.字符串7.面向对象* 类的基本知识* 封装性* 继承性* 多态性 1.基本的输入输出 java是纯面向对象的语言&#xff0c;连主函数都写在一个类中&#xff0c;java中没有指针ja…

Java学习笔记(完结)

java 快捷键 修改idea的快捷键的方法&#xff1a;点击file》setting》keymay&#xff0c;去里面搜索要改的东西&#xff0c;然后把原来的快捷键去除&#xff0c;键盘输入新的你要的快捷键&#xff0c;就可以啦&#xff1b;Ctrl d 删除本行&#xff1b;Ctrl alt 向下箭头 复…

Java基础知识笔记整理(零基础学Java)

文章目录 前言java语言特性java的编译与运行JDK、JRE、JVM字符编码数据类型数据类型取值范围数据类型默认转换 标识符命名方法数组一维数组二维数组数组排序算法数组查找算法数组工具类&#xff08;Arrays&#xff09; 逻辑运算符输入操作Java中的命名规则有符号数据表示法 面向…

图解LVS的工作原理

LVS详解 LVS简介LVS特点&#xff1a;LVS常见术语 LVS工作原理NAT模式DR模式内核参数详解arp_ignorearp_announce TUN工作模式full-nat模式 LVS调度算法介绍ipvsadm使用指南NAT和DR模式的实现NAT模式的实现DR模式的实现调度器配置WEB后端服务器配置实验测试 参考文献 LVS简介 I…