游客发表

alma8飞速搭建zabbix6、微信报警、windows、linux、交换机监控

发帖时间:2024-05-06 00:15:37

alma8飞速搭建zabbix6、微信报警、windows、linux、交换机监控

原标题:alma8飞速搭建zabbix6、飞速微信报警、搭建windows、微信linux、交换机监交换机监控

一、飞速环境

zabbix所在服务器系统为alma8,搭建zabbix6要求的微信mariadb版本为10.5-10.6,同时zabbix提供了zabbix-selinux-policy来配置selinux,交换机监所以安装中也不再要求关闭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、飞速安装数据库

配置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

安装数据库、搭建启动、微信并设置开机启动

dnf clean all

dnf install mariadb-server

systemctl enable --now mariadb

4、进行MariaDB数据库初始化

mysql_secure_installation

首先是设置密码,会提示先输入密码

Enter current password for root (enter for none):<–初次运行直接回车

Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车

New password: <– 设置root用户的密码

Re-enter new password: <– 再输入一次你设置的密码

Remove anonymous users? [Y/n] <– 是否删除匿名用户

Disallow root login remotely? [Y/n] <–是否禁止root远程登录

Remove test database and access to it? [Y/n] <– 是否删除test数据库

Reload privilege tables now? [Y/n] <– 是否重新加载权限表

5、初始化并导入zabbix数据库 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;

导入初始架构和数据,系统将提示您输入新创建的密码

zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

6、配置数据库密码

编辑配置文件 /etc/zabbix/zabbix_server.conf

DBPassword=password123

7、配置PHP时区

编辑配置文件 /etc/php-fpm.d/zabbix.conf

php_value[date.timezone] = Asia/Shanghai

8、启动并设置开机启动

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、调整zabbix缓存

/etc/zabbix/zabbix_server.conf

CacheSize=1G

13、调整ping进程数

/etc/zabbix/zabbix_server.conf

StartPingers=16

三、服务端配置

1、连接到新安装的Zabbix前端: http://server_ip/zabbix

注意,mariadb也属于mysql数据库类型

2、登录zabbix

账号Admin 密码zabbix

前端配置完成

请务必修改密码

四、企业微信消息推送

1、在企业微信 - 我的企业 - 企业信息 - 企业ID

2、创建zabbix机器人应用

企业微信后台 - 应用管理 - 应用 - 创建应用

3、查看Agentld和Secret

4、准备zabbix机器人脚本环境

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 requests

import sys

import os

import json

import 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 = 1000002

token_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 ] + " " + 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 )

赋予执行权限

chmod +x /usr/lib/zabbix/alertscripts/weixin.py

创建日志文件

touch /tmp/weixin.log

chown zabbix:zabbix /tmp/weixin.log

测试脚本,用户名为企业微信通讯录中的用户名,一般为拼音全拼,严格区分大小写!

/usr/lib/zabbix/alertscripts/weixin.py 用户名 '标题' '测试成功'

此时企业微信可以收到zaabix应用发来的信息。

5、添加报警媒介

zabbix后台 - 管理 - 报警媒介类型

名称 weixin

类型 脚本

脚本名称 weixin.py

脚本参数:

{ ALERT.SENDTO}

{ ALERT.SUBJECT}

{ ALERT.MESSAGE}

6、配置Trigger actions触发动作,启用消息推送管理员,填写要发送的信息

配置 - 动作 Trigger actions - 创建动作

在 动作 中填写名称

在 操作 中编辑操作和恢复操作

操作

发送消息

zabbix管理员组

仅发送到微信

custom message

主题:服务器报警

消息:

告警主机:{ HOST.NAME}

告警地址:{ HOST.IP}

监控项目:{ ITEM.NAME}

监控取值:{ ITEM.LASTVALUE}

告警等级:{ TRIGGER.SEVERITY}

当前状态:{ TRIGGER.STATUS}

告警信息:{ TRIGGER.NAME}

告警时间:{ EVENT.DATE} { EVENT.TIME}

事件ID:{ EVENT.ID}

恢复操作

通知所有参与者

custom message

主题:服务器已恢复

消息:

告警主机:{ HOST.NAME}

告警地址:{ HOST.IP}

监控项目:{ ITEM.NAME}

监控取值:{ ITEM.LASTVALUE}

告警等级:{ TRIGGER.SEVERITY}

当前状态:{ TRIGGER.STATUS}

告警信息:{ TRIGGER.NAME}

告警时间:{ EVENT.DATE} { EVENT.TIME}

事件ID:{ EVENT.ID}

7、配置Autoregistration actions自动注册,填写要发送的信息

在Autoregistration actions自动注册中

注意:自动注册的其他内容在下方linux、windows部分

发送消息

zabbix管理员组

仅送到weixin

Custom message

主题:

Linux主机自动注册到zabbix服务器

消息:

主机名:{ HOST.HOST}

主机IP:{ HOST.IP}

Agent端口:{ HOST.PORT}

8、接收微信推送人员

管理-用户-报警媒介

五、自动注册windows主机

平台 - 配置 - 动作 - Autoregistration actions自动注册

创建动作

元数据中的 Linux 为下方脚本里的 HostMetadata=windows 严格区分大小写

操作

添加主机

添加主机群组

关联模板

下载安装agent2客户端

https://www.zabbix.com/cn/download_agents

最新版本为 Zabbix agent 2 v6.0.5

修改配置 HostMetadata=windows

C:Program FilesZabbix Agent 2zabbix_agent2.conf

重启服务

收到自动注册提示

六、自动注册linux主机

zabbix平台自动注册linux与windows方法基本相同,元数据修改为linux

在linux客户端上可以使用自动化脚本安装zabbix agent2客户端

我这里仅放一个centos7/8的安装脚本,内容为卸载agent1安装agent2

#/bin/bash

echo "关闭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服务"

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监控交换机

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调试工具并进行测试

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

得到结果相同,则此项为s5130型号的CPU使用率

在zabbix新建监控项,即可实现CPU使用率记录

新建触发器,即可实现CPU使用率报警

前5次报警值均超过80时进行CPU使用率过高报警

最终效果

其他参数:

CPU使用率 1.3.6.1.4.1.25506.8.35.18.4.3.1.4.0.1

内存使用率 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

八、总结

功能强大、简单方便、干净卫生

责任编辑:

    热门排行

    友情链接