Statistiques/HOW-Yunohost.md
2023-02-08 01:15:50 +01:00

130 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.