This script sets up a web page for your server, listing the following information:
- basic system information
- contents of /root/Changelog
- graphs for collectd
- open TCP and UDP ports
- SSH host key fingerprints
- disk usage treemaps (if configured)
This information is refreshed automatically from a couple of cron scripts (daily and hourly). It's disabled by the default in /etc/pov/server-page.conf.
This package also ships a number of helper scripts you can use from the command line, if you prefer that to browsing web pages:
- machine-summary: prints a short description of this machine (as ReStructuredText)
- disk-inventory: prints an overview of your disks and partitions
- du-diff: compares two disk usage snapshots (as produced by du)
- Ubuntu
- Apache + mod_wsgi
- Perl
- Python
- collectd
- an Apache password file
And if you want this publically accessible (as opposed to localhost-only):
- an SSL certificate (you can get one from letsencrypt.org)
add-apt-repository ppa:pov apt-get update apt-get install pov-update-server-page vim /etc/pov/server-page.conf at the very least uncomment 'enable = 1' you'll also need to make sure some SSL certificate is available OR set 'loopback_only = 1' I also recommend 'disk_usage = all' chmod +x /root # make /root/Changelog readable by www-data pov-update-server-page -v # this prints what it does and then tells you what you should do, # which is basically a2enmod rewrite ssl wsgi cgid headers a2ensite $(hostname -f).conf htpasswd -c ... service apache2 reload
Pokes around in /proc and /sys and emits a bit of ReStructuredText to summarize this machine:
$ machine-summary platonas ======== :CPU: 4 × Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz :RAM: 8 GiB :Disks: sda - 160.0 GB (model INTEL SSDSA2M160) :Network: eth0 - MAC: xx:xx:xx:xx:xx:xx, wlan0 - MAC: xx:xx:xx:xx:xx:xx :IP: 192.168.99.196/24 :OS: Ubuntu 14.10 (x86_64)
Pokes around in /proc and /sys and emits a summary of the storage situation on this machine:
$ disk-inventory sda: ST1000NM0011 (1.0 TB) sda1: 2.0 GB swap sda2: 1.0 GB md0 ext3 / 271.0 MB free sda5: 15.0 GB md1 ext4 /var 977.8 MB free sda6: 5.0 GB md2 ext4 /usr 706.8 MB free sda7: 230.0 GB md3 ext4 /home 41.0 GB free sda8: 247.1 GB md4 ext4 /stuff 21.5 GB free sda9: 500.1 GB LVM: fridge dm-0 dm-1 dm-2 sdb: ST3500320AS (500.1 GB) sdb1: 2.0 GB swap sdb2: 1.0 GB md0 ext3 / 271.0 MB free sdb5: 15.0 GB md1 ext4 /var 977.8 MB free sdb6: 5.0 GB md2 ext4 /usr 706.8 MB free sdb7: 230.0 GB md3 ext4 /home 41.0 GB free sdb8: 247.1 GB md4 ext4 /stuff 21.5 GB free fridge: LVM (500.1 GB) tmp: 21.5 GB ext4 /tmp 19.8 GB free jenkins: 21.5 GB ext4 /var/lib/jenkins 10.9 GB free buildbot: 42.9 GB ext4 /var/lib/buildbot 13.7 GB free free: 414.2 GB
Supports RAID (md-raid) and LVM. May need root access to provide full information.
Compares two disk usage snapshots produced by du. Can transparently read gzipped files. Sorts the output by difference. Example:
$ du /var | gzip > du-$(date +%Y-%m-%d).gz # wait a day or a week $ du /var | gzip > du-$(date +%Y-%m-%d).gz $ du-diff du-2013-08-21.gz du-2013-08-22.gz -396536 /var/lib/hudson.obsolete/cache -396536 /var/lib/hudson.obsolete -395704 /var/lib -345128 /var -290680 /var/lib/hudson.obsolete/cache/buildout-eggs ... -8 /var/lib/hudson.obsolete/cache/buildout-eggs/PasteScript-1.7.3-py2.5.egg/EGG-INFO/scripts +4 /var/lib/nagios3/spool/checkresults +4 /var/lib/nagios3/spool ... +740 /var/lib/svn +1688 /var/mail +4224 /var/log/ConsoleKit +4876 /var/log/apache2 +19840 /var/log +28832 /var/www