Deploy Nightingale Monitoring Platform with Docker and Grafana – A Complete Guide
This tutorial walks through installing the open‑source Nightingale monitoring system using Docker, configuring its components, adding node agents, integrating with Grafana, and setting up alerting, providing all commands, configuration files, and screenshots needed for a production‑ready deployment.
Overview
Nightingale is an open‑source, distributed, high‑availability monitoring platform originally released by Didi. It can monitor traditional physical/virtual machines as well as Kubernetes containers and provides CMDB, automation, and alerting capabilities.
Official Repository
https://github.com/didi/nightingaleSystem Architecture
User Resource Center (RDB)
Asset Management System (AMS)
Job Execution Center (JOB)
Monitoring & Alerting System (MON)
Deployment Steps
1. Clone the source code
git clone https://github.com/didi/nightingale.git2. Install Docker‑Compose (v1.25.0‑rc4)
curl -L https://github.com/docker/compose/releases/download/1.25.0-rc4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose3. Start the Nightingale containers
Navigate to the dockerfiles directory of the cloned repository and launch the stack.
cd /path/to/nightingale/dockerfiles
docker-compose up -dFour containers ( control, n9e-agent, n9e-ams, n9e-mon) should appear in docker ps. Ensure that required ports (e.g., 8080, 9000) are free.
4. Deploy a node agent
Download the pre‑built agent package and extract it.
wget http://116.85.64.82/n9e.tar.gz
tar -xf n9e.tar.gzCopy the configuration files address.yml, agent.yml, and identity.yml to the target host (e.g., /home/n9e/) and replace the placeholder IP with the master node’s address.
sed -i 's/192\.168\.106\.132/MASTER_IP/g' /home/n9e/address.yml5. Register the agent as a systemd service
cat > /usr/lib/systemd/system/agent.service <<'EOF'
[Unit]
Description=n9e agent
After=network-online.target
Wants=network-online.target
[Service]
User=root
Group=root
Type=simple
Environment="GIN_MODE=release"
ExecStart=/home/n9e/n9e-agent
WorkingDirectory=/home/n9e
Restart=always
RestartSec=1
StartLimitInterval=0
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable agent
systemctl start agent
systemctl status agent6. Access the Nightingale web UI
Open http://MASTER_IP:8080 and log in with the default credentials root / root.2020. The master node information is displayed.
7. Register the node in Nightingale
Use “Free Resources → Mount Resources” to attach the newly added node to a project, then verify its presence in the organization tree.
8. Job Execution Center
Create tasks in the Job Execution Center and dispatch them to the registered nodes for batch execution.
9. User Center
Bulk‑add servers for easier management.
10. Monitoring Dashboard
The built‑in dashboard provides real‑time CPU, memory, disk, and network metrics for each host.
11. Alerting
Configure alert policies; Nightingale supports email, DingTalk, and WeChat Work notifications.
12. Grafana integration
Install Grafana and the Nightingale datasource plugin.
wget https://dl.grafana.com/oss/release/grafana-7.3.2-1.x86_64.rpm
sudo rpm -i --nodeps grafana-7.3.2-1.x86_64.rpm
systemctl start grafana-server
systemctl enable grafana-server grafana-cli --pluginUrl https://github.com/n9e/grafana-n9e-datasource/archive/v1.5.3.zip plugins install grafana-n9e-datasource
systemctl restart grafana-serverAccess Grafana at http://MASTER_IP:3000 (default admin / admin), add a Nightingale data source, and create dashboards to visualize the collected metrics.
Result
Following these steps yields a fully functional, high‑availability monitoring platform: Nightingale handles data collection, storage, and alerting, while Grafana provides rich visualizations.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Liangxu Linux
Liangxu, a self‑taught IT professional now working as a Linux development engineer at a Fortune 500 multinational, shares extensive Linux knowledge—fundamentals, applications, tools, plus Git, databases, Raspberry Pi, etc. (Reply “Linux” to receive essential resources.)
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
