centos7飞速搭建zabbix5.0并添加windows、linux监控、企业微信报警

centos7飞速搭建zabbix5.0并添加windows、linux监控、企业微信报警

王忘杰
2022-04-09 / 0 评论 / 264 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年07月01日,已超过663天没有更新,若内容或图片失效,请留言反馈。

已弃用,请查看最新alma8+zabbix6 https://90apt.com/2982

一、环境
zabbix所在服务器系统为centos7,监控的客户端为windows2016和centos7。

二、安装zabbix
官方安装帮助页面
https://www.zabbix.com/cn/download

1、关闭selinux
临时 setenforce 0
永久 /etc/selinux/config

SELINUX=disabled

2、配置zabbix yum源

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all

3、安装zabbix服务端和zabbix监控端

yum install zabbix-server-mysql zabbix-agent

4、安装zabbix前端
启用scl软件源

yum install centos-release-scl

编辑文件 /etc/yum.repos.d/zabbix.repo 启用源

[zabbix-frontend]
...
enabled=1
...

5、安装zabbix前端

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl

6、安装数据库
配置mariabd源
/etc/yum.repos.d/MariaDB.repo

[mariadb]
name = MariaDB
baseurl=https://mirrors.aliyun.com/mariadb/yum/10.2/centos7-amd64 
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB 
gpgcheck=1
yum -y install MariaDB-server MariaDB-client
systemctl start mariadb #启动服务
systemctl enable mariadb #设置开机启动

7、进行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] <– 是否重新加载权限表,回车

8、创建数据库mysql -uroot -p

mariadb> create database zabbix character set utf8 collate utf8_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-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

9、配置数据库密码

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

DBPassword=password123

10、配置PHP时区

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

php_value[date.timezone] = Asia/Shanghai

11、启动并设置开机启动

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

12、防火墙开放端口


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

三、前端配置

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

环境检查
ns_attach_image_16821648906232819.png

连接数据库
ns_attach_image_17491648906287192.png

zabbix服务器监听端口
ns_attach_image_18821648906376980.png

确认信息
ns_attach_image_19201648906406146.png

安装完成
ns_attach_image_19561648906417817.png

2、登录

默认账号密码 Admin zabbix
ns_attach_image_20231648906454813.png

软件首页
ns_attach_image_20601648906483324.png

设置中文 Administration - Users - Admin
ns_attach_image_21301648906525998.png

修改为中文,别忘了修改密码
ns_attach_image_21961648906544504.png

四、安装windows agent

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

在客户机中安装
ns_attach_image_23671648906712639.png

填入服务器地址,安装完成
ns_attach_image_24361648906753656.png

在zabbix平台添加主机监控

创建主机 配置 - 主机 - 创建主机
ns_attach_image_25971648906830787.png

选择群组,输入客户端IP,添加
ns_attach_image_26661648906874000.png

关联监控模板

ns_attach_image_27361648906899985.png

zabbix官方windows监控模板,点击更新
ns_attach_image_28021648906924686.png

稍等一分钟,就会显示zbx在线
ns_attach_image_28731648907047075.png

查看主机最新数据 监测 - 主机 - 最新数据

ns_attach_image_29391648907084153.png

ns_attach_image_30081648907154782.png

五、安装centos7 linux agent

1、关闭selinux

关闭selinux
临时 setenforce 0
永久 /etc/selinux/config

SELINUX=disabled

2、打开防火墙端口,agent端口为10050

firewall-cmd --add-port=10050/tcp --permanent

firewall-cmd --reload

firewall-cmd --list-ports

firewall-cmd --list-services

3.安装zabbix

rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.21-1.el7.x86_64.rpm

4.修改zabbix agent配置

/etc/zabbix/zabbix_agentd.conf

Server=zabbixIP

ServerActive=zabbixIP

Hostname=本机名字

5.启动并开机启动

systemctl start zabbix-agent

systemctl enable zabbix-agent

6.在zabbix平台添加主机并关联linux模板,查看数据
ns_attach_image_33961648907953510.png

ns_attach_image_34341648907964783.png

六、linux批量自动上线zabbix-agent

1、zabbix配置自动注册

注意,自动注册即客户端主动连接服务器,所以服务器除了web平台的80端口外,还需要开放TCP10051端口

firewall-cmd --permanent --add-port=10050-10051/tcp

firewall-cmd --reload

firewall-cmd --list-ports

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

ns_attach_image_13771649041250203.png

创建动作

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

操作

添加主机

添加主机群组

关联模板
ns_attach_image_14891649041401774.png

启用动作即可
ns_attach_image_15281649041448595.png

2、客户主机修改主机名

使用自动注册,那么客户端的名字就非常重要了,更改可以方便识别的主机名

hostnamectl set-hostname 新主机名

3、客户端放置并执行自动脚本,也可配置批量远程执行,大规模上线客户端,此脚本支持centos7/8

上传服务器,添加执行权限,执行

chmod +x ./centos-zabbix-agent-install.sh

./centos-zabbix-agent-install.sh

脚本报 zabbix agent正在运行 即为正常


#/bin/bash
echo "关闭selinux"
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
setenforce 0
#yum clean all


echo "下载zabbix-agent"
OSVERSION=`cat /etc/redhat-release |awk -F "release " '{print $2}'|awk -F "." '{print $1}'`
#rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/$OSVERSION/x86_64/zabbix-agent-5.0.21-1.el$OSVERSION.x86_64.rpm
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/$OSVERSION/x86_64/zabbix-release-5.0-1.el$OSVERSION.noarch.rpm
yum clean all
yum install zabbix-agent -y

echo "修改zabbix-agent配置文件"
ipaddr=$(ip a show |grep ens|grep inet |awk '{print $2}'|awk -F '/' '{print $1}')
zabbix_server='192.168.30.130'
hostname=$(hostname)

sed -i "s/^Server=127.0.0.1/Server=${zabbix_server}/g" /etc/zabbix/zabbix_agentd.conf
sed -i "s/^ServerActive=127.0.0.1/ServerActive=${zabbix_server}/g" /etc/zabbix/zabbix_agentd.conf
sed -i "s/Hostname=Zabbix server/Hostname=${hostname}/g" /etc/zabbix/zabbix_agentd.conf
sed -i "s/# HostMetadata=/HostMetadata=Linux/g" /etc/zabbix/zabbix_agentd.conf

echo "防火墙放行zabbix-agent端口"
firewall-cmd --permanent --add-port=10050-10051/tcp
firewall-cmd --reload

echo "启动zabbix-agent服务"
systemctl start zabbix-agent && systemctl enable zabbix-agent

zabbixagentpid=`ps -ef |grep zabbix_agentd|grep -w 'zabbix_agentd'|grep -v 'grep'|awk '{print $2}'`
if [ "$zabbixagentpid" ];then
echo "zabbix agent 正在运行 "
else
echo "zabbix agent 安装失败!!!"
fi
 

4、平台查看上线情况

已自动上线
ns_attach_image_17901649041921540.png

七、总结

快速简单,你学会了吗
ns_attach_image_35591648908003148.png

前言:通过企业微信小程序,实现zabbix自动注册和zabbix告警的微信消息推送。

一、整体架构
1、企业微信 - 创建zabbix机器人应用 - 取得企业微信ID、应用Agentld和Secret
2、编写zabbix机器人推送脚本,测试脚本
3、添加报警媒介
4、配置Trigger actions触发动作,启用消息推送管理员,填写要发送的信息
5、配置Autoregistration actions自动注册,填写要发送的信息
6、进行测试

二、注册或使用已有的企业微信,查询企业微信ID
1、在企业微信 - 我的企业 - 企业信息 - 企业ID
ns_attach_image_67121649130570553.png

2、创建zabbix机器人应用
企业微信后台 - 应用管理 - 应用 - 创建应用
ns_attach_image_67541649130627532.png

3、查看Agentld和Secret
ns_attach_image_68251649130666700.png

三、编写zabbix机器人脚本
准备 工作

yum -y install epel-release
yum -y install python-pip
pip install requests

查询脚本存放位置
cat /etc/zabbix/zabbix_server.conf | grep AlertScript
可以看到脚本存放在/usr/lib/zabbix/alertscripts目录中

编写脚本 weixin.py并放入上面的目录 ,填入上面获得的三个值


#!/usr/bin/env python
#-*- 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 ] +  " \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 )

赋予执行权限
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应用发来的信息。

四、添加报警媒介,测试媒介
zabbix后台 - 管理 - 报警媒介类型
名称 weixin
类型 脚本
脚本名称 weixin.py
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
ns_attach_image_76701649132565594.png

五、配置Trigger actions触发动作,启用消息推送管理员,填写要发送的信息
配置 - 动作 Trigger actions - 创建动作
ns_attach_image_80741649133735506.png

动作 中填写名称
操作 中编辑操作和恢复操作

1、操作
发送消息
zabbix管理员组
仅发送到微信
custom message
主题:服务器报警
消息:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}

2、恢复操作
通知所有参与者
custom message
主题:服务器已恢复
消息:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
ns_attach_image_81471649133807993.png

ns_attach_image_81851649133826813.png

ns_attach_image_82221649133842356.png

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

发送消息
zabbix管理员组
仅送到weixin
Custom message
主题:
Linux主机自动注册到zabbix服务器
消息:
主机名:{HOST.HOST}
主机IP:{HOST.IP}
Agent端口:{HOST.PORT}

ns_attach_image_84361649134095377.png

ns_attach_image_84761649134118093.png

七、进行测试
新linux上线微信收到提示
linux重启微信收到提示

八、解决zabbix网页中文乱码问题,替换字体

yum -y install google-noto-sans-simplified-chinese-fonts.noarch
cp /usr/share/fonts/google-noto/NotoSansSC-Regular.otf  /usr/share/fonts/dejavu/DejaVuSans.ttf

九、总结
很简单的啦
ns_attach_image_88541649134664192.png

0

评论

博主关闭了所有页面的评论