documentation/infra/infos.libre-service.eu.md

157 lines
4.3 KiB
Markdown

# Service infos.libre-service.eu
StatoolInfos est un outil et un protocole pour partager des informations sur une fédération de services.
# Déploiement
## Configuration d'Apache
Création d'un fichier générique `cat /etc/apache2/statoolinfos.conf` qui sera includé plus tard :
```
Alias "/.well-known/statoolinfos/" "/srv/statoolinfos/well-known/statoolinfos/"
<Directory "/srv/statoolinfos/well-known/statoolinfos/">
Options +Indexes
Require all granted
</Directory>
```
## Configuration de Nginx
Création d'un fichier générique `cat /etc/nginx/statoolinfos.conf` qui sera includé plus tard :
```
location /.well-known/statoolinfos/
{
charset utf-8;
types
{
text/plain properties;
}
alias /srv/statoolinfos/well-known/statoolinfos/;
autoindex on;
}
```
## Espace de travail
Dossiers de travail :
```
mkdir -p /srv/statoolinfos/{conf,inputs,well-known}
```
# Ajout d'un nouveau service
Tout se passe sur la vm du service, sauf la dernière étape.
## Configuration d'Apache
Création d'un fichier générique `cat /etc/apache2/statoolinfos.conf` qui sera includé plus tard :
```
Alias "/.well-known/statoolinfos/" "/srv/statoolinfos/well-known/statoolinfos/"
<Directory "/srv/statoolinfos/well-known/statoolinfos/">
Options +Indexes
Require all granted
</Directory>
```
## Configuration de Nginx
Création d'un fichier générique `cat /etc/nginx/statoolinfos.conf` qui sera includé plus tard :
```
location /.well-known/statoolinfos/
{
charset utf-8;
types
{
text/plain properties;
}
alias /srv/statoolinfos/well-known/statoolinfos/;
autoindex on;
}
```
## Espace de travail
Dossiers de travail :
```
mkdir -p /srv/statoolinfos/{conf,well-known}
mkdir -p /srv/statoolinfos/well-known/statoolinfos/
```
## Déclaration du service
Configurer l'accès well-known en ajoutant à la fin de la configuration Apache du site :
```
# StatoolInfos
Include statoolinfos.conf
</VirtualHost>
```
Ou au début du fichier de la configuration Nginx du site :
```
# StatoolInfos.
include /etc/nginx/statoolinfos.conf;
```
Créer le fichier properties de type service à `/srv/statoolinfos/well-known/statoolinfos/foo.libre-service.eu.properties`. Une documentation des propriétés est disponible là : https://framagit.org/chatons/chatonsinfos/-/blob/master/MODELES/service.properties
Vérifier les permissions de lecture :
```
chmod go+r /srv/statoolinfos/well-known/statoolinfos/*
```
## Renseigner le fichier properties d'organisation
Sur la vm principale de StatoolInfos, éditer `/srv/statoolinfos/well-known/statoolinfos/services.properties` et ajouter une ligne `subs` :
```
subs.foo=https://foo.libre-service.eu/.well-known/statoolinfos/foo.libre-service.eu.properties
```
# Génération de métrics
## Configuration de Java
Java :
```
apt-get install openjdk-11-jre-headless
```
## Déploiement de statoolinfos
Récupérer la dernière version de StatoolInfos sur https://forge.devinsy.fr/devinsy/statoolinfos/releases. Puis placer dans `/srv/statoolinfos/bin/` les fichiers `statoolinfos.jar` et `statoolinfos.sh`. Faire un lien :
```
cd /srv/statoolinfos/bin/
ln -s statoolinfos.sh statoolinfos
```
## Configuration
Créer un fichier de configuration dans `/srv/statoolinfos/conf/foo.libre-service.eu.conf` :
```
conf.class=service
conf.protocol=StatoolInfos-0.5
conf.probe.types=HttpAccessLog, HttpErrorLog
conf.probe.httpaccesslog.file=/var/log/nginx/foo.libre-service.eu-access.log*
conf.probe.httperrorlog.file=/var/log/nginx/foo.libre-service.eu-error.log*
conf.probe.target=/srv/statoolinfos/well-known/statoolinfos/foo.libre-service.eu-metrics.properties
```
Vérifier les permissions de lecture :
```
chmod go+r /srv/statoolinfos/well-known/statoolinfos/*
```
## Génération
Faire une première génération de métrics :
```
/srv/statoolinfos/bin/statoolinfos probe -full /srv/statoolinfos/conf/
```
Vérifier les permissions de lecture :
```
chmod go+r /srv/statoolinfos/well-known/statoolinfos/*
```
Créer un cron `/etc/cron.d/staoolinfos` :
```
2 * * * * root /srv/statoolinfos/bin/statoolinfos probe -previousday /srv/statoolinfos/conf/ >> /srv/statoolinfos/statoolinfos-cron.log
```
Faire un lien :
```
cd /srv/statoolinfos
ln -s /etc/cron.d/statoolinfos cron
```