alma8飛速搭建zabbix6、微信報警、windows、linux、交換機監(jiān)控
一、環(huán)境
zabbix所在服務(wù)器系統(tǒng)為alma8,zabbix6要求的mariadb版本為10.5-10.6,同時zabbix提供了zabbix-selinux-policy來配置selinux,所以安裝中也不再要求關(guān)閉selinux。
二、安裝zabbix
官方安裝幫助頁面
https://www.zabbix.com/cn/download
1、配置zabbix 軟件源
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm
dnf clean all
2、安裝zabbix-server
和zabbix-agent2
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2
3、安裝數(shù)據(jù)庫
配置mariabd源?/etc/yum.repos.d/MariaDB.repo
# MariaDB 10.6 CentOS repository list - created 2022-06-05 01:39 UTC# https://mariadb.org/download/[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.6/centos8-amd64
module_hotfixes=1
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
安裝數(shù)據(jù)庫、啟動、并設(shè)置開機啟動
dnf clean all
dnf install mariadb-server
systemctl enable --now mariadb
4、進行MariaDB數(shù)據(jù)庫初始化mysql_secure_installation
首先是設(shè)置密碼,會提示先輸入密碼
Enter current password for root (enter for none):<–初次運行直接回車
Set root password? [Y/n] <– 是否設(shè)置root用戶密碼,輸入y并回車
New password: <– 設(shè)置root用戶的密碼
Re-enter new password: <– 再輸入一次你設(shè)置的密碼
Remove anonymous users? [Y/n] <– 是否刪除匿名用戶
Disallow root login remotely? [Y/n] <–是否禁止root遠程登錄
Remove test database and access to it? [Y/n] <– 是否刪除test數(shù)據(jù)庫
Reload privilege tables now? [Y/n] <– 是否重新加載權(quán)限表
5、初始化并導(dǎo)入zabbix數(shù)據(jù)庫?mysql -uroot -p
登錄
mariadb> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mariadb> create user zabbix@localhost identified by 'password123';
mariadb> grant all privileges on zabbix.* to zabbix@localhost;
mariadb> quit;
導(dǎo)入初始架構(gòu)和數(shù)據(jù),系統(tǒng)將提示您輸入新創(chuàng)建的密碼
zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
6、配置數(shù)據(jù)庫密碼
編輯配置文件?/etc/zabbix/zabbix_server.conf
DBPassword=password123
7、配置PHP時區(qū)
編輯配置文件?/etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
8、啟動并設(shè)置開機啟動
systemctl enable --now zabbix-server zabbix-agent2 httpd php-fpm
9、查看是否有錯誤信息
cat /var/log/zabbix/zabbix_server.log
10、防火墻開放端口
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --permanent --add-port=10050-10051/tcp
firewall-cmd --reload
firewall-cmd --list-ports
firewall-cmd --list-services
11、替換zabbix自帶字體,解決中文亂碼
百度下載Noto Sans S Chinese字體替換掉默認使用的DejaVuSans
cp NotoSansSC-Regular.otf /usr/share/fonts/dejavu/DejaVuSans.ttf
12、調(diào)整zabbix緩存/etc/zabbix/zabbix_server.conf
CacheSize=1G
13、調(diào)整ping進程數(shù)/etc/zabbix/zabbix_server.conf
StartPingers=16
三、服務(wù)端配置
1、連接到新安裝的Zabbix前端:?http://server_ip/zabbix
注意,mariadb也屬于mysql數(shù)據(jù)庫類型
2、登錄zabbix
賬號Admin 密碼zabbix
前端配置完成
請務(wù)必修改密碼
四、企業(yè)微信消息推送
1、在企業(yè)微信 - 我的企業(yè) - 企業(yè)信息 - 企業(yè)ID
2、創(chuàng)建zabbix機器人應(yīng)用
企業(yè)微信后臺 - 應(yīng)用管理 - 應(yīng)用 - 創(chuàng)建應(yīng)用
3、查看Agentld和Secret
4、準備zabbix機器人腳本環(huán)境
dnf -y install epel-release
dnf -y install python2-pip
pip2 install requests
查詢腳本存放位置cat /etc/zabbix/zabbix_server.conf | grep AlertScript
可以看到腳本存放在/usr/lib/zabbix/alertscripts
目錄中
編寫腳本 weixin.py并放入上面的目錄 ,填入上面獲得的三個值
#!/usr/bin/env python2#-*- coding: utf-8 -*-import requestsimport sysimport osimport jsonimport logging
logging . basicConfig ( level ?= ?logging . DEBUG , ?format ?= ?' %(asctime)s , ?%(filename)s , ?%(levelname)s , ?%(message)s ' ,datefmt ?= ?' %a , ?%d %b ?%Y %H:%M:%S' ,filename ?= ?os . path . join ( '/tmp' , 'weixin.log' ),filemode ?= ?'a' )corpid = 'ww36e'appsecret = '5yFNqeTjrr3I'agentid = 1000002token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' ?+ ?corpid ?+ ?'&corpsecret=' ?+ ?appsecret
req = requests . get ( token_url )accesstoken = req . json ()[ 'access_token' ]msgsend_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' ?+ ?accesstoken
touser = sys . argv [ 1 ]subject = sys . argv [ 2 ]#toparty='3|4|5|6'message = sys . argv [ 2 ] + ?" \n\n " ?+ sys . argv [ 3 ]params ={"touser" : ?touser ,# "toparty": toparty,"msgtype" : ?"text" ,"agentid" : ?agentid ,"text" : {"content" : ?message},"safe" : 0}req = requests . post ( msgsend_url , ?data = json . dumps ( params ))logging . info ( 'sendto:' ?+ ?touser ?+ ?';;subject:' ?+ ?subject ?+ ?';;message:' ?+ ?message )
賦予執(zhí)行權(quán)限chmod +x /usr/lib/zabbix/alertscripts/weixin.py
創(chuàng)建日志文件
touch /tmp/weixin.log
chown zabbix:zabbix /tmp/weixin.log
測試腳本,用戶名為企業(yè)微信通訊錄中的用戶名,一般為拼音全拼,嚴格區(qū)分大小寫!/usr/lib/zabbix/alertscripts/weixin.py 用戶名 '標題' '測試成功'
此時企業(yè)微信可以收到zaabix應(yīng)用發(fā)來的信息。
5、添加報警媒介zabbix后臺 - 管理 - 報警媒介類型
名稱?weixin
類型?腳本
腳本名稱?weixin.py
腳本參數(shù):
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
6、配置Trigger actions觸發(fā)動作,啟用消息推送管理員,填寫要發(fā)送的信息配置 - 動作 Trigger actions - 創(chuàng)建動作
在?動作
?中填寫名稱
在?操作
?中編輯操作和恢復(fù)操作
操作
發(fā)送消息zabbix管理員組
僅發(fā)送到微信
custom message
主題:服務(wù)器報警
消息:
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監(jiān)控項目:{ITEM.NAME}
監(jiān)控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態(tài):{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
恢復(fù)操作
通知所有參與者
custom message
主題:服務(wù)器已恢復(fù)
消息:
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監(jiān)控項目:{ITEM.NAME}
監(jiān)控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態(tài):{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
7、配置Autoregistration actions自動注冊,填寫要發(fā)送的信息
在Autoregistration actions自動注冊中
注意:自動注冊的其他內(nèi)容在下方linux、windows部分
發(fā)送消息
zabbix管理員組
僅送到weixin
Custom message
主題:Linux主機自動注冊到zabbix服務(wù)器
消息:
主機名:{HOST.HOST}
主機IP:{HOST.IP}
Agent端口:{HOST.PORT}
8、接收微信推送人員管理-用戶-報警媒介
五、自動注冊windows主機平臺 - 配置 - 動作 - Autoregistration actions自動注冊
創(chuàng)建動作
元數(shù)據(jù)中的 Linux 為下方腳本里的?HostMetadata=windows
?嚴格區(qū)分大小寫
操作
添加主機
添加主機群組
關(guān)聯(lián)模板
下載安裝agent2客戶端
https://www.zabbix.com/cn/download_agents
最新版本為 Zabbix agent 2 v6.0.5
修改配置 HostMetadata=windows
C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf
重啟服務(wù)
收到自動注冊提示
六、自動注冊linux主機
zabbix平臺自動注冊linux與windows方法基本相同,元數(shù)據(jù)
修改為linux
在linux客戶端上可以使用自動化腳本安裝zabbix agent2客戶端
我這里僅放一個centos7/8的安裝腳本,內(nèi)容為卸載agent1安裝agent2
#/bin/bashecho "關(guān)閉selinux"
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
setenforce 0
echo "下載zabbix-agent2,卸載agent1"
OSVERSION=`cat /etc/redhat-release |awk -F "release " '{print $2}'|awk -F "." '{print $1}'`
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/$OSVERSION/x86_64/zabbix-release-6.0-1.el$OSVERSION.noarch.rpm
yum clean all
yum remove zabbix-agent -y
yum install zabbix-agent2 -y
echo "修改zabbix-agent2配置文件"ipaddr=$(ip a show |grep ens|grep inet |awk '{print $2}'|awk -F '/' '{print $1}')zabbix_server='192.168.1.110'hostname=$(hostname)sed -i "s/^Server=127.0.0.1/Server=${zabbix_server}/g" /etc/zabbix/zabbix_agent2.conf
sed -i "s/^ServerActive=127.0.0.1/ServerActive=${zabbix_server}/g" /etc/zabbix/zabbix_agent2.conf
sed -i "s/Hostname=Zabbix server/Hostname=${hostname}/g" /etc/zabbix/zabbix_agent2.conf
sed -i "s/# HostMetadata=/HostMetadata=linux/g" /etc/zabbix/zabbix_agent2.conf
echo "防火墻放行zabbix-agent端口"
firewall-cmd --permanent --add-port=10050-10051/tcp
firewall-cmd --reload
echo "啟動zabbix-agent服務(wù)"
systemctl enable --now zabbix-agent2
zabbixagentpid=`ps -ef |grep zabbix_agent2|grep -w 'zabbix_agent2'|grep -v 'grep'|awk '{print $2}'`
if [ "$zabbixagentpid" ];then
echo "zabbix agent2 正在運行 "
else
echo "zabbix agent2 安裝失敗?。?!"
fi
七、通過SNMP監(jiān)控交換機
1、為zabbix添加SNMPv2模板
SNMPv2模板下載
https://share.zabbix.com/templates/network-devices-fortigate-template-fortinet-all-discovery/#body
2、交換機配置snmpv2
snmp-agent sys-info version v2c
snmp-agent community read public
snmp-agent community write private
snmp-agent trap enable
snmp-agent target-host trap address udp-domain 192.168.1.110 params securityname public v2c
snmp-agent
3、查找MIB
H3C常用MIB
https://www.h3c.com/cn/Service/Document_Software/TechnicalInfo/PorductMaintanInfo/Switches/DailyMainten/MIBList/
4、安裝snmp調(diào)試工具并進行測試
dnf -y install net-snmp-utils
snmpwalk為模糊測試
snmpwalk -v 2c -c public 192.168.237.50 .1.3.6.1.4.1.2021.10.1.3
snmpget是zabbix的精準獲取方式
snmpget -v 2c -c public 192.168.237.50 .1.3.6.1.4.1.2021.10.1.3
5、舉例
如S5130 CPU使用率,查詢H3C手冊為?1.3.6.1.4.1.25506.8.35.18.1.3
使用
snmpwalk -v 2c -c public 192.168.237.50 1.3.6.1.4.1.25506.8.35.18.1.3
后返回
SNMPv2-SMI::enterprises.25506.8.35.18.1.3.0 = INTEGER: 16
得知最后多一位.0
使用
snmpget -v 2c -c public 192.168.237.50 1.3.6.1.4.1.25506.8.35.18.1.3.0
得到結(jié)果相同,則此項為s5130型號的CPU使用率
在zabbix新建監(jiān)控項,即可實現(xiàn)CPU使用率記錄
新建觸發(fā)器,即可實現(xiàn)CPU使用率報警
前5次報警值均超過80時進行CPU使用率過高報警
最終效果
其他參數(shù):
CPU使用率 1.3.6.1.4.1.25506.8.35.18.4.3.1.4.0.1
內(nèi)存使用率 1.3.6.1.4.1.25506.8.35.18.1.16.0
固件版本 1.3.6.1.2.1.1.1.0
開機時間 1.3.6.1.2.1.1.3.0
SN 1.3.6.1.4.1.25506.2.6.1.2.1.1.2.2
溫度 1.3.6.1.4.1.25506.2.6.1.1.1.1.12.212
八、總結(jié)
功能強大、簡單方便、干凈衛(wèi)生