(一)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-->選擇模板文件.xml
centos
至此在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>