A powerful, Dockerized monitoring stack featuring Prometheus, Node Exporter, and Grafana. This project simplifies deployment and provides beautiful visualizationsfor system metrics.
- Prometheus: Efficiently collects and stores system metrics.
- Node Exporter: Exposes detailed hardware and OS metrics from your host.
- Grafana: Creates stunning, customizable dashboards for data visualization.
- Persistent Storage: Safely stores Prometheus and Grafana data.
- Docker Compose: Enables quick setup with a single command.
Ensure the following are installed on your system:
- Docker (latest version recommended)
- Docker Compose (version 3.8 or higher)
Follow these steps to deploy the monitoring stack:
git clone https://github.com/amintoorchi/Dockerized-Grafana-NodeExporter-Prometheus.git
cd Dockerized-Grafana-NodeExporter-PrometheusStart the containers in detached mode:
docker compose up -d
sudo chown -R 65534:65534 ./prom_data
sudo chmod -R 775 ./prom_data- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000
Default credentials:admin/admin(update password after first login)
- Docker Compose: The
docker-compose.ymlis pre-configured. Customize ports or volumes as needed. - Grafana Dashboards: Import pre-existing dashboards or create custom ones after logging in.
- Storage:
- Prometheus data is stored in
./prom_data/. - Grafana configurations are saved in
./grafana-storage/. - Both directories are auto-created on first run and listed in
.gitignore.
- Prometheus data is stored in
Note: Add
./prom_dataand./grafana-storageto.gitignoreto prevent uploading sensitive data to GitHub.
- Host Network Mode: Used by Node Exporter and Prometheus for direct access to host metrics.
- Portability: Switch to a
bridgenetwork indocker-compose.ymlfor cross-system compatibility.
Resolve issues with these steps:
- View Logs: Check container logs for errors:
docker compose logs - Port Conflicts: Ensure ports
9090(Prometheus) and3000(Grafana) are available. - Storage Permissions: Verify that
./prom_dataand./grafana-storagehave proper permissions.
If you need a pre-built Grafana dashboard, you can use this beautiful and fully featured Node Exporter Full dashboard:
We welcome contributions to improve this project! To get started:
- Fork the repository.
- Create a feature or bug-fix branch:
git checkout -b feature/your-feature-name- Commit your changes and push to your fork.
- Submit a pull request with a detailed description of your updates.
This project is licensed under the MIT License. See the LICENSE file for more details.
- Built with ❤️ by Amin Toorchi
- Gratitude to the open-source community for their incredible tools and resources.