This guide uses Docker Compose to run Nagios Core monitoring.
Note: There is no official Nagios Core Docker image on Docker Hub. This guide uses the well-maintained community image jasonrivers/nagios.
For Docker installation, see Docker.
mkdir -p /opt/nagios/{config,data,var,plugins}
cd /opt/nagios
Create docker-compose.yml:
services:
nagios:
image: jasonrivers/nagios:latest
container_name: nagios
hostname: nagios
ports:
- "80:80"
volumes:
- ./config:/opt/nagios-etc:rw
- ./data:/opt/nagios-var:rw
- ./var:/var/nagios:rw
- ./plugins:/opt/Custom-Nagios-Plugins:rw
environment:
- NAGIOSADMIN_USER=nagiosadmin
- NAGIOSADMIN_PASS=admin123
- NAGIOS_TIMEZONE=UTC
restart: unless-stopped
Image Versions:
latest - Nagios Core 4.5.2 (most recent)4.5.2 - Specific version pin4.5 - Minor version pindocker compose up -d
Note: Initial startup may take 2-3 minutes.
Check container status:
docker compose ps
View logs:
docker compose logs -f nagios
Access web UI at http://SERVER_IP with:
nagiosadminadmin123 (change immediately!)docker compose exec nagios nagios -v /opt/nagios-etc/nagios.cfg
docker compose restart nagios
docker compose down
docker compose pull
docker compose up -d
# Place plugins in ./plugins directory
chmod +x ./plugins/my_check.sh
NAGIOSADMIN_PASS immediately./config and ./data directoriesOn monitored hosts (Debian/Ubuntu):
apt-get install nagios-nrpe-server nagios-plugins
Configure /etc/nagios/nrpe.cfg:
allowed_hosts=your-nagios-server-ip
Edit config/nagios.cfg to add hosts and services, or use the web interface.
Example host configuration in config/objects/:
define host {
use linux-server
host_name web-server
alias Web Server
address 192.168.1.100
}
define service {
use generic-service
host_name web-server
service_description HTTP
check_command check_http
}
Deploying Nagios in containers for production? Our consulting covers:
Get expert help: office@linux-server-admin.com | Contact Page