{"id":19782877,"url":"https://github.com/epfl-si/external-noc","last_synced_at":"2025-04-30T22:31:12.784Z","repository":{"id":40559997,"uuid":"177969762","full_name":"epfl-si/external-noc","owner":"epfl-si","description":"External Network Operations Center for EPFL SI ISAS-FSD","archived":false,"fork":false,"pushed_at":"2025-04-02T22:09:00.000Z","size":699,"stargazers_count":9,"open_issues_count":4,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-02T22:23:12.876Z","etag":null,"topics":["docker-compose","epfl","grafana","grafana-prometheus","noc","prometheus","prometheus-exporter","prometheus-pushgateway"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epfl-si.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-27T10:20:43.000Z","updated_at":"2025-04-02T22:09:04.000Z","dependencies_parsed_at":"2024-02-22T19:29:55.037Z","dependency_job_id":"a11318ce-0b9c-43ae-b5a5-cd9bb76d9c39","html_url":"https://github.com/epfl-si/external-noc","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfl-si%2Fexternal-noc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfl-si%2Fexternal-noc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfl-si%2Fexternal-noc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfl-si%2Fexternal-noc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epfl-si","download_url":"https://codeload.github.com/epfl-si/external-noc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251791556,"owners_count":21644417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-compose","epfl","grafana","grafana-prometheus","noc","prometheus","prometheus-exporter","prometheus-pushgateway"],"created_at":"2024-11-12T06:06:31.571Z","updated_at":"2025-04-30T22:31:12.346Z","avatar_url":"https://github.com/epfl-si.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ISAS-FSD external NOC\n\n# About\n\nThis project aims to set up a Network Operations Center (so called\n[NOC](https://en.wikipedia.org/wiki/Network_operations_center)) providing an\nexternal monitoring for our School. In short, it will set up\n[Prometheus](https://prometheus.io/docs/introduction/overview/), [Prometheus\nPushgateway](https://prometheus.io/docs/practices/pushing/), [Prometheus\nBlackbox exporter](https://github.com/prometheus/blackbox_exporter), [Prometheus\nAlertmanager](https://prometheus.io/docs/alerting/alertmanager/), [Prometheus\nNode Exporter](https://github.com/prometheus/node_exporter) and\n[Grafana](https://prometheus.io/docs/visualization/grafana/) on a server, using\ndocker containers and deployed with [Ansible](https://www.ansible.com). On top\nof that, [Traefik](https://traefik.io/) reverse proxy / load balancer handle the\nHTTP requests.\n\n# Pre-requisites\n\nWe assume that the NOC will be deployed on a Ubuntu server, on which you can\naccess with your SSH key with the root rights.\n\n## Installation\n\nThe installation is self-managed by the `nocsible` script, which will download\nthe [Ansible suitcase](https://github.com/epfl-si/ansible.suitcase/) if needed.\nThis will ensure that every member of the team will be using the same versions\nof the tools such as python, pip module, ansible modules, ruby, etc.\n\n## Keybase\n\nThe secrets in this project are stored on a static yaml file on the team's\nkeybase (`/keybase/team/epfl_idevfsd/idevfsd-NOC/ansible_noc_secrets.yml`). An\nAnsible file lookup will get them, meaning that access to this file is mandatory\nand that it has to be mounted.\n\n# Deployment\n\nIn our case, the deployment in done on a virtual machine hosted on a OpenStack\nsetup by [SWITCHEngines](https://www.switch.ch/engines/). Thus, some of the\nexplanations might be related to that, more particularly the access rules which\ndepends on [OpenStack Neutron Security\nGroups](https://wiki.openstack.org/wiki/Neutron/SecurityGroups).\n\n# Project's bricks\n\nEach bricks of the project is meant to be self-contained. It should be possible\nto deploy each brick individually, using Ansible tags.\n\n# Usage\n\n## Install\n```\n$ git clone git@github.com:epfl-si/external-noc.git\n$ cd external-noc\n$ ./nocsible --check\n```\n\n## Test\n```\n./nocsible\n```\n\n## Prod\n```\n./nocsible --prod\n```\n\n# Links\n* [Prometheus](https://prometheus.io/docs/introduction/overview/)\n  * [Grafana](https://prometheus.io/docs/visualization/grafana/)\n  * [Alertmanager](https://prometheus.io/docs/alerting/alertmanager/)\n  * [Blackbox exporter](https://github.com/prometheus/blackbox_exporter)\n  * [Pushgateway](https://prometheus.io/docs/practices/pushing/)\n  * [node_exporter](https://github.com/prometheus/node_exporter)\n* [Grafana](https://grafana.com/)\n  * [Configuration](http://docs.grafana.org/installation/configuration/)\n  * [Docker](http://docs.grafana.org/installation/docker/)\n  * [Auth GitHub](http://docs.grafana.org/auth/github/)\n  * [Provisionning DataSource](http://docs.grafana.org/administration/provisioning/#example-datasource-config-file)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepfl-si%2Fexternal-noc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepfl-si%2Fexternal-noc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepfl-si%2Fexternal-noc/lists"}