- 一、zabbix部署
- 1、安裝zabbix服務端
- 2、準備資料庫(mariadb簡單點)
- 3、修改服務的配置
- 二、登入zabbix
- 三、客戶端配置
- 1、安裝軟體包
- 2、修改配置檔案
- 3、啟動客戶端服務
- 四、報錯解決
- 五、新增監控主機
- 1、安裝軟體包
- 2、修改配置檔案
- 3、啟動客戶端服務
- 4、回到zabbix新增主機
- 5、新增模板
- 六、新增mysql自定義監控項
- 1、被監控主機上安裝mariadb做測試
- 2、編寫客戶端監控項配置檔案
- 3、驗證自定義的監控項是否生效
- 4、web端新增監控項對應鍵值
- 5、新增圖形視覺化(選做)
- 6、新增對應的觸發器
- 7、小問題
- 七、zabbix實現郵件告警
- 1、配置告警媒介
- 2、獲取qq郵箱授權碼
- 3、新增接收報警郵件的郵箱
- 4、配置動作傳送給使用者群組
- 5、測試(關閉被監測主機mariadb)
- 八、zabbix透過釘釘/企業微信告警
- 1、釘釘群聊
- 2、新增群機器人(PC端建立)
- 3、到服務端/usr/lib/zabbix/alertscripts下準備python指令碼
- 4、測試指令碼
- 5、新增告警媒介
- 6、新增動作
- 7、繫結使用者,使用者收件人寫電話號碼
- 8、手動測試(關閉mariadb)
- 效果呈現:
一、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
-
關閉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
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
Next step
Next step
Next step
Next step
Next step
完成,登入
簡單漢化一下
三、客戶端配置
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地址->更新
[root@server1 ~]# systemctl restart zabbix-server
大概會等十分鐘
五、新增監控主機
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新增主機
配置->主機->建立主機
5、新增模板
配置->主機->server2->模板新增->更新
正常到這一步主機已經變為綠色,並且模板自動新增了應用集與監控項
六、新增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
注意,新增到監控項配置檔案裡的命令需結合自身情況合理編寫
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->監控項->建立監控項
5、新增圖形視覺化(選做)
配置->主機->server2->圖形->建立圖形
6、新增對應的觸發器
配置->主機->server2->建立觸發器
7、小問題
如果出現了這個警告問題不大,畢竟我們剛才安裝了mariadb資料庫,自然在/etc/passwd上新增了使用者
七、zabbix實現郵件告警
1、配置告警媒介
管理->報警媒介型別->Email
2、獲取qq郵箱授權碼
登入qq郵箱->設定->賬號->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務->
簡訊驗證
將生成好的授權碼作為密碼填入
3、新增接收報警郵件的郵箱
管理->使用者->Admin->新增報警媒介->更新
4、配置動作傳送給使用者群組
配置->動作->啟用->Report problems to Zabbix administrators
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
八、zabbix透過釘釘/企業微信告警
1、釘釘群聊
手機端直接拉個普通群,PC端 不好操作
2、新增群機器人(PC端建立)
群設定->機器人->新增機器人->自定義機器人->保管好Webhook
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"}
沒問題回到程式碼進行修改
[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、新增告警媒介
管理->報警媒介型別->建立媒體型別->新增名稱,指令碼名稱,指令碼引數
6、新增動作
配置->動作->建立動作
7、繫結使用者,使用者收件人寫電話號碼
管理->使用者->Admin->報警媒介->新增報警媒介->更新
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 [::]:*