3. 【詳細到哭系列】Zabbix監控並且實現各種報警

来源:https://www.cnblogs.com/l-hh/archive/2020/03/20/12530889.html
-Advertisement-
Play Games

每個被監控節點安裝zabbix客戶端 1)下載並安裝zabbix源: 2)安裝zabbix agent代理軟體: 3)更改配置文件: 4)啟動zabbix客戶端 註:這裡只演示一個節點,其餘的節點同理! 觸發器實現郵件報警和微信報警 觸發器的介紹 報警流程:定義條件 滿足條件 馬上觸發 實現報警 實 ...


每個被監控節點安裝zabbix客戶端

1)下載並安裝zabbix源:

[root@nginx-master ~]# rpm -ivh https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

2)安裝zabbix-agent代理軟體:

[root@nginx-master ~]# yum install zabbix-agent -y 

3)更改配置文件:

[root@nginx-slave ~]# vim /etc/zabbix/zabbix_agentd.conf
------------------------- 配置信息--------------------------------
97   Server=192.168.115.0/24            #zabbix_server的IP
138  ServerActive=192.168.115.0/24   #zabbix_server的IP
149  Hostname=nginx-master        #重要:主機名

4)啟動zabbix客戶端

[root@nginx-master ~]# systemctl start zabbix-agent                       
[root@nginx-master ~]# systemctl enable zabbix-agent 

註:這裡只演示一個節點,其餘的節點同理!

觸發器實現郵件報警和微信報警

觸發器的介紹

報警流程:定義條件---滿足條件----馬上觸發---實現報警

實現郵件報警

1)過濾zabbix主配置文件

[root@zabbix-master ~]# grep '^[^#].*' /etc/zabbix/zabbix_server.conf

2)找到併進入AlertScriptsPath所對應的目錄

[root@zabbix-master ~]# vim /etc/zabbix/zabbix_server.conf

image

3)在此目錄下創建一個Python腳本

[root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix-master alertscripts]# vim mail.py 

腳本信息如下:

#!/usr/bin/python
#coding:utf-8

from email.mime.text import MIMEText
from email.header import Header
import smtplib
import sys

# 個人郵件信息,在郵箱設置里必須開啟SMTP
smtpaddr = 'smtp.163.com'
myemail = '[email protected]'
# 註意:此密碼是授權碼如果是163的話
password = 'xxxx'

# 第一是接收的郵件是什麼,第二是郵件的主題,第三是正文(內容)
recvmail = sys.argv[1]
subject = sys.argv[2]
content = sys.argv[3]

msg = MIMEText("""%s"""%(content),"plain","utf-8")
msg['Subject'] = Header(subject,'utf-8').encode()
msg['From'] = myemail
msg['to'] = recvmail
try:
   server = smtplib.SMTP()
   server.connect(smtpaddr,"25")
   server.login(myemail,password)
   server.sendmail(myemail,recvmail.split(','),msg.as_string())
   server.quit
   print("success")
except Exception as e:
        print("fail:"+str(e))

image

[root@zabbix-master alertscripts]# chmod +x mail.py

image

4)配置好腳本後,用命令發送郵件測試

image
image
郵箱發送完成!

5)創建報警媒介

預設的報警媒介類型有3種,我們可以創建一個名為“郵箱”的媒介類型,以腳本的方式進行創建,腳本名稱為mail.py。

腳本參數添加兩項一個是{ALERT.SENDTO}發送給誰的,{ALERT.SUBJECT},還有一個是{ALERT.MESSAGE}發送的內容。

image

image

image

給用戶添加報警媒介時指定嚴重性級別

image

image

創建郵件報警就已經完成初步階段,觸發報警請往下看web主頁監測

實現微信報警

註:請自行創建企業微信,這裡已經創建好了。

1)找到併進入AlertScriptsPath所對應的目錄

 [root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts  

2)在此目錄下創建一個Python腳本

[root@zabbix-master alertscripts]# vim weixin.py
------------------------------腳本信息----------------------------
#!/usr/bin/env python
# encoding: utf-8
import json
import sys
import urllib,urllib2

#需要三個變數corpid、corpsecret、agentid
agentid = '企業微信的AgentId'
corpid = '企業ID'
corpsecret = '企業微信的Secret'

#獲取tocken,存在my_tocken裡面
gettoken_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
token_file = urllib2.urlopen(gettoken_url)
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
my_token = token_json['access_token']

#利用獲取到的tocken發送微信信息
touser=sys.argv[1]
content=sys.argv[2]
post_content={
        "touser":touser,
        "agentid":agentid,
        "msgtype": "text",
        "text": {
                "content":content,
        }
 }

json_content = json.dumps(post_content)

url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' +my_token
response = urllib2.urlopen(url,json_content)
print(response.read().decode('utf-8'))

image

3)測試發送微信信息

[root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix-master alertscripts]# ./weixin.py 企業微信號 'test'  

4)添加報警媒介類型

創建一個名為“微信報警”的媒介類型,以腳本的方式進行創建,腳本名稱為 weixin.py。

腳本參數添加兩項一個是{ALERT.SENDTO}發送給誰的,還有一個是{ALERT.MESSAGE}發送的內容。

image

image

註:將兩個常用報警方式添加好之後,接下來就可以創建觸發器和動作來實現報警。

創建主機及web主頁監控

這是我們前面配置好的nginx高可用反向代理的web主頁,直接監測VIP。

image

先創建一臺被監控主機

image

image

添加一個web場景

image
image
image

創建觸發器

image
image

創建動作
註:當條件滿足觸發器時——實現的動作

image
image
image

註:我們這裡選擇的是微信報警方式,郵件報警則選擇“僅送到:郵件報警”

image

測試報警

然後我們查看一下監控的數據(檢測中->web檢測),當我們看到響應代碼為200時表示檢測成功了。

image

接下來模擬主頁訪問不了,是否觸發報警。

[root@web1 html]# rm -rf index.html 

image

當HTTP狀態碼不是200時,則觸發報警,請自行瞭解HTTP狀態碼。

image

此時告警信息已經發送到我們的企業微信里了,恢復之後也會發送一條恢覆信息,請自行實驗。

image

到此就完成了郵件(郵件自行測試)和微信報警。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 帶著問題去思考!大家好。 修飾符 修飾符有什麼作用呢?它是什麼東西呢? 首先修飾符有四種 private[ˈpraɪvət] protected [prə'tektɪd] internal [ɪnˈtɜːnl] public [ˈpʌblɪk] 他們的特效依次是: private 修飾符用於設置類或 ...
  • Humanizer 能夠滿足您所有.Net關於操作和展示以下類型的需求,包括字元串、枚舉、日期、時間、時間跨度、數字和數量。它採用 MIT 進行授權分發。 ...
  • using System.Security.Cryptography; static void Main(string[] args) { string rawString = "Make every second count."; string encryptedString = Encrypt3 ...
  • 近期公司重構了些界面,因為換膚和界面定製的緣故,需要把樣式和邏輯分開;所以記錄下關鍵的操作;主要是利用命令代替事件... 1 <Window x:Class="Demo_MVVM.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006 ...
  • 客戶端請求Api資源網關(受保護的資源)時,第一次收到請求會到授權中心(ids4服務網關)獲取驗證公鑰,並保持到記憶體中,後面的請求不會再到授權中心去獲得驗證公鑰,而是Api資源網關(受保護的資源)中直接通過保存下來的驗證公鑰進行驗證,從而通過授權 ...
  • 接下來的問題是記憶體怎麼分割? 這樣就可以將程式的各個段載入到相應的記憶體分區中 1. 固定分區與可變分區 2. 可變分區的管理過程 核心數據結構 請求分配 釋放記憶體 再次申請 例題: 3. 引入分頁 解決記憶體分區導致的記憶體效率問題 1. 可變分區造成的問題 2. 從連續到離散 3. 接下來就是頁表 ...
  • 先編寫應用程式,使之包含三個進程,分別輸出三個字母,不知道從何下手,先研究一下上課老師講的例子,代碼如下 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <pthread.h> 4 5 void loop(){ 6 while(1); 7 ...
  • 一 glusterfs存儲集群部署 註意:以下為簡略步驟,詳情參考《附009.Kubernetes永久存儲之GlusterFS獨立部署》。 1.1 架構示意 略 1.2 相關規劃 主機 IP 磁碟 備註 k8smaster01 172.24.8.71 —— Kubernetes Master節點 H ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...