5.02021-11-21T21:46:30ZTemplatesApacheApache## Overview
This template is for Apache HTTP server monitoring. It contains one master item that connects to HTTP Agent every 10 seconds, requests server-status page, provided by mod-status Apache module and spreads collected information between 18 dependent items. No triggers. See screenshot for details.
Refer to the blog post
<https://blog.zabbix.com/apache-http-server-monitoring/6972>
for even more details.
## Author
Andris Zeila
TemplatesApache- Bytes per requestDEPENDENTapache.bytesreq0FLOATBApacheJSONPATH$.BytesPerReqapache.status
- Bytes per secondDEPENDENTapache.bytessec0FLOATBApacheJSONPATH$.BytesPerSecapache.status
- CPU loadDEPENDENTapache.cpuload0FLOATApacheJSONPATH$.CPULoadapache.status
- Total requestsDEPENDENTapache.requests0ApacheJSONPATH$["Total Accesses"]apache.status
- Requests per secondDEPENDENTapache.requestssec0FLOATApacheJSONPATH$.ReqPerSecapache.status
- Apache HTTP Server statusHTTP_AGENTapache.status10s00TEXTApacheJAVASCRIPT// Convert Apache status to JSON.
var lines = value.split("\n");
var fields = {}, workers = {}, output = {};
// Get all "Key: Value" pairs as an object.
for (var i = 0; i < lines.length; i++) {
var line = lines[i].match(/([A-z0-9 ]+): (.*)/);
if (line !== null) {
output[line[1]] = isNaN(line[2]) ? line[2] : Number(line[2]);
}
}
// Parse "Scoreboard" to get worker count.
if (typeof output.Scoreboard === 'string') {
for (var i = 0; i < output.Scoreboard.length; i++) {
var char = output.Scoreboard[i];
workers[char] = workers[char] ? (workers[char] + 1) : 1;
}
}
// Add worker data to the output.
output.Workers = {
waiting: workers["_"], starting: workers["S"], reading: workers["R"],
sending: workers["W"], keepalive: workers["K"], dnslookup: workers["D"],
closing: workers["C"], logging: workers["L"], finishing: workers["G"],
cleanup: workers["I"], slot: workers["."]
};
// Return JSON string.
return JSON.stringify(output);{$APACHE.STATUS.URL}auto
- Total trafficDEPENDENTapache.traffic0BApacheJSONPATH$["Total kBytes"]MULTIPLIER1024apache.status
- UptimeDEPENDENTapache.uptime0sApacheJSONPATH$.ServerUptimeSecondsapache.status
- VersionDEPENDENTapache.version030d0CHARApacheJSONPATH$.ServerVersionapache.status
- Workers idle cleanupDEPENDENTapache.workers.cleanup0ApacheJSONPATH$.Workers.cleanupDISCARD_VALUEapache.status
- Workers closing connectionDEPENDENTapache.workers.closing0ApacheJSONPATH$.Workers.closingDISCARD_VALUEapache.status
- Workers DNS lookupDEPENDENTapache.workers.dnslookup0ApacheJSONPATH$.Workers.dnslookupDISCARD_VALUEapache.status
- Workers finishingDEPENDENTapache.workers.finishing0ApacheJSONPATH$.Workers.finishingDISCARD_VALUEapache.status
- Workers keepalive (read)DEPENDENTapache.workers.keepalive0ApacheJSONPATH$.Workers.keepaliveDISCARD_VALUEapache.status
- Workers loggingDEPENDENTapache.workers.logging0ApacheJSONPATH$.Workers.loggingDISCARD_VALUEapache.status
- Workers reading requestDEPENDENTapache.workers.reading0ApacheJSONPATH$.Workers.readingDISCARD_VALUEapache.status
- Workers sending replyDEPENDENTapache.workers.sending0ApacheJSONPATH$.Workers.sendingDISCARD_VALUEapache.status
- Workers starting upDEPENDENTapache.workers.starting0ApacheJSONPATH$.Workers.startingDISCARD_VALUEapache.status
- Workers waiting for connectionDEPENDENTapache.workers.waiting0ApacheJSONPATH$.Workers.waitingDISCARD_VALUEapache.status