Mysql

監視 mysql Ubuntu 伺服器 12.04 的問題

  • June 21, 2014

我已經在 Ubuntu 伺服器 12.04 上安裝了 Monit,但我在讓 mysql 監控工作時遇到問題。這是我到目前為止所做的。

#/etc/default/monit
startup=1

#/etc/mysql/my.cnf
pid-file        = /var/run/mysqld/mysqld.pid

#/etc/monit/monitrc
set daemon 60
check process mysql with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysql start" with timeout 30 seconds
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

mysqld.pid 文件正在按預期創建,但 monit 無法訪問它。這是 mysqld.pid 的權限

-rw-rw---- 1 mysql mysql 6 2014-06-02 11:36 mysqld.pid 

這是monit的狀態

#monit status
Process 'mysql'
status                            not monitored
monitoring status                 not monitored
data collected                    Mon Jun  2 23:49:37 2014

這是我在監控日誌中看到的錯誤

Jun  2 23:47:07 MySQL-Dev monit[13034]: 'mysql' process is not running
Jun  2 23:47:07 MySQL-Dev monit[13034]: 'mysql' trying to restart  
Jun  2 23:47:07 MySQL-Dev monit[13034]: monit: Error opening the pidfile '/var/run/mysqld/mysqld.pid' -- Permission denied
Jun  2 23:47:07 MySQL-Dev monit[13034]: monit: Error opening the pidfile '/var/run/mysqld/mysqld.pid' -- Permission denied
Jun  2 23:47:07 MySQL-Dev monit[13034]: 'mysql' start: /etc/init.d/mysql
Jun  2 23:47:07 MySQL-Dev monit[13034]: monit: Error opening the pidfile '/var/run/mysqld/mysqld.pid' -- Permission denied
Jun  2 23:47:37 MySQL-Dev monit[13034]: last message repeated 31 times
Jun  2 23:47:37 MySQL-Dev monit[13034]: 'mysql' failed to start
Jun  2 23:48:37 MySQL-Dev monit[13034]: 'mysql' service timed out and will not be checked anymore

我現在不確定該怎麼做,也無法在網上找到任何可以解決我的具體問題的東西。

如果您以 root 身份執行 monit,它應該能夠訪問此 pid 文件。請檢查您是否沒有與其他使用者一起執行監視器。

# ps -eaf | grep monit
root     XXXX     1  0 Jun20 ?        00:00:08 /usr/sbin/monit -c /etc/monit/monitrc -s /var/lib/monit/monit.state

您的監控程序沒有訪問權限/var/run/mysqld/mysqld.pid。嘗試將 monit 使用者添加到mysql組中gpasswd -a monit mysql(或任何您的 monit 使用者帳戶),重新啟動 monit 並查看是否有幫助。

相反,您也可以打開/var/run/mysqld目錄和mysql.pid文件權限以提高世界可讀性或使用 ACL。

引用自:https://serverfault.com/questions/601350