542179528 发表于 2019-1-19 12:03:15

《zabbix进程组成结构与zabbix_agentd.conf配置文件参数详解》

  

  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=
  

  

  

  




页: [1]
查看完整版本: 《zabbix进程组成结构与zabbix_agentd.conf配置文件参数详解》