smokeping with tcpping centos 7 环境
本次环境采用centos7,使用centos6的同学就洗洗睡吧,此外一定要做好时间同步,并且关闭防火墙以及selinux,不然安装可能会失败的哦。
时间同步方式如下:
yum install ntpdate -y
ntpdate times.aliyun.com
安装依赖:
yum groupinstall "Compatibility libraries" "Base" "Development tools" -y #很多同学在装系统的时候选择包有问题,因此安装这些保证环境一致性
yum install -y 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 perl-CGI-SpeedyCGI perl-Sys-Syslog popt-devel libidn-devel fping
yum install perl-core
安装tcpping:
cd /usr/bin
wget http://www.vdberg.org/~richard/tcpping
chmod 755 tcpping
该tcpping是bash脚本写的,不过有点问题,后续会教你怎么改
安装smokeping:
wget https://oss.oetiker.ch/smokeping/pub/smokeping-2.7.1.tar.gz
tar -xf smokeping-2.7.1.tar.gz
cd smokeping-2.7.1
./configure --prefix=/opt/smokeping
make install
修改配置:
cd /usr/local/smokeping/
mkdir cache data var
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
编辑config:
*** Probes *** +TCPPing binary = /usr/bin/tcpping # mandatory
forks = 5
offset = 50%
step = 60
timeout = 15 # The following variables can be overridden in each target section
pings = 20
port = 80 # [...] *** Targets *** probe = TCPPing # if this should be the default probe
menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of xxx Company. \
Here you will learn all about the latency of our network. # [...] + mytarget
probe = TCPPing # if the default probe is something else
menu = baidu.com
title = baidu.com
host = www.baidu.com
pings = 20
port = 80
apache配置修改:
Alias /cache "/opt/smokeping/cache/"
Alias /cropper "/opt/smokeping/htdocs/cropper/"
Alias /smokeping "/opt/smokeping/htdocs/smokeping.fcgi"
Alias /css "/opt/smokeping/htdocs/css/"
Alias /js "/opt/smokeping/htdocs/js/"
<Directory "/opt/smokeping">
AllowOverride None
Options All
AddHandler cgi-script .fcgi .cgi
Order allow,deny
Allow from all
Require all granted
DirectoryIndex smokeping.fcgi
</Directory>
启动smokeping,重启apache
自此,smokeping结合tcpping就安装完成了。不过你过儿会发现啥数据都没有,这是因为tcptraceroute包改变了所导致的。我从网上看到别人的tcpping结果应该是:
$ tcpping www.cisco.com
seq 0: tcp response from www.cisco.com (198.133.219.25) [open] 155.513 ms
seq 1: tcp response from www.cisco.com (198.133.219.25) [open] 148.907 ms
seq 2: tcp response from www.cisco.com (198.133.219.25) [open] 153.686 ms
seq 3: tcp response from www.cisco.com (198.133.219.25) [open] 150.864 ms
seq 4: tcp response from www.cisco.com (198.133.219.25) [open] 147.917 ms
我的:
$ tcpping www.baidu.com
traceroute to www.baidu.com (180.97.33.108), 255 hops max, 60 byte packets
seq 0: tcp response from 180.97.33.108 (180.97.33.108) <syn,ack> 8.159 ms
traceroute to www.baidu.com (180.97.33.107), 255 hops max, 60 byte packets
seq 1: tcp response from 180.97.33.107 (180.97.33.107) <syn,ack> 8.288 ms
traceroute to www.baidu.com (180.97.33.108), 255 hops max, 60 byte packets
seq 2: tcp response from 180.97.33.108 (180.97.33.108) <syn,ack> 8.112 ms
traceroute to www.baidu.com (180.97.33.108), 255 hops max, 60 byte packets
seq 3: tcp response from 180.97.33.108 (180.97.33.108) <syn,ack> 8.160 ms
traceroute to www.baidu.com (180.97.33.107), 255 hops max, 60 byte packets
seq 4: tcp response from 180.97.33.107 (180.97.33.107) <syn,ack> 8.484 ms
发觉我多了一行traceroute to …,怪不得没数据,这里需要修改tcpping的脚本:
vi /usr/bin/tcpping
ttr=`tcptraceroute -f ${ttl} -m ${ttl} -q ${q} -w ${w} $* 2>&1`
改成
ttr=`tcptraceroute -f ${ttl} -m ${ttl} -q ${q} -w ${w} $* |grep -v traceroute 2>&1` ttr=`tcptraceroute -f ${ttl} -m ${ttl} -q ${q} -w ${w} $* 2>/dev/null`
改成
ttr=`tcptraceroute -f ${ttl} -m ${ttl} -q ${q} -w ${w} $* |grep -v traceroute 2>/dev/null`
重启smokeping后你发现有数据了,可是为啥延迟都是恒定的255ms呢,这里又牵涉到另一个smokeping的bug了,这个bug十年前就有了,作者一直没修改,链接:http://norman.rasmussen.co.za/62/tcpping-and-smokeping/
你会发现你用tcpping -C -x 1 www.baidu.com 80 永远返回是255,这就是问题。
照着如下修改:
vi /usr/bin/tcpping
rtt=`echo "${ttr}" | sed 's/.*] //' | awk '{print $1}'`
改成
rtt=`echo "${ttr}" | sed 's/.*] //' | awk '{print $5}'`
再重启下smokeping,好了一切正常了
smokeping with tcpping centos 7 环境的更多相关文章
- CentOS开发环境LAMP搭建
CentOS开发环境搭建 -------------------------------------------------------------------------准备工作---------- ...
- vmware安装CentOS开发环境搭建
CentOS开发环境搭建 一.安装系统 新建虚拟机 2.选择“自定义(高级)”,并点击[下一步] 3.选择虚拟机硬件兼容性,并点击[下一步] 4.选择“稍后安装操作系统”,并点击[下一步] 5.选 ...
- 【简书】在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目
在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目 作者 DonnieZero 关注 2017.07.29 22:02* 字数 2218 阅读 5556评论 3喜欢 1赞赏 1 ...
- Centos 7环境下安装配置Hadoop 3.0 Beta1简记
前言 由于以前已经写过一篇Centos 7环境下安装配置2.8的随笔,因此这篇写得精简些,只挑选一些重要环节记录一下. 安装环境为:两台主机均为Centos 7.*操作系统,两台机器配置分别为: 主机 ...
- Centos 7环境下安装配置MySQL 5.7
安装步骤为: 1.由于Centos 7版中已经移除MySQL rpm,因此需要到其官方网站上下载rpm,下载完成后,使用以下命令,来安装MySQL的rpm配置. rpm -ivh *****[注释:* ...
- centos 全局环境变量设置
CentOS的环境变量配置文件体系是一个层级体系,这与其他多用户应用系统配置文件是类似的,有全局的,有用户的,有shell的,另外不同层级有时类似继承关系.下面以PATH变量为例. 1.修改/etc/ ...
- CentOS添加环境变量的三种方式
CentOS添加环境变量的三种方式,以添加php环境变量为例,假定php的安装目录为 /usr/local/php5 一.仅对当前会话临时生效 [root@bogon ~]# export PATH= ...
- 搭建centos测试环境:window安装xshell,WinSCP 。 centos安装jdk tomcat
通过ssh实现远程访问linux系统: 由于xshell 连接centos,需要centos开启ssh服务.所以先启动SSH服务,没有ssh需要先安装. 1 . 查看SSH是否安装命令:rpm -qa ...
- Centos 7环境下编译mysql 5.7
首先在编译之前,我们要了解相关mysql 5.7的编译选项,官网编译选项地址:http://dev.mysql.com/doc/refman/5.7/en/source-configuration-o ...
随机推荐
- Spring加载Hibernate 映射的几种方式及区别
LocalSessionFactoryBean有好几个属性用来查找hibernate映射文件: mappingResources.mappingLocations.mappingDirectoryLo ...
- Ubuntu安装Oracle时出现乱码,及其他安装错误
只要在运行./runInstaller之前先运行下以下命令就ok了: export LANG=en_US #设置运行语言 编译错误 ln -s /usr/lib/i386-linux-gnu/libp ...
- linux下so获得自己文件位置的路径
打开这个设备/proc/self/maps 返回的就是这个进程当前使用的so列表 cat /proc/self/maps00400000-0040b000 r-xp 00000000 08:01 14 ...
- Lombok的安装及入门
lombok 的官方网址:http://projectlombok.org/ lombok 其实到这里我就介绍完了,开个玩笑,其实官网上有 lombok 三分四十九秒的视频讲解,里面讲的也很清楚了,而 ...
- 【BZOJ】【3262】陌上花开
树套树 orz zyf 这题的思路……算是让我了解到了树套树的一种用途吧 三维...第一维排序,第二维树状数组,第三维treap 具体实现就是每个树状数组的节点保存一颗treap,然后就可以查询了. ...
- Mybatis映射实体改造和异常问题
现在WEB开发经常使用 Mybatis 作为持久化框架,在开发过程中,会在Java代码中构建实体类与数据库表字段相互映射, 下面提出一个关于映射实体优化的方案:通过链式编程实现给实例对象赋值. 参考代 ...
- 第七章 JVM性能监控与故障处理工具(1)
1.定位系统问题 依据 GC日志 堆转储快照(heapdump/hprof文件) 线程快照(threaddump/javacore文件) 运行日志 异常堆栈 分析依据的工具 jps:显示指定系统内的所 ...
- [leetcode]Valid Number @ Python
原题地址:http://oj.leetcode.com/problems/valid-number/ 题意:判断输入的字符串是否是合法的数. 解题思路:这题只能用确定有穷状态自动机(DFA)来写会比较 ...
- IOS基本数据类型之枚举
枚举是C语言中的一种基本数据类型,通过枚举可以声明一组常数,来代表不同的含义,它实际上就是一组整型常量的集合. 枚举是非常常用的一种类型,在现实生活中也很常见.比如有四个季节,在不同的季节需要显示不同 ...
- Oracle卸载后手工删除内容
使用deinstall卸载oracle后,手工删除Oracle数据库,方法如下: 第一步:停用全部oracle服务 第二步:删除oracle注册表运行regedit在如下路径中找到oracle相关键值 ...