Skip to main content

Santa Is Watching: ZFS Aware Network Monitor

Project description

"Santa Is Watching" is a network monitoring tool intended for homelab use. It continuously cycles through a set of tests on your computers, disks, and network hardware, based upon configuration files describing your system. Santa runs on a single Linux computer which needs ssh keys to run diagnostic commands on other computers in your system. Simple ping only testing is available for nodes without ssh access. Santa is not a direct replacement for Nagios, but it addresses a similar problem space.

A network discovery tool called MakeList is also provided. It takes a list of start and stop network addresses to scan and tries to determine what tests are appropriate for each node it finds. Any computer which responds to a network ping becomes a candidate for ping testing. If Santa can make an ssh connection to the node, it will:

  • look at temperature and other data reported by lm-sensors
  • look for drives listed in /etc/fstab and check for disk free space
  • look for drives supported by smartctl and report SMART status on them
  • look for zfs pools and check for status and free space
  • look for zfs volumes which seem to be getting frequent snapshots (or are listed in pyznap's config file) and monitor the age of the last snapshot
  • look for failed services reported by systemctl --failed

Santa is written in Python and its configuration files are all editable json. It ships with 20+ built in test types and can load additional user written tests or plugins from user directories. An example plugin is provided to use a Phillips Hue color changing light bulb to provide a GREEN/YELLOW/RED status light.

A web based interface lets the user navigate up and down the hierarchy of node groups, nodes and tests to see various levels of detail. Tests can record numeric data where appropriate. Running averages are displayed and values over time can be graphed or extracted for offline processing.


Santa has been developed and tested on a Linux platform. It has been run on RHEL, Fedora and Debian platforms (including Raspberry Pi 3). It is written in pure Python, but calls out to many Linux/Posix command line utilities. It is plausible that it might someday work on other Posix compliant platforms (Macos or BSD), but that is out of scope for the current effort. Santa will probably never run natively on Windows, and there are not presently any tests designed to exercise Windows nodes beyond a simple ping.

Santa is intended for homelab use on an internal network. It does not yet have any robust authentication system and should not be exposed on the internet.

The code for Santa is pretty much ready for an initial 1.0.0 release, but documentation is still alpha stage. If you are reading this, you are a little bit early to the party, but feel free to look around. Installation instructions are on the wiki if you are interested in a test drive. I think I have a week or two of documentation tasks to complete before I feel comfortable posting to social media in search of beta testers.


Key links:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

santa_iw-0.6.0.tar.gz (137.3 kB view details)

Uploaded Source

Built Distribution

santa_iw-0.6.0-py3-none-any.whl (112.5 kB view details)

Uploaded Python 3

File details

Details for the file santa_iw-0.6.0.tar.gz.

File metadata

  • Download URL: santa_iw-0.6.0.tar.gz
  • Upload date:
  • Size: 137.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.9.18 Linux/5.14.0-427.13.1.el9_4.x86_64

File hashes

Hashes for santa_iw-0.6.0.tar.gz
Algorithm Hash digest
SHA256 8503c69a0158d55203ae6ede854d9e5b77f3f2e6b728056280a7a228782de51f
MD5 ca48ec47386d07c7beb0bf4a85a0349c
BLAKE2b-256 96a040f09d5942a7fd0ea47bdfb50ca140fab91355d53b004d54409e3e5e60c0

See more details on using hashes here.

File details

Details for the file santa_iw-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: santa_iw-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 112.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.9.18 Linux/5.14.0-427.13.1.el9_4.x86_64

File hashes

Hashes for santa_iw-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f1f577a33cb971525ade009e29e79aa1c229e2554e221e00997aff25ddb80b0
MD5 55eb95479739671ee5a2553575f1b94d
BLAKE2b-256 719a4bda1cdea4afdbfaa9c023cb1c8d17bb51420daa40bab062e0195446524b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page