3 Processos do Zabbix
3.1 Logging
For logging configuration of Zabbix daemons “LogFile” configuration parameter is used. If this parameter is left empty (LogFile=), syslog logging facilities are used.
All Zabbix daemons on Unix-like platforms log their messages from “Daemon” environment.
The mapping between Zabbix logging levels and syslog levels is as follows:
Zabbix log level | syslog log level | Comments |
---|---|---|
0 – empty (LOG_LEVEL_EMPTY) |
syslog is not used. | All messages are skipped. |
1 – critical information (LOG_LEVEL_CRIT) |
critical conditions (LOG_CRIT) |
|
2 – error information (LOG_LEVEL_ERR) |
error conditions (LOG_ERR) |
|
3 – warnings (LOG_LEVEL_WARNING) |
warning conditions (LOG_WARNING) |
|
4 – for debugging (LOG_LEVEL_DEBUG) |
debug-level messages (LOG_DEBUG) |
For syslog configuration consult the corresponding literature.
Zabbix agent under Windows uses Event Log if “LogFile” configuration parameter is provided empty.
Mapping between Zabbix log levels (messages of corresponding type) and Windows Event Log entries type
is provided below:
Zabbix log level | Windows Event Log entry type | Comments |
---|---|---|
0 – empty (LOG_LEVEL_EMPTY) |
Event Log is not used. | All messages are skipped. |
1 – critical information (LOG_LEVEL_CRIT) 2 – error information (LOG_LEVEL_ERR) |
EVENTLOG_ERROR_TYPE | Error |
3 – warnings (LOG_LEVEL_WARNING) |
EVENTLOG_WARNING_TYPE | Warning |
4 – for debugging (LOG_LEVEL_DEBUG) |
EVENTLOG_INFORMATION_TYPE | Information |
3.2 Individual processes
3.3 Zabbix Server
Zabbix Server is a central process of Zabbix software. Zabbix Server can be started by executing:
shell> cd sbin shell> ./zabbix_server
Since version 1.8.3, Zabbix server has improved unreachable host handling. If a poller finds in the item queue an item from an unreachable host, it takes the item and marks the host as being checked currently. Other pollers do not take items from a host, which is marked like that. As a result, unreachable host will be checked by at most one poller at a time. Also, at most one item for an unreachable host will be tried at a time. Given that, it was decided to remove specific poller class for unreachable hosts.
Zabbix Server runs as a daemon process.
Zabbix Server accepts the following command line parameters:
-c --config <file> specify configuration file, default is /etc/zabbix/zabbix_server.conf -h --help give this help -v --version display version number
In order to get this help run:
shell> zabbix_server -h
Example of command line parameters:
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf shell> zabbix_server --help shell> zabbix_server -v
The configuration file contains parameters for zabbix_server. The file must exist and it should have read permissions for user 'zabbix'. Supported parameters:
Parameter | Mandatory | Range | Default | Description |
---|---|---|---|---|
AlertScriptsPath | no | /home/zabbix/bin/ | Location of custom alert scripts | |
CacheSize | no | 128K-1G | 8M | Size of configuration cache, in bytes. Shared memory size for storing hosts and items data. |
CacheUpdateFrequency | no | 1-3600 | 60 | How often Zabbix will perform update of configuration cache, in seconds. |
DBHost | no | localhost | Database host name. If set to localhost, socket is used for MySQL. |
|
DBName | yes | Database name. For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored. |
||
DBPassword | no | Database password. Ignored for SQLite. Comment this line if no password is used. |
||
DBPort | no | 1024-65535 | 3306 | Database port when not using local socket. Ignored for SQLite. |
DBSocket | no | /tmp/mysql.sock | Path to MySQL socket. | |
DBUser | no | Database user. Ignored for SQLite. | ||
DebugLevel | no | 0-4 | 3 | Specifies debug level 0 – no debug 1 – critical information 2 – error information 3 – warnings 4 – for debugging (produces lots of information) |
DisableHousekeeping | no | 0-1 | 0 | If set to 1, disables housekeeping. |
ExternalScripts | no | /etc/zabbix/externalscripts | Location of external scripts | |
Fping6Location | no | /usr/sbin/fping6 | Location of fping6. Make sure that fping6 binary has root ownership and SUID flag set. Make empty (“Fping6Location=”) if your fping utility is capable to process IPv6 addresses. |
|
FpingLocation | no | /usr/sbin/fping | Location of fping. Make sure that fping binary has root ownership and SUID flag set! |
|
HistoryCacheSize | no | 128K-1G | 8M | Size of history cache, in bytes. Shared memory size for storing history data. |
HistoryTextCacheSize | no | 128K-1G | 16M | Size of text history cache, in bytes. Shared memory size for storing character, text or log history data. |
HousekeepingFrequency | no | 1-24 | 1 | How often Zabbix will perform housekeeping procedure (in hours). Housekeeping is removing unnecessary information from history, alert, and alarms tables. If PostgreSQL is used, suggested value is 24, as it performs VACUUM. |
MaxHousekeeperDelete | no | 0-1000000 | 500 | No more than 'MaxHousekeeperDelete' rows (corresponding to [tablename], [field], [value]) will be deleted per one task in one housekeeping cycle. SQLite3 does not use this parameter, deletes all corresponding rows without a limit. If set to 0 then no limit is used at all. In this case you must know what you are doing! This option is supported in version 1.8.2 and higher. |
Include | no | You may include individual files or all files in a directory in the configuration file. | ||
ListenIP | no | 0.0.0.0 | List of comma delimited IP addresses that the trapper should listen on. Trapper will listen on all network interfaces if this parameter is missing. Multiple IP addresses are supported in version 1.8.3 and higher. |
|
ListenPort | no | 1024-32767 | 10051 | Listen port for trapper. |
LogFileSize | no | 0-1024 | 1 | Maximum size of log file in MB. 0 – disable automatic log rotation. |
LogFile | no | Name of log file. | ||
LogSlowQueries | no | 0-3600000 | 0 | If a query takes longer than this many milliseconds, the query is logged to the log file. 0 – disable log slow queries This option is supported in version 1.8.2 and higher. |
NodeID | no | 0-999 | 0 | Unique NodeID in distributed setup. 0 – standalone server |
NodeNoEvents | no | 0-1 | 0 | If set to '1' local events won't be sent to master node. This won't impact ability of this node to propagate events from its child nodes. |
NodeNoHistory | no | 0-1 | 0 | If set to '1' local history won't be sent to master node. This won't impact ability of this node to propagate history from its child nodes. |
PidFile | no | /tmp/zabbix_server.pid | Name of PID file. | |
ProxyConfigFrequency | no | 1-604800 | 3600 | How often Zabbix Server sends configuration data to a Zabbix Proxy in seconds. Used only for proxies in a passive mode. This option is supported in version 1.8.3 and higher. |
ProxyDataFrequency | no | 1-3600 | 1 | How often Zabbix Server requests history data from a Zabbix Proxy in seconds. Used only for proxies in a passive mode. This option is supported in version 1.8.3 and higher. |
SSHKeyLocation | no | Location of public keys for SSH checks | ||
SenderFrequency | no | 5-3600 | 30 | How often Zabbix will try to send unsent alerts (in seconds). |
SourceIP | no | Source IP address for outgoing connections. | ||
StartDBSyncers | no | 1-64 | 4 | Number of pre-forked instances of DB Syncers. This option is supported in version 1.8.3 and higher. |
StartDiscoverers | no | 0-255 | 1 | Number of pre-forked instances of discoverers. |
StartHTTPPollers | no | 0-255 | 1 | Number of pre-forked instances of HTTP pollers. |
StartIPMIPollers | no | 0-255 | 0 | Number of pre-forked instances of IPMI pollers. |
StartPingers | no | 0-255 | 1 | Number of pre-forked instances of ICMP pingers. |
StartPollersUnreachable | no | 0-255 | 1 | Number of pre-forked instances of pollers for unreachable hosts. This option is missing in version 1.8.3. |
StartPollers | no | 0-255 | 5 | Number of pre-forked instances of pollers. |
StartProxyPollers | no | 0-255 | 1 | Number of pre-forked instances of pollers for passive proxies. This option is supported in version 1.8.3 and higher. |
StartTrappers | no | 0-255 | 5 | Number of pre-forked instances of trappers |
Timeout | no | 1-30 | 3 | Specifies how long we wait for agent, SNMP device or external check (in seconds). |
TmpDir | no | /tmp | Temporary directory. | |
TrapperTimeout | no | 1-300 | 300 | Specifies how many seconds trapper may spend processing new data. |
TrendCacheSize | no | 128K-1G | 4M | Size of trend cache, in bytes. Shared memory size for storing trends data. |
UnavailableDelay | no | 1-3600 | 60 | How often host is checked for availability during the unavailability period, in seconds. |
UnreachableDelay | no | 1-3600 | 15 | How often host is checked for availability during the unreachability period, in seconds. |
UnreachablePeriod | no | 1-3600 | 45 | After how many seconds of unreachability treat a host as unavailable. |
3.4 Zabbix Proxy
Zabbix Proxy is a process which collects performance and availability data from one or more monitored devices and sends the information to a Zabbix Server. Zabbix Proxy can be started by:
shell> cd sbin shell> ./zabbix_proxy
Zabbix Proxy runs as a daemon process.
Zabbix Proxy accepts the following command line parameters:
-c --config <file> specify configuration file, default is /etc/zabbix/zabbix_proxy.conf -h --help give this help -v --version display version number
In order to get this help run:
shell> zabbix_proxy -h
Example of command line parameters:
shell> zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf shell> zabbix_proxy --help shell> zabbix_proxy -v
The configuration file contains parameters for zabbix_proxy. The file must exist and it should have read permissions for user 'zabbix'. Supported parameters:
Parameter | Mandatory | Range | Default | Description |
---|---|---|---|---|
CacheSize | no | 128K-1G | 8M | Size of configuration cache, in bytes. Shared memory size, for storing hosts and items data. |
CacheUpdateFrequency | no | 1-3600 | 60 | How often Zabbix will perform update of configuration cache, in seconds. For a proxy in the passive mode this parameter will be ignored. |
ConfigFrequency | no | 1-604800 | 3600 | How often proxy retrieves configuration data from Zabbix Server in seconds. For a proxy in the passive mode this parameter will be ignored. |
DBHost | no | localhost | Database host name. If set to localhost, socket is used for MySQL. |
|
DBName | yes | Database name. For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored. |
||
DBPassword | no | Database password. Ignored for SQLite. Comment this line if no password is used. |
||
DBSocket | no | 3306 | Path to MySQL socket. Database port when not using local socket. Ignored for SQLite. |
|
DBUser | Database user. Ignored for SQLite. | |||
DataSenderFrequency | no | 1-3600 | 1 | Proxy will send collected data to the Server every N seconds. |
DebugLevel | no | 0-4 | 3 | Specifies debug level 0 – no debug 1 – critical information 2 – error information 3 – warnings 4 – for debugging (produces lots of information) |
ExternalScripts | no | /etc/zabbix/externalscripts | Location of external scripts | |
Fping6Location | no | /usr/sbin/fping6 | Location of fping6. Make sure that fping6 binary has root ownership and SUID flag set. Make empty (“Fping6Location=”) if your fping utility is capable to process IPv6 addresses. |
|
FpingLocation | no | /usr/sbin/fping | Location of fping. Make sure that fping binary has root ownership and SUID flag set! |
|
HeartbeatFrequency | no | 0-3600 | 60 | Frequency of heartbeat messages in seconds. Used for monitoring availability of Proxy on server side. 0 – heartbeat messages disabled. For a proxy in the passive mode this parameter will be ignored. |
HistoryCacheSize | no | 128K-1G | 8M | Size of history cache, in bytes. Shared memory size for storing history data. |
HistoryTextCacheSize | no | 128K-1G | 16M | Size of text history cache, in bytes. Shared memory size for storing character, text or log history data. |
Hostname | no | Unique Proxy name. Make sure the Proxy name is known to the server! System hostname is used if undefined. |
||
HousekeepingFrequency | no | 1-24 | 1 | How often Zabbix will perform housekeeping procedure (in hours). Housekeeping is removing unnecessary information from history, alert, and alarms tables. If PostgreSQL is used, suggested value is 24, as it performs VACUUM. |
Include | no | You may include individual files or all files in a directory in the configuration file. | ||
ListenIP | no | 0.0.0.0 | List of comma delimited IP addresses that the trapper should listen on. Trapper will listen on all network interfaces if this parameter is missing. Multiple IP addresses are supported in version 1.8.3 and higher. |
|
ListenPort | no | 1024-32767 | 10051 | Listen port for trapper. |
LogFileSize | no | 0-1024 | 1 | Maximum size of log file in MB. 0 – disable automatic log rotation. |
LogFile | no | Name of log file. If not set, syslog is used. |
||
LogSlowQueries | no | 0-3600000 | 0 | If a query takes longer than this many milliseconds, the query is logged to the log file. 0 – disable log slow queries This option is supported in version 1.8.2 and higher. |
PidFile | no | /tmp/zabbix_proxy.pid | Name of PID file. | |
ProxyLocalBuffer | no | 0-720 | 0 | Proxy will keep data locally for N hours. This parameter may be used if local data will be used by third party applications. |
ProxyMode | no | 0-1 | 0 | Proxy operating mode. 0 – proxy in the active mode 1 – proxy in the passive mode This option is supported in version 1.8.3 and higher. |
ProxyOfflineBuffer | no | 0-720 | 1 | Proxy will keep data for N hours in case if no connectivity with Zabbix Server. Older data will be lost. |
SSHKeyLocation | no | Location of public keys for SSH checks | ||
ServerPort | no | 1024-32767 | 10051 | Port of Zabbix trapper on Zabbix server. For a proxy in the passive mode this parameter will be ignored. |
Server | yes | IP address (or hostname) of Zabbix server. Active Proxy will get configuration data from the server. For a proxy in the passive mode this parameter will be ignored. |
||
SourceIP | no | Source IP address for outgoing connections. | ||
StartDBSyncers | no | 1-64 | 4 | Number of pre-forked instances of DB Syncers. This option is supported in version 1.8.3 and higher. |
StartDiscoverers | no | 0-255 | 1 | Number of pre-forked instances of discoverers. |
StartHTTPPollers | no | 0-255 | 1 | Number of pre-forked instances of HTTP pollers. |
StartIPMIPollers | no | 0-255 | 0 | Number of pre-forked instances of IPMI pollers. |
StartPingers | no | 0-255 | 1 | Number of pre-forked instances of ICMP pingers. |
StartPollersUnreachable | no | 0-255 | 1 | Number of pre-forked instances of pollers for unreachable hosts. Obsolete since 1.8.3. |
StartPollers | no | 0-255 | 5 | Number of pre-forked instances of pollers. |
StartTrappers | no | 0-255 | 5 | Number of pre-forked instances of trappers |
Timeout | no | 1-30 | 3 | Specifies how long we wait for agent, SNMP device or external check (in seconds). |
TmpDir | no | /tmp | Temporary directory. | |
TrapperTimeout | no | 1-300 | 300 | Specifies how many seconds trapper may spend processing new data. |
TrendCacheSize | no | 128K-1G | 4M | Size of trend cache, in bytes. Shared memory size for storing trends data. |
UnavailableDelay | no | 1-3600 | 60 | How often host is checked for availability during the unavailability period, in seconds. |
UnreachableDelay | no | 1-3600 | 15 | How often host is checked for availability during the unreachability period, in seconds. |
UnreachablePeriod | no | 1-3600 | 45 | After how many seconds of unreachability treat a host as unavailable. |
3.3 Agente Zabbix (UNIX, processo Standalone daemon)
O Agente Zabbix para unix é executado em um host sendo monitorado. O agente fornece performance do host e informação de disponibilidade pelo Zabbix Server. O agente Zabbix processa itens do tipo 'Zabbix Agent' e 'Zabbix Agent (ativo)'.
O Zabbix Agente pode ser iniciado executando os seguintes comandos:
shell> cd sbin shell> ./zabbix_agentd
O agente Zabbix é executado como um processo daemon.
O agente Zabbix aceita os seguinte parametros de linha de comando
-c --config <arquivo> especifica o arquivo de configuração, o padrão é /etc/zabbix/zabbix_agentd.conf -h --help mostra essa tela de ajuda -v --version mostra a versão do agente -p --print imprime as metricas suportadas e saída. -t --test <metric> testas metricas especificadas e saída.
No caso de mostrar essa ajuda, execute:
shell> zabbix_agentd -h
Exemplos de parâmetros de linha de comando:
shell> zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf shell> zabbix_agentd --help shell> zabbix_agentd --print shell> zabbix_agentd -t "system.cpu.load[all,avg1]"
o arquivo de configuração contem parâmetros de configuração para o zabbix_agentd. O arquivo deve existir e eke deveria ter permissão de leiura para o usuário 'zabbix'. Parâmetros suportados:
Parâmetros | Mandatório | Alcance | Padrão | Descrição |
---|---|---|---|---|
BufferSend | no | 1-3600 | 5 | Do not keep data longer than N seconds in buffer. |
BufferSize | no | 2-65535 | 100 | Maximum number of values in a memory buffer. The agent will send all collected data to Zabbix Server or Proxy if the buffer is full. |
DebugLevel | no | 0-4 | 3 | Specifies debug level 0 – no debug 1 – critical information 2 – error information 3 – warnings 4 – for debugging (produces lots of information) |
DisableActive | no | 0 | Disable active checks. The agent will work in passive mode listening for server. | |
DisablePassive | no | 0 | Disable passive checks. The agent will not listen on any TCP port. Only active checks will be processed. 0 – do not disable 1 – disable |
|
EnableRemoteCommands | no | 0 | Whether remote commands from Zabbix server are allowed. 0 – not allowed 1 – allowed |
|
Hostname | system.uname | Unique hostname. Required for active checks and must match hostname as configured on the server. |
||
Include | no | You may include individual files or all files in a directory in the configuration file. | ||
ListenIP | no | 0.0.0.0 | List of comma delimited IP addresses that the agent should listen on. Multiple IP addresses are supported in version 1.8.3 and higher. |
|
ListenPort | no | 1024-32767 | 10050 | Agent will listen on this port for connections from the server. |
LogFileSize | no | 0-1024 | 1 | Maximum size of log file in MB. 0 – disable automatic log rotation. |
LogFile | no | Name of log file. If not set, syslog is used. |
||
LogRemoteCommands | no | 0 | Enable logging of executed shell commands as warnings 0 – disabled 1 – enabled |
|
MaxLinesPerSecond | no | 1-1000 | 100 | Maximum number of new lines the agent will send per second to Zabbix Server or Proxy processing 'log' and 'eventlog' active checks. The provided value will be overridden by the parameter 'maxlines', provided in 'log' or 'eventlog' item key. |
PidFile | no | /tmp/zabbix_agentd.pid | Name of PID file. | |
RefreshActiveChecks | no | 60-3600 | 120 | How often list of active checks is refreshed, in seconds. |
ServerPort | no | 10051 | Server port for retrieving list of and sending active checks. | |
Server | yes | List of comma delimited IP addresses (or hostnames) of Zabbix servers. No spaces allowed. First entry is used for receiving list of and sending active checks. Note that hostnames must resolve hostname→IP address and IP address→hostname. |
||
SourceIP | no | Source IP address for outgoing connections. | ||
StartAgents | no | 1-16 | 3 | Number of pre-forked instances of zabbix_agentd that process passive checks. |
Timeout | no | 1-30 | 3 | Spend no more than Timeout seconds on processing |
UnsafeUserParameters | no | 0,1 | 0 | Allow all characters to be passed in arguments to user-defined parameters. Supported since Zabbix 1.8.2. |
UserParameter | no | User-defined parameter to monitor. There can be several user-defined parameters. Format: UserParameter=<key>,<shell command> Note that shell command must not return empty string or EOL only. Example: UserParameter=system.test,who|wc -l |
3.4 Zabbix Agent (UNIX, Inetd version)
The file contains configuration parameters for zabbix_agent. The file must exist and it should have read permissions for user 'zabbix'. Supported parameters:
Parameter | Mandatory | Default value | Description |
---|---|---|---|
Server | yes | – | Comma-delimited list of IP addresses of ZABBIX Servers or Proxies. Connections from other IP addresses will be rejected. |
Timeout | no | 3 | Do not spend more than Timeout seconds on getting requested value (1-255). The agent does not kill timeouted User Parameters processes! |
UnsafeUserParameters | no | 0 | Allow all characters to be passed in arguments to user-defined parameters |
UserParameter | no | User-defined parameter to monitor. There can be several user-defined parameters. Format: UserParameter=<key>,<shell command> Note that shell command must not return empty string or EOL only. Example: UserParameter=system.test,who|wc -l |
3.5 Zabbix Sender (UNIX)
Zabbix UNIX Sender is a command line utility which may be used to send performance data to Zabbix Server for processing.
The utility is usually used in long running user scripts for periodical sending of availability and performance data.
Zabbix Sender can be started by executing:
shell> cd bin shell> ./zabbix_sender -z zabbix -p 10051 -s LinuxDB3 -k db.connections -o 43
See Zabbix Sender manpage for more information.
3.6 Zabbix Get (UNIX)
Zabbix UNIX Get is a process which communicates with Zabbix Agent and retrieves required information.
The utility is usually used for troubleshooting of ZABBIX Agents.
Zabbix Get can be started by executing:
shell> cd bin shell> ./zabbix_get -s127.0.0.1 -p10050 -k"system.cpu.load[all,avg1]"
Zabbix Get accepts the following command line parameters:
-p --port <port number> Specify port number of agent running on the host. Default is 10050. -s -host <host name or IP> Specify host name or IP address of a host. -I --source-address <ip address> Specify source IP address -k -key <key of metric> Specify metric name (key) we want to retrieve. -h --help Give this help. -v --version Display version number.
In order to get this help run:
shell> zabbix_get -h
Data source: Zabbix