Eu tenho um Linode VPS rodando CentOS 7 e versões um tanto antigas de serviços relacionados à web (porque o código que escrevi não está pronto para versões mais recentes - estou planejando construir um novo VPS com tudo novo e código atualizado, mas isso levará tempo).
Recentemente o VPS migrou para um novo hardware. Após a reinicialização, o MariaDB 10.2 não reiniciava. Depois de dois dias arrancando os cabelos, consegui fazê-lo funcionar removendo e reinstalando o mariadb-server, além de um gerenciamento cuidadoso de arquivos para que ele reconhecesse meus arquivos de dados do InnoDB.
O MariaDB 10.2 está em fim de vida e não é mais suportado em maio de 2022, portanto não está mais em http://yum.mariadb.org , então tive que instalar o 10.4 (alterei apenas um dígito em MariaDB.repo
, de baseurl=http://yum.mariadb.org/10.2/centos7-amd64
para baseurl=http://yum.mariadb.org/10.4/centos7-amd64
).
Tudo está funcionando bem, pelo que posso dizer. No entanto, sempre que tento fazer com que o Monit comece a monitorar esse serviço novamente, ele se recusa e recebo dois e-mails de notificação dizendo "Checksum failed Service mariadb_bin" e "Checksum failed Service mariadb_init".
Usei o espelho mais confiável, certo? Então, por que há um problema de soma de verificação?
Aqui está o arquivo Monit para MariaDB:
## Mariadb monitoring.
## Test the mariadb service.
check process mariadb with pidfile /run/mariadb/mariadb.pid
group database
start program = "/usr/bin/systemctl start mariadb"
stop program = "/usr/bin/systemctl stop mariadb"
restart program = "/usr/bin/systemctl restart mariadb"
if failed port 3306 protocol mysql then restart
if 3 restarts within 5 cycles then timeout
# This process check depends on checking the binary if the mariadb
# daemon and the init script.
depends on mariadb_bin
depends on mariadb_init
alert [my email address] only on {timeout}
## Test the process binary.
check file mariadb_bin with path /usr/bin/mysqld_safe
group database
if failed checksum then unmonitor
if failed permission 755 then unmonitor
if failed uid root then unmonitor
if failed gid root then unmonitor
## Test the init scripts.
check file mariadb_init with path /usr/lib/systemd/system/mariadb.service
group database
if failed checksum then unmonitor
if failed permission 644 then unmonitor
if failed uid root then unmonitor
if failed gid root then unmonitor
Então, aparentemente, Monit está dizendo que a soma de verificação de mariadb_bin
não corresponde à de /usr/bin/mysqld_safe
e a soma de verificação de mariadb_init
não corresponde à de /usr/lib/systemd/system/mariadb.service
, embora eu não saiba o que é um "banco de dados de grupo".