zabbix使用自动发现功能监控服务器各JVM进程状态

前言

        为什么需要做服务器jvm自动发现的监控呢?这个事情主要有两点原因:

  1. zabbix默认监控jvm状态是使用jmx中转进行监控的,监控效率比较低下
  2. zabbix使用jmx监控jvm的时候由于一个主机上的键值不能重复,也就导致了一台主机上只能监控一个jvm实例

        以上两点原因导致zabbix通过jmx监控jvm的实现不是很理想,加上最近老大要求收集服务器上面跑的所有java应用的信息,于是自己琢磨了下,还是自己动手,丰衣足食。利用了周末的时间,通过使用shell脚本+java工具jstat+zabbix实现监控主机上多jvm实例的功能。

阅读全文 >>

zabbix2.2 使用自定义脚本监控网卡流量

  1. 在客户端修改配置文件 /etc/zabbix/zabbix_agentd.conf

        需要改动两个地方:

  • UnsafeUserParameters=1
  • UserParameter=my.net.if

        /usr/local/sbin/zabbix/net.sh $1 $2 //其中UserParameter用来自定义键值,(类似于net.if.in),自己写的脚本往往会有参数,所以需要加。这是固定写法,如果脚本压根就没有什么参数,那么这个就省了。逗号后面就是我们写的脚本的路径了,再后面就是要用到的参数,有几个就写几。

阅读全文 >>

Zabbix自定义监控脚本配置

        注:要添加自定义脚本监控,必须升级zabbix agent版本至2.0.0以上,这里以2.0.8为例

        配置方式:

  1. 完成自定义监控脚本的编写(windows或linux脚本)

        脚本要求:

  • 既然是监控,那必然要有输出结果值(字符串,数字皆可)
  • 必须要求zabbix用户有执行权限,当然可以直接设置所有用户都有执行权限(chmod 777 脚本文件)
  • 若脚本需要传入参数,按照参数传入的顺序,在脚本中可用$1-$9来引用传入的参数
  1. 找到zabbix agent的配置文件zabbix_agentd.conf,修改如下两个参数
1
2
UnsafeUserParameters=0 => UnsafeUserParameters=1 #并去掉前面的注释符
UserParameter= => UserParameter=aaa.bbb[*], /usr/local/script/monitor.sh $1 $2 ...

阅读全文 >>

zabbix 增加客户端监控

        zabbix 比 nagios 好的地方就是, zabbix 不需要命令行去配置,只需要在浏览器里面点点按钮就可以了,这样就直观和方便很多。在配置客户端之前,也需要在客户端上安装 zabbix。

1
yum install -y zabbix20-agent

        然后更改客户端机器上的 zabbix_agentd.conf 配置文件

1
vim /etc/zabbix_agentd.conf

阅读全文 >>

zabbix自动发现实现批量监控docker状态

        最近在搞zabbix监控docker以及docker内部应用状态信息,网上找的资料好少,只找到了一个大神的一篇文章,用的是python实现监控docker容器的基本状态,在他给的脚本基础上进行修改,另外,增加了docker内部常用应用的状态监控,目前在测试环境上部署成功了,具体还需要在线上环境部署后才能检验出效果如何。

        首先,介绍下该监控套件有三个脚本,一个是自动发现主机上的docker容器脚本,另一个是用python写的获取每个docker容器的系统状态,包括CPU使用率,内存使用率以及网络资源使用率,最后这个脚本添加了一些我公司常用的应用的状态监控,包括应用占用内存,cpu资源以及进程的存活状态,至于读者们需要监控其他docker里面的应用,可以依照我的脚本来进行修改。

阅读全文 >>

zabbix通过JMX监控tomcat状态

        因为大量使用tomcat作为应用服务,所以,这两天催生了一个想法,通过zabbix监控tomcat的运行状态,从而能够更快的发现tomcat服务出现的问题以及判断问题出现在哪块。

        首先,zabbix监控tomcat等这一类java平台的应用不是直接通过agentd来实现的,而是使用jmx来获取到tomcat这类应用的状态,然后再将数据交给server端,生成监控图。

        如果需要用到jmx监控的话需要在客户端和服务端都安装java环境,至于java环境可以通过源码安装,不过我这里为了省事,直接通过yum安装java和java-devel这两个包:

1
yum -y install java java-devel

阅读全文 >>

zabbix使用pyora监控oracle数据库

        使用Orabbix监控oracle数据库,发现可以实现对oracel数据库实行监控,但是 最近部署Orabbix监控oracle数据库,发现始终无法获取到数据库的内容。。。。。。由于Orabbix是基于java实现的,使用的是jdbc连接oracle数据库,获取到的值传递给zabbix捕捉器来捕捉,这个过程我不是很熟悉。。。。。。始终无法调试出图来。。。最后终于放弃,寻找Orabbix的替代品。在zabbix官网找了一遍,发现使用python实现的pyora这个脚本还不错,最大的优势就是能够自定义自己想监控的相关参数,只需要修改脚本,在里面添加相关函数就行。pyora是通过python使用python的一个组件cx_Oracle来获取的,获取到的数据传递给zabbix的agent,从而获取到相关监控数据,这种方式比较简单,也比较容易扩展。pyora的缺点就是本身提供的监控item比较少,而且提供的模板是一个半成品模板,需要自己根据需要设计相应的模板,从而达到监控的目的。总体来说,pyora的特点就是简单,开源,易扩展,但是整体做的不是很完整。

        首先,需要下载pyora,在zabbix官网上面找到的github的链接,链接在这https://github.com/bicofino/Pyora

阅读全文 >>

zabbix使用percona zabbix mysql-plugin监控mysql数据库

        由于zabbix自带的mysql监控模板监控的东西比较少,使用percona zabbix mysql-plugin实现对mysql的监控。

        percona zabbix mysql-plugin是percona发布的一个使用zabbix监控mysql数据库的工具,这款工具比zabbix自带的监控模板要强大的多,毕竟percona是Mysql的一个重要分支,专业做数据库的,所以,采集的数据比较全面。

        下面开始进入正题,部署mysql的监控。

        首先,需要安装安装php和php-mysql,因为用到了php脚本,所以在本机上面需要安装php,至于php的安装不是本文讨论的重点

阅读全文 >>

zabbix使用SNMP V3监控路由器接口流量

        由于有需要监控网络流量, 于是,部署了zabbix监控路由器流量的应用,下面是通过查找资料,自行实验并成功监控路由器接口流量的过程。

        首先,在路由器上面配置好SNMP协议,我这边配置的是SNMP V3版本协议,并且使用了加密认证的方式(用户名:test认证算法使用SHA-1,密码:abcdefg加密密码使用AES协议,密码:hijklmnopq)。

        配置完之后需要进行检测看能否通过SNMP协议从路由器上面获取数据。

阅读全文 >>