Statistiques/HOW-Yunohost.md

131 lines
6.5 KiB
Markdown
Raw Normal View History

2023-02-08 01:15:50 +01:00
# Installation sur Yunohost
Cela consiste simplement à exposer sur le web 3 types de fichiers properties (contenant une liste de clés/valeurs) :
1 fichier properties pour décrire le chaton (modèle);
1 fichier properties par service (modèles);
1 fichier properties de metrics par service (modèle).
Les deux premiers fichiers sont à faire à la main. Le troisième peut être généré par export ou par une moulinette danalyse fournie et quil faut faire tourner 1 ou 2 fois par jour.
## Dossier accessible pour les metrics
Il faut un dossier ou les fichiers soient accessibles, comme Yunohost a des configuration `.well_know` pour tous ces noms de domaines dans `/var/www/.well_know` avec un dossier `autoconfig`, un dossier `/var/www/.well_know/www.linux07.fr/chatonsinfos/` a été créé.
Puis on a ajouté un fichier de configuration `/etc/nginx/conf.d/www.linux07.d/chatonsinfos.conf` avec ces paramètres
```
location ^~ '/.well-known/chatonsinfos/' {
alias /var/www/.well-known/www.linux07.fr/chatonsinfos/;
}
```
Le nom de domaine `www.linux07.fr` est une une redirection vers `linux07.fr`, il est redirigé par l'application Redirect et sa configuration nginx est donnée par le fichier `/etc/nginx/conf.d/www.linux07.d/rediredt.conf`
```
location / {
return 302 https://linux07.fr$request_uri;
}
```
On a vérifié si en ajoutant un fichier dans ce dossier il était accessible (en tapant tout le chemin du fichier).
C'est dans ce dossier que vont être créés les fichiers `metrics.properties` qui vont pouvoir être lus...
## organisation.properties
Le fichier organisation.properties est déclaré sur le git après un PR : [https://framagit.org/chatons/chatonsinfos/-/blob/master/StatoolInfos/chatons.properties#L138](https://framagit.org/chatons/chatonsinfos/-/blob/master/StatoolInfos/chatons.properties#L138)
Depuis ce fichier sont délarés les différents fichiers `service-nom_du_service-properties`
## Ajout de statoolsinfos
Installation de statoolsinfos, voir [https://forge.devinsy.fr/devinsy/statoolinfos/src/branch/master/README.md#install](https://forge.devinsy.fr/devinsy/statoolinfos/src/branch/master/README.md#install)
`apt-get install openjdk-11-jre-headless`
Créer les dossiers `/srv/statoolinfos/conf`, `/srv/statoolinfos/tmp` et `/srv/statoolsinfos/bin`
Télécharger la dernière release : [https://forge.devinsy.fr/devinsy/statoolinfos/releases](https://forge.devinsy.fr/devinsy/statoolinfos/releases) dans le dossier `/srv/statoolinfos/tmp`
Dézipper le package et and déplacer les fichiers `statoolinfos.jar` and `statoolinfo.sh` dans le dossier `/srv/statoolinfos/bin/`
On fait un lien symbolique du fichier `statoolinfos.sh`
```
cd /srv/statoolsinfos/bin/
ln -s statoolinfos.sh statoolinfos
```
Aussi un lien symbolique `well-know` pour que le dossier accessible `.well_know/www.rodinux.fr/chatonsinfos/` soit visible pour nous depuis `/srv/statoolinfos`
```
cd /srv/statoolsinfos
ln -s /var/www/.well-known/www.linux07.fr/chatonsinfos/ well-know
```
Créer les dossiers `/srv/statoolinfos/conf/`, `/srv/statoolinfos/tmp/`
Dans le dossier `/srv/statoolinfos/conf/` on met en place des configurations properties pour chaque service
Par exemple pour Etherpad
***/srv/statoolinfos/conf/pad.linux07.conf***
```
conf.probe.types=HttpAccessLog, HttpErrorLog, Etherpad
conf.probe.httpaccesslog.file=/var/log/nginx/pad.linux07.fr-access.log*
conf.probe.httperrorlog.file=/var/log/nginx/pad.linux07.fr-error.log*
conf.probe.httpaccesslog.pattern=
conf.probe.etherpad.logs=/var/log/etherpad_mypads/etherpad.log
conf.probe.etherpad.database.url=jdbc:mariadb://localhost/etherpad_mypads
conf.probe.etherpad.database.user=User_DB
conf.probe.etherpad.database.password=DB_PASSWORD
conf.probe.target=/var/www/.well-known/www.linux07.fr/chatonsinfos/service-etherpad-metrics.properties
# Custom access log pattern with Java regex.
# Default: "^(?<remoteAddress>[a-zA-F0-9\\\\:\\\\.]+) - (?<remoteUser>[^\\[]+) \\[(?<time>[^\\]]+)\\] \"(?<request>.*)\" (?<status>\\d+) (?<bodyBytesSent>\\d+) \"(?<referer>.*)\" \"(?<userAgent>[^\"]*)\".*$"
#conf.probe.httpaccesslog.pattern=
```
La commande pour tester les configurations:
`/srv/statoolinfos/bin/statoolinfos probe -full /srv/statoolinfos/conf/pad.linux07.conf`
### Usage
```
Usage:
statoolinfos [ -h | -help | --help ]
statoolinfos [ -v | -version | --version ]
statoolinfos build <configurationfile> build property files from conf and input
statoolinfos clear <configurationfile> remove property files from conf
statoolinfos crawl <configurationfile> crawl all file from conf and input
statoolinfos htmlize <configurationfile> generate web pages from conf
statoolinfos probe OPTION [<directory>|<configurationfile>] generate metrics files from conf
OPTION = [-full|-today|-previousday|-NN] with NN a day count
statoolinfos uptime <configurationfile> update uptime journal
statoolinfos format <fileordirectory> format property files in tiny way
statoolinfos list ip [-bot|-nobot] <fileordirectory> generate ip list from log file
statoolinfos list ua [-bot|-nobot] <fileordirectory> generate user agent list from log file
statoolinfos list visitors [-bot|-nobot] <fileordirectory> generate visitors (ip+ua) list from log file
statoolinfos stat ip [-bot|-nobot] <fileordirectory> generate stats about ip from log file
statoolinfos stat ua [-bot|-nobot] <fileordirectory> generate stats about user agent from log file
statoolinfos stat visitors [-bot|-nobot] <fileordirectory> generate stats about visitors (ip+ua) from log file
statoolinfos tagdate <fileordirectory> update the file.datetime file
```
## Dernières étapes
Maintenant on peut ajouter les liens dans les fichiers `service-application.properties`, par exemple pour `service-etherpad.properties` tout en bas
```
# [Subs]
# Un lien vers un fichier properties complémentaire (type URL, optionnel). Exemple : https://
subs.foo = https://www.linux07.fr/.well-known/chatonsinfos/service-etherpad-metrics.properties
```
Mettre en place un crontab, ici 1 fois par jour en précsiant lheure, par exemple 00h01
`1 0 * * * /srv/statoolinfos/bin/statoolinfos probe -previousday /srv/statoolinfos/conf/ >> /srv/statoolinfos/cron.log`
## Mise à jour
Pour les mises à jour de statoolinfos, il suffit juste de récuper le dernier fichier `statoolinfos.jar` et de le remplacer.