Zabbix——创建自定义监控模板

1,033 阅读11分钟

zabbix服务端和客户端已在上一篇文章中部署完成。

方法一:去官网下载监控模板

zabbix监控模板大全:

www.zabbix.com/integration…

方法二:自定义监控模板

案例:自定义监控客户端服务器登录的人数

需求:监控客户端的登录人数,超过 3 个就发出报警信息

1)在客户端创建自定义 key

 #在客户端创建自定义 key
 1.明确需要执行的 linux 命令
 who | wc -l
 ​
 2.客户端,创建 zabbix 的监控项配置文件,用于自定义 key
 vim /etc/zabbix/zabbix_agent2.conf   #查看agent2 配置文件
 ##268行,可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
 Include=/etc/zabbix/zabbix_agent2.d/*.conf   #268行指定配置文件
 ##291行,自定义监控项的格式如下,即按照此格式来进行配置文件的编写
 #   Format: UserParameter=<key>,<shell command>    
 ​
 cd /etc/zabbix/zabbix_agent2.d/
 vim User_login_num.conf    #编写自定义的监控项配置文件
 UserParameter=login.user,who|wc -l
 #login.user是键名称,"who|wc -l"表示键通过什么命令或脚本获取值
 ​
 systemctl restart zabbix-agent2   #重启服务
 ​
 3.在服务端验证新建的监控项,获取客户端当前的登录人数。
 zabbix_get -s '192.168.85.70' -p 10050 -k 'login.user'

2)在 Web 页面创建自定义监控项模板

 1.创建模板
 点击左边菜单栏【配置】中的【模板】,点击【创建模板】
 【模板名称】设置成 Template Login User
 【可见的名称】设置成 Template Login User
 【群组】选择 Templates
 【描述】可自定义
 点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User 了
 ​
 2.创建应用集(用于管理监控项的)
 点击上方菜单栏【应用集】,点击【创建应用集】
 【名称】设置成 Login User
 点击 【添加】
 ​
 3.创建监控项
 点击上方菜单栏【监控项】,点击【创建监控项】
 【名称】设置成 Number of login users
 【键值】设置成 login.user          #键值必须要与自定义的监控项配置文件中设置的保持一致
 【更新间隔】设置成 10s   #监控的间隔时间,多久采集一次数据
 【历史数据保留时长】Storage period    30d     #保留时间可自定义设置
 【趋势存储时间】Storage period  30d
 点击 【添加】
 ​
 4.创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
 点击上方菜单栏【触发器】,点击【创建触发器】
 【名称】设置成 Number of login users is greater than 3
 【严重性】设置成 一般严重
 【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择>3,点击 【插入】
 点击 【添加】
 ​
 5.创建图形
 点击上方菜单栏【图形】,点击【创建图形】
 【名称】设置成 Number of login users
 【宽】、【高】可直接采用默认值
 【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
 点击 【添加】
 ​
 6.将主机与模板关联起来(一个主机可以关联多个模板)
 点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
 点击上方菜单栏【模板】,【Link new tamplates】搜索 login,选择 Template Login User,点击【更新】
 ​
 此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标。

1、创建模板

  • 点击左边菜单栏【配置】中的【模板】,点击【创建模板】

  • 【模板名称】设置成 Template Login User

  • 【可见的名称】设置成 Template Login User

  • 【群组】选择 Templates

  • 【描述】可自定义

  • 点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User 了

2、创建应用集(用于管理监控项的)

  • 点击上方菜单栏【应用集】,点击【创建应用集】
  • 【名称】设置成 Login User
  • 点击 【添加】

3、创建监控项

  • 点击上方菜单栏【监控项】,点击【创建监控项】

  • 【名称】设置成 Number of login users

  • 【键值】设置成 login.user #键值必须要与自定义的监控项配置文件中设置的保持一致

  • 【更新间隔】设置成 10s

  • 【历史数据保留时长】Storage period 30d #保留时间可自定义设置

  • 点击 【添加】

4、创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)

  • 点击上方菜单栏【触发器】,点击【创建触发器】

  • 【名称】设置成 Number of login users is greater than 3

  • 【严重性】设置成 一般严重

  • 【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择>3,点击 【插入】

  • 点击 【添加】

5、创建图形

  • 点击上方菜单栏【图形】,点击【创建图形】

  • 【名称】设置成 Number of login users

  • 【宽】、【高】可直接采用默认值

  • 【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值

  • 点击 【添加】

6、将主机与模板关联起来(一个主机可以关联多个模板)

  • 点击左边菜单栏【配置】中的【主机】,点击你要关联的主机

  • 点击上方菜单栏【模板】,【Link new templates】搜索 login,选择 Template Login User,点击【更新】

  • 此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标。

3)设置邮件报警

 7.设置邮件报警
 点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
 【名称】设置成 qq_Email
 【SMTP服务器】设置成 smtp.qq.com
 【SMTP服务器端口】设置成 25   #25端口不进行加密,465端口,通过ssl进行加密
 【SMTP HELO】设置成 qq.com
 【SMTP电邮】设置成 自己的邮箱地址,例如 132132123@qq.com
 【认证】选择 用户名和密码
 【用户名称】设置成 自己的邮箱地址,例如 132132123@qq.com
 【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
 【描述】可自定义
 点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择 问题,点击【更新】
 点击 【添加】,并测试功能
 ​
 点击左边菜单栏【User settings】-->【报警媒介】,点击【添加】
 【类型】选择 qq_Email
 【收件人】设置成 132132123@qq.com
 【当启用时】设置成 1-7,00:00-24:00
 点击 【添加】
 再点击 【更新】
 ​
 点击左边菜单栏【配置】中的【动作】
 选择相对应的动作名称点击进入,点击 【添加】
 【类型】选择 触发器,【触发器】点击选择 Nunber of login users is greater than 3
 点击【启用】
 ​
 #测试邮件报警
 增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警

3、测试邮件报警:

  • 增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警。

总结

自定义监控模板:

1、先明确获取监控数据的方式,比如通过命令或者shell/python脚本来获取。

2、创建zabbix 的监控项配置文件( /etc/zabbix/ zabbix-agent2.d/*.conf) ,自定义监控数据的键名 Userparameter=<KEY>, <CMD>

3、在zabbix-server 的WEB页面上设置自定义监控模板:

  • 配置->模板->应用集->监控项->触发器->图形
  • 将自定义监控模板和主机关联起来

4、设置邮件报警:

  • 管理 -> 报警媒介类型,设置发件人邮箱配置并测试

  • user settings->报警媒介 ,设置收件人的邮箱和运行时间

  • 配置 -> 动作,将触发器和报警媒介关联起来

  • 测试

zabbix常见问题

Zabbix怎么开启自定义监控?

写一个脚本用于获取待监控服务的一些状态信息。

在zabbix客户端的配置文件zabbix_agentd.conf中添加上自定义的“UserParameter”,目的是方便zabbix调用我们上面写的那个脚本去获取待监控服务的信息。

在zabbix服务端使用zabbix_get测试是否能够通过第二步定义的参数去获取zabbix客户端收集的数据。 在zabbix服务端的web界面中新建模板,同时第一步的脚本能够获取什么信息就添加上什么监控项,“键值”设置成前面配置的“UserParameter”的值。

数据显示图表,直接新建图形并选择上一步的监控项来生成动态图表即可。

Zabbix是怎么开启微信报警的?

首先,需要有一个微信企业号。(一个实名认证的[微信号]一个可以使用的[手机号]一个可以登录的[邮箱号]

下载并配置微信公众平台私有接口。

配置Zabbix告警,(增加示警媒介类型,添加用户报警媒介,添加报警动作)。

我们可以用Zabbix监控哪些?

  1. 硬件监控:通过 SNMP 来进行路由器交换机的监控。

  2. 系统监控:如 CPU 的负载,上下文切换、内存使用率、磁盘读写、磁盘使用率、磁盘 inode 节点。

  3. 服务监控:比如公司用 LNMP nginx 自带 Status 模块、 PHP 也有相关的 Status 、 MySQL 的话可以通过 ODBC协议 来进行监控。 

  4. 网络监控:如果是云主机又不是跨机房,那么可以选择不监控网络。

  5. 安全监控:如果是云主机可以考虑使用自带的安全防护。当然也可以Zabbix监控 iptables 。如果是硬件,那么推荐以Zabbix监控硬件防火墙。

  6. Web 监控:web 监控的话题其实还是很多。比如可以使用自带的 web 监控来监控页面相关的延迟、 js 响应时间、下载时间、等等。

  7. 日志监控:如果是 web 的话可以使用监控 Nginx 的 500x 日志。PHP 的 ERROR 日志。

  8. 流量分析:平时我们分析日志都是拿 awk sed xxx 一堆工具来实现。这样对我们统计 ip 、 pv 、 uv 不是很方便。那么可以使用百度统计、 google 统计、商业,让开发嵌入代码即可 (不想关建议去掉)。

  9. 可视化:通过 screen 以及引入一 些第三方的库来美化界面,同时我们也需要知道、订单量突然增加、 突然减少。或者说突然来了一大波流量,这流量从哪儿来,是不是推广了,还是被攻击了。可以结合监控平台来梳理各个系统之间的业务关系。

  10. 自动化监控:如上我们做了那么多的工作,当然不能是一台一台的来加 key 实现。可以通过Zabbix 的主动模式以及被动模式来实现。当然最好还是通过 API 来实现。

Zabbix监控做过哪些?

zabbix监控mysql集群:

  1. 创建并编辑监控mysql的脚本(通常有脚本模板),添加执行权限;
  2. 修改zabbix-agent配置文件,默认有一个MySQL的子配置文件,直接编辑该文件即可,数据库添加授权用户;
  3. 重启zabbix-agent;
  4. Web界面配置、点击需要监控的主机,进去添加监控模板,自带的Template DB MySQL;
  5. 配置完成后等一会儿就可以查看到监控主机的MySQL监控信息。

如果发现监控没有数据,请排查如下问题:

  1. zabbix客户端是否重启

  2. 脚本是否有执行权限

  3. 数据库是否有用户授权

  4. 环境变量是否有问题

讲解一下告警屏蔽?

  1. 处于维护中的主机,告警信息还是会报出来,但是不会触发动作;
  2. 对于可预知的临时维护或紧急维护,可以提前设置告警屏蔽;
  3. 可针对组、单台或多台主机,进行一次性、每日定时、每月定时、每周定时屏蔽;
  4. 前端可以将维护中的主机不进行显示,Dashboard右上角有个图标可以进行筛选是否显示维护中的主机;
  5. 告警屏蔽时,可以设置采集数据或不采集数据两种方式。

报警类型和故障处理: 

报警类型:
1.E-mail 邮件 
2.微信报警等 

故障处理:
如监控服务器down机不报警 

1.先定位问题:zabbix服务器采用轮询的方式从监控目标机的agent获取数据。但如果目标机down了,目标机的agent通常也无法工作,所以检查被监控的主机服务
2.增加一个目标主机进行是否存活的检测。

告警收敛:

1)所有产生告警均由zabbix调用脚本推入缓存redis当中。
2)分析系统将在规定时间(1分钟)内去redis中拉取数据,根据定义好的一系列规则进行,合并、分析或直接丢弃,并存入分析平台数据库,以便供历史查询。
3)根据预先定义好的规则将报警通过定义好的方式发送给相关人员。