{"id":39496740,"url":"https://github.com/clarin-eric/monitoring","last_synced_at":"2026-01-18T05:43:03.740Z","repository":{"id":30111638,"uuid":"33661462","full_name":"clarin-eric/monitoring","owner":"clarin-eric","description":"Monitoring configuration for networked CLARIN services and applications.","archived":false,"fork":false,"pushed_at":"2026-01-13T13:30:38.000Z","size":1312,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":10,"default_branch":"master","last_synced_at":"2026-01-13T16:28:49.507Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/clarin-eric.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-04-09T09:51:42.000Z","updated_at":"2026-01-13T13:30:43.000Z","dependencies_parsed_at":"2023-10-16T21:06:37.396Z","dependency_job_id":"6e2ccecd-08b0-4ccc-9f1c-b91c5eb8d78a","html_url":"https://github.com/clarin-eric/monitoring","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/clarin-eric/monitoring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarin-eric%2Fmonitoring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarin-eric%2Fmonitoring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarin-eric%2Fmonitoring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarin-eric%2Fmonitoring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clarin-eric","download_url":"https://codeload.github.com/clarin-eric/monitoring/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarin-eric%2Fmonitoring/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28531363,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"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":[],"created_at":"2026-01-18T05:43:03.050Z","updated_at":"2026-01-18T05:43:03.733Z","avatar_url":"https://github.com/clarin-eric.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://app.travis-ci.com/clarin-eric/monitoring.svg?branch=master)](https://app.travis-ci.com/clarin-eric/monitoring)\n\n# Monitoring configuration for networked CLARIN AND DARIAH services and applications.\n\nThe main portal for information about CLARIN monitoring is https://trac.clarin.eu/wiki/SystemAdministration/Monitoring/Icinga.\n\n## Workflow\n\n1. After pushing a new revision to the [Git repository]'s, [Travis CI] attempts to build it, i.e. running the `update_config` script and checks the resulting icinga2 config.\n  * You have to check immediately whether that build succeeds. If your revision results in a failed build, you have fix it straight away.\n  * Files in `conf.d/sites` are host for manual edit only.\n2. Every our a cron job on the Server pulls the latest revision if the Travis build succeeded and runs the `update_script`, which pushed changes if there are any and restarts icinga with the latest config. The cron job is configured to notify the sysadmins on failure.\n\n## Automated config manipulation using Centre Registry information\nThe Python program [`update_config.py`] performs a hourly configuration manipulation, triggered by a cron job on the monitoring host.\n\n1. It pulls this [Git repository]’s `master` branch and the `master` branch from the [`monitoring-users`](https://github.com/clarin-eric/monitoring-users) submodule.\n2. Retrieves data about centre endpoints using the [Centre Registry] API.\n2. Retrieves data about switchboard tool registry using the [Switchboard] API.\n3. It modifies the Icinga configuration in this Git repo, in particular the configuration per centre as stored in `conf.d/hosts/{shorthand}.cfg` files, where `{shorthand}` is the centre’s shorthand in the [Centre Registry], `conf.d/switchboard-tool-registry.conf` for the [Switchboard]. The user information in `conf.d/users/centre-registry.conf`, `conf.d/users/switchboard-tool-registry.conf` and in `conf.d/user-groups.conf`.\n4. It then pushes the changes to the Git repository to the `master` branch and submodule, if there were changes.\n\n## Setup\n1. Setup `icinga2`, requires at the moment MySQL/MariaDB due to icingaweb2 modules. Following instructions from the [docu](https://icinga.com/docs/icinga2/latest/doc/02-installation/).\n2. Clone this repo to `/etc/icinga2`. Several config files are overritten by this. Keep all that are in the gitignore.\n3. Setup (`icingaweb2`)[https://icinga.com/docs/icingaweb2/latest/doc/02-Installation/] with modules:\n   * For authentication setup (Shibboleth)[https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig]\n   * [reporting](https://github.com/Icinga/icingaweb2-module-reporting) including [](https://github.com/Icinga/icingaweb2-module-reporting/pull/64)\n   * [idoreports](https://github.com/Icinga/icingaweb2-module-idoreports)\n   * [map](https://github.com/nbuchwitz/icingaweb2-module-map)\n       * Add `/etc/icingaweb2/modules/map/maps.ini` for the german clarin centres\n          ```\n          [clarin]\n          default_zoom=7\n          default_lat=51.00\n          default_long=11.36\n          hostgroup=(ASV|BAS|BBAW|EKUT|HZSK|IDS|IMS|UdS)\n         ```\n       * Edit `/usr/share/icingaweb2/modules/map/configuration.php` to add navigation for german map.\n   * Create roles, either by using the web interface or by editing `roles.ini`. Create an `Administrator` role for all adminsitrators and a `Clarin` role for everyone else with just view permissions, e.g. `permissions = \"module/idoreports,module/ipl,module/map,module/monitoring,monitoring/command/acknowledge-problem,module/reactbundle,module/reporting,module/translation\"`, current `roles.ini`:\n   ```\n   [Administrators]\n   users = \"ADMIN_USERS_LIST\"\n   permissions = \"*\"\n   groups = \"Administrators\"\n\n   [DARIAH-DE]\n   users = \"DARIAH_USERS_LIST\"\n   permissions = \"module/idoreports,module/ipl,module/map,module/monitoring,monitoring/command/acknowledge-problem,module/reactbundle,module/reporting,module/translation\"\n   groups = \"DARIAH-DE\"\n   monitoring/filter/objects = \"hostgroup_name=DARIAH-DE\"\n\n   [CLARIN]\n   users = \"CLARIN_USERS_LIST\"\n   permissions = \"module/idoreports,module/ipl,module/map,module/monitoring,monitoring/command/acknowledge-problem,monitoring/command/comment/add,monitoring/command/downtime/schedule,module/reactbundle,module/reporting,module/translation\"\n   groups = \"CLARIN\"\n   monitoring/filter/objects = \"hostgroup_name=CLARIN\"\n\n   [Guests]\n   users = \"*\"\n   permissions = \"application/share/navigation,module/reporting,module/map\"\n   ```\n4. Add cronjob to regularly update from centre config.\n```@hourly (cd /etc/icinga2 \u0026\u0026 /usr/bin/python3 /etc/icinga2/update_config.py --travis \u0026\u0026 git pull \u0026\u0026 git submodule update \u0026\u0026 git submodule update \u0026\u0026 /usr/bin/python3 /etc/icinga2/update_config.py --push \u0026\u0026 systemctl reload icinga2 \u0026\u0026 sleep 3 \u0026\u0026 echo \"icinga2 status: $(systemctl is-active icinga2)\") 2\u003e\u00261 | mail -s \"Cronjob update_config.py\" -a \"From: monitoring@clarin.eu\" MAIL1 MAIL2```\n\n\n[Travis CI]: https://travis-ci.com/clarin-eric/monitoring\n[Icinga]: https://monitoring.clarin.eu\n[Centre Registry]: https://centres.clarin.eu\n[Git repository]: https://github.com/clarin-eric/monitoring\n[`update_config.py`]: update_config.py\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclarin-eric%2Fmonitoring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclarin-eric%2Fmonitoring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclarin-eric%2Fmonitoring/lists"}