Zabbix監控——監控TCP

Tcp的連接狀態對於我們web服務器來說是至關重要的,尤其是併發量ESTAB;或者是syn_recv值,假如這個值比較大的話我們可以認爲是不是受到了攻擊,或是time_wait值比較高的話,我們要考慮看我們內核是否需要調優,太高的time_wait值的話會佔用太多端口,要是端口少的話後果不堪設想。

環境介紹

  • 已關閉防火牆、selinux;
  • 所用zabbix版本4.0.3;
  • 採用YUM安裝方式;
  • 所有IP地址及安裝包如下表:
IP地址 角色 安裝包
192.168.91.133 server、agent zabbix-server-mysql、zabbix-get、zabbix-agent
192.168.91.134 agent zabbix-agent
  • 安裝步驟及前期配置省略。

配置步驟

  • 在agent主機上編寫腳本,並賦予腳本執行權限
[root@localhost ~]# mkdir /scripts
[root@localhost ~]# cd /scripts/
[root@localhost scripts]# vim tcp_status.sh
[root@localhost scripts]# cat tcp_status.sh 
#!/bin/bash
[ $# -ne 1 ] && echo "Usage:CLOSE-WAIT|CLOSED|CLOSING|ESTAB|FIN-WAIT-1|FIN-WAIT-2|LAST-ACK|LISTEN|SYN-RECV|SYN-SENT|TIME-WAIT" && exit 1
function tcp_status_fun () {
	TCP_STAT=$1
	ss -ant | awk 'NR>1 {++s[$1]} END {for (k in s) print k,s[k]}' > /tmp/ss.txt
	TCP_STAT_VALUE=$(grep "$TCP_STAT" /tmp/ss.txt | cut -d ' ' -f 2)
	if [ -z "$TCP_STAT_VALUE" ];then
		TCP_STAT_VALUE=0
	fi
	echo "$TCP_STAT_VALUE"
}
tcp_status_fun $1;

[root@localhost scripts]# chmod +x tcp_status.sh
  • 將監控腳本位置寫入配置文件,並賦予“key”
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
······以上省略
UnsafeUserParameters=1
UserParameter=tcp_status[*],/bin/bash /scripts/tcp_status.sh "$1"
······以下省略

注:也可以將指定腳本的配置文件寫到/etc/zabbix/zabbix.agent.d/目錄下
例:
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.d/tcp_status.conf
UserParameter=tcp_status[*],/bin/bash /scripts/tcp_status.sh "$1"
  • 重新啓動zabbix-agent服務
[root@localhost ~]# systemctl restart zabbix-agent
  • 在server通過Zabbix_get(不要直接執行腳本)測試agent是否能獲取到值
[root@localhost ~]# zabbix_get -s 192.168.91.134 -k tcp_status[LISTEN]
6
  • 創建主機羣組
    在這裏插入圖片描述
    在這裏插入圖片描述

  • 創建模板
    在這裏插入圖片描述
    在這裏插入圖片描述

  • 創建監控項,將所有TCP狀態全部加入到模板中(此步驟只舉一例,具體有哪些TCP狀態請查看腳本第2條)
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

  • 定義觸發器根據自己的環境進行定義,這裏不再列出

  • 創建圖表
    在這裏插入圖片描述
    在這裏插入圖片描述

  • 在主機中添加模板進行應用
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

  • 查看圖表
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章