Aide mise en place stats Yunohost

Alors nous sur notre instance de yunohost, on a simplement monté une mywebapp (un conteneur générique d’application yunhost) pour pouvoir exposer les fichiers

Ok, on est passé par un autre biais du coup. Les fichiers organisation et service sont sur un dépôt gitea. Pour les fichiers metrics, on a bidouiller un peu… en rajoutant un fichier de configuration nginx chatons.conf dans un sous-domaine qui sert à une redirection /etc/nginx/conf.d/sous-domaine.tld.d/chatons.conf ou nous avons ajouté

location ^~ '/.well-known/chatonsinfos/' {
        alias /var/www/.well-known/sous-domaine.tld/chatonsinfos/;
    }

et dans ce dossier /var/www/.well-known/sous-domaine.tld/chatonsinfos/ vont se trouver les fichiers metrics.

Pour l’instant ça devrait marcher, mais pour un premier essai avec etherpad, nous avons eu que des erreurs…
Ça m’intéresse de savoir comment vous avez fait ceci dit. On se disait d’ailleurs que ce serait chouette de créer à l’avenir un paquet YunoHost dédié…

2 « J'aime »

Salut,
bon j’ai toujours ces erreurs quand je lance une commande /srv/statoolinfos/bin/statoolinfos probe -full /srv/statoolinfos/conf/pad.linux07.conf une serie de LINE IS NOT MATCHING
Pour d’autre service pareil…

Pour l’instant mes conf sont avec ces directives:

conf.probe.types=HttpAccessLog, HttpErrorLog
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.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=

Après investigation, je n’ai pas réussi à reproduire les erreurs. Tes fichiers de logs passent tout à fait normalement :upside_down_face:
Peux-tu me donner ta version de Java et de StatoolInfos :

java -version
statoolinfos.sh -v

Au passage, j’en ai profité pour ajouter la détection de Kuma en tant que bot. Donc j’ai fait une nouvelle release et je t’invite à remplacer le fichier statoolinfos.jar :smiley_cat:

salut, pour java

java -version
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Debian-1deb11u1, mixed mode, sharing)

statoolinfos

/srv/statoolinfos/bin# ./statoolinfos.sh -v
0.5.1-20220627220034

Après avoir changer de fichier statoolsinfos.jar

/srv/statoolinfos/bin# ./statoolinfos.sh -v
0.5.1-20230131174124

M’enfin !? Tout est bon. À tout hasard, si tu relances un probe -full, y-a-t-il encore des erreurs ?

Je crois que oui… J’ai ressayé avec etherpad aussi avec mattermost ou nextcloud…

Par exemple pour le fichier service.nextcloud.properties

# [File]
file.class=metrics
file.generator=StatoolInfos
file.datetime=2023-01-31T21:15:08.161651
file.protocol=statoolinfos 0.5.1

# [Metrics]
metrics.http.errors.2023.months=118
metrics.http.errors.2023.weeks=12,20,42,30,14
metrics.http.errors.2023.days=,,5,5,1,1,,,,2,3,12,,3,,9,1,14,7,11,,,,,,10,12,6,2,9,5

Pour le fichier service-etherpad.properties

# [File]
file.class=metrics
file.generator=StatoolInfos
file.datetime=2023-01-31T21:12:10.387393
file.protocol=statoolinfos 0.5.1

# [Metrics]
metrics.http.errors.2023.months=1839
metrics.http.errors.2023.weeks=,909,375,480,75
metrics.http.errors.2023.days=,,,,,,,,,25,32,261,184,265,142,177,62,21,,,20,95,413,,32,18,17,,,6,69

Tu penses que c’est normal ??

Si c’est normal, je peux essayer déjà une autre configuration de metrics ??

Non, ce n’est pas normal. Quand je lance sur ma machine, j’obtiens tout bon. Donc, d’où cela peut-il venir ?

Peut-être à cause d’un zabbix-agent ?? J’ai un zabbix externe qui écoute le serveur…
Ou une histoire de permissions ???
les fichiers access.log et error.log pour etherpad appartiennent à www-data adm
Cela me gêne, je ne vois pas qui est l’user adm d’ailleurs…

Bon j’ai supprimé zabbix-agentd sur le serveur pour voir, mais ça ne change pas…

Ça serait étonnant. adm est un groupe. La lecture des fichiers de logs semble se faire correctement puisque les logs d’erreur affichent les lignes du fichier. C’est bien mystérieux tout ça :thinking:

Qu’est-ce que suis supposé obtenir avec cette commande ? c’est les access.log que je n’obtiens pas correctement ? le script ne fonctionne pas comme il devrait ?? …

Voilà ce que tu es censé obtenir comme fichier de metrics : bon résultat.

Peux-tu afficher le contenu de ton fichier de configuration pad.conf ?

Le fichier que l’on a mis dans le dossier conf de statoolinfos ?

/srv/statoolinfos# cat conf/pad.linux07.conf 
conf.probe.types=HttpAccessLog, HttpErrorLog
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.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=

Où la configuration de etherpad_mypads ? là il s’agirait plutôt d’un fichier settings.json… Je ne crois pas que ce soit de cela dont tu parles, de plus j’ai les mêmes erreurs sur d’autres applications…

Très bien, c’est le fichier que j’avais besoin de voir :star_struck:

Ok, trouvé. C’est cette ligne qui est mal gérée. Je pensais pourtant avoir fait ce qu’il faut. Et un bug de corrigé donc merci à toi :+1:
J’ai fait une nouvelle release, tu peux dès maintenant remplacer le fichier statoolinfos.jar. Recommandation de relancer une fois en mode -full :partying_face:

Et comme tu as fait plusieurs fichiers de configuration, tu peux faire une ligne de cron générique en indiquant le dossier des fichiers de conf au lieu de chaque fichier de conf unitairement :

1 * * * * root /srv/statoolinfos/bin/statoolinfos probe -previousday /srv/statoolinfos/conf/

Super oui; ça semble marcher !!
Du coup j fais cette commande probe-full sur chaque fichiers de conf avant ? ensuite je peux ensuite décommenter les lignes subs.foo =` sur les fichiers properties
et ajouter le cron…
let’s go

1 « J'aime »

Voilà, tout à fait :+1:
Deux coquillettes à corriger :

service.website = https://sondage.liux07.fr

et :

linux07-etherpadlinux07.properties 128 host.server.type = DISTRIBUTION

Dans le premier, rajouter un ‹ n › (c’est joli liux), dans le deuxième plutôt mettre PHYSICAL.

Merci !! Je crois que ça va fonctionner !! Super, je prendrai le temps de documenter tout cela…

1 « J'aime »

Ensuite, est-ce que je dois adapter les fichiers de conf suivant les services ? ou je les laissent tous tels quels ?? Pour l’instant j’ai mis la même chose sur chacun d’eux…