ESXi 7 и зависший vmsyslog

Столкнулся с ситуацией, при которой ESXi 7 Update 3g (build 20328353) перестал отправлять логи на удаленный Syslog сервер, а при дальнейшем разбирательстве выяснилось, что локально логи он так же перестал писать и в /scratch/log журналы не обновляются. Место на диске есть.

В ходе диагностики были зафиксированы ошибки в журнале /var/log/.vmsyslogd.err следующего характера:

vmsyslog.main            : CRITICAL] Dropping messages due to log stress (qsize = 25000)

Адекватных KB по версии 7 на данную тематику я не нашел, была только KB по версии 6.5/6.7 с упоминанием данной ошибки, где было написано, что «проблема устранена».

Команда esxcli system syslog config get корректно выдает статус настроек, а esxcli system syslog reload к каким-то положительным результатам не приводит, логи локально писаться не начинают и, тем более, не отправляются на удаленный сервер.

Перезапуск службы из интерфейса управления хоста кнопкой Restart так же не приводит к каким-либо результатам. В логе можно увидеть только:

vmsyslog.main            : ERROR   ] reloading (3200395)

Что аналогично результату работы esxcli system syslog reload.

Остановить службу и запустить заново из интерфейса ESXi не удается, поскольку:

This service with 'vmsyslogd' is marked as 'required' and cannot be stopped.

Остается применить грубую силу и остановить его принудительно напрямую с хоста:

ps -cC | grep vmsyslog
3418096  3418096  vmsyslogd             /bin/python /usr/lib/vmware/vmsyslog/bin/vmsyslogd.pyc 1

Определяем PID vmsyslog, в данном случае 3418096 и убиваем его:

kill -9 3418096

В логе vmsyslog будет видно, что процесс был убит, а затем автоматически перезапущен:

vmsyslog.main            : ERROR   ] Watchdog 3418095 fired (child 3418096 died with status 9)!
vmsyslog.main            : ERROR   ] Watchdog 3418095 exiting
vmsyslog                 : CRITICAL] vmsyslogd daemon starting (3418940)

После перезапуска логи вновь начинают писаться локально и отправляться на удаленный сервер.

Loading