Após alguns dias de escavação, descobri o problema: corrupção do InnoDB.
O banco de dados de eventos de fora realmente era bem grande (estávamos retendo o equivalente a um ano de eventos antigos, e tínhamos uma tonelada de computadores com janelas relatando pequenas coisas, então tínhamos muitos dados), mas esse não era o problema. Eu comecei a correr $ZENHOME\Products\ZenUtils\ZenDeleteEvents.py -n 60
para cortar o histórico de eventos de volta para 60 dias, e o MySQL caiu depois que ficou na metade do caminho. Eu olhei nos logs do MySQL, e havia uma tonelada de erros de corrupção do InnoDB. Esta foi a solução final:
- Pare o Zenoss
- Pare o MySQL
- Coloque o MySQL no modo de recuperação 2 do InnoDB
- Inicie o MySQL
- Descarregar o banco de dados de eventos via
mysqldump -uzenoss -pzenoss events > dump.sql
Por algum motivo, após a remoção via ZenDeleteEvents.py, o despejo funcionou, e não cresceu de forma incontrolável. - Pare o MySQL
- Retire as definições do esquema de arquivos de log / eventos do ibdata / innodb / var / lib / mysql, e colocá-los em algum lugar para guarda (no caso de etapas subsequentes não funcionaram)
- Retire o MySQL do modo de recuperação
- Inicie o MySQL
- Como usuário do zenoss, execute
zeneventbuild localhost zenoss zenoss events
(esses parâmetros podem ser diferentes para outros: a sintaxe ézeneventbuild <dbhost> <dbuser> <dbpassword> <dbname>
- Como root, execute
mysql
e, em seguida,grant super on *.* to 'zenoss'@'localhost' identified by 'zenoss';
- Reinicie o MySQL
- Restaurar o despejo do banco de dados de eventos, via
mysql -uzenoss -pzenoss events < dump.sql
- Reinicie o MySQL novamente (provavelmente desnecessário, mas estou paranóico)
- Iniciar o Zenoss
Depois disso, tudo funcionou bem, embora eu não tivesse muitos eventos históricos (que eu não estava usando de qualquer maneira). Este tópico nos fóruns do zenoss foi fundamental para me ajudar a descobrir o que estava acontecendo.