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 plus de 3 ans
- Description mis à jour (diff)
#2 Mis à jour par Hubert Pineault il y a plus de 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 plus de 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 plus de 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 plus de 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 plus de 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.cnfpour qu'il soit lisible par tous (ce qui me semble une très mauvaise idée puisque ça contient le mdp du useralterncpour 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 plus de 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 plus de 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 plus de 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 plus de 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 plus de 3 ans
- Statut changé de Resolved à Closed