Проверка логов

Иногда при диагностике неисправностей или других проблем необходимо проверить логи. Любая операция над файлом логов (например, tail, cat, grep и т. д.) работает через команду ansible с некоторыми оговорками:

  1. Операции, которые постоянно отслеживают файл, например, tail -f, не работают через Ansible, поскольку в Ansible, отображаются только выходные данные после завершения операции, и вы не сможете отправить команду Ctrl-C, чтобы перестать отслеживать файл.
  2. Не рекомендуется запускать команду, возвращающую большой объем данных через stdout. Если вы собираетесь открыть файл более чем несколько КБ, следует войти на сервер(ы) по отдельности.
  3. При перенаправлении и фильтрации выходных данных из команды, выполняемой через Ansible, необходимо использовать модуль shell вместо стандартного модуля command (добавьте -m shell в команду).

В качестве простого примера рассмотрим последние несколько строк файла журнала сообщений на каждом из наших серверов:

ansible multi -s -a "tail /var/log/messages"

Как сказано выше, если требуется фильтровать журнал сообщений таким образом, как grep, нельзя использовать модуль command по умолчанию, вместо него мы используем shell:

ansible multi -s -m shell -a "tail /var/log/messages | grep ansible-command | wc -l"

Эта команда показывает, сколько ansible команд было запущено на каждом сервере (числа могут отличаться).

results matching ""

    No results matching ""