https://github.com/clarin-eric/monitoring

Monitoring configuration for networked CLARIN services and applications.

https://github.com/clarin-eric/monitoring

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
Last synced: 10 months ago · JSON representation

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
Created about 11 years ago · Last pushed 11 months ago
Metadata Files
Readme

README.md

Build Status

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

  1. 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.
    • 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/sites are host for manual edit only.
  2. 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.

  1. It pulls this Git repository’s master branch and the master branch from the monitoring-users submodule.
  2. Retrieves data about centre endpoints using the Centre Registry API.
  3. Retrieves data about switchboard tool registry using the [Switchboard] API.
  4. 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.
  5. It then pushes the changes to the Git repository to the master branch and submodule, if there were changes.

Setup

  1. Setup icinga2, requires at the moment MySQL/MariaDB due to icingaweb2 modules. Following instructions from the docu.
  2. Clone this repo to /etc/icinga2. Several config files are overritten by this. Keep all that are in the gitignore.
  3. 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.ini for 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.php to add navigation for german map.
    • 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: ``` [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

CLARIN central source code hub

GitHub Events

Total
  • Push event: 61
Last Year
  • Push event: 61

Dependencies

requirements.txt pypi
  • GitPython *
  • lxml *
  • requests *
Dockerfile docker
  • ubuntu 20.04 build