Вам нужно написать сценарий для проверки этих файлов. В этом скрипте вам нужно вывести значения, которые вы хотите отобразить на графике как данные о производительности. Я советую вам прочитать руководство по разработке плагина 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/.
Вы можете использовать Journal API для программного доступа к журналу systemd.
В качестве альтернативы вы можете рассмотреть возможность запуска службы systemd -журнала -на своем хосте, которая экспортирует данные журнала через HTTP-сервер, и в этом случае вы можете использовать реализацию HTTP-клиента на другом языке для запросов. непосредственно журнал.
Официальный 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 для 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
, для чтения из журнала, включая совпадения для фильтрации. Вы можете узнать больше об этом из исходного кода
Альтернативой использованию 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-сервер. По крайней мере, рассмотрите возможность открытия порта только на локальном хосте.
Я думаю, что journalctl
захватывает подмножество /var/log/syslog
, причем это подмножество представляет собой вещи, о которых оно знает. Это только из наблюдений. Если вы запустите journalctl
без параметров, вы увидите все журналы. Выйдите, нажав q
, затем запустите tail /var/log/syslog
. Вы заметите тот же вывод, но также то, что информация в файле syslog
будет содержать больше, чем вывод journalctl
.
Таким образом, в свете приведенного ниже комментария вы можете убедиться, что у вас установлен системный журнал, и просто проанализировать /var/log/syslog
то, что вам нужно. Вы также можете сделать так, чтобы ваша служба (не понимала, что это )записывает в собственный журнал в /var/log/
.