22
0
Fork 0

Plus d'infos pour check mysql avancé

This commit is contained in:
jlecour 2017-09-19 10:34:56 +02:00
parent c217a234cf
commit 6fd64c2923
1 changed files with 29 additions and 7 deletions

View File

@ -259,12 +259,17 @@ listen mysql 127.0.0.1:3306
On note l'option **httpchk** qui va permettre de faire un check en HTTP et vérifier des conditions avancées (réplication OK, etc.).
Un moyen simple (inspirés de ce [vieux blog post](http://sysbible.org/2008/12/04/having-haproxy-check-mysql-status-through-a-xinetd-script/)) est de créer un script qui sera déclenché par **xinetd**.
On ajoute un service à xinetd, dans `/etc/xinetd.d/mysqlchk` :
Un moyen simple (inspiré de ce [vieux blog post](http://sysbible.org/2008/12/04/having-haproxy-check-mysql-status-through-a-xinetd-script/)) est de créer un script qui sera déclenché par **xinetd**.
~~~
service mysqlchk {
# apt install xinetd
~~~
On ajoute un service à xinetd, dans `/etc/xinetd.d/mysqlchk` (droits: root:root 0644) :
~~~
service mysqlchk
{
flags = REUSE
socket_type = stream
port = 8306
@ -274,12 +279,27 @@ service mysqlchk {
log_on_failure += USERID
disable = no
only_from = 192.0.2.0/27
per_source = UNLIMITED
}
~~~
On crée le script a exécuter dans `/root/mysqlchk` :
Il faut penser à ajuster la liste d'adresses IP autorisées dans `only_from`.
On ajoute la ligne suivante dans `/etc/services` :
~~~
mysqlchk 8306/tcp # mysqlchk
~~~
On crée le script à exécuter dans `/root/mysqlchk` (droits: root:root 0750) :
~~~{.bash}
#!/bin/bash
# Créer un utilisateur limité pour ces checks :
# mysql> CREATE USER 'mysqlchk'@'localhost' IDENTIFIED BY 'PASSWORD';
# mysql> GRANT SHOW DATABASES ON *.* TO 'mysqlchk'@'localhost';
MYSQL_HOST="127.0.0.1"
MYSQL_PORT="3306"
MYSQL_USERNAME="mysqlchk"
@ -309,14 +329,16 @@ else
fi
~~~
`/root/nrpe-check-mysql-slave.sh` :
Puis le script de check mysql lui-même, par exemple `/root/nrpe-check-mysql-slave.sh` (droits: root:root 0750) :
~~~{.bash}
#!/bin/sh
exec /usr/lib/nagios/plugins/check_mysql --check-slave -u debian-sys-maint -p PASSWORD -w 5 -c 60
exec /usr/lib/nagios/plugins/check_mysql -f /etc/mysql/debian.cnf --check-slave -w 5 -c 60
~~~
On redémarre xinetd (surveiller `/var/log/syslog` pour d'éventuelles erreurs) et on pense à autoriser le port 8306 au niveau firewall depuis les IP concernées.
Il est également possible d'utiliser tout programme ou script, pourvu qu'au final il puisse être accessible en HTTP.
### HTTP basic authentication