需求:監控api端口狀態
查找資料,沒有找符合需求的zabbix自有監控項,改變策略,查看linux是否有命令可以檢測api端口是否開通,然后使用zabbix自定義腳本監控
參考:https://www.cnblogs.com/pizitai/p/6519872.html
一、linux檢測遠程端口方法:
1、telnet
# telnet 114.242.151.66 8829 Trying 114.242.151.66... Connected to 114.242.151.66. Escape character is '^]'.
腳本方法:
# echo -e "\n" | telnet 114.242.151.66 8829 | grep Connected Connected to 114.242.151.66. Connection closed by foreign host.
2、nmap
# nmap 114.242.151.66 -p 8829 Starting Nmap 5.51 ( http://nmap.org ) at 2017-12-05 17:00 CST Nmap scan report for 114.242.151.66 Host is up (0.026s latency). PORT STATE SERVICE 8829/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
腳本方法:
# port_stats=`nmap 114.242.151.66 -p 8829 |grep open | wc -l`;[[ $port_stats -ge 1 ]] && echo 0 || echo 1 0
3、nc
# nc -z 5 114.242.151.66 8829 && echo 1 ||echo 0 1 # nc -z 5 114.242.151.166 8829 && echo 1 ||echo 0 0
確認檢測方法后,發現zabbix自定義還不會,又在網上學習,總結經驗如下
參考:https://www.cnblogs.com/xiaolinstudy/p/7271861.html
二、zabbix自定義監控
1、相關概念
- item: Items是從agnet主機里面獲取的所有數據。通常情況下我叫itme為監控項,item由key+參數組成
- Key:我們可以理解為key是item的唯一標識,在agent端有很多監控項,zabbix-server根據key區分不同的監控項
- trigger:觸發器是建立在item數據上的,具有閾值觸發事件的功能
基本格式: :.()}
server:agent名稱,加入主機時配置的
key:就是上面說的key
function:對閾值進行操作的函數,以下函數
operate:表達式
constant:常量
2、自定義腳本格式
key[*],[command|sh] # <key[參數]>,<命令或者腳本> # [*]:固定格式,表示server端是否傳過來參數,在命令或者腳本中用$1,23...引用,shell腳本中的引用$$1,2,3..引用, # 如果server端不傳參數,[*]可以不寫
/etc/zabbix/zabbix_agentd.conf
Include=/apps/zabbix/etc/zabbix_agentd.conf.d/ UnsafeUserParameters=1
創建配置目錄
# mkdir /apps/zabbix/etc/zabbix_agentd.conf.d/ # mkdir /apps/zabbix/script/
# chown -R zabbix.zabbix /apps/zabbix
創建自定義key
# touch UserParameter.conf UserParameter=mport.nc,nc -w 5 192.168.151.66 8829 && echo 0 || echo 1 UserParameter=mport.nmap[*],/data/zabbix/scripts/mport_namp.sh $1 $2
測試
# zabbix_get -s 192.168.56.131 -p 10050 -k "mport.nc" # zabbix_get -s 192.168.56.131 -p 10050 -k "mport.nmap[192.168.151.66,8829]"
# 測試時,會提示權限不夠,腳本需要755權限,並給zabbix sudo權限
# chmod 755 /data/zabbix/scripts/mport_namp.sh
# echo 'zabbix ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers
3、web設置
【配置】--【主機】-- 【Zabbix server】
【監控項】--【創建監控項】
【名稱】:按需填寫
【類型】:Zabbix客戶端
【鍵值】:填寫UserParameter.conf中對應的鍵值
重啟zabbix_agent