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 (up to 7.4; it runs 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


  • 2020-05-18: v2.04.01
    • FIX: if debug is enabled then suppress it on data output (API) Thanks to Kai
    • UPDATE: datatables to 1.10.20
    • UPDATE: font-awesome to 5.13.0
    • UPDATE: jQuery 3.5.1

  • 2020-01-02: v2.04.00
    • ADDED: new CLI tool to configure program and setup groups and servers for automated installations and scripts
      see docs for CLI
    • ADDED: cli class
    • UPDATE: php docs in class configserver
    • UPDATE: confighandler class
    • UPDATE: bookmarklet button on the help page
    • UPDATE: Chart.js to 2.9.3

  • 2019-12-09: v2.03.05
    • FIX: missing old fontwaesome 4 icon references
    • FIX: scroll-links in navigation
    • ADDED: update page shows count of unneeded vendor libs

  • 2019-12-06: v2.03.04
    • MERGE/ FIX inc_functions.php - thanks to LeoShivas
    • UPDATE adminLte/2.4.18, jquery/3.4.1, font-awesome/5.11.2 (v4 --> v5)
    • UPDATE cdnorlocal

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-2020 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