Bug #39969
Les graphs munin pour les plugins d'alternc sont tous vides (à part pour failed logins)
0%
Description
Tous les graphs des plugins alternc sont vides et indique -nan
à part les graphs pour "AlternC - number of failed logins"
Exemple sur percolab0.k.n
quand on roule les plugins avec munin-run
:
root@percolab0:/etc/munin/plugins# munin-run alternc accounts.value U ftpaccounts.value U mailboxes.value U mysqldatabases.value U root@percolab0:/etc/munin/plugins# munin-run alternc_connected totalusers.value root@percolab0:/etc/munin/plugins# munin-run alternc_domains totaldomains.value U domainswithmxhere.value U domainswithdnshere.value U totalsubdomains.value U subdomainstype0.value U subdomainstype1.value U subdomainstype2.value U subdomainstype3.value U root@percolab0:/etc/munin/plugins# munin-run alternc_failedlogins totalfailed.value File /var/log/alternc/bureau.log cannot be read. 0 root@percolab0:/etc/munin/plugins# munin-run alternc_mailman mailmanlists.value U root@percolab0:/etc/munin/plugins# munin-run alternc_size accounts_size.value U mailboxes_size.value U mysqldatabases_size.value U root@percolab0:/etc/munin/plugins#
Quand on roule un plugin, /var/log/mysql/error.log
produit ceci:
2022-03-10 13:32:13 36 [Warning] Access denied for user 'nobody'@'localhost' (using password: NO) 2022-03-10 13:32:13 37 [Warning] Access denied for user 'nobody'@'localhost' (using password: NO) 2022-03-10 13:32:13 38 [Warning] Access denied for user 'nobody'@'localhost' (using password: NO) 2022-03-10 13:32:13 39 [Warning] Access denied for user 'nobody'@'localhost' (using password: NO)
Historique
#1 Mis à jour par Hubert Pineault il y a presque 3 ans
- Description mis à jour (diff)
#2 Mis à jour par Hubert Pineault il y a presque 3 ans
Pour le plugin alternc
, les credentials pour mysql sont loadé avec la ligne MYSQLOPTS="$mysqlopts"
. Si on ajoute un echo $MYSQLOPTS
, la variable est vide.
Il n'y a aucun fichier de conf pour les plugins alternc dans /etc/munin/plugin-conf.d
.
Le script alternc
indique ceci en commentaire en début:
# Configuration variables # # mysqlopts - Options to pass to mysql which should include the # username, password, host and alternc database. # # Example of the entry in plugin-conf.d/munin-node # [alternc*] # user root # env.mysqlopts --defaults-file=/etc/mysql/alternc.cnf
Or, plugin-conf.d/munin-node
ne contient rien pour alternc.
Le fichier /etc/mysql/alternc.cnf
n'existe pas.
Le plugin alternc_connected
contient ceci:
MYSQLOPTS="$mysqlopts" if [ -z "$MYSQLOPTS" ] ; then MYSQLOPTS="--defaults-file=/etc/alternc/my.cnf" fi
le fichier
/etc/alternc/my.cnf
existe bel et bien et contient les credentials qui devraient être utilisés.#3 Mis à jour par Hubert Pineault il y a presque 3 ans
Il semble finalement que c'est juste les plugins alternc
et alternc_mailman
qui ont un problème.
ajouter ces lignes semble régler le bug pour les credentials:
if [ -z "$MYSQLOPTS" ] ; then MYSQLOPTS="--defaults-file=/etc/alternc/my.cnf" fi
Avec ça, il n'y a plus d'erreur dans /var/log/mysql/error.log
, mais il n'y a pas plus de données dans les graphs.
#4 Mis à jour par Hubert Pineault il y a presque 3 ans
Sur homere.k.n
, le problème des credentials ne se présente pas parce que le fichier /etc/mysql/alternc.cnf
existe. J'imagine que ça dépend de la version d'alternc qui est installé.
#5 Mis à jour par Hubert Pineault il y a presque 3 ans
En ajoutant set -x
, j'ai cet output:
root@node0:/etc/munin/plugins# munin-run alternc + MYSQLOPTS= + [ -z ] + MYSQLOPTS=--defaults-file=/etc/alternc/my.cnf + MYSQL=mysql + [ = autoconf ] + [ = config ] + /usr/bin/printf accounts.value accounts.value + + awk {print $1} mysql --defaults-file=/etc/alternc/my.cnf -N -B -e SELECT COUNT( * ) FROM membres + echo U U + /usr/bin/printf ftpaccounts.value ftpaccounts.value + mysql --defaults-file=/etc/alternc/my.cnf -N -B -e SELECT COUNT( * ) FROM ftpusers + awk {print $1} + echo U U + /usr/bin/printf mailboxes.value mailboxes.value + mysql --defaults-file=/etc/alternc/my.cnf -N -B -e SELECT COUNT( * ) FROM mail_domain WHERE pop = 1 + awk {print $1} + echo U U + /usr/bin/printf mysqldatabases.value mysqldatabases.value + + awk {print $1} mysql --defaults-file=/etc/alternc/my.cnf -N -B -e SELECT COUNT( * ) FROM db + echo U U
Si j'enlève la fin d'une des commande pour garder l'output d'erreur et d'avoir ceci ($MYSQL $MYSQLOPTS -N -B -e "SELECT COUNT( * ) FROM membres " );
, j'ai cet output:
root@node0:/etc/munin/plugins# munin-run alternc ... + /usr/bin/printf accounts.value accounts.value + mysql --defaults-file=/etc/alternc/my.cnf -N -B -e SELECT COUNT( * ) FROM membres Could not open required defaults file: /etc/alternc/my.cnf Fatal error in defaults handling. Program aborted + /usr/bin/printf ftpaccounts.value ftpaccounts.value + mysql --defaults-file=/etc/alternc/my.cnf -N -B -e SELECT COUNT( * ) FROM ftpusers + awk {print $1} + echo U U ...
Première chose que je remarque est que la requête SQL n'est plus entre guillemet.
Deuxième chose, Could not open required defaults file: /etc/alternc/my.cnf
est vraiment une drôle d'erreur.
#6 Mis à jour par Hubert Pineault il y a presque 3 ans
Si je change la permission de /etc/alternc/my.cnf
pour a+r
ça marche.
C'est donc un problème de permission.
En ajoutant whoami
au script, on se rend compte que ça roule pas sous root
, mais sous nobody
.
Si je crée un fichier /etc/munin/plugin-conf.d/alternc.conf
avec ce contenu, ça roule sous root
:
[alternc*] user rootDonc:
- Soit on set les permissions de
/etc/alternc/my.cnf
pour qu'il soit lisible par tous (ce qui me semble une très mauvaise idée puisque ça contient le mdp du useralternc
pour mysql). - Soit on ajoute ces éléments dans les conf de munin.
Allons-y avec la deuxième option.
#7 Mis à jour par Hubert Pineault il y a presque 3 ans
Il reste un bug avec le plugin alternc
, la troisième requête cherche la table mail_domain
. Ça existe dans AlternC 3.3.12, mais pas dans 3.5.
Les requête est SELECT COUNT( * ) FROM mail_domain WHERE pop = 1
, je sais pas trop ce que ça veut sortir. Je propose qu'on laisse ça aux oubliettes, mais on le laisse dans le script parce que ça fonctionne sur homere.k.n
.
#8 Mis à jour par Hubert Pineault il y a presque 3 ans
Il y a un bug dans le plugin alternc_failedlogins
parce que le dossier hardcoded dans le script n'existe pas, il faut le changer pour prendre la variable $MUNIN_PLUGSTATE
#9 Mis à jour par Hubert Pineault il y a presque 3 ans
le plugin alternc_mailman
plante parce que la table mailman
n'existe pas dans alternc 3.5, même chose pour une des requêtes de alternc_size
pour laquelle la table size_mail
existe pas.
#10 Mis à jour par Hubert Pineault il y a presque 3 ans
- Statut changé de New à Resolved
- Assigné à mis à Hubert Pineault
Je ferme, on créera un autre ticket si on veut corriger les plugins qui marchent toujours pas.
#11 Mis à jour par Kienan Stewart il y a presque 3 ans
- Statut changé de Resolved à Closed