È ansible riavviare un server MySQL remoto su Ubuntu da un programma o uno script su un Mac?

Ho un cliente che ha un server web ospitato con Digital Ocean e hanno un problema random di database MySQL random …

1-4 volte al mese ci si blocca il server di database e deve essere riavviato manualmente.

Non sono riuscito a capire la causa di questo incidente random, così ho attualmente a fare questo process each volta che accade:

  1. Aprire una window del prompt dei comandi di terminal
  2. digitare e eseguire: ssh root@IP-HERE -l root
  3. digitare nella password dell'utente server-user-password : server-user-password v
  4. digitare e eseguire il command: service mysql restart

Questo riavvia il server MySQL e tutto è nuovo ancora fino a una settimana o 3 dopo quando accade casualmente e poi ripete il process.


Poichè il mio cliente non ha esperienza dell'assistente del server e non sa nemless che cosa sia una window di command o una window di terminal di command o sembra … ho bisogno di trovare una soluzione che permetterebbe a chiunque, tra cui una scimmia per essere in grado di replicare process descritto sopra quando non sono disponibile!

Alcune informazioni:

  • Developer / Admin (me) : eseguire un PC Windows 7
  • Client : è in esecuzione un Mac OS X (il più recente OS w / e è)
  • Server : esegue Ubuntu 12.0.4

Con questa informazione, sarebbe ansible creare una sorta di script di soluzione con un click where il client potrebbe fare clic e lanciare uno script / programma dal suo Mac che eseguirebbe automaticamente il process sopra per riavviare il suo server MySQL quando questo problema di emergenza si presenta per lui e non sono in giro per aiutarti?

4 Solutions collect form web for “È ansible riavviare un server MySQL remoto su Ubuntu da un programma o uno script su un Mac?”

Hai mai pensato di monitorare il server MYSQL?

Forse Nagios è troppo grande ma che cosa con uno script e un cron o monit è anche molto leggero.

Monit fornisce un facile Webfrontfront di base in cui è ansible riavviare i servizi.

Penso che il modo più semplice sarebbe usare il monit . È un'utilità leggera per il monitoraggio e la gestione di demoni o programmi simili.

Installa monit

 # aptitude install monit 

Crea file conf per mysql

 # cat /etc/monit/conf.d/mysql check process mysqld with pidfile /var/run/mysqld/mysqld.pid group database start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop" if failed host 127.0.0.1 port 3306 then restart if 5 restarts within 5 cycles then timeout 

Riavvia monit

 # service monit restart 

Controllare lo stato di mysql

 # netstat -an | grep 3306 tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN # service mysql status mysql start/running, process 33446 

Stop mysql server (solo per emulare alcuni problemi)

 # service mysql stop 

Controllare il file di registro monit

 [EEST Mar 30 12:34:10] info : 'ubuntu14' Monit started [EEST Mar 30 12:36:10] error : 'mysqld' process is not running [EEST Mar 30 12:36:10] info : 'mysqld' trying to restart [EEST Mar 30 12:36:10] info : 'mysqld' start: /etc/init.d/mysql [EEST Mar 30 12:38:12] info : 'mysqld' process is running with pid 34085 

In pochi minuti riavvia il server mysql

Ma è solo una soluzione, come @lain ha detto che dovresti trovare la radice del problema.

In un primo momento, è necessario (per generare se non esistere e) per trasferire chiavi ssh al server (per get un login senza password):

 ssh-copy-id root@IP-HERE 

Accedere al server e impostare uno script come:

 #!/bin/bash service mysql restart exit 0 

Rendilo eseguibile:

 chmod +x script.sh 

Sul tuo client, si desidera call lo script tramite ssh. Semplificare l'esecuzione del seguente command ssh (utilizzare Platypus o Apple Automator, ecc. Come wrapper):

 ssh root@IP-HERE -l root script.sh 

Ora puoi passare un server-riavvio cliccabile ai tuoi clienti.

BTW: Dovresti risolvere il problema, non creare un problema di riavvolgimento crappy. Vi assicuro, ci sarà più mal di testa che utilizza questa soluzione di riavvio che risolvere il problema. Come ha detto Peabody, si dovrebbe guardare munin o monit per rilevare il problema sottostante.

Dimenticare il riavvio manuale, è troppo lento e hai bisogno di te o di un cliente (vuoi andare in vacanza a volte, vero?). Basta impostare un certo monitoraggio e farlo automaticamente. Zabbix e Nagios sono buone per il monitoraggio generale, ma forse troppo grandi per un server. È ansible impostare monit per controllare il tuo mysql e fare riavvii per voi automaticamente e vicino istantaneamente.

Ma stai fissando il sintomo, non la causa, che è male. Devi trovare la vera ragione per cui è bloccare mysql (abilitare più registrazioni verbose, monitorare altre metriche del server) e risolverlo.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.