Axels Pimped Apache Status

Pimped Apache Server Status

Nominee
Innovation award
phpclasses.org Innovation award
#7 July 2015
phpclasses.org




Description

The default apache status shows you information about current Apache activity. But these server-status pages are difficult to read.

The Pimped Apache status makes the Apache server status readable, sortable and searchable.
The webbased tool offers a multilanguage, skinable interface with a built-in updater.
In several views you see most requested pages, vhosts, used methods, IPs that make the most requests and more. All views are sortable tables you can filter by a keyword and are available as API Request too to get its data as CSV, XML or JSON.

With parsing the server status you see open or long running requests. This tool is a live or realtime view - not a log analyzer.

It runs on PHP 7 + 8 up to PHP 8.3 (it could on PHP 5.x, but I don't support PHP5 installations).

GNU GPL v 3.0

The project is hosted on Github: pimped-apache-status

Download



If you like that tool, you can support me and


... or donate on Paypal

Last Updates


  • 2023-12-10: v2.04.12
    • INFO: this version is compatible to PHP 8.3
    • FIX: division by zero after first run when adding localhost without mod_status (issue #38)

  • 2023-05-20: v2.04.11
    • INFO: this version is compatible to PHP 8.2
    • FIX: counters for waiting/ buzy/ free slots
    • UPDATE: cdnorlocal class (because of change of the response in the api of cdnjs)
    • UPDATE: ahlogger class
    • UPDATE: remove a few php warnings
    • UPDATE: more output without ExtendedStatus=On
    • UPDATE: fix php docs to remove warnings of the linter
    • UPDATE: jquery 3.6.0 --> 3.6.4
    • UPDATE: font-awesome 5.15.4 --> 6.4.0

  • 2022-05-03: v2.04.10
    • FIX: show right message if a non server-status page was added
    • UPDATE: Chart.js to 3.7.1

  • 2021-11-03: v2.04.09
    • FIX: sSelfurl on installation in webroot (issue #24)
    • UPDATE: chartJs to v3.6.0

  • 2021-09-08: v2.04.08
    • FIX: upgrade script for config of v1 to v2 (issue #31)
    • UPDATE: font-awesome to 5.15.4

Features


  • Show all or only active requests from server status page
  • Top lists for most often processed requests, requested vhosts, methods, requesting ip addresses, slowest requests
  • History data (saved in localstorage of your browser) help to estimate is it normal traffic or not
  • All tables can be sorted and filtered
  • Export any table (or automate it by API request) to CSV, JSON, XML
  • Handles single servers and multiple servers as well (i.e. for loadbalanced website or project based view)
  • Table view can be customized: make unneeded colums invisible;
  • Web based interface in English and German
  • Supports color schemes (using themes from AdminLTE)
  • Integrated updater in the webinterface
  • CLI for automated configuration setup with Ansible, Puppet & Co.
  • Bookmarklet to beautify any server status page

Requirements


  • On the system you want to install the pimped Apache status:
    • any webserver with PHP 7 - up to 7.3 (it should run on PHP 5.3, but I don't support PHP5 installations)
    • php-curl
    • php-xml (optional; for xml exports)
    • (btw: no database is needed)
  • On all webservers you want to monitor:
    • Apache 2.x
    • installed module mod_status and ExtendedStatus On
    • permission for the monitoring server to request the the alias /server-status

How does it work?

In the configuration you setup a list of apache servers. It can be single servers or a group of servers in a loadbalanced environment.

The script requests all server-status pages of these servers simultanously and parses the boring html output to an array.

As result you get different views of this array, like all current requests, most requested urls or vhosts. You get several tables which can be sorted (even multisorted) and filtered.

You easily can find long running requests or often requested pages.
You have a merged real time view about what all your webservers do.

process

  1. You start a request to see any summary.
  2. The Pimped Apache status initiates a request for /server-status on all servers (it depends on your configuration and selection)
  3. ... and waits for the response of all servers
  4. ... to merge and filter the results
  5. ... and send it back to you in the wanted format


Screenshots


Tiles on top show a few relevant counters. On mouseover you get a popup showing a graph with the last values in the past.

history popup

Active Requests in a table view. Each request is colored by type or method. You can order the table by any column and multisort by holding SHIFT key.
With a search field you can filter the current view.

active requests

Most often processed Requests: does somebody attacks me with a long running request?

most often processed requests








Copyright © 2011-2024 Axel Hahn
project page: GitHub (en)
Axels Webseite (de)

Wanna make me happy??
Send a tip on Tipeee

or use Paypal:
results will be here