(一)mtr简述
通常在windows 来判断网络连通性用ping 和tracert,ping的话能够来判断丢包率,tracert能够用来跟踪路由,在Linux中有一个更好的网络连通性判断工具,它能够结合ping nslookup tracert 来判断网络的相关特性,这个命令就是mtr,它能够测试丢包率、网络延迟等状况。因为centos默认是没有安装的,若是须要安装的话,能够经过yum进行直接的安装,yum install mtr -y
mtr经常使用的命令是:
mtr -h 提供帮助命令
mtr -v 显示mtr的版本信息
mtr -r 已报告模式显示
mtr -c 设置每秒发送数据包的数量
mtr -s 用来指定ping数据包的大小
mtr -n no-dns不对IP地址作域名解析
mtr -a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的
mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒
mtr -4 IPv4
mtr -6 IPv6linux
[root@server98 ~]# mtr -v mtr 0.85 [root@server98 ~]# mtr -h usage: mtr [-BfhvrwctglxspQomniuT46] [--help] [--version] [--report] [--report-wide] [--report-cycles=COUNT] [--curses] [--gtk] [--csv|-C] [--raw] [--xml] [--split] [--mpls] [--no-dns] [--show-ips] [--address interface] [--filename=FILE|-F] [--ipinfo=item_no|-y item_no] [--aslookup|-z] [--psize=bytes/-s bytes] [--order fields] [--report-wide|-w] [--inet] [--inet6] [--max-ttl=NUM] [--first-ttl=NUM] [--bitpattern=NUM] [--tos=NUM] [--udp] [--tcp] [--port=PORT] [--timeout=SECONDS] [--interval=SECONDS] HOSTNAME [root@server98 ~]# mtr -r Start: Sun Feb 11 13:53:09 2018 HOST: server98 Loss% Snt Last Avg Best Wrst StDev 1.|-- localhost 0.0% 10 0.0 0.0 0.0 0.1 0.0 [root@localhost ~]# mtr -r -w -b 172.21.24.99 Start: Sun Feb 11 14:21:21 2018 HOST: localhost.localdomain Loss% Snt Last Avg Best Wrst StDev 1.|-- 172.20.66.3 0.0% 10 3.6 20.5 0.5 157.3 49.1 2.|-- 172.20.93.62 0.0% 10 0.6 5.4 0.5 30.5 9.1 3.|-- 192.168.9.9 0.0% 10 3.1 24.8 2.9 91.8 31.7 4.|-- 192.168.5.98 0.0% 10 2.6 8.8 2.6 45.0 13.5 5.|-- 192.168.3.187 0.0% 10 0.4 1.3 0.4 8.4 2.5 6.|-- 192.168.9.90 0.0% 10 13.4 15.2 13.4 25.6 3.8 7.|-- 192.168.128.25 0.0% 10 14.6 15.9 14.1 25.1 3.3 8.|-- 172.21.30.1 0.0% 10 27.9 19.6 15.8 36.5 7.0 9.|-- 172.21.24.99 0.0% 10 16.4 14.9 13.6 18.9 1.6
应用举例1 基本展现
第一列:显示的是IP地址和本机域名;
第二列 Loss%:是显示的每一个对应IP的丢包率;
第三列 snt:snt等于1,设置每秒发送数据包的数量,默认值是10 能够经过参数 -c来指定。
第四列 Last:显示的最近一次的返回时延。
第五列 Avg:平均值,这个应该是发送ping包的平均时延。
第六列 Best:最好或者说时延最短的时间。
第七列 Wrst:最坏或者说时延最长的时间。
第八列 StDev:标准误差。git
(二)经过zabbix进行mtr监控github
(1)在zabbix_server端的设置
1.1 首先要在zabbix_server端或代理端安装mtr。vim
[root@localhost etc]# yum install mtr -y
1.2 在zabbix_server端(或代理端)建立脚本并赋给相应的权限windows
[root@localhost externalscripts]# vim /usr/local/zabbix/externalscripts/mtrtrace.sh #!/usr/bin/env bash IP=$1 mtr -r -c100 -w -b $IP [root@localhost externalscripts]# chmod +x /usr/local/zabbix/externalscripts/mtrtrace.sh [root@localhost externalscripts]# chown zabbix.zabbix /usr/local/zabbix/externalscripts/mtrtrace.sh #######以上脚本的含义是经过ping100个包来进行测试
1.3 导入MTR History模板(MTR History)。(https://github.com/jeremyverda/zabbix-public/blob/master/MTR/MTR_History.xml)
1.4 单击 配置configuration-->模板Templates-->导入Import-->选择模板文件.xmlcentos
至此在zabbix服务端或代理端设置完毕。接下来进行agent的设置了bash
(2)zabbix_agent的设置
选中须要测试的主机,具体以下:配置--->主机--->服务器--->模板--->选中mtr模板便可。服务器
具体图形以下:网络
备注,mtr.xml模板文件app
<?xml version="1.0" encoding="UTF-8"?> <zabbix_export> <version>3.2</version> <date>2017-03-05T19:25:03Z</date> <groups> <group> <name>Templates</name> </group> </groups> <templates> <template> <template>MTR History</template> <name>MTR History</name> <description>mtr is a tools like traceroute : https://linux.die.net/man/8/mtr Install instruction : sudo aptitude install mtr</description> <groups> <group> <name>Templates</name> </group> </groups> <applications> <application> <name>Traceroute</name> </application> </applications> <items> <item> <name>MTR Trace</name> <type>10</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>mtrtrace.sh[{HOST.IP}]</key> <delay>3600</delay> <history>14</history> <trends>0</trends> <status>0</status> <value_type>4</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description/> <inventory_link>0</inventory_link> <applications> <application> <name>Traceroute</name> </application> </applications> <valuemap/> <logtimefmt/> </item> </items> <discovery_rules/> <httptests/> <macros/> <templates/> <screens/> </template> </templates> </zabbix_export>