11 KiB
Apache by HTTP
Overview
This template is designed for the effortless deployment of Apache monitoring by Zabbix via HTTP and doesn't require any external scripts.
The template Apache by HTTP
- collects metrics by polling mod_status with HTTP agent remotely:
127.0.0.1
ServerVersion: Apache/2.4.41 (Unix)
ServerMPM: event
Server Built: Aug 14 2019 00:35:10
CurrentTime: Friday, 16-Aug-2019 12:38:40 UTC
RestartTime: Wednesday, 14-Aug-2019 07:58:26 UTC
ParentServerConfigGeneration: 1
ParentServerMPMGeneration: 0
ServerUptimeSeconds: 189613
ServerUptime: 2 days 4 hours 40 minutes 13 seconds
Load1: 4.60
Load5: 1.20
Load15: 0.47
Total Accesses: 27860
Total kBytes: 33011
Total Duration: 54118
CPUUser: 18.02
CPUSystem: 31.76
CPUChildrenUser: 0
CPUChildrenSystem: 0
CPULoad: .0262535
Uptime: 189613
ReqPerSec: .146931
BytesPerSec: 178.275
BytesPerReq: 1213.33
DurationPerReq: 1.9425
BusyWorkers: 7
IdleWorkers: 93
Processes: 4
Stopping: 0
BusyWorkers: 7
IdleWorkers: 93
ConnsTotal: 13
ConnsAsyncWriting: 0
ConnsAsyncKeepAlive: 5
ConnsAsyncClosing: 0
Scoreboard: ...
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- Apache 2.4.41
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
See the setup instructions for mod_status.
Check the availability of the module with this command line: httpd -M 2>/dev/null | grep status_module
This is an example configuration of the Apache web server:
<Location "/server-status">
SetHandler server-status
Require host example.com
</Location>
If you use another path, then do not forget to change the {$APACHE.STATUS.PATH}
macro.
Macros used
Name | Description | Default |
---|---|---|
{$APACHE.STATUS.PORT} | The port of the Apache status page. |
80 |
{$APACHE.STATUS.PATH} | The URL path. |
server-status?auto |
{$APACHE.STATUS.SCHEME} | The request scheme, which may be either HTTP or HTTPS. |
http |
{$APACHE.RESPONSE_TIME.MAX.WARN} | The maximum Apache response time expressed in seconds for a trigger expression. |
10 |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
Apache: Get status | Getting data from a machine-readable version of the Apache status page. For more information see Apache Module mod_status. |
HTTP agent | apache.get_status Preprocessing
|
Apache: Service ping | Simple check | net.tcp.service[http,"{HOST.CONN}","{$APACHE.STATUS.PORT}"] Preprocessing
|
|
Apache: Service response time | Simple check | net.tcp.service.perf[http,"{HOST.CONN}","{$APACHE.STATUS.PORT}"] | |
Apache: Total bytes | The total bytes served. |
Dependent item | apache.bytes Preprocessing
|
Apache: Bytes per second | It is calculated as a rate of change for total bytes statistics.
|
Dependent item | apache.bytes.rate Preprocessing
|
Apache: Requests per second | It is calculated as a rate of change for the "Total requests" statistics.
|
Dependent item | apache.requests.rate Preprocessing
|
Apache: Total requests | The total number of the Apache server accesses. |
Dependent item | apache.requests Preprocessing
|
Apache: Uptime | The service uptime expressed in seconds. |
Dependent item | apache.uptime Preprocessing
|
Apache: Version | The Apache service version. |
Dependent item | apache.version Preprocessing
|
Apache: Total workers busy | The total number of busy worker threads/processes. |
Dependent item | apache.workers_total.busy Preprocessing
|
Apache: Total workers idle | The total number of idle worker threads/processes. |
Dependent item | apache.workers_total.idle Preprocessing
|
Apache: Workers closing connection | The number of workers in closing state. |
Dependent item | apache.workers.closing Preprocessing
|
Apache: Workers DNS lookup | The number of workers in |
Dependent item | apache.workers.dnslookup Preprocessing
|
Apache: Workers finishing | The number of workers in finishing state. |
Dependent item | apache.workers.finishing Preprocessing
|
Apache: Workers idle cleanup | The number of workers in cleanup state. |
Dependent item | apache.workers.cleanup Preprocessing
|
Apache: Workers keepalive (read) | The number of workers in |
Dependent item | apache.workers.keepalive Preprocessing
|
Apache: Workers logging | The number of workers in logging state. |
Dependent item | apache.workers.logging Preprocessing
|
Apache: Workers reading request | The number of workers in reading state. |
Dependent item | apache.workers.reading Preprocessing
|
Apache: Workers sending reply | The number of workers in sending state. |
Dependent item | apache.workers.sending Preprocessing
|
Apache: Workers slot with no current process | The number of slots with no current process. |
Dependent item | apache.workers.slot Preprocessing
|
Apache: Workers starting up | The number of workers in starting state. |
Dependent item | apache.workers.starting Preprocessing
|
Apache: Workers waiting for connection | The number of workers in waiting state. |
Dependent item | apache.workers.waiting Preprocessing
|
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Apache: Failed to fetch status page | Zabbix has not received any data for items for the last 30 minutes. |
nodata(/Apache by HTTP/apache.get_status,30m)=1 |
Warning | Manual close: Yes Depends on:
|
Apache: Service is down | last(/Apache by HTTP/net.tcp.service[http,"{HOST.CONN}","{$APACHE.STATUS.PORT}"])=0 |
Average | Manual close: Yes | |
Apache: Service response time is too high | min(/Apache by HTTP/net.tcp.service.perf[http,"{HOST.CONN}","{$APACHE.STATUS.PORT}"],5m)>{$APACHE.RESPONSE_TIME.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
|
Apache: Host has been restarted | Uptime is less than 10 minutes. |
last(/Apache by HTTP/apache.uptime)<10m |
Info | Manual close: Yes |
Apache: Version has changed | Apache version has changed. Acknowledge to close the problem manually. |
last(/Apache by HTTP/apache.version,#1)<>last(/Apache by HTTP/apache.version,#2) and length(last(/Apache by HTTP/apache.version))>0 |
Info | Manual close: Yes |
LLD rule Event MPM discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Event MPM discovery | The discovery of additional metrics if the event Multi-Processing Module (MPM) is used. For more details see Apache MPM event. |
Dependent item | apache.mpm.event.discovery Preprocessing
|
Item prototypes for Event MPM discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Apache: Connections async closing | The number of asynchronous connections in closing state (applicable only to the event MPM). |
Dependent item | apache.connections[async_closing{#SINGLETON}] Preprocessing
|
Apache: Connections async keepalive | The number of asynchronous connections in keepalive state (applicable only to the event MPM). |
Dependent item | apache.connections[async_keep_alive{#SINGLETON}] Preprocessing
|
Apache: Connections async writing | The number of asynchronous connections in writing state (applicable only to the event MPM). |
Dependent item | apache.connections[async_writing{#SINGLETON}] Preprocessing
|
Apache: Connections total | The number of total connections. |
Dependent item | apache.connections[total{#SINGLETON}] Preprocessing
|
Apache: Bytes per request | The average number of client requests per second. |
Dependent item | apache.bytes[per_request{#SINGLETON}] Preprocessing
|
Apache: Number of async processes | The number of asynchronous processes. |
Dependent item | apache.process[num{#SINGLETON}] Preprocessing
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums