Хранить логи не только на самом оборудовании, но и удаленно, это всегда хорошая практика. Современные системы позволяют не просто хранить журналы оборудования, систем и сервисов, но также анализировать их и, при необходимости, информировать администраторов о наличии в логах записей, требующих внимания.
Большинство Linux систем используют rsyslog для отправки своих журналов в места их длительного хранения и Nutanix здесь не является исключением.
К сожалению, в отличии от интерфейса Prism Central, в котором настройка отправки журналов возможна из веб-интерфейса, аналогичной функции в Prism Element нет и потребуется прибегнуть к командной строке для настройки.
Ниже о том, как включить rsyslog в кластере Nutanix.
Настройка состоит из двух этапов:
- Добавление сервера (или нескольких серверов), который будет принимать сообщения от кластера Nutanix;
- Включение необходимых модулей для организации пересылки сообщений от компонентов кластера.
Подключаемся к CVM и добавляем сервер, который будет принимать сообщения:
ncli rsyslog-config add-server name=vmik-graylog ip-address=graylog.vmik.lab network-protocol=udp port=514 relp-enabled=false
Сервер добавлен. Как уже было сказано ранее, таким образом мы можем добавить несколько серверов.
Командой ncli rsyslog-config list
можно получить список добавленных rsyslog серверов:
Обратите внимание на поле RSyslog Status, которое находится в значении Enabled, что означает то, что пересылка сообщений включена.
Следующим шагом нам необходимо включить модули, которые будут отвечать за пересылку сообщений из определенных журналов на указанный удаленный сервер.
Таких модулей несколько:
- ACROPOLIS;
- AUDIT;
- CASSANDRA;
- CEREBRO;
- CURATOR;
- GENESIS;
- PRISM;
- STARGATE;
- SYSLOG_MODULE;
- ZOOKEEPER.
Не сложно догадаться, что каждый из модулей отвечает за пересылку сообщений от определенного сервиса.
Единственным, не совсем понятным модулем может показаться SYSLOG_MODULE. Данный модуль занимается пересылкой сообщений, которые попадают в /home/log/messages
на CVM и в /var/log/messages
на хосте AHV.
Для того, чтобы включить модуль, помимо указания его названия и сервера, куда он будет отправлять свои журналы, необходимо указать уровень логирования который может ранжироваться от DEBUG до EMERGENCY.
Всего таких уровней 8:
- DEBUG;
- INFO;
- NOTICE;
- WARNING;
- ERROR;
- CRITICAL;
- ALERT;
- EMERGENCY.
Рекомендация Nutanix – не использовать уровни ниже, чем ERROR без особой необходимости, иначе можно получить крайне большое количество сообщений на удаленном сервере.
Попробуем включить модуль SYSLOG_MODULE и, например, ZOOKEEPER:
ncli rsyslog-config add-module module-name=SYSLOG_MODULE level=ERROR server-name=vmik-graylog
ncli rsyslog-config add-module module-name=ZOOKEEPER level=ERROR server-name=vmik-graylog
Система достаточно гибкая и позволяет настроить пересылку журналов на несколько серверов. Например, один из серверов собирает журналы с уровнем ниже чем ERROR, другой сервер собирает журналы от уровня ERROR и выше.
Просмотреть список всех включенных модулей для определенного сервера можно с помощью команды ncli rsyslog-config ls-modules server-name=vmik-graylog
Спустя непродолжительное время, на сервер начинают поступать сообщений с кластера от сервиса Zookeper:
В случае, если необходимо остановить пересылку журналов какого-либо из модулей, можно его просто удалить:
ncli rsyslog-config delete-module module-name=ZOOKEEPER server-name=vmik-graylog
Теперь Zookeeper перестанет отсылать сообщения.
Чтобы остановить пересылку всех сообщений, остановим rsyslog в кластере:
ncli rsyslog-config set-status enable=false
Как можно заметить, RSyslog Status изменился на Disabled.
В качестве заключения:
Определенно, настройка rsyslog в Nutanix не самое сложное занятие, но все же и не самое удобное.
Хотелось бы увидеть данный функционал в интерфейсе Prism Element, без необходимости переходить в консоль CVM.