02.23 基於zabbix4.0--shell腳本批量監控應用URL及告警

概述

由於生產環境有大量url需要監控,形式如http://ip:端口/login,要求url狀態不為200即報警並且獲得響應時間(url可改成自己應用裡的url),如果用zabbix,一個一個手動添加模板,會造成大量重複工作,如果利用腳本+mail,則無法圖形呈現。所以這裡利用zabbix的discovery功能來實現應用的監控。


一、zabbix客戶端配置

1、修改zabbix-agent端的配置文件

<code># vi /etc/zabbix/zabbix_agentd.conf=============================================================================================UnsafeUserParameters=1# 把這個值改為1,因為自動發現的腳本中有一些特殊字符,被認為是不安全的因素,1表示允許這些字符存在# 如果不改,後期在Server端就會報錯,原因就在這裡=============================================================================================# vi /etc/zabbix/zabbix_agentd.d/url.conf=============================================================================================# 第一行是自動發現腳本的路徑UserParameter=url.discovery,/etc/zabbix/zabbix_agentd.d/url_discovery.sh# 第二行是檢測URL狀態的腳本路徑UserParameter=url.status[*],/etc/zabbix/zabbix_agentd.d/url_status.sh $1 $2=============================================================================================/<code>

2、自動發現腳本(url_discovery.sh)

獲取監控URL,輸出格式為json格式,用於zabbix自動發現TCP

<code>#!/bin/bashWEB_SITE=($(grep -v "^#" /data/zabbix/WEB.txt))length=${#WEB_SITE[@]}printf "{\\n"printf  '\\t'"\"data\":["for ((i=0;i/<code>

3、監控項腳本(url_status.sh)

指標解釋 :

http_code:獲取curl獲取URL的http狀態碼

time_total:完成請求所用的時間,單位為s

time_connect:建立到服務器的TCP 連接所用的時間,單位為s

time_starttransfer:在發出請求之後,Web 服務器返回數據的第一個字節所用的時間,單位為s

speed_download:傳輸速度,單位為B/s,這裡換算成MB/s

<code>#!/bin/bashurl=$1status=$2http_code () { /usr/bin/curl -o /dev/null -s -w %{http_code}  $url} time_total () {/usr/bin/curl -o /dev/null -s -w %{time_total}  $url}time_connect () {/usr/bin/curl -o /dev/null -s -w %{time_connect}  $url}time_starttransfer () {/usr/bin/curl -o /dev/null -s -w %{time_starttransfer}  $url}speed_download () {/usr/bin/curl -o /dev/null -s -w %{speed_download}  $url|awk  '{print $1/1024/1024}'}case $status in    http_code)       http_code   ;;   time_total)       time_total     ;;    time_connect)       time_connect   ;;   time_starttransfer)       time_starttransfer     ;;    speed_download)       speed_download     ;;    *)       echo "Usage:$0 {[URL] http_code|time_total|time_connect|time_starttransfer|speed_download}"    ;; esac/<code>

4、監控URL列表(/etc/zabbix/WEB.txt)

<code>#weburlhttp://服務器IP:8050/pass/login..../<code>
<code>chown -R zabbix:zabbix /etc/zabbixchmod -R 755 /etc/zabbixsystemctl restart zabbix-agent/<code>


6、在zabbix服務端驗證並測試

<code>zabbix_get -s localhost  -p 10050 -k url.discovery/<code>
基於zabbix4.0--shell腳本批量監控應用URL及告警



二、zabbix-server的web端操作

1、創建模板

配置--模板--創建模板

基於zabbix4.0--shell腳本批量監控應用URL及告警

2、配置自動發現規則

2.1、創建發現規則

配置-模板-創建發現規則

<code>名稱:WEB URL discovery鍵值:url.discovery/<code>
基於zabbix4.0--shell腳本批量監控應用URL及告警

2.2、創建監控項原型

在自動發現規則裡選創建監控項原型。

注意,這是在模板的自動發現規則裡面的監控項原型定義的監控項 並不是 模板裡面的監控項 兩者是不同的,當你把監控項原型定義之後,會自動發現裡面的規則,然後自動在監控項裡面添加

<code>名稱: {#URLNAME} 狀態碼鍵值: url.status[{#URLNAME},http_code]信息類型:數字(無正負)單位: ops/second         #這個單位很重要,如果沒有這個單位會導致觸發器無法識別這個item名稱: {#URLNAME} 響應時間鍵值: url.status[{#URLNAME},time_total]信息類型:浮點數單位: s                名稱: {#URLNAME} 連接時間鍵值: url.status[{#URLNAME},time_connect]信息類型:浮點數單位: s                名稱: {#URLNAME} 返回數據時間鍵值: url.status[{#URLNAME},time_starttransfer]信息類型:浮點數單位: s                名稱: {#URLNAME} 傳輸速度鍵值: url.status[{#URLNAME},speed_download]信息類型:浮點數單位: MB/s/<code>
基於zabbix4.0--shell腳本批量監控應用URL及告警

2.3、最終的監控項原型

基於zabbix4.0--shell腳本批量監控應用URL及告警


3、模板關聯主機

基於zabbix4.0--shell腳本批量監控應用URL及告警

4、測試

4.1、查看監控項

配置-主機-監控項,可以看到我們定義的動態的key已經生成,失效的key到期會自動刪除

基於zabbix4.0--shell腳本批量監控應用URL及告警

4.2、查看最新數據

監測-最新數據,也可以看到已經獲取到數據

基於zabbix4.0--shell腳本批量監控應用URL及告警

5、配置觸發器原型

配置-模板-自動發現規則-觸發器類型-創建觸發器原型

<code>名稱:http_code not 200表達式:如果最近連續4次取到的response_code值不是200,則觸發報警{url:url.status[{#URLNAME},http_code].last()}<>200 and {url:url.status[{#URLNAME},http_code].last(#1)}<>200 and {url:url.status[{#URLNAME},http_code].last(#2)}<>200 and {url:url.status[{#URLNAME},http_code].last(#3)}<>200/<code>
基於zabbix4.0--shell腳本批量監控應用URL及告警


6、配置圖形

配置-模板-自動發現規則-圖形原型-創建圖形原型

基於zabbix4.0--shell腳本批量監控應用URL及告警


監測-圖形,可以查看圖形

基於zabbix4.0--shell腳本批量監控應用URL及告警



覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~


基於zabbix4.0--shell腳本批量監控應用URL及告警


分享到:


相關文章: