Назад | Перейти на главную страницу

Мониторинг с mysql, но не работает с пропуском сети в my.cnf

Я пытаюсь найти способ обойти это. В основном я не хочу, чтобы кто-нибудь за пределами нашего сервера мог попытаться подключиться к нашей БД. Поэтому я добавил это в my.conf:

skip-networking

Вот что я получаю, когда skip-networking НЕ включен:

tcp6       0      0 :::3306                 :::*                    LISTEN      6957/mysqld
unix  2      [ ACC ]     STREAM     LISTENING     3911682  6957/mysqld         /var/run/mysqld/mysqld.sock

..но когда я его добавляю, он убирает "прослушивание" порта 3306:

sudo netstat -lnp | grep mysql
unix  2      [ ACC ]     STREAM     LISTENING     3909565  7356/mysqld         /var/run/mysqld/mysqld.sock

Мой сценарий мониторинга довольно прост:

 check process mysqld with pidfile /var/run/mysqld/mysqld.pid
   group database
   group mysql
   start program = "/etc/init.d/mysql start"
   stop  program = "/etc/init.d/mysql stop"
   if failed host localhost port 3306 protocol mysql with timeout 15 seconds for 3 times within 4 cycles then restart
   if failed unixsocket /var/run/mysqld/mysqld.sock protocol mysql for 3 times within 4 cycles then restart
   if 5 restarts with 5 cycles then timeout
   depend mysql_bin
   depend mysql_rc

 check file mysql_bin with path /usr/sbin/mysqld
   group mysql
   include /etc/monit/templates/rootbin

 check file mysql_rc with path /etc/init.d/mysql
   group mysql
   include /etc/monit/templates/rootbin

Какие-либо предложения? Я действительно хочу сохранить skip-networking включен, но если он остановит работу Monit, у нас может не быть выбора (если не будет обходного пути)

ОБНОВИТЬ: Если я удалю следующую строку, как было предложено:

if failed host localhost port 3306 protocol mysql with timeout 15 seconds for 3 times within 4 cycles then restart

Затем, когда я перезагружаю Monit, я получаю эту ошибку:

[UTC Oct  9 13:00:45] error    : 'mysqld' process is not running
[UTC Oct  9 13:00:45] info     : 'mysqld' trying to restart
[UTC Oct  9 13:00:45] info     : 'mysqld' start: /etc/init.d/mysql
[UTC Oct  9 13:01:15] error    : 'mysqld' failed to start (exit status 127) -- /etc/init.d/mysql: Cannot execute --sync_binlog=0

ОБНОВЛЕНИЕ 2: Хорошо, это не совсем то решение, о котором я думал, но оно имело тот же эффект. То, что я сделал, это закрытый порт 3306 ни на что Кроме 127.0.0.1, что означает, что он будет разрешать только входящий трафик с сервера, а не внешний. Затем я удалил skip-networking часть из my.cnf, так как я не хочу отключать сеть сейчас

Спасибо

Энди

Вы можете выполнить привязку к 127.0.0.1, но имейте в виду, что интерфейс будет иметь доступ только к mysql.