构建企业级监控平台系列(七):Zabbix 基础配置介绍

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料: 

fa6f5bb9c655663a601caa6ea0ff728e.gif

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号等等功能:

  • Boot 地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

  • Cloud 地址:https://gitee.com/zhijiantianya/yudao-cloud

  • 视频教程:https://doc.iocoder.cn

来源:民工哥技术之路
blog.csdn.net/weixin_47019016/
article/details/111040042
www.zabbix.com/documentation/
6.0/zh/manual/installation/
upgrade/packages/rhel

37f567a8abe6edba89567a2aadd86e06.jpeg


前面介绍了 常见运维工具、数据库监控、Zabbix 等开源监控系统对比分析、Zabbix入门与安装等相关的知识点,今天我将详细的为大家介绍 Zabbix 基础配置相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发朋友圈 支持一波!!!

Zabbix特点

Zabbix是一个高度集成的网络监控解决方案,具备如表所示的特点。

数据采集

可用性和性能检查支持SNMP(trapping或polling),IPMI,JMX,VMware的监控,自定义检测,按照自定义时间间隔收集所需数据,通过server/proxy和agent来执行监控。

灵活的阈值定义

可以定义非常灵活的问题阈值,称为触发器(triggers),从后端数据库调用数值。

高度可配置的告警

可以自定义警告升级(escalation),接受者及告警方式,告警信息可以配置并允许使用宏(macro)变量,通过远程命令实行自动化动作(action)。

实时绘图

通过内置的绘图方法实现监控数据实时绘图。

Web监控能力

Zabbix可以模拟鼠标单击网站并检查其功能性和响应时间。

广泛的可视化选项

能够创建自定义图表,可以组合多个项到一个单一的视图中网络拓扑,自定义屏幕和侧边栏作为仪表盘(dashboard)样式显示报告,监视资源的高级视图(商业)。

历史数据存储

用数据库来存储数据配置历史,内置的管理程序。

容易配置

添加监控设备作为主机,一旦在数据库中,主机即可被监控,将模版应用到监控监控设备。

使用模版

模版中的可以组监控,模版中可以继承其他模版。

网络发现

网络设备的自动发现,代理(agent)自动注册,自动发现文件系统,网络接口,SNMP OID。

快速的web接口

Web前端采用php编写,按照自定义的方式单击审计日志。

Zabbix API

Zabbix API 提供可编程接口面向Zabbix大规模操作,方便第三方软件集成,安全的用户认证。

权限系统

某些用户可以受限于某些试图。

功能齐全且易于扩展的代理(agent)

部署在监控目标上,Linux和windows上都可以部署,用C语言写的,高性能且内存占用小。

二进制守护进程

易移植,通过使用zabbix proxy可以轻松进行远程监控。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

Zabbix 基础配置

页面中文乱码这块在安装部署的时候,已经解决了,不再赘述了。

监控一台主机

这里以监控Win10主机为例来描述具体步骤。关闭防火墙、IP地址为192.168.59.128。

bcde3aeab9bfdbaa53c169214924fbe6.png

首先在C盘根目录下创建zabbix的文件夹,将需要的文件拖到该文件夹内(bin/win64和conf下的所有文件)。

b9fb78cab3bd4c37f88e9618bf5511b7.png

修改windows配置文件(zabbix.agent.win.conf)的三处如下

Server=192.168.59.137
ServerActive=192.168.59.137
Hostname=win10

Windows中启动zabbix(注意:以下操作请严格安装文档操作否则将会报错)

2c955af0cf6979d2b301f14dab5253af.png

安装代理、启动服务

cd /zabbix
zabbix_agentd.exe -c zabbix_agentd.win.conf -i 安装
zabbix_agentd.exe -c zabbix_agentd.win.conf -s 启动
netstat -an|find "10050"  查看代理端口
cae57cb1b5ba3e10d6f0edeece9e1c52.png a6d2f3686bcc644e0c41133105b20818.png

Web图形操作:配置--->主机--->创建主机

549f2b9839e25152956797ee5bff9be2.png

配置--->主机--->win10--->名称、新群组、ip--->添加

c2079bab376d71a5ccb48699e0e09d13.png

配置--->主机--->模板-->指示器选择--->添加--->更新

c4fd0c1b6749253c2d80d836324df7f8.png f32843df6d3614702c5ec7ba4c3b1b3c.png 996165922ca2e0f9695f7f750b478216.png 532bb431937ee5be796c181fe554b389.png

等待一段时间后刷新(1-2分钟),ZBX变绿后操作。

8a9f35b83349fc7f82c9383d6a38d646.png

监测--->图形--->群组--->服务器--->查看内容,显示如下:

cbbc50077c33a475c3e72722a70eebd6.png
分离zabbix数据库

开启一台centos7虚拟机,安装mariadb-server,创建zabbix数据库和用户。

[root@localhost ~]# hostname mariadb
[root@localhost ~]# bash
[root@mariadb ~]# systemctl stop firewalld
[root@mariadb ~]# setenforce 0
[root@mariadb ~]# yum -y install mariadb-server
[root@mariadb ~]# systemctl start mariadb
[root@mariadb ~]# systemctl enable mariadb
[root@mariadb ~]# mysql_secure_installation 
[root@mariadb ~]# mysql -uroot -pasd123
create database zabbix character set utf8 collate utf8_bin;
grant all on zabbix.* to zabbix@'192.168.229.%' identified by 'asd123';

在zabbix服务器上备份导出zabbix数据库

[root@zabbix-server ~]# mysqldump -uroot -pasd123 --databases zabbix > `date +%F-%H`_zabbix.sql

在zabbix服务器上把备份的数据库文件导入到分布式数据库上

[root@zabbix-server ~]# cat 2020-07-04-08_zabbix.sql | mysql -h 192.168.229.160 -uzabbix -pasd123 zabbix

修改zabbix-server上的数据库连接信息

[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
定位修改
 DBHost=192.168.229.160
 DBName=zabbix
 DBUser=zabbix
 DBPassword=asd123
[root@zabbix-server ~]# vim /etc/zabbix/web/zabbix.conf.php
定位修改
 $DB['TYPE']     = 'MYSQL';
 $DB['SERVER']   = '192.168.229.160';
 $DB['PORT']     = '0';
 $DB['DATABASE'] = 'zabbix';
 $DB['USER']     = 'zabbix';
 $DB['PASSWORD'] = 'asd123';

重启zabbix和httpd服务

[root@zabbix-server ~]# systemctl restart zabbix-server httpd
自定义监控–磁盘吞吐量

检查磁盘的tps

[root@zabbix-agent ~]# yum -y install sysstat
[root@zabbix-agent ~]# iostat | awk '/^sda/{print $2}'
0.64

在agent客户端的配置文件目录下新增监控配置文件(键值对命名法)

[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agentd.d/iostat.conf
添加:
UserParameter=iostat,iostat | awk '/^sda/{print $2}'
[root@zabbix-agent ~]# systemctl restart zabbix-agent

客户端查看监控项

[root@zabbix-agent ~]# zabbix_agentd -p | grep iostat
iostat                                        [t|0.66]

在服务端安装zabbix-get,查看客户端新增监控项

[root@zabbix-server ~]# yum -y install zabbix-get
[root@zabbix-server ~]# zabbix_get -s 192.168.229.209 -p10050 -k iostat
0.66

在zabbix web界面进行监控项关联

配置--主机--找到对应主机--监控项--创建监控项--命名--键值(iostat)--信息类型(浮点数)--应用集名监测--最新数据

f6b907977214ec1d9681d6a25c451f8b.png 8d9f1a9b002af9f53cdb4e7f242ead41.png c91a7c8260997f3a89f6bac22bd252aa.png b0ec14b708ce113947b612ee68065f89.png
zabbix报警音报警

前端声音报警

右上角小人(用户)--正在发送信息--勾选

7999571bac59dfade4f37c551cb05990.png添加触发器:配置--主机--找到对应主机--触发器--创建触发器--命名--严重性--添加表达式--选择监控项--间隔--结果--添加

68d4905e75263594b44a527aa108e0a2.png d3c0e79f77c56ac40e4bd356f3ccfbba.png 9cc5e5e933af4bb6a614ede3bb07b4b4.png 529b6d282ba176b6aa7aa00bd38c0fb8.png
zabbix邮件报警
  • (1)配置--动作--启用report--应用

  • (2)右上角小人(用户)--报警媒介--添加--收件人邮箱地址(推荐使用qq邮箱)

  • (3)管理--报警媒介类型--email--添加SMTP服务器:smtp.qq.com--端口:465--HELO:qq.com--SMTP电邮:xxxxx@qq.com--SSL/TLS--勾选--用户名称:xxxxxx@qq.com--密码:授权码(打开邮箱--设置--开启smtp服务--获取授权码--保存配置)

  • (4)微信关联qq邮箱,实现微信报警

    • 首先点击进入微信“设置”选项。

    • 然后点击进入“账号与安全”设置选项。

    • 再点击进入“更多安全设置”选项。

    • 接着点击“邮箱地址”设置选项。

    • 最后输入需要绑定的邮箱地址,点击确定即可完成绑定

f65b6420d9f1d8d59bcaf937eab814b3.png e5c80150bca1a1da12dbcca338f66523.png 0b7dcc0291b79ca1c1342168edf9c464.png 79bb79567f3f423e4b4d13f2633c6c6a.png

zabbix官方使用说明文档:https://www.zabbix.com/documentation/4.0/zh/manual/

邮件脚本报警

使用原因 :企业使用centos6,zabbix2.*,zabbix没有email报警媒介模块。

关闭zabbix-server上的邮件服务,安装mailx。
[root@zabbix-server ~]# systemctl stop postfix
[root@zabbix-server ~]# systemctl disable postfix
[root@zabbix-server ~]# yum -y install mailx
编辑mailx的配置,指定收件邮箱和用户密码。
[root@zabbix-server ~]# vim /etc/mail.rc
末尾添加:
set from=1599840577@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=1599840577@qq.com
set smtp-auth-password=yuemqwmhdizdbjeg
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
[root@zabbix-server ~]# echo 123 | mail -s test 1599840577@qq.com #测试邮件
zabbix-server编写邮件报警脚本
[root@zabbix-server ~]# yum -y install dos2unix
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# vim email_notice.sh
添加:
#!/bin/bash

> 基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
>
> * 项目地址:<https://github.com/YunaiV/yudao-cloud>
> * 视频教程:<https://doc.iocoder.cn/video/>

# export UTF-8
FILE=/tmp/mail.txt
echo "$3" > $FILE
dos2unix -k $FILE
/bin/mail -s "$2" $1 < $FILE
[root@zabbix-server alertscripts]# chmod +x email_notice.sh
zabbix web控制台关联邮件报警脚本

管理--报警媒介类型--关闭已有的email报警--右上角“创建媒体类型”“名称,类型(脚本),脚本名称(必须写对),参数添加3个:{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}”,添加:右上角--小人(用户)--报警媒介--“类型(邮件脚本,收件人:真实邮箱地址)”,添加--更新。

94dbce0a1b9427fe77247c042bd2a0bf.png 26c469688b5b2de6845fa9b46b82c2f3.png 6a672420a540831df7144b2dad7124ff.png
微信报警
申请企业微信

我的企业--复制企业ID:ww15f160c1bf39f6b1,应用管理--创建应用--名称:报警机器人--选择部门--创建应用--点开报警机器人,复制:AgentId 1000002,Secret ptoSa9IMqSOinnOJ2Bq6-4i_EBKJbZ8tcG6R6TlhknU

编写python微信报警脚本,并修改企业id和用户密码

复制weixin.py到zabbix-server的/usr/lib/zabbix/alertscripts/下

[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# vim weixin.py
修改:
corpid='ww15f160c1bf39f6b1' #企业ID
appsecret='ptoSa9IMqSOinnOJ2Bq6-4i_EBKJbZ8tcG6R6TlhknU' #报警机器人密码
agentid=1000002  #报警机器人ID

#!/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='微信企业号corpid'
appsecret='应用的Secret'
agentid=应用的id
#获取accesstoken
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)
[root@zabbix-server alertscripts]# chmod 777 weixin.py
[root@zabbix-server alertscripts]# dos2unix -k weixin.py  #格式转换
[root@zabbix-server alertscripts]# touch /tmp/weixin.log
[root@zabbix-server alertscripts]# chown zabbix:zabbix /tmp/weixin.log #赋权weixin.log
[root@zabbix-server alertscripts]# ./weixin.py ZhangJie(企业微信账号) test 123456  #测试发送微信
zabbix web关联

管理--报警媒介类型--右上角“创建媒体类型”“名称(微信报警),类型(脚本),脚本名称(必须写对),参数添加3个:{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}”,更新:右上角--小人(用户)--报警媒介--“类型(微信报警,收件人:微信账号)”--添加--更新

修改邮件通知内容

配置–动作–Report problems to Zabbix administrators

操作:修改默认标题,修改消息内容

主题:Problem: {EVENT.NAME}故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

恢复操作:修改默认标题,修改消息内容
恢复主题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

2.修改后,更新
创建图形

配置--主机--web1--图形--右上角“创建图形”--填写“名称”--添加“监控项” 点击最后一行“添加”。

查看图形:监测--图形--选择“群组”--选择"主机"--选择“图形名称”。

创建聚合图形

监测--聚合图形--创建聚合图形--填写聚合图形“名称”--添加--选择新建聚合图 --编辑聚合图形

版本升级

上一篇讲解的是从头安装,但在现实的情况中,多数都是版本升级的居多。

升级前你需要判断一下你的系统,基础组件,例如 PHP-FPM 版本,数据库版本,是否支持最新版本的 ZABBIX。

46724b575cdc0efded2260c2b5b4bd1f.png

从 5.0LTS 到 6.0,只要保证 PHP-FPM 版本>7.2 即可。

备份

停掉现有的 Zabbix-Server,并备份数据库,备份相关配置文件。

service zabbix-server stop
mysqldump zabbix > zabbix_20220220.sql
mkdir /opt/zabbix-backup-20220220/
cp -R /usr/share/zabbix/ /opt/zabbix-backup-20220220/
cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup-20220220/
升级软件包

删掉老的 Zabbix 源,下载 Zabbix-Release 包,需要格外注意的是,请下载与你系统相匹配的软件包,可以访问 ZABBIX 下载 页面,使用页面提供的选择器,进行选择。

注意,执行 apt-get install –only-upgrade 时,因为我用的 Nginx 作为 WebServer,所以升级了 zabbix-nginx-conf,如果你是 Apache,请替换成 zabbix-apache-conf。

rm -Rf /etc/apt/sources.list.d/zabbix.list
wget https://repo.zabbix.com/zabbix/6.0/raspbian/pool/main/z/zabbix-release/zabbix-release_6.0-2+debian11_all.deb
dpkg -i zabbix-release_6.0-2+debian11_all.deb
apt update
apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-nginx-conf

升级完毕,启动相关服务。

systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm

重新访问,Zabbix Web,能看到新版 Web 界面,采集状态正常。如果 Web 提示数据库版本不一致,等一会,ZABBIX 正在处理数据库的升级和迁移操作,一会就好了。


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

212fc36c87c0fde9606b7ec54c72f17d.png

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

caefa2a7f86dc4e4c3180d12c4fb3761.png

25703bb9844be0ff590d88b48fe0461b.png5f0fb8592086abb818d0ff0dcd61c87b.png5d19433a9eae4533f985f864e5ee42aa.png6ec89bf3d44ffee8fe17f0ae795df4fa.png

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值