zabbix自定义监控
- 有的时候zabbix提供的监控项目,不能满足我们生产环境下的监控需求,此时我们就要按照zabbix的规范自定义监控项目,达到监控的目的
- zabbix_get:模拟zabbix_server和agent获取数据
- 相关概念
- item: Items是从agnet主机里面获取的所有数据。通常情况下我叫itme为监控项,item由key+参数组成
- Key:我们可以理解为key是item的唯一标识,在agent端有很多监控项,zabbix-server根据key区分不同的监控项
- trigger:触发器是建立在item数据上的,具有阈值触发事件的功能
基本格式: :.()}
server:agent名称,加入主机时配置的
key:就是上面说的key
function:对阈值进行操作的函数,以下函数
operate:表达式
constant:常量
例如:{docker02:proc.mysql.last()}<>1
- 不用担心trigger表达式不好写,在定义好item后,在zabbix点点就自动生成了
zabbix_get -s 192.168.56.131 -p -k "proc.item[/usr/sbin/mysqld,mysql]"
【option】
# -s:指定agent地址
# -p:agent端口
# -k:指定item的key
# [/usr/sbin/mysqld,mysql]:向脚本传递了两个参数,用逗号分隔
* 下面以监控mysql进程为例,做了自定义监控
1. zabbix_server与zabbix_agent
- zabbix_server通过发送key给zabbix_agent,然后agent端口根据key,把所要监控的item的最新数据返回给server端
2. 自定义监控项
- 自定义脚本格式
key[*],[command|sh]
# <key[参数]>,<命令或者脚本>
# [*]:固定格式,表示server端是否传过来参数,在命令或者脚本中用$1,23...引用,shell脚本中的引用$$1,2,3..引用,
# 如果server端不传参数,[*]可以不写
2.1 修改agent端配置文件,自定义key
sudo vim /etc/zabbix/zabbix_agentd.conf
- 做以下修改
UnsafeUserParameters=1 # 默认为0,表示不允许自定义key
# 监控mysql进程是否存在,[*]因为不需要server端传递参数,所以没写
UserParameter=proc.mysql,ps -ef|grep /usr/sbin/mysqld|grep -v grep|wc -l
2.2 web页面配置,加入自定义监控项
- 【配置】->【主机】,点击所要监控的主机
- 点击【监控项】
- 点击右上角【创建监控项】
- 创建监控项
- 这里的key值对应我们在agent端自定义的key
- 重启agent服务
sudo service zabbix-agent restart
- 查看item返回的数据:【检测中】->【最新数据】
从图中可以看到,mysql监控项返回的数值是1,说明mysql的进程数为1,代表mysql运行正常,如果想要可以邮件报警,可以给这个自定义的item添加触发器,参考“监控进程和端口号”一章
3. 执行脚本练习
- 执行自定义脚本监控,agent通过server端发来的参数,执行脚本返回一个结果给server
- 修改zabbix_agent配置文件,添加自定义key
sudo vim /etc/zabbix/zabbix_agentd.conf
- 做以下修改
UserParameter=proc.item[*],/home/tuna/shelles/zabbix/user_defined.sh $ $ # server端要向agent端发送两个参数
- 写脚本
vim user_defined.sh
#!/bin/bash
PROC=$1 # 接收用于匹配进程的字段
USER=$2 # 接收进程的开启者
ps -ef|grep "$PROC"|grep -v grep|awk '{if($1=="'$USER'"){print $2}}'|wc -l
- 测试一下
zabbix_get -s 192.168.56.131 -p 10050 -k "proc.item[/usr/sbin/mysqld,mysql]"
# [/usr/sbin/mysqld,mysql]:模拟server端向agent端发送了两个参数,分别是/usr/sbin/mysqld用于匹配进程,mysql:进程的所有者
- 接着就一样的配置监控项就可以了
zabbix自定义监控的更多相关文章
- Zabbix自定义监控8080端口的连接数
Zabbix自定义监控8080端口的连接数 一 zabbix自定义监控实现思路 实际上我们要想使用zabbix来监控一些服务的原理很简单,步骤分别是:1.写一个脚本用于获取待监控服务的一些状态信息2. ...
- zabbix自定义监控阿里云RDS服务
zabbix自定义监控rds zabbix通过阿里云api 自动发现.监控阿里云RDS-Mysql数据库 注意事项 脚本会收集RDS别名, 不要默认别名 不要使用中文别名(zabbix不识别) ...
- zabbix自定义监控项、添加图形、设置触发器、远程执行命令
监控项是在zabbix中手机数据的基础,没有监控项就没有数据,系统自带模板带有大量默认item,自定义item可以定义在模板中,在应用模板即可使用对应item:也可直接在host中定义 目标:自定义监 ...
- zabbix自定义监控项
原因:zabbix监控系统自带的监控规则有限,如果需要更加灵活的定义监控项,可以通过修改配置文件实现 vim xxx/zabbix_agentd.conf UnsafeUserParameters=1 ...
- zabbix 自定义监控文本内容
需求:监控服务器硬盘使用率是否有超过80%的 需要监控的文本 root@zabbix zabbix]# cat /etc/zabbix/scripts/data/monitor_disk.txt &q ...
- zabbix 自定义监控nginx
zabbix自定义nginx监控项 查看nginx编译安装是否加上该选项,如果没有请重新编译安装 配置nginx.conf vim /usr/local/cpgroup/nginx/conf/vhos ...
- zabbix自定义监控项一
1.在agent端配置 1.1 添加自定义监控项 zabbix中监控项叫做item,监控项的取值方法叫做key item: Items是从agnet主机里面获取的所有数据.通常情况下我叫itme为监控 ...
- zabbix自定义监控项二
为zabbix增加支持传参的自定义监控项 例如使用zabbix来监控tcp的12种状态 tcp的12种状态可以通过man netstat来找到,即 LISTEN:等待从任何远端TCP 和端口的连接请求 ...
- Zabbix自定义监控项(模板)
虽然Zabbix提供了很多的模板(简单理解为监控项的集合),在zabbix界面点击share按钮就可以直接跳到模板大全的官方网站,但是由于模板内的监控项数量太多不好梳理且各种模板质量参差不齐,还是建议 ...
随机推荐
- zabbix之 zabbix server 跟 agent 更换ip地址
描述: zabbix server端跟agent端更改 ip . 改完之后,相应配置文件 (zabbix_agentd.conf.zabbix_server.conf)的ip也进行了替换 但是依旧报错 ...
- sysbench write and read only
Writesysbench --test=/usr/share/doc/sysbench/tests/db/oltp.lua --mysql-host=192.168.1.50 --mysql-por ...
- Python模块 os和sys
os模块是与操作系统交互的一个接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相 ...
- Response的Content-Type一览
文件扩展名 Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type) .* application/octet-stream .tif image/t ...
- 源码编译、安装net-snmp的方法和遇到的问题
本文参考地址:http://blog.163.com/qiushuhui1989@126/blog/static/270110892014119113421364/ 1. 源码下载 # wget ht ...
- 解决mysql使用GTID主从复制错误问题
做MySQL主从的话肯定会遇到很多同步上的问题,大多数都是由于机器宕机,重启,或者是主键冲突等引起的从服务器停止工作,这里专门收集类似问题并提供整理解决方案,仅供参考. 1.主从网络中断,或主服务器重 ...
- oracle体系结构理解
体系结构相关内容每次看遍书,过段时间就忘了..无奈用自己理解的方式记录之. 1.commit与写盘与否没有关系,也就是说修改数据(insert update delete)后并提交数据,这条被修改的数 ...
- hadoop的hdfs中的javaAPI操作
package cn.itcast.bigdata.hdfs; import java.net.URI; import java.util.Iterator; import java.util.Map ...
- java 栈 最大深度
1. 概述 某公司面试,总监大叔过来,问了图论及栈的最大深度,然后^_^ 一直记着,今天搞一下 2. 代码 package com.goodfan.test; public class JavaS ...
- 【学习】pandas 基础介绍说明 【pandas】
本文来源于<利用python进行数据分析>中文版,大家有兴趣可以看原版,入门的东西得脚踏实地哈 1.pandas 数据结构介绍 首先熟悉它的两个主要数据结构,Series 和 DataFr ...