使用zabbix實現郵箱/釘釘告警

来源:https://www.cnblogs.com/misakivv/p/18078384
-Advertisement-
Play Games

目錄一、zabbix部署1、安裝zabbix服務端2、準備資料庫(mariadb簡單點)3、修改服務的配置二、登錄zabbix三、客戶端配置1、安裝軟體包2、修改配置文件3、啟動客戶端服務四、報錯解決五、添加監控主機1、安裝軟體包2、修改配置文件3、啟動客戶端服務4、回到zabbix添加主機5、添加 ...


目錄

一、zabbix部署

涉及的虛擬主機:

主機名 ip地址
server1 192.168.112.60
server2 192.168.112.50

1、安裝zabbix服務端

  • 準備yum源,安裝服務的組件

    [root@server1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
    [root@server1 ~]# yum install zabbix-server-mysql zabbix-web-mysql  -y
    

    image-20240315205718701

  • 關閉selinux、防火牆

    [root@server1 ~]# setenforce 0
    setenforce: SELinux is disabled
    [root@server1 ~]# systemctl stop firewalld
    

2、準備資料庫(mariadb簡單點)

  • 安裝資料庫

    [root@server1 ~]# yum install -y mariadb-server
    [root@server1 ~]# systemctl start mariadb
    [root@server1 ~]# systemctl enable mariadb
    Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
    
  • 創建zabbix用戶

    [root@server1 ~]# mysql -uroot
    MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
    MariaDB [(none)]> create user zabbix@localhost identified by '000000';
    MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
    MariaDB [(none)]> \q
    

    image-20240315210302653

3、修改服務的配置

  • 導入初始架構數據

    [root@server1 ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.50/create.sql.gz | mysql -uzabbix -D zabbix -p000000
    
  • 為zabbix配置資料庫

    sed -i '/^# DBPassword=/a DBPassword=000000' /etc/zabbix/zabbix_server.conf
    
  • 編輯前端php配置

    sed -i '/php_value always_populate_raw_post_data -1/a\php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
    
  • 啟動服務

    [root@server1 ~]# systemctl restart zabbix-server httpd
    [root@server1 ~]# systemctl enable zabbix-server httpd
    

zabbix服務端部署完成,可以通過http://ip地址/zabbix訪問,初始化完成之後使用用戶Admin 密碼zabbix登錄

二、登錄zabbix

image-20240315211112309

Next step

image-20240315211458707

Next step

image-20240315211831168

Next step

image-20240315212057807

Next step

image-20240315212156815

Next step

image-20240315212232335

完成,登錄

image-20240315212323420

簡單漢化一下

image-20240315213007432

image-20240315213628680

三、客戶端配置

1、安裝軟體包

[root@server1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
[root@server1 ~]# yum install -y zabbix-agent

2、修改配置文件

[root@server1 ~]# vim /etc/zabbix/zabbix_agentd.conf
#主要修改以下三個參數
Server=192.168.112.60
ServerActive=192.168.112.60
Hostname=server1

3、啟動客戶端服務

[root@server1 ~]# systemctl start zabbix-agent.service

四、報錯解決

配置->主機->替換IP地址->更新

image-20240315214041899

[root@server1 ~]# systemctl restart zabbix-server

大概會等十分鐘

image-20240315215834229

五、添加監控主機

1、安裝軟體包

[root@server2 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
[root@server2 ~]# yum install -y zabbix-agent

2、修改配置文件

[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf

# 主要修改以下三個參數
Server=192.168.112.60	#上報給服務端
ServerActive=192.168.112.60		#服務端
Hostname=server2	#和server1不一樣即可

3、啟動客戶端服務

[root@server2 ~]# systemctl restart zabbix-agent
[root@server2 ~]# ss -tnl		#看到埠10050起來了就行
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port             
LISTEN      0      128              *:22                           *:*
LISTEN      0      100      127.0.0.1:25                           *:*
LISTEN      0      128              *:10050                        *:*
LISTEN      0      128           [::]:22                        [::]:*
LISTEN      0      100          [::1]:25                        [::]:*
LISTEN      0      128           [::]:10050                     [::]:*

4、回到zabbix添加主機

配置->主機->創建主機

image-20240316224752626

5、添加模板

配置->主機->server2->模板添加->更新

image-20240316225655651

正常到這一步主機已經變為綠色,並且模板自動添加了應用集與監控項

image-20240316230437822

六、添加mysql自定義監控項

1、被監控主機上安裝mariadb做測試

[root@server2 ~]# yum install -y mariadb-server
[root@server2 ~]# systemctl start mariadb

2、編寫客戶端監控項配置文件

[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mariadb_status,mysqladmin ping 2>/dev/null|grep -c alive	#判斷mariadb狀態
UserParameter=mariadb_connections,mysql -e "show processlist;" 2>/dev/null | sed -n '2,$'p | wc -l			#mariadb連接數
UserParameter=mariadb_max_connections,mysql -e 'show variables like "%max_connections%"' 2>/dev/null|tail -1|awk '{print $2}'
	#mariadb最大連接數

[root@server2 ~]# systemctl restart zabbix-agent.service

image-20240317000634194

註意,添加到監控項配置文件里的命令需結合自身情況合理編寫

3、驗證自定義的監控項是否生效

[root@server1 zabbix]#  yum install zabbix-get.x86_64 -y
[root@server1 zabbix]# zabbix_get -s 192.168.112.50 -k mariadb_status
1
[root@server1 zabbix]# zabbix_get -s 192.168.112.50 -k mariadb_max_connections
151

4、web端添加監控項對應鍵值

配置->主機->server2->監控項->創建監控項

image-20240317001420725

5、添加圖形可視化(選做)

配置->主機->server2->圖形->創建圖形

image-20240317002217885

image-20240317002503867

6、添加對應的觸發器

配置->主機->server2->創建觸發器

image-20240317003231611


image-20240317003607174

7、小問題

image-20240317100435143

如果出現了這個警告問題不大,畢竟我們剛纔安裝了mariadb資料庫,自然在/etc/passwd上添加了用戶

image-20240317100625025

七、zabbix實現郵件告警

1、配置告警媒介

管理->報警媒介類型->Email

image-20240315220447392

image-20240315221634655

2、獲取qq郵箱授權碼

登錄qq郵箱->設置->賬號->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務->

image-20240315222242868

簡訊驗證

image-20240315222420729

將生成好的授權碼作為密碼填入

image-20240316220458215

3、添加接收報警郵件的郵箱

管理->用戶->Admin->添加報警媒介->更新

image-20240316221944281

4、配置動作發送給用戶群組

配置->動作->啟用->Report problems to Zabbix administrators

image-20240317004356654


image-20240317004645189


image-20240317004847331

5、測試(關閉被監測主機mariadb)

[root@server2 ~]# ss -tnl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port             
LISTEN      0      128              *:22                           *:*
LISTEN      0      100      127.0.0.1:25                           *:*
LISTEN      0      128              *:10050                        *:*
LISTEN      0      50               *:3306                         *:*
LISTEN      0      128           [::]:22                        [::]:*
LISTEN      0      100          [::1]:25                        [::]:*
LISTEN      0      128           [::]:10050                     [::]:*
[root@server2 ~]# systemctl stop mariadb

image-20240317005922148

八、zabbix通過釘釘/企業微信告警

1、釘釘群聊

手機端直接拉個普通群,PC端 不好操作

2、添加群機器人(PC端創建)

群設置->機器人->添加機器人->自定義機器人->保管好Webhook

image-20240317102659871


image-20240317103042620


image-20240317104725009

3、到服務端/usr/lib/zabbix/alertscripts下準備python腳本

[root@server1 alertscripts]# pwd
/usr/lib/zabbix/alertscripts
[root@server1 alertscripts]# yum install -y python-requests		#下載requests模塊
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Author: xxxxxxxx
import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://oapi.dingtalk.com/robot/send?access_token=7b7f9820e221a6a6ecca0944622275ab9c53394cc66145e58156e95e319fc30e"	#寫自己的Webhook
def msg(text):
    json_text= {
    "msgtype": "text",
    "at": {
        "atMobiles": [
            "13333333333"
        ],
            "isAtAll": True
     },
     "text": {
        "content": text
     }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':
     text = "zabbix-test"	#測試一下文本
     #text = sys.argv[1]
     msg(text)

4、測試腳本

[root@server1 alertscripts]# chmod a+x zabbix-ding.py
[root@server1 alertscripts]# ./zabbix-ding.py
{"errcode":0,"errmsg":"ok"}

image-20240317105758426

沒問題回到代碼進行修改

[root@server1 alertscripts]# vim zabbix-ding.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Author: xxxxxxxx
import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://oapi.dingtalk.com/robot/send?access_token=7b7f9820e221a6a6ecca0944622275ab9c53394cc66145e58156e95e319fc30e"
def msg(text):
    json_text= {
    "msgtype": "text",
    "at": {
        "atMobiles": [
            "13333333333"
        ],
            "isAtAll": True
     },
     "text": {
        "content": text
     }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':
     #text = "zabbix-test"
     text = sys.argv[1]
     msg(text)

5、添加告警媒介

管理->報警媒介類型->創建媒體類型->添加名稱,腳本名稱,腳本參數

image-20240317110835346

6、添加動作

配置->動作->創建動作

image-20240317111415926


image-20240317111956534

7、綁定用戶,用戶收件人寫電話號碼

管理->用戶->Admin->報警媒介->添加報警媒介->更新

image-20240317112257235


image-20240317113232587

8、手動測試(關閉mariadb)

[root@server2 ~]# systemctl stop mariadb
[root@server2 ~]# ss -tnl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port             
LISTEN      0      128              *:10050                        *:*
LISTEN      0      128              *:22                           *:*
LISTEN      0      100      127.0.0.1:25                           *:*
LISTEN      0      128           [::]:10050                     [::]:*
LISTEN      0      128           [::]:22                        [::]:*
LISTEN      0      100          [::1]:25                        [::]:*

效果呈現:

image-20240317112733249


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

-Advertisement-
Play Games
更多相關文章
  • 前言 異常的處理在我們應用程式中是至關重要的,在 dotNet 中有很多異常處理的機制,比如MVC的異常篩選器, 管道中間件定義try catch捕獲異常處理亦或者第三方的解決方案Hellang.Middleware.ProblemDetails等。MVC異常篩選器不太靈活,對管道的部分異常捕獲不到 ...
  • 讓我先把相關的報錯信息通過文字貼到下方,方便被檢索出來 出錯了! (warning!) curl error code=403; 系統錯誤 (explorer.editor.fileGet) explorer/editor.class.php[64] IO::fileSubstr(0,1,2) bi ...
  • 通過視頻幀圖片提取,圖片批量裁剪,轉換為BMP文件並取模,獲得顯示屏代碼,基於STC32單片機,在8x8點陣LED模塊上實現動畫播放。 ...
  • 本文主要學習 FreeRTOS 互斥量的相關知識,包括優先順序翻轉問題、優先順序繼承、死鎖現象、創建/刪除互斥量 和 獲取/釋放互斥量等知識 ...
  • 一、六種Java線程狀態 新建狀態(New):當創建一個Thread實例後,線程就處於新建狀態。此時線程對象已經被分配了記憶體,並初始化了其成員變數的值。 就緒狀態(Runnable):也被稱為“可執行狀態”。當調用了線程的start()方法後,線程就進入了就緒狀態。此時線程已經具備了執行的條件,等待 ...
  • 痞子衡嵌入式半月刊: 第 95 期 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 ...
  • 實驗環境: 兩台windows servers 一臺已經配置了FTP伺服器,IP為192.168.1.220,vmnet1 一臺作為客戶端測試,IP為192.168.1.138,vmnet1 一:FTP IP限制 1.關閉ftp伺服器端防火牆,使客戶端能pin通伺服器端 2.在客戶端資源管理器輸入f ...
  • 實驗環境: windows server虛擬機一臺 網路適配器:vmnet1 ip:192.168.1.220 一.安裝FTP服務 打開伺服器管理器 點擊添加角色,勾IIS,點擊下一步直到對話框消失 勾選FTP 從開始菜單找到管理工具 打開IIS 可以看見ftp服務的相關信息,說明安裝成功 二:新建 ...
一周排行
    -Advertisement-
    Play Games
  • 通過WPF的按鈕、文本輸入框實現了一個簡單的SpinBox數字輸入用戶組件並可以通過數據綁定數值和步長。本文中介紹了通過Xaml代碼實現自定義組件的佈局,依賴屬性的定義和使用等知識點。 ...
  • 以前,我看到一個朋友在對一個系統做初始化的時候,通過一組魔幻般的按鍵,調出來一個隱藏的系統設置界面,這個界面在常規的菜單或者工具欄是看不到的,因為它是一個後臺設置的關鍵界面,不公開,同時避免常規用戶的誤操作,它是作為一個超級管理員的入口功能,這個是很不錯的思路。其實Winform做這樣的處理也是很容... ...
  • 一:背景 1. 講故事 前些天有位朋友找到我,說他的程式每次關閉時就會自動崩潰,一直找不到原因讓我幫忙看一下怎麼回事,這位朋友應該是第二次找我了,分析了下 dump 還是挺經典的,拿出來給大家分享一下吧。 二:WinDbg 分析 1. 為什麼會崩潰 找崩潰原因比較簡單,用 !analyze -v 命 ...
  • 在一些報表模塊中,需要我們根據用戶操作的名稱,來動態根據人員姓名,更新報表的簽名圖片,也就是電子手寫簽名效果,本篇隨筆介紹一下使用FastReport報表動態更新人員簽名圖片。 ...
  • 最新內容優先發佈於個人博客:小虎技術分享站,隨後逐步搬運到博客園。 創作不易,如果覺得有用請在Github上為博主點亮一顆小星星吧! 博主開始學習編程於11年前,年少時還只會使用cin 和cout ,給單片機點點燈。那時候,類似async/await 和future/promise 模型的認知還不是 ...
  • 之前在阿裡雲ECS 99元/年的活動實例上搭建了一個測試用的MINIO服務,以前都是直接當基礎設施來使用的,這次準備自己學一下S3相容API相關的對象存儲開發,因此有了這個小工具。目前僅包含上傳功能,後續計劃開發一個類似圖床的對象存儲應用。 ...
  • 目錄簡介快速入門安裝 NuGet 包實體類User資料庫類DbFactory增刪改查InsertSelectUpdateDelete總結 簡介 NPoco 是 PetaPoco 的一個分支,具有一些額外的功能,截至現在 github 星數 839。NPoco 中文資料沒多少,我是被博客園群友推薦的, ...
  • 前言 前面使用 Admin.Core 的代碼生成器生成了通用代碼生成器的基礎模塊 分組,模板,項目,項目模型,項目欄位的基礎功能,本篇繼續完善,實現最核心的模板生成功能,並提供生成預覽及代碼文件壓縮下載 準備 首先清楚幾個模塊的關係,如何使用,簡單畫一個流程圖 前面完成了基礎的模板組,模板管理,項目 ...
  • 假設需要實現一個圖標和文本結合的按鈕 ,普通做法是 直接重寫該按鈕的模板; 如果想作為通用的呢? 兩種做法: 附加屬性 自定義控制項 推薦使用附加屬性的形式 第一種:附加屬性 創建Button的附加屬性 ButtonExtensions 1 public static class ButtonExte ...
  • 在C#中,委托是一種引用類型的數據類型,允許我們封裝方法的引用。通過使用委托,我們可以將方法作為參數傳遞給其他方法,或者將多個方法組合在一起,從而實現更靈活的編程模式。委托類似於函數指針,但提供了類型安全和垃圾回收等現代語言特性。 基本概念 定義委托 定義委托需要指定它所代表的方法的原型,包括返回類 ...