zabbix的日常監控-自動發現端口並監測(服務器開啟的所有端口或監控指定端口)(十三)


動批量檢查agent開放的端口

注:此方法給監控磁盤IO(即十二)篇過程一樣;

注釋:如果服務器上的應用都是固定的,不會隨機產生的都可以使用自動發現端口來監控;

    如果服務器會隨機出現端口且每次啟動程序都會改變,可以采用第二種方法,來監控指定的端口;

 

約定:

zabbix所有執行的腳本統一放置在 /etc/zabbix/scripts 目錄下

chown root:zabbix -R /etc/zabbix/scripts/
chmod 750 /etc/zabbix/scripts/
chmod 550 /etc/zabbix/scripts/iostat.sh

一、agent操作:

1、腳本內容

[root@agent scripts]# cat check_port1.sh 
#!/usr/bin/env python  
#coding:utf-8  
   
import os, json  
   
port_list=[]  
port_dict={"data":None}  
cmd='''''netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort |uniq   2>/dev/null'''  
local_ports=os.popen(cmd).readlines()  
   
for port in local_ports:  
    pdict={}  
    pdict["{#TCP_PORT}"]=port.replace("\n", "")  
    port_list.append(pdict)  
   
port_dict["data"]=port_list  
jsonStr = json.dumps(port_dict, sort_keys=True, indent=4)  
   
print jsonStr 
[root@agent scripts]# 
[root@agent scripts]#chmod +s /usr/bin/netstat

2、添加key值

cat /etc/zabbix/zabbix_agentd.conf
添加如下內容:
UnsafeUserParameters=1
UserParameter=tcpportlisten,/etc/zabbix/scripts/check_port1.sh

 

3、重啟agent服務

systemctl restart zabbix-agent.service

 

 

二、zabbix-server端操作

1、創建模板:Template Ports Discovery

2、創建自動發現規則

 3、創建監控項原型

 

 

 4、創建圖形原型

 

 5、創建觸發器

此方法可以批量為多個監控端口添加相同的閾值!!!

 

 

 三、結果

 

 

 

監控指定端口范圍內的端口

原博文地址:http://blog.chinaunix.net/uid-29680017-id-5768335.html

1、腳本內容

[root@agent scripts]#vim prot.py 

#!/usr/bin/python
__author__ = 'Yan'
import os
import json

data = {}
tcp_list = []
port_list = []
t = ['3306','8080','2002','2003','10066']
tt = []
command = "sudo netstat -tnlp|egrep -i tcp|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq"
lines = os.popen(command).readlines()
for line in lines:
    port = line.split()
    port_list.append(port[0])
for i in port_list:
    if i in t:
      tt.append(i)
for port in list(set(tt)):
    port_dict = {}
    port_dict['{#TCP_PORT}'] = port
    tcp_list.append(port_dict)

data['data'] = tcp_list
jsonStr = json.dumps(data, sort_keys=True, indent=4)
print jsonStr

 

 2、執行結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM