Docker Nagios in Alpine Linux with basic plugins, available for x86, x64 , ARM v6, ARM v7 and ARM64.
100K+
Docker image for Nagios, the Industry Standard in IT Infrastructure Monitoring. Nagios Core is running on Alpine Linux, using Apache HTTP as a web server and sSMTP as mail agent for email notifications.
The image is inspired by JasonRivers/Docker-Nagios image (Kudos to Jason!) but follows a different approach targetted to lightweight size and basic features.
x86, amd64, arm/v6, arm/v7, arm64Dockerfile links4.5.12, 4.5, latest (4.5.12/Dockerfile)For more information about the image versions you may refer to the CHANGELOG
Since build-23 (CHANGELOG), the Nagios Docker image is available in Dockerhub and Github Container Registry (GHCR). You can pull it using one of the following ways:
docker pull manios/nagios:latestdocker pull ghcr.io/manios/nagios:latestRun with the example configuration with the following:
docker run --name nagios -p 0.0.0.0:8080:80 manios/nagios:latest
alternatively you can use external Nagios configuration & log data with the following:
docker run --name nagios \
-v /path-to-nagios/etc/:/opt/nagios/etc/ \
-v /path-to-nagios/var:/opt/nagios/var/ \
-v /path-to-nagios/ssmtp.conf:/etc/ssmtp/ssmtp.conf \
-v /path-to-custom-plugins:/opt/Custom-Nagios-Plugins \
-p 0.0.0.0:8080:80 \
manios/nagios:latest
Notes:
/etc/ssmtp/ssmtp.conf or in the repository in overlay/etc/ssmtp/ssmtp.conf.For best results your Nagios container should have access to both IPv4 & IPv6 networks.
The default credentials for the web interface is nagiosadmin / nagios. However you can define your own credentials by overriding NAGIOSADMIN_USER and NAGIOSADMIN_PASS when you run the container. For example:
docker run --name nagios \
-e NAGIOSADMIN_USER="godmode" \
-e NAGIOSADMIN_PASS="super-Duper-Secret!" \
-p 0.0.0.0:8080:80 \
manios/nagios:latest
By default the Alpine container and Nagios both use UTC. In order to change the timezone we can pass the tz timezone database name as an environmental variable in docker run such as:
docker run -e "TZ=Europe/Athens" manios/nagios:latest
This will configure and use globally "Europe/Athens" in both container and Nagios process.
Since tag build-31 the docker image is able to run custom init scripts at the first time the container runs. This is useful if you want to install extra software and plugins, customise the container or execute any initialisation script of your choice.
This feature has the following characteristics in detail:
/container-entrypoint-init-scripts container directory.${NAGIOS_HOME}/container_first_run. This file acts as a flag which verifies that the init scripts will be executed only on the first run.0001-install-mongodb.sh0002-install-jq.sh0003-configure-custom-plugins.shYou can also use a volume mount for your init scripts which can survive container deletions:
docker run -d --name nagios \
-p 8080:80 \
-v "$(pwd)/customscripts:/container-entrypoint-init-scripts" \
manios/nagios:latest
For a detailed example you can have a look here: https://github.com/manios/docker-nagios/issues/96.
This Docker image is designed with optimising resources usage in mind and is build for multiple hardware architectures. The following matrix can be used to determine if your hardware architecture is represented in a docker image tag:
| Hardware | Image OS/Arch |
|---|---|
| PC (32bit) | linux/i386 |
| PC (64bit) | linux/amd64 |
| Raspberry Pi 1 | linux/arm/v6 |
| Raspberry Pi 2 | linux/arm/v7 |
| Raspberry Pi 3 | linux/arm/v7 or linux/arm64 |
| Raspberry Pi 4 | linux/arm/v7 or linux/arm64 |
| Apple Silicon M1 | linux/arm64 |
To check if your Nagios configuration is OK, you can run the following while your container is running. We assume that you use /opt/nagios/etc/nagios.cfg as your main configuration file.
docker exec -it mynagioscontainer bin/nagios -v etc/nagios.cfg
This image comes with the official Nagios Plugins preinstalled in order to remain lightweight in size. If you want to use custom plugins, you can install them in the /opt/Custom-Nagios-Plugins by using init scripts.
In docker tag build-5, build-6, build-7 we have used Alpine 3.14 as our base image. This comes with security updates which may cause trouble as described in Release Notes forAlpine 3.14.0 > faccessat2.
In order to resolve this issue you should use docker tag build-8 or you can follow the workarounds provided here: #32 (comment).
As already mentioned in #17, sometimes, because docker manifest related features are still experimental (after 2+ years of their introduction) it has happened when we tested in Raspberry Pi 1 (arm-v6) and Raspberry Pi 3 (arm-v7) that it does not download the arm image but the amd64.
Thus you can define explicitly which architecture to pull:
docker pull --platform=linux/arm/v6 manios/nagios
# or
docker pull --platform=linux/arm/v7 manios/nagios
and it works. Be advised that the --platform switch requires that you enable the Docker Experimental Features.
Content type
Image
Digest
sha256:efe4c964e…
Size
86.5 MB
Last updated
about 1 month ago
docker pull manios/nagios