zabbix进程组成结构,默认情况下zabbix包含5个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外一个zabbix_java_gateway是可选,这个需要另外安装。下面来分别介绍下他们各自的作用。
进程介绍
zabbix_agentd
客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等
zabbix_get
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。
zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。
zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。
zabbix_java_gateway
zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。
zabbix_agentd.conf配置文件详解
#PID文件路径
PidFile=/tmp/zabbix_agentd.pid
#日志文件路径,如果未配置,日志会记录到syslog中
LogFile=/tmp/zabbix_agentd.log
#日志文件大小,单位为MB,如果日志文件到达了最大值并且文件轮滚失败,那么老日志文件会被清空掉,0 - 关闭自动轮滚.
LogFileSize=1
#指定日志级别
DebugLevel=3
0 - basic information about starting and stopping of Zabbix processes
1 - critical级别
2 - error级别
3 - warnings级别
4 - debug级别
5 - extended debugging (与级别4一样. 只能使用runtime control 来设置.)
#zabbix对外连接的出口IP地址
SourceIP=
#是否运行zabbix server在此服务器上执行远程命令
EnableRemoteCommands=1
#记录原型执行的shell命令日志,级别为warrning
LogRemoteCommands=0
默认值:0
0 - disabled
1 - enabled
#zabbix_server服务器ip
Server=
#zabbix_agent监听端口,默认值10050
ListenPort=10050
#监听IP地址,默认为所有接口,多个ip之间使用逗号分隔
ListenIP=
#zabbix启动之后开启被动监控的进程数量,如果设置为0,那么zabbix被动监控被禁用,并且不会监听相应端口,也就是说10050端口不会开启。
StartAgents=3
#zabbix 主动监控server的ip地址,使用逗号分隔多IP,如果注释这个选项,那么当前服务器的主动监控就被禁用了
ServerActive=
#主机名,必须唯一,区分大小写。Hostname必须和zabbix web上配置的一样,否则zabbix主动监控无法正常工作。因为agent拿着这个主机名去问server,server拿着这个主机名去配置里面查询,然后返回信息。
支持字符:数字字母、'.'、' '、 '_'、 '-',不超过64个字符
Hostname=
#设置主机名,只有当HostMetadata没设置,它才生效。不支持UserParameters 、aliases,支持system.run[]
HostnameItem=system.hostname
#仅用于主机自动注册功能,如果当前值为定义,那么它的值默认为HostMetadataItem的值。这个选项在2.2.0之后加入,并且确保支付不能超过限制,以及字符串必须是UTF8,否则服务器无法启动
HostMetadata=
#如果HostMetadata值未设置,这个配置才有效。支持使用UserParameters、alias、system.run[]
HostMetadataItem
#多久时间(秒)刷新一次主动监控配置信息,如果刷新失败,那么60秒之后会重试一次
RefreshActiveChecks=120
取值范围:60-3600
#数据存储在buffer中最长多少秒
BufferSend=5
#buffer最大值,如果buffer满了,zabbix将会将检索到的数据发送给zabbix server或者proxy
BufferSize=100
#处理监控类型为log和eventlog日志时,agent每秒最大发送的行数。默认为100行
MaxLinesPerSecond=100
#key的别名,别名不能重复,但是可以有多个alias对应同一个key
Alias
#超时时间
Timeout=3
#是否允许使用root身份运行zabbix,如果值为0,并且是在root环境下,zabbix会尝试使用zabbix用户运行,如果不存在会告知zabbix用户不存在。
AllowRoot=0
0 - 不允许
1 - 允许
#包含自配置文件,不同的配置写到不同的文件中,然后include,配置文件会显得规范。
Include=
#允许所有字符的参数传递给用户定义的参数。
UnsafeUserParameters=0
#用户自定义key,格式: UserParameter=,
例如:serParameter=system.test,who|wc -l
UserParameter=
#模块路径,绝对路径
LoadModulePath=${libdir}/modules
#加载模块文件,可以写多个
LoadModule=