對網卡流量監控的一些想法mysql
今天來給你們講講一些對於網卡流量的想法,網卡流量表明着客戶的訪問你服務的數據量,可是這裏量是有閾值的,若是你的網卡的流量居高不下,那就有可能你的服務器被***了,因此,監控網卡的流量是事關重要的事情,說到監控,咱們即可以想到,寫腳本或者利用監控軟件來作監控,zabbix監控軟件就提供了很好的平臺;zabbix做爲一個熱門的監控軟件,不只比較全面的監控模板,並且使用者還能夠本身自定義keys,作監控。linux
自定義監控處理有監控軟件外,咱們還須要獲取到數據才能實現咱們監控的目的;對於如何獲取到網卡流量的數據,我這裏提供一個命令Sar,固然還有其它的命令,這裏就很少說了;Sar命令能夠爲咱們提供網卡的流量的信息,因此基於sar咱們能夠實現對網卡流量的實時監控。接下來咱們先談談sar命令的用法。web
1、sar命令的使用sql
Sar命令主要的做用是用來查看網卡的流量的,linux/centos默認是沒有裝的,因此須要yum安裝才能使用。vim
#yum install -y sysstat
經過sar –h咱們能夠查看獲得sar的用法centos
[root@mysql etc]# sar -h 用法: sar [ 選項 ] [ <時間間隔> [ <次數> ] ] 主選項和報告: -b I/O 和傳輸速率信息情況 -B 分頁情況 -d 塊設備情況 -H 交換空間利用率 -I { <中斷> | SUM | ALL | XALL } 中斷信息情況 -m { <關鍵詞> [,...] | ALL } 電源管理統計信息 關鍵字: CPU CPU 頻率 FAN 風扇速度 \t\tFREQ\tCPU 平均時鐘頻率 IN 輸入電壓 TEMP 設備溫度 \t\tUSB\t鏈接的USB 設備 -n { <關鍵詞> [,...] | ALL } 網絡統計信息 關鍵詞能夠是: DEV 網卡 EDEV 網卡 (錯誤)
接下來咱們使用它來獲取網卡的信息,好比查看網卡流量的每秒顯示一次,共顯示1次的網卡流量信息。bash
[root@mysql etc]# sar -n DEV 1 1 Linux 3.10.0-514.el7.x86_64 (mysql) 2018年03月14日 _x86_64_ (4 CPU) 15時00分00秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 15時00分01秒 eth0 37.00 36.00 6.54 24.27 0.00 0.00 0.00 15時00分01秒 lo 23.00 23.00 18.17 18.17 0.00 0.00 0.00 平均時間: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 平均時間: eth0 37.00 36.00 6.54 24.27 0.00 0.00 0.00 平均時間: lo 23.00 23.00 18.17 18.17 0.00 0.00 0.00
咱們能夠看到,使用sar命令它已經把結果給統計出來的,服務器
IFACE 表示設備名稱網絡
rxpck/s 每秒接收的包的數量ide
txpck/s 每秒發出的包的數量
rxKB/s 每秒接收的數據量,單位KByte
txKB/s 每秒發出的數據量,單位KByte
若服務器丟包很是嚴重,須要查看網卡流量是否異常。接收數據部分 rxpck大於4000,或者rxKB大於5000,則有可能被***了,正常服務器網卡流量沒有這麼大。除非本身在拷貝數據。
接下來,咱們談談sar命令的一些經常使用的一些用法。
sar -n DEV #查看當天從零點到當前時間的網卡流量信息
sar -n DEV 1 1 #每秒顯示一次,共顯示1次
sar -n DEV -f /var/log/sa/saxx 查看xx日的網卡流量歷史
sar -q #查看歷史負載
sar -b #查看磁盤讀寫
2、使用sar命令截取rxpck/s與rxKB/s的值
有了sar命令查看網卡的流量,咱們就能夠實現監控了,結合zabbix作對網卡的監控rxpck/s與rxKB/s的值
經過sar,命令並結合awk獲取你網卡的rxpck/s的值,我這裏的網卡是eth0
[root@mysql etc]# sar -n DEV 1 1 | awk 'NR==8{print $3}' 37.00
獲取你網卡的rxKB/s的值
[root@mysql etc]# sar -n DEV 1 1 | awk 'NR==8{print $5}' 10.63
咱們能夠發現咱們想要的數據已是截取出來了
3、zabbix自定義keys作監控
1、在zabbix客戶端zabbix_agentd.conf文件添加自定義keys,並重啓客戶端
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
UnsafeUserParameters=1 UserParameter=receivce_data,sar -n DEV 1 1 | awk 'NR==8{print $5}' UserParameter=receivce_package_number,sar -n DEV 1 1 | awk 'NR==8{print $3}'
2、zabbix測試是否能獲到zabbix客戶端的健值的數據
[root@zabbix ~]# zabbix_get -s 192.168.1.200 -k receivce_data 7.79
[root@zabbix ~]# zabbix_get -s 192.168.1.200 -k receivce_package_number 52.00
從這裏能夠發現是已經能夠獲取的
3、zabbix服務端監控出圖
到zabbix的web頁面建立network_receivce_package_number 和network_receivce_data模板,點擊:配置à模板à建立模板,如圖一、圖2所示
圖1 network_receivce_package_number模板的建立
圖2 network_receivce_data模板的建立
4、建立監控項,點擊: network_receivce_package_number /network_receivce_dataà監控項à建立監控項,可是要注意的是你的鍵值是你的自定義keys的名字。如圖3、圖4所示:
圖3 network_receivce_package_number模板添加監控項
圖4 network_receivce_data模板添加監控項
5、添加圖像,綁定network_receivce_package_number /network_receivce_data各自的監控項。如圖5、圖6所示
圖5 network_receivce_package_numbe模板綁定監控項
圖6 network_rdata模板綁定監控項
6、添加network_receivce_package_number /network_receivce_data觸發條件,爲作告警使用,如圖7、圖8所示
network_receivce_package_number的閾值咱們能夠設置爲4000,由於正常的服務器的包的數量沒那麼大。(設置最新T值大於4000時,觸發告警)
圖7 network_receivce_package_number模板添加觸發器
network_receivce_datar的閾值咱們能夠設置爲5000(至關於5M),由於正常的服務器的流量沒那麼大。(設置最新T值大於5000時,觸發告警)
圖8 network_receivce_data模板添加觸發器
7、綁定主機,出圖,出數據。
到了這一步,咱們的自定義keys監控就基本完成了;可是,咱們的自定義keys畢竟只是一個模板,並不可以出圖出數據,因此,這就須要人爲的讓主機綁定模板,這樣才能出圖出數據。結果如圖9所示
圖9 主機綁定模板
#查看圖像,查看獲取的數據,是否正確,如圖10、圖11所示
圖10 network_receivce_package_number出圖數據
圖11 network_receivce_data出圖
#能夠發現,獲取的數據和出圖都已經達到咱們的目的了。自動義對網絡流量的的監控已經成功了。
4、總結
基於zabbix和sar監控網卡流量的監控完成了,可是不是以爲沒啥做用,是的,在沒有告警的狀況下,是啥用的,說究竟是沒人看。因此咱們須要告警,基於告警的話,在這裏能夠參考文章,這裏有搭建zabbix告警處理的部署zabbix郵件告警,一點小分享,但願對你有用。