zabbix服务端和客户端已在上一篇文章中部署完成。
方法一:去官网下载监控模板
zabbix监控模板大全:
方法二:自定义监控模板
案例:自定义监控客户端服务器登录的人数
需求:监控客户端的登录人数,超过 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监控哪些?
-
硬件监控:通过 SNMP 来进行路由器交换机的监控。
-
系统监控:如 CPU 的负载,上下文切换、内存使用率、磁盘读写、磁盘使用率、磁盘 inode 节点。
-
服务监控:比如公司用 LNMP nginx 自带 Status 模块、 PHP 也有相关的 Status 、 MySQL 的话可以通过 ODBC协议 来进行监控。
-
网络监控:如果是云主机又不是跨机房,那么可以选择不监控网络。
-
安全监控:如果是云主机可以考虑使用自带的安全防护。当然也可以Zabbix监控 iptables 。如果是硬件,那么推荐以Zabbix监控硬件防火墙。
-
Web 监控:web 监控的话题其实还是很多。比如可以使用自带的 web 监控来监控页面相关的延迟、 js 响应时间、下载时间、等等。
-
日志监控:如果是 web 的话可以使用监控 Nginx 的 500x 日志。PHP 的 ERROR 日志。
-
流量分析:平时我们分析日志都是拿 awk sed xxx 一堆工具来实现。这样对我们统计 ip 、 pv 、 uv 不是很方便。那么可以使用百度统计、 google 统计、商业,让开发嵌入代码即可 (不想关建议去掉)。
-
可视化:通过 screen 以及引入一 些第三方的库来美化界面,同时我们也需要知道、订单量突然增加、 突然减少。或者说突然来了一大波流量,这流量从哪儿来,是不是推广了,还是被攻击了。可以结合监控平台来梳理各个系统之间的业务关系。
-
自动化监控:如上我们做了那么多的工作,当然不能是一台一台的来加 key 实现。可以通过Zabbix 的主动模式以及被动模式来实现。当然最好还是通过 API 来实现。
Zabbix监控做过哪些?
zabbix监控mysql集群:
- 创建并编辑监控mysql的脚本(通常有脚本模板),添加执行权限;
- 修改zabbix-agent配置文件,默认有一个MySQL的子配置文件,直接编辑该文件即可,数据库添加授权用户;
- 重启zabbix-agent;
- Web界面配置、点击需要监控的主机,进去添加监控模板,自带的Template DB MySQL;
- 配置完成后等一会儿就可以查看到监控主机的MySQL监控信息。
如果发现监控没有数据,请排查如下问题:
-
zabbix客户端是否重启
-
脚本是否有执行权限
-
数据库是否有用户授权
-
环境变量是否有问题
讲解一下告警屏蔽?
- 处于维护中的主机,告警信息还是会报出来,但是不会触发动作;
- 对于可预知的临时维护或紧急维护,可以提前设置告警屏蔽;
- 可针对组、单台或多台主机,进行一次性、每日定时、每月定时、每周定时屏蔽;
- 前端可以将维护中的主机不进行显示,Dashboard右上角有个图标可以进行筛选是否显示维护中的主机;
- 告警屏蔽时,可以设置采集数据或不采集数据两种方式。
报警类型和故障处理:
报警类型:
1.E-mail 邮件
2.微信报警等
故障处理:
如监控服务器down机不报警
1.先定位问题:zabbix服务器采用轮询的方式从监控目标机的agent获取数据。但如果目标机down了,目标机的agent通常也无法工作,所以检查被监控的主机服务
2.增加一个目标主机进行是否存活的检测。
告警收敛:
1)所有产生告警均由zabbix调用脚本推入缓存redis当中。
2)分析系统将在规定时间(1分钟)内去redis中拉取数据,根据定义好的一系列规则进行,合并、分析或直接丢弃,并存入分析平台数据库,以便供历史查询。
3)根据预先定义好的规则将报警通过定义好的方式发送给相关人员。