{"id":13587503,"url":"https://github.com/equalitie/mias","last_synced_at":"2026-04-19T02:02:42.048Z","repository":{"id":42014069,"uuid":"439512933","full_name":"equalitie/mias","owner":"equalitie","description":"A simple docker swarm stack for passive \"push-based\" monitoring/metrics","archived":false,"fork":false,"pushed_at":"2022-04-27T18:44:26.000Z","size":29,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-04-14T19:50:44.208Z","etag":null,"topics":["docker","docker-swarm","grafana","monitoring","victoriametrics"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/equalitie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-18T02:48:39.000Z","updated_at":"2022-01-27T14:08:58.000Z","dependencies_parsed_at":"2022-08-12T02:20:53.601Z","dependency_job_id":null,"html_url":"https://github.com/equalitie/mias","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/equalitie/mias","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equalitie%2Fmias","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equalitie%2Fmias/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equalitie%2Fmias/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equalitie%2Fmias/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/equalitie","download_url":"https://codeload.github.com/equalitie/mias/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equalitie%2Fmias/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31991720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-swarm","grafana","monitoring","victoriametrics"],"created_at":"2024-08-01T15:06:14.520Z","updated_at":"2026-04-19T02:02:42.030Z","avatar_url":"https://github.com/equalitie.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# mias\nmonitoring/metrics in a stack\n\n## Prerequisites\n* A pre-existing docker swarm already setup and configured is necessary for orchestration of the stack.\n* A domain or subdomain with the A record pointed to the IP address of the gateway node for automatic issuance of a Let's Encrypt SSL certificate.\n\n## Introduction\n\n`mias` is a simple passive push-based monitoring/metrics bundle in the form of a docker swarm stack. It can be used to collect system resource metrics like bandwidth, cpu use, etc from remote hosts participating in a docker swarm and then push them back to a centralized location. Alerting then can be enabled and configured within the dashboard to act upon those metrics.\n\nNode-exporter and vmagent are deployed to all docker workers as \"agents\" via a global service. Preprovisioned instances of Grafana and victoria-metrics-prod are deployed on the node of your choosing via labels to provide an overview and general dashboard.\n\n## Why \"push\" and not \"pull\"?\nSimply put, a push-based strategy for delivering metrics was a constraint of this project. If you have recently discovered this project and are looking to use a more common pull-based strategy; we suggest searching for an alternative stack rather than trying to adapt this project to fit your needs.\n\n## Service containers\n\nThe mias stack leverages single node, non-replicated, containers of the following services from the latest images below:\n\n* [monitoring_grafana](https://hub.docker.com/r/grafana/grafana-oss/) \"grafana-oss\" courtesy of Grafana\n* [node-exporter](https://hub.docker.com/r/prom/node-exporter) courtesy of Prometheus\n* [vmagent](https://hub.docker.com/r/victoriametrics/vmagent) courtesy of VictoriaMetrics\n* [vmgateway](https://hub.docker.com/r/victoriametrics/victoria-metrics/) \"victoria-metrics-prod\" courtesy of VictoriaMetrics\n* [caddy](https://hub.docker.com/_/caddy) \"Caddy\" courtesy of the Caddy Docker Maintainers\n\n## Exposed ports\nNo additional external ports are opened beyond ports `443` and `80` of the Grafana container hosting the vmgateway service.\n\n# Installation\n\nClone or download this repository.  Review `./docker-compose.yml` and make any changes that may be required for your production environment.\n\n### Label\nSpecify a single docker worker node to act as the centralized location for the Grafana dashboard.\n\n* Obtain the node ID of a worker.  From the manager node of the swarm type:\n```\ndocker node ls\n```\n* Add the `monitoringrole=gateway` label to that node:\n```\ndocker node update --label-add=monitoringrole=gateway \u003cnodeid\u003e\n```\n\n### Secrets\nSet a unique Grafana dashboard password in the following file:\n```\n./secrets/gf_admin_password.txt\n```\n### Deploy\n\nDeploy the stack to all docker worker nodes.  From the manager node type:\n```\nMIAS_DOMAIN=\"your-specified-domain.com\" docker stack deploy -c docker-compose.yml monitoring\n```\n\n## Post installation\nVisit port `https://your-specified-domain.com` use the username `admin` with the previously specified password.\n\n## Tagging images\nYou may desire to tag the images within `docker-compose.yml` instead of relying upon the latest images for a more consistent deployment experience in production.\n\n## Troubleshooting\nTo review logs, from the manager node of the swarm, type:\n```\ndocker service logs monitoring_grafana -f\ndocker service logs monitoring_node-exporter -f\ndocker service logs monitoring_vmagent -f\ndocker service logs monitoring_vmgateway -f\ndocker service logs monitoring_caddy -f\n```\n\n## Credits\nThe included Grafana dashboard was modified from the popular [Node Exporter Server Metrics](https://grafana.com/grafana/dashboards/405/) by Knut Ytterhaug","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequalitie%2Fmias","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fequalitie%2Fmias","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequalitie%2Fmias/lists"}