Zabbix之进程
Posted mei-shu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix之进程相关的知识,希望对你有一定的参考价值。
版本:3.4
一、进程
1)服务器
Zabbix server是整个Zabbix软件的核心程序。Zabbix服务器进程是以守护进程(Deamon)运行的。
2)Agent
Zabbix agent部署在监控的目标上,主动监测本地的资源和应用(硬件驱动,内存,处理器统计等)。
被动(passive)和主动(active)检查
Zabbix agents可以执行被动和主动两种检查方式。
在passive check 模式中agent应答数据请求,Zabbix server(或者proxy)询问agent数据,如CPU 的负载情况,然后Zabbix agent回送结果。
Active checks 处理过程将相对复杂。 Agent必须首先从Zabbix sever索取监控项列表以进行独立处理,然后周期性地发送新的值给server。
执行被动或主动检查是通过选择相应的监测项目类型来配置的。item type. Zabbix agent处理监控项类型有’Zabbix agent’和’Zabbix agent (active)’。
3)Proxy
Zabbix Proxy是一个可以从一个或多个受监控设备收集监控数据,并将信息发送到Zabbix sever的进程,基本上是代表sever工作的。 所有收集的数据都在本地进行缓存,然后传送到proxy所属的Zabbix sever。
部署Proxy是可选的,,但是可能非常有益于分散单个Zabbix sever的负载。 如果只有proxy收集数据,sever上的进程就会减少CPU消耗和磁盘I / O负载。
Zabbix proxy是完成远程区域、分支机构、没有本地管理员的网络的集中监控的理想解决方案。
Zabbix proxy需要使用独立的数据库。
Zabbix proxy数据库可以使用SQLite, mysql, PostgreSQL. 使用Oracle或IBM DB2数据库时会有一定风险和限制(例如在低等级发现规则中的 返回值 ) return values of low-level discovery rules.
Zabbix proxy以守护进程的方式运行。
进程用户
Zabbix proxy是设计在非root账户下的。它会以其他任何非root用户启动的进程一样的方式运行。 所以,您可以使用任意非root用户运行agent,且不会产生任何问题。
如果您在’root’账户下运行,它将切换到硬编码的“zabbix”用户,该用户必须存在于您的系统上。如果您只想以’root’方式运行proxy,您必须在proxy配额文件里修改‘AllowRoot‘参数。
4)Java gateway
概述
.从Zabbix 2.0版本开始,以Zabbix守护进程的形式原生支持监控JMX程序出现了,它被称为Zabbix Java gateway。Zabbix gateway 是用Java语言写成。要查得一台主机特定的JMX计数器值,Zabbix server向Zabbix Java gateway发送请求,后者使用JMX管理API 去请求远程的有关应用。应用不需要额外安装软件,只需要启动时在命令行指定-Dcom.sun.management.jmxremote
即可。
Java gateway接受来自Zabbix Server或Agent的传入连接,且只能用作“被动proxy”。 与Zabbix proxy相反,它也可以从Zabbix agent调用(Zabbix agent不能被链接)。 每个Java gateway的访问都直接在Zabbix sever或 proxy配置文件中配置,因此每个Zabbix sever或Zabbix agent只能配置一个Java gateway。 如果一台主机具 JMX agent 类型的监控项和和其他类型的监控项,则只将JMX agent监控项传递到Java gateway进行检索。
当在Java gateway上的一个监控项值更新了,Zabbix server或agent将连接Java gateway请求查询该值,Java gateway会依次retrieves并传回到server或proxy。 同样的,Java gateway不会缓存任何值.
Zabbix sever或proxy具有连接到Java gateway特定类型的进程,由 START_POLLERS 选项控制。 在内部,Java gateway启动多个由该选项控制的线程。 在sever端,如果连接超过 Timeout 秒,则将终止,但Java gateway可能仍忙于从JMX计数器检索值。 为了解决这个问题,由于Zabbix 2.0.15,Zabbix 2.2.10和Zabbix 2.4.5在Java gateway中有TIMEOUT选项,允许为JMX网络操作设置超时。
Zabbix server或agent将尽可能地将请求集中到一个JMX目标(受监控项间隔影响),并将它们发送到单一连接中的Java gateway,以获得更好的性能。 建议 StartJavaPollers 小于或等于 START_POLLERS ,否则可能导致当连接Java gateway时而Java gateway没有多余的线程进行处理
以下内容将详细讲描述如何获得和运行Zabbix Java gateway,如何配置Zabbix server(或proxy)利用Zabbix Java gateway完成JMX监控,以及如何配置Zabbix GUI里的监控项,以匹配特殊JMX计数器。
4.1 获取Java gateway
有两种方式得到Java gateway,一种是通过Zabbix网站下载Java gateway包,另一种是通过源码编译Java gateway。
4.1.1 通过Zabbix网站下载
Zabbix Java gateway包 (RHEL, Debian, Ubuntu)可在 http://www.zabbix.com/download.php下载。.
4.1.2 通过源码编译
为了编译Java gateway,您需要在运行./configure时加上–enable-java选项. 建议在安装时指定–prefix选项而非使用默认的/usr/local, 因为在安装Java gateway时将创建整个目录树,而并非单一的可执行文件
$ ./configure --enable-java --prefix=$PREFIX
使用make完成Java gateway编译并打包成一个JAR文件。需要注意的是:这一步将会需要javac和jar,因此您需要保证它们在路径中
$ make
现在您将在src/zabbix_java/bin下得到zabbix-java-gateway-$VERSION.jar文件. 如果您对在指定的目录下使用Java gateway满意,那么您可以完成配置和运行Java gateway,否则,请确保有足够的权限运行make install.
$ make install
5)命令行应用
Sender、Get
以上是关于Zabbix之进程的主要内容,如果未能解决你的问题,请参考以下文章