Как проанализировать журналы журнала Leanction за пределами LeanctCtle?

Вам нужно написать сценарий для проверки этих файлов. В этом скрипте вам нужно вывести значения, которые вы хотите отобразить на графике как данные о производительности. Я советую вам прочитать руководство по разработке плагина https://nagios-plugins.org/doc/guidelines.html.

Вы можете выполнить проверку с помощью NRPE или альтернативно через SSH с помощью плагина check_by_ssh или плагина check_by_ssh_master https://exchange.nagios.org/directory/Plugins/%2A-Remote-Check-Tunneling/check_by_ssh_master/details.

Для просмотра графиков вам понадобится pnp4nagios https://docs.pnp4nagios.org/.

2
10.10.2018, 03:04
2 ответа

Вы можете использовать Journal API для программного доступа к журналу systemd.

В качестве альтернативы вы можете рассмотреть возможность запуска службы systemd -журнала -на своем хосте, которая экспортирует данные журнала через HTTP-сервер, и в этом случае вы можете использовать реализацию HTTP-клиента на другом языке для запросов. непосредственно журнал.

API журнала

Официальный API журнала предоставляется как часть systemd и используется для реализации журналаctl. Это C API.

Этот API напрямую обращается к файлам, записанным systemd -journald в /var/log/journalили /run/log/journal, поэтому вам нужны соответствующие разрешения для чтения из этих мест, что обычно означает, что вам нужно запускать свой код от имени пользователя root.

Этот API также требует, чтобы вы связались с библиотеками systemd и чтобы они были доступны во время выполнения. Вам необходимо установить пакет libsystemd-devв вашей системе Ubuntu 18.04, чтобы иметь возможность скомпилировать и связать его.

sudo apt-get install libsystemd-dev

Вы можете найти справочную страницу для sd -журнала (3)для общего обзора этого API. Для более конкретного случая запроса журнала см. sd _journal _next (3 )(, который включает хороший пример с полной простой программой ), а также sd _журнал _добавить _совпадение (3)для ограничения получаемых совпадений (для эффективной реализации запроса журнала. )Вам также понадобится sd _журнал _получить _данные (3 ), sd _журнал _открыть (3)и т. д., но, надеюсь, эти указатели помогут вам начать работу с журналом напрямую.)

Привязки Python

Существуют привязки Python для systemd из официального проекта systemd, которые включают привязки для Journal API.

Эти модули также доступны в виде пакетов Ubuntu 18.04,который вы можете установить с помощью:

sudo apt-get install python3-systemd

...для Python 3 (рекомендуется ), или, если вам все еще нужно использовать Python 2, вы можете использовать:

sudo apt-get install python-systemd

См. документацию по Readerклассу модуля systemd.journalв строках документации кода . Этот класс дает вам доступ для чтения к журналу, который, вероятно, вас интересует.

Крепления для го

В модуле github.com/coreos/go -systemd есть привязки Go для библиотек systemd.

Взгляните на подмодуль sdjournal, в частности тип JournalReader, для чтения из журнала, включая совпадения для фильтрации. Вы можете узнать больше об этом из исходного кода

Журнал Gatewayd

Альтернативой использованию Journal API для прямого доступа к файлам журнала является запуск службы, которая экспортирует их через HTTP-сервер. Systemd предоставляет такую ​​услугу через systemd -journal -gatewayd .

Эта программа доступна в Ubuntu 18.04 как часть удаленного пакета systemd -journal -, поэтому вы можете установить и включить ее, используя:

sudo apt-get install systemd-journal-remote
sudo systemctl enable --now systemd-journal-gatewayd

Который будет экспортировать HTTP-сервер на порт 19531, который вы можете использовать для просмотра и запроса журнала.

Подробнее см. справочную страницу для systemd -journal -gatewayd.service (8 ), которая включает несколько примеров доступа к нему с помощью curl. Вы можете заставить его экспортировать данные, используя свой собственный формат экспорта журнала , как JSON или как системный журнал -, как обычный текст.

Если вы используете шлюз systemd -log -, убедитесь, что понимаете последствия для безопасности экспорта данных журнала через HTTP-сервер. По крайней мере, рассмотрите возможность открытия порта только на локальном хосте.

5
27.01.2020, 21:55

Я думаю, что journalctlзахватывает подмножество /var/log/syslog, причем это подмножество представляет собой вещи, о которых оно знает. Это только из наблюдений. Если вы запустите journalctlбез параметров, вы увидите все журналы. Выйдите, нажав q, затем запустите tail /var/log/syslog. Вы заметите тот же вывод, но также то, что информация в файле syslogбудет содержать больше, чем вывод journalctl.

Таким образом, в свете приведенного ниже комментария вы можете убедиться, что у вас установлен системный журнал, и просто проанализировать /var/log/syslogто, что вам нужно. Вы также можете сделать так, чтобы ваша служба (не понимала, что это )записывает в собственный журнал в /var/log/.

1
27.01.2020, 21:55

Теги

Похожие вопросы