Настройка Syslog на Vmware ESXi 5.х
Приветствую всех. Тысячу лет уже не писал статей ) Сегодняшняя статья относится к новой рубрике, которая посвящена продукции VMware. Прежде чем начать излагать суть, направлю Вас на прочтение прошлых статей, описывающих принципы syslog в Linux. 1 – управление системными журналами syslog в linux, 2 – настройка rsyslog в Linux. Как оказалось, в сети куча статей, описывающих базовые настройки syslog в Vmware. Такие как указание каталога, настройка удаленного сервера и др. (базовые настройки описаны в документации). Итак, настройка syslog на Vmware состоит из нескольких шагов: собственно, настройка параметров syslog, настройка Firewall ESX и дополнительный тюнинг. Давайте рассмотрим каждый шаг.
Введение (исходные данные для настройки syslog на vmware esx)
Предположим, что у нас есть некий сервер с именем syslog. На нем работает служба, которая принимает syslog сообщения по UDP 514 порту (в данном случае не важно, rsyslog это или VMware Syslog Collector или любой другой сервер). Так же, у нас есть собственно VMware ESX хост. Статья писалась на версии 5.5. Не исключено, что в будущих версиях что-то изменится. Собственно, что меня побудило написать данную статью? В час, количество сообщений от ESX хоста составляло over9000 строк. Это совсем не приемлемо, не информативно и не читаемо. Ниже, я опишу как ограничить количество сообщений syslog. Явно в инсталляционном мануале это не описано или я так искал. Конечная задача статьи – описать настройку отправки сислог сообщений с Vmware на удаленный сервер и отрегулировать количество сообщений.
Настройка syslog на VMware хосте
Настройка syslog производится несколькими путями. Либо GUI – vSphere Client, либо CLI – через ssh или локальную консоль. Рассмотрим GUI метод. Если есть непреодолимое желание это сделать через CLI, то читаем документацию. В клиенте выбираем нужный нам хост и переходим на вкладку Configuration (1), на панели Software выбираем Advanced Settings (2) и в открывшемся окне раскрываем Syslog и выбираем global (3). Важный момент заключается в том, что здесь мы настраиваем базовые (глобальные) параметры логирования для всех служб ESX. Можно так же настроить параметры индивидуально, для каждой службы это делается в соседнем разделе loggers (4).
Давайте рассмотрим основные поля:
Syslog.global.defaultRotate (a)
Количество хранимых архивов. Устанавливается как глобально, так и для каждой службы.
Syslog.global.defaultSize (b)
Размер хранимого лога в Kb перед ротацией. Устанавливается как глобально, так и для каждой службы.
Syslog.global.LogDir (с)
Каталог размещения лог-файлов. Возможно размещение как в локальной файловой системе, так и в удаленных примонтированных NFS, и VMFS разделах. При размещении в локальной файловой системе необходимо учитывать, что только поддерево каталогов /scratch остается целым после перезагрузки. Если параметр не задан, то логи размещаются в /var/log. Формат задания пути следующий: [datastorename] path_to_file, где datastorename – имя датастора, path_to_file – путь к каталогу, относительно файловой системы датастора. Например: [vmstor] var/syslog указывает нам на /vmfs/volumes/vmstor/var/syslog.
Syslog.global.logDirUnique (d)
Заставляет демон syslog на vmware размещать лог-файлы в поддиректориях, именованных по имени хоста, от которого пришло сообщение.
Syslog.global.LogHost (e)
Поле для указания удаленного хоста для отправки копий syslog сообщений. По умолчанию, можно указать просто имя хоста или IP, в таком случае сообщения будут отправляться по UDP на 514 порт. Возможно указать дополнительные параметры в виде протокола (поддерживается ssl, tcp и udp) и порта. Например ssl://hostName1:514.
Настройка Vmware Firewall
Настройка брандмауэра Vmware происходит в разделе – Configuration (1), на панели Software выбираем Security Profile (2) и напротив Firewall выбираем Properties…(3) в открывшемся окне ищем Syslog и активируем чекбокс (4).
Ограничение количества сообщений
Из прошлых статей о syslog мы помним, что такое источник.приоритет (он же Facility.Severity). Собственно, из и будем настраивать. К сожалению, в VMware Client возможно настроить уровень журналирования только для службы hostd и vpxa (хотя документация утверждает, что можно и vpxa).
Примечание. Перед тем как Вы будете делать последующие шаги, необходимо понимать, что это не поддерживаемая конфигурация и не следует вносить данные исправления без рекомендации службы технической поддержки.
Ограничение уровня SysLog для Hostd (hostd Severity levels)
Ограничить уровень журналирования можно через vSphere Client в разделе Configuration, на панели Software выбираем Advanced Settings и в открывшемся окне раскрываем Config → HostAgent → Log. Меняем параметр:
Config.HostAgent.log.level to warning (default = verbose)
Ограничение уровня SysLog для остальных служб ESX хоста (Vmware Severity levels)
Все нижеописанные действия делаются посредством доступа к Vmware по SSH, либо локальному ESX Shell. При этом, используется встроенный редактор vi. Формат редактируемых файлов – xml. Для наших целей нам интересна секция в тегах <log> и </log>, а так же подсекция в тегах <syslog> и </syslog>. Секция log управляет журналированием, как локальным, так и удаленным, при этом, подсекция syslog управляет удаленным журналированием и работает только при включении удаленного логирования. У VMware именование уровней журналирования несколько отличается от linux и может быть одним из следующих (по мере увеличения информативности): “none”, “quiet”, “panic”, “error”, “warning”, “info”, “verbose” и “trivia”. Для добавления комментариев в конфигурационные файлы можно использовать HTML конструкцию:
<!-- тут можно размещать комментарии -->
HOSTD
Настройка заключается в редкатировании файла /etc/vmware/hostd/config.xml. В данном файле необходимо найти интересующую нас секцию между тегами <log> и </log>. Оригинальная секция представлена ниже (с описанием функционала):
<log> <!-- указывает каталог размещения файла журналов --> <directory>/var/log/vmware/</directory> <!-- уровень журналирования, Severity. По умолчанию - verbose --> <level>warning</level> <!-- Количество хранимых файлов --> <maxFileNum>8</maxFileNum> <!-- Размер файла до ротации в байтах --> <maxFileSize>524288</maxFileSize> <!-- имя файла лога --> <name>hostd</name> <!-- выводить или нет сообщения демона на консоль --> <outputToConsole>false</outputToConsole> <!-- Выводить ли сообщения демона в файл --> <outputToFiles>false</outputToFiles> <!-- Отправлять ли сообщения демона на удаленный сервер --> <outputToSyslog>true</outputToSyslog> <!-- Подсекция syslog используется только если outputToSyslog - true --> <syslog> <!-- Задает параметр источника(Facility) для отправляемых сообщений --> <facility>local4</facility> <!-- Задает идентификатор службы для отправляемых сообщений --> <ident>Hostd</ident> <!-- Содержимое данного файла помещается в новый лог при ротации --> <logHeaderFile>/var/run/vmware/hostdLogHeader.txt</logHeaderFile> </syslog> </log>
В данном файле уже имеется необходимая строка (<level>warning</level>), т.к. в прошлом абзаце я уже указал данную настройку с помощью vSphere Client.
VPXA
Настройка заключается в редкатировании файла /etc/vmware/vxpa/vxpa.cfg. Принцип настройки не отличается от hostd. В данном файле необходимо найти интересующую нас секцию между тегами <log> и </log> и добавить соответствующую строку <level>warning</level>. В версии 5.5 данный файл имеет права 444. Для редактирования необходимо добавить права на запись.
RHTTPPROXY
Настройка заключается в редкатировании файла /etc/vmware/rhttpproxy/config.xml. Принцип настройки не отличается от hostd. В данном файле необходимо найти интересующую нас секцию между тегами <log> и </log> и добавить/заменить соответствующую строку <level>warning</level>.
FDM
Настройка заключается в редкатировании файла /etc/opt/vmware/fdm/fdm.cfg. Принцип настройки не отличается от hostd. В данном файле необходимо найти интересующую нас секцию между тегами <log> и </log> и добавить/заменить соответствующую строку <level>warning</level>.
Резюме
Еще раз хочу напомнить, что это не поддерживаемый способ настройки syslog в Vmware vsphere. Будьте осторожны при изменении настроек. После внесения указанных изменений, не забудьте выполнить перезапуск всех служб (Перезапуск займет около 5 минут и хост может быть недоступен в vCenter. Может отработать HA!!!).
services.sh restart
Прочитав статью можно настроить и другие параметры фильтрации сообщений. Возможно, кто-то из читателей дополнит возможности настройки.
Базовые настройки syslog по installation manual
http://pubs.vmware.com/vsphere-55/topic/com.vmware.vsphere.install.doc/GUID-9F67DB52-F469-451F-B6C8-DAE8D95976E7.html
Установка и настройка vSphere Syslog Collector
http://pubs.vmware.com/vsphere-55/topic/com.vmware.vsphere.install.doc/GUID-471EFE67-9035-473E-8217-6B67E493A518.html
Increasing VMware vCenter Server and VMware ESX/ESXi logging levels
http://kb.vmware.com/kb/1004795
Controlling the size and number of vmkernel logs in ESX hosts
http://kb.vmware.com/kb/1037645
С Уважением, Mc.Sim!