Monitoraggio di MySQL con Nagios: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:
  cat /etc/passwd| grep nagios| cut -f 6 --delimiter=:
  cat /etc/passwd| grep nagios| cut -f 6 --delimiter=:


  /var/log/nagios
  /var/lib/nagios




sudo mkdir -p /var/log/nagios
sudo mkdir -p /var/lib/nagios


* Creare il file di configurazione contenente la password dell'utente mysql che si vorrà usare:
* Creare il file di configurazione contenente la password dell'utente mysql che si vorrà usare:
  sudoedit /var/log/nagios/.my.cnf
  sudoedit /var/lib/nagios/.my.cnf


<pre>
<pre>
Line 18: Line 18:


* Sistemare le permission:
* Sistemare le permission:
  sudo chmod 640 /var/log/nagios/.my.cnf
  sudo chmod 640 /var/lib/nagios/.my.cnf
  sudo chown -R nagios:nagios /var/log/nagios/
  sudo chown -R nagios:nagios /var/lib/nagios/


* Creare l'utente in mysql
* Creare l'utente in mysql
Line 40: Line 40:
  Uptime: 2156857  Threads: 12  Questions: 15095554  Slow queries: 10  Opens: 2800  Flush tables: 1  Open tables: 64  Queries per second avg: 6.999
  Uptime: 2156857  Threads: 12  Questions: 15095554  Slow queries: 10  Opens: 2800  Flush tables: 1  Open tables: 64  Queries per second avg: 6.999


* Di default sono definiti quest tre check commands in
* Avendo creato l'utente con accesso solo a localhost, definiamo il comando che useremo nei check:


  /etc/nagios-plugins/config/mysql.cfg
  sudoedit /etc/nagios3/conf.d/00_common_commands.cfg  


        command_name    check_mysql
<pre>
        command_line    /usr/lib/nagios/plugins/check_mysql -H '$HOSTADDRESS$'
# 'check_mysql_local' command definition
define command{
    command_name    check_mysql_local
    command_line    /usr/lib/nagios/plugins/check_mysql -H 127.0.0.1
}
</pre>
 
* '''Nel caso questo non funzioni (DEBIAN JESSIE), occorre specificare a mano il file di configurazione di mysql-client nel check con l'opzione -f :
/usr/lib/nagios/plugins/check_mysql -H 127.0.0.1 -f /var/lib/nagios/.my.cnf'''
 
* In caso si utilizzi NRPE, è necessario definire la variabile HOMe nel file dei defaults, altrimenti nrpe non troverà .mycnf
 
sudoedit /etc/default/nagios-nrpe-server
 
HOME="/var/lib/nagios"
 
* Importante: restart, non reload di nrpe:
sudo invoke-rc.d nagios-nrpe-server start
 
* Idem nel caso di utilizzo come controllo nagios diretto:
 
sudoedit /etc/default/nagios3
 
HOME="/var/lib/nagios"
 
* Importante: restart, non reload di nagios3:
  sudo invoke-rc.d nagios3 restart
 
* Se non si fa una di queste due cose, si riceverà l'errore (evidentemente non trova ne user ne password del my.cnf, perchè non ha settato la $HOME, ed usa dei defaults ignoti):
Access denied for user 'nagios'@'localhost' (using password: NO)


        command_name    check_mysql_cmdlinecred
        command_line    /usr/lib/nagios/plugins/check_mysql -H '$HOSTADDRESS$' -u '$ARG1$' -p '$ARG2$


        command_name    check_mysql_database
        command_line    /usr/lib/nagios/plugins/check_mysql -d '$ARG3$' -H '$HOSTADDRESS$' -u '$ARG1$' -p '$ARG2$'


=Riferimenti=
=Riferimenti=
Line 58: Line 83:
*[http://labs.consol.de/lang/en/nagios/check_mysql_health/ check_mysql_health – ConSol* Labs]
*[http://labs.consol.de/lang/en/nagios/check_mysql_health/ check_mysql_health – ConSol* Labs]
*[http://blog.bigsmoke.us/2010/08/11/setting-password-for-mysql-user-in.my.cnf BigSmoke » Setting password for mysql user in .my.cnf]
*[http://blog.bigsmoke.us/2010/08/11/setting-password-for-mysql-user-in.my.cnf BigSmoke » Setting password for mysql user in .my.cnf]
http://t17485.network-nagios-plugins-development.nagiostalk.info/check-mysql-should-support-a-command-line-optionfor-a-mysql-defaults-file-t17485.html#25755
*[https://community.librenms.org/t/nagios-check-mysql-and-storing-password/773/5 Nagios check_mysql and storing password - Help - LibreNMS Community]

Latest revision as of 15:27, 22 August 2017

  • Verificare la home directory dell'utente nagios, ed eventualmente crearla. ATTENZIONE: VERIFICARE LA CORRETTEZZA DELLA HOME NEI COMANDI SEGUENTI !
cat /etc/passwd| grep nagios| cut -f 6 --delimiter=:
/var/lib/nagios


sudo mkdir -p /var/lib/nagios

  • Creare il file di configurazione contenente la password dell'utente mysql che si vorrà usare:
sudoedit /var/lib/nagios/.my.cnf
[client]
user=nagioschk
password=secretPassword
  • Sistemare le permission:
sudo chmod 640 /var/lib/nagios/.my.cnf
sudo chown -R nagios:nagios /var/lib/nagios/
  • Creare l'utente in mysql
mysql -u root -p -e "CREATE USER 'nagioschk'@'localhost' IDENTIFIED BY 'secretPassword'"
  • Verificare che l'utente unix nagios usi le credenziali salvate:
sudo -u nagios mysql -e "SELECT 'OK' AS Result;"
+--------+
| Result |
+--------+
| OK     | 
+--------+
  • Testare il plugin nagios:
sudo -u nagios /usr/lib/nagios/plugins/check_mysql -H 127.0.0.1
Uptime: 2156857  Threads: 12  Questions: 15095554  Slow queries: 10  Opens: 2800  Flush tables: 1  Open tables: 64  Queries per second avg: 6.999
  • Avendo creato l'utente con accesso solo a localhost, definiamo il comando che useremo nei check:
sudoedit /etc/nagios3/conf.d/00_common_commands.cfg 
# 'check_mysql_local' command definition
define command{
    command_name    check_mysql_local
    command_line    /usr/lib/nagios/plugins/check_mysql -H 127.0.0.1
}
  • Nel caso questo non funzioni (DEBIAN JESSIE), occorre specificare a mano il file di configurazione di mysql-client nel check con l'opzione -f :
/usr/lib/nagios/plugins/check_mysql -H 127.0.0.1 -f /var/lib/nagios/.my.cnf
  • In caso si utilizzi NRPE, è necessario definire la variabile HOMe nel file dei defaults, altrimenti nrpe non troverà .mycnf
sudoedit /etc/default/nagios-nrpe-server 
HOME="/var/lib/nagios"
  • Importante: restart, non reload di nrpe:
sudo invoke-rc.d nagios-nrpe-server start
  • Idem nel caso di utilizzo come controllo nagios diretto:
sudoedit /etc/default/nagios3 
HOME="/var/lib/nagios"
  • Importante: restart, non reload di nagios3:
 sudo invoke-rc.d nagios3 restart
  • Se non si fa una di queste due cose, si riceverà l'errore (evidentemente non trova ne user ne password del my.cnf, perchè non ha settato la $HOME, ed usa dei defaults ignoti):
Access denied for user 'nagios'@'localhost' (using password: NO) 


Riferimenti

http://t17485.network-nagios-plugins-development.nagiostalk.info/check-mysql-should-support-a-command-line-optionfor-a-mysql-defaults-file-t17485.html#25755