https://github.com/clarin-eric/monitoring
Monitoring configuration for networked CLARIN services and applications.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.4%) to scientific vocabulary
Repository
Monitoring configuration for networked CLARIN services and applications.
Basic Info
- Host: GitHub
- Owner: clarin-eric
- Language: Python
- Default Branch: master
- Size: 1.36 MB
Statistics
- Stars: 2
- Watchers: 11
- Forks: 1
- Open Issues: 2
- Releases: 0
Metadata Files
README.md
Monitoring configuration for networked CLARIN AND DARIAH services and applications.
The main portal for information about CLARIN monitoring is https://trac.clarin.eu/wiki/SystemAdministration/Monitoring/Icinga.
Workflow
- After pushing a new revision to the Git repository's, Travis CI attempts to build it, i.e. running the
update_configscript and checks the resulting icinga2 config.- You have to check immediately whether that build succeeds. If your revision results in a failed build, you have fix it straight away.
- Files in
conf.d/sitesare host for manual edit only.
- 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.
Automated config manipulation using Centre Registry information
The Python program update_config.py performs a hourly configuration manipulation, triggered by a cron job on the monitoring host.
- It pulls this Git repository’s
masterbranch and themasterbranch from themonitoring-userssubmodule. - Retrieves data about centre endpoints using the Centre Registry API.
- Retrieves data about switchboard tool registry using the [Switchboard] API.
- It modifies the Icinga configuration in this Git repo, in particular the configuration per centre as stored in
conf.d/hosts/{shorthand}.cfgfiles, where{shorthand}is the centre’s shorthand in the Centre Registry,conf.d/switchboard-tool-registry.conffor the [Switchboard]. The user information inconf.d/users/centre-registry.conf,conf.d/users/switchboard-tool-registry.confand inconf.d/user-groups.conf. - It then pushes the changes to the Git repository to the
masterbranch and submodule, if there were changes.
Setup
- Setup
icinga2, requires at the moment MySQL/MariaDB due to icingaweb2 modules. Following instructions from the docu. - Clone this repo to
/etc/icinga2. Several config files are overritten by this. Keep all that are in the gitignore. - Setup (
icingaweb2)[https://icinga.com/docs/icingaweb2/latest/doc/02-Installation/] with modules:- For authentication setup (Shibboleth)[https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig]
- reporting including
- idoreports
- map
- Add
/etc/icingaweb2/modules/map/maps.inifor the german clarin centres[clarin] default_zoom=7 default_lat=51.00 default_long=11.36 hostgroup=(ASV|BAS|BBAW|EKUT|HZSK|IDS|IMS|UdS) - Edit
/usr/share/icingaweb2/modules/map/configuration.phpto add navigation for german map.
- Add
- Create roles, either by using the web interface or by editing
roles.ini. Create anAdministratorrole for all adminsitrators and aClarinrole 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", currentroles.ini: ``` [Administrators] users = "ADMINUSERSLIST" permissions = "*" groups = "Administrators"
[DARIAH-DE] users = "DARIAHUSERSLIST" permissions = "module/idoreports,module/ipl,module/map,module/monitoring,monitoring/command/acknowledge-problem,module/reactbundle,module/reporting,module/translation" groups = "DARIAH-DE" monitoring/filter/objects = "hostgroup_name=DARIAH-DE"
[CLARIN] users = "CLARINUSERSLIST" 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" groups = "CLARIN" monitoring/filter/objects = "hostgroup_name=CLARIN"
[Guests]
users = "*"
permissions = "application/share/navigation,module/reporting,module/map"
4. Add cronjob to regularly update from centre config.
@hourly (cd /etc/icinga2 && /usr/bin/python3 /etc/icinga2/updateconfig.py --travis && git pull && git submodule update && git submodule update && /usr/bin/python3 /etc/icinga2/updateconfig.py --push && systemctl reload icinga2 && sleep 3 && echo "icinga2 status: $(systemctl is-active icinga2)") 2>&1 | mail -s "Cronjob update_config.py" -a "From: monitoring@clarin.eu" MAIL1 MAIL2```
Owner
- Name: CLARIN ERIC
- Login: clarin-eric
- Kind: organization
- Email: trac@clarin.eu
- Location: Utrecht, The Netherlands
- Website: https://www.clarin.eu/content/development-information
- Repositories: 132
- Profile: https://github.com/clarin-eric
CLARIN central source code hub
GitHub Events
Total
- Push event: 61
Last Year
- Push event: 61
Dependencies
- GitPython *
- lxml *
- requests *
- ubuntu 20.04 build