1.二進制安裝zabbix5.0,在虛擬機本地部署
環境:
本地虛擬機為zabbix-server
阿里雲39.98.190.144 安裝zabbix-agent
注意:
需要打開常用端口和實驗涉及到的端口,都關閉防火牆,selinux啥的
zabbix-agent的配置文件中需要填寫zabbix-server的公網IP地址,才能使zabbix-agent將數據主動上傳到server,可以設置多個server-active,server
虛擬機環境:
zabbix-server:192.168.236.128,安裝zabbix-server
[root@master ~]# date
2020年 06月 18日 星期四 16:06:20 CST
[root@master ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
確保關閉selinux,firewalld
1.1 選擇安裝環境,以zabbix官網為標准,安裝可參考官網
具體安裝官網已呈現,有幾個步驟比較模糊,記錄下
1.2 裝 zabbix rpm 源,
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum clean all
可設置阿里雲zabbix源,下的快
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
啟用 zabbix 前端源,修改/etc/yum.repos.d/zabbix.repo,將[zabbix-frontend]下的 enabled 改為 1
為前端配置PHP,修改 zabbix 的 php 配置文件的時區,為亞洲上海 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
其他按照官網的就因該可以了
--------------------------
安裝之后頁面:
二.
1.實驗nginx掛了將告警信息發送到郵箱
2.實驗nginx掛了將告警信息發送到釘釘
---
1.1添加主機到zabbix-server,,並添加nginx模板
1.2添加報警媒介,類型為Email,這里查了很多博客,全是以mailx為主的,需要配置腳本,其實我覺得直接用zabbix自己的email就可以,以163郵箱為例,先在web界面上創建一個email報警媒介,
詳細信息:
163授權碼:
點擊更新,在點擊測試,給自己發個郵件,如果完全正確的話,會顯示郵件發送成功,
發郵件,給自己發個測試
看看郵箱
1.3.現在是這樣的,以nginx為例,假設nginx服務停止了,我們要通過配置里面的動作選項,經過動作里面的設置,讓指定用戶通過報警媒介發送郵件給指定負責人,剛剛配置好了報警媒介,現在配置動作:
配置操作:
操作和恢復操作是一樣的:
故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
1.4 現在配置好了動作,最后需要配置指定用戶發送郵件給負責人,指定用戶在動作選項已經選擇超級管理員Admin,現在選擇user setting配置
1.5在agent上配置安裝nginx,
~]# yum install nginx -y
重新啟動,等一會兒在關閉,給zabbix緩沖時間
~]# systemctl restart nginx
~]# systemctl stop nginx
查看界面
查看郵箱:
successssssssssssssssssssssss
2.實驗nginx掛了將告警信息發送到釘釘
先添加釘釘機器人, 將Webhook復制,填寫到下面腳本中,,,
還需設置安全設置,我這只把zabbix-server地址填進去,這樣就禁止其他IP使用webhook
這里使用的python腳本,初學python不熟,抄的別人的,無呵呵
2.1 配置釘釘機器人腳本,釘釘Webhook代碼:
#!/usr/bin/python # -*- coding: utf-8 -*- import requests,json,sys,os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "webhook地址" def msg(text): json_text= { "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ "186..." #需要@群里誰 ], "isAtAll": True #是否全部@,True為是,False為否 } } print requests.post(api_url,json.dumps(json_text),headers=headers).content if __name__ == '__main__': text = sys.argv[1] msg(text)
在zabbix-server的配置文件找到 ,進入對應的文件目錄/usr/lib/zabbix/alertscripts,這里是存放zabbix腳本的地方,web端可以通過執行此目錄修下的腳本,將腳本內容copy到dingding.py,給他執行權限 chmod +x dingding.py
記住腳本放置位置:
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@master alertscripts]# pwd
/usr/lib/zabbix/alertscripts [root@master alertscripts]# ll
總用量 8
-rwxr-xr-x 1 root root 1008 6月 18 15:02 dingding.py
2.2 測試釘釘腳本:
查看釘釘:
2.3配置報警媒介
在web端配置釘釘腳本媒介
腳本參數:
{ALERT.MESSAGE}
2.4配置動作
接下來就是配置動作,和郵件一樣,只需要更改報警媒介為創建好的“釘釘報警”,最后添加User setting中的報警媒介,和之前一樣,在添加一個頂頂報警的
2.5配置用戶
配置用戶Admin發送郵件:
測試:
在監控的客戶端停止nginx
node1 ~]# systemctl stop nginx
等一小會兒,查看面板報警信息
確認已經報警
查看釘釘報警信息:
------------
隨便記得,可能有錯。多次修改