点击下方名片,设为星标

回复“1024”获取2TB学习资源!

前面介绍了 常见运维工具数据库监控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可以轻松进行远程监控。

Zabbix 基础配置

页面中文乱码这块在安装部署的时候,已经解决了,不再赘述了。更多关于企业级监控平台系列的学习文章,请参阅:构建企业级监控平台,本系列持续更新中。

监控一台主机

这里以监控Win10主机为例来描述具体步骤。关闭防火墙、IP地址为192.168.59.128。6d26fff58970e9c8abded4323579af1a.png首先在C盘根目录下创建zabbix的文件夹,将需要的文件拖到该文件夹内(bin/win64和conf下的所有文件)。94d3a9ead4c7af327cdea08bb10f7578.png修改windows配置文件(zabbix.agent.win.conf)的三处如下

Server=192.168.59.137
ServerActive=192.168.59.137
Hostname=win10

Windows中启动zabbix(注意:以下操作请严格安装文档操作否则将会报错)48835b6d549e4a09a8c1f2965ee870ad.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"  查看代理端口

0c6b6d7b14481991d0d24d147fde8a4c.pngde7be19654e05209dc36872741d0b159.pngWeb图形操作:配置--->主机--->创建主机a5417fd5bc445ffd42cb18d7fcde4629.png配置--->主机--->win10--->名称、新群组、ip--->添加11628b0b15c8dc97751da60856675ad5.png配置--->主机--->模板-->指示器选择--->添加--->更新16dd5d57fc7a0bdd2fa263b0be6b25cd.png0f7ec9078e83a6b65dbe5aed564bb40a.pngbe1fd23366de022c146870a13be1558f.png8ac593aa6a17d410e358ec3cecb8c23a.png等待一段时间后刷新(1-2分钟),ZBX变绿后操作。a115721da8c0ac9c694e924fd868ef33.png监测--->图形--->群组--->服务器--->查看内容,显示如下:b04797febd65d80bab39471086e78db0.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)--信息类型(浮点数)--应用集名监测--最新数据d08b67ceb4254c19f9fc690e7e574187.png0e5ebd85fc5fca71f3c1872687e33577.png65a052cdea3440f4bfcdf70dfd0bdfa6.pnge1a61b67802ff63c047219032b4821f1.png

zabbix报警音报警

前端声音报警

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

c70b29c5ab23e17abefe6cc549812590.png添加触发器:配置--主机--找到对应主机--触发器--创建触发器--命名--严重性--添加表达式--选择监控项--间隔--结果--添加8f030f5ed0b0b3781f99d5f911306c17.pngf978c45e95731fce6794364304516092.pnga39f8bd0d7219f89c505172634b7956f.png2dbceac45f35a760ed05a1510cd904c4.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邮箱,实现微信报警

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

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

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

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

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

e9a312fd8ac609699b2ac36ce120ce0b.png30907c8bf3862a99186c43aa2ecf4ca2.pnga183e2eac5916ebcb97fae65920968fd.png0d2a01c99734f6a1c237b7489e6f7fe3.pngzabbix官方使用说明文档: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
# 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}”,添加:右上角--小人(用户)--报警媒介--“类型(邮件脚本,收件人:真实邮箱地址)”,添加--更新。874daa864eae0327ae1a519fb9caa6ea.png8faa945b50b0bf639205737993de46a0.png9340f0c4585d83c47ab5a80629465a13.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。22af80b3e25c7d806ef118112e3a9c9d.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 正在处理数据库的升级和迁移操作,一会就好了。

更多关于企业级监控平台系列的学习文章,请参阅:构建企业级监控平台,本系列持续更新中。

参考链接:https://blog.csdn.net/weixin_47019016/article/

details/111040042  https://www.zabbix.com/documentation

/6.0/zh/manual/installation/upgrade/packages/rhel

读者专属技术群

构建高质量的技术交流社群,欢迎从事后端开发、运维技术进群(备注岗位,已在技术交流群的请勿重复添加)。主要以技术交流、内推、行业探讨为主,请文明发言。广告人士勿入,切勿轻信私聊,防止被骗。

扫码加我好友,拉你进群

a61deb237248a38aa4950417b037efc6.jpeg

推荐阅读 点击标题可跳转

字节跳动估值爆跌 5586 亿元!

偷偷爆料一下成都 IT 大厂公积金缴纳情况!

监控员工微信聊天记录,方法还这么多!被恶心了

Windows 12 来了,超级震撼!

这几个 Linux 工具是真牛逼!只是你不会用而已~

弃用 UUID!事实证明,它更牛逼!

又一款吊炸天的轻量级数据库管理神器开源了!

5087f04d86bb9d085ea4e0390fc0702c.png

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下在看,加个星标,这样每次新文章推送才会第一时间出现在你的订阅列表里。点在看支持我们吧!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐