Инструменты пользователя

Инструменты сайта


raspberry_pi:pi_4_model_b:raspberry_pi_os:syslog-ng:loganalyzer

Использование LogAnalyzer без MySQL

До меня это не сразу дошло, но LogAnalyzer можно спокойно использовать без базы данных, что актуально для дома или в маленьких проектах, где логи смотреть надо, а заморачиваться и излишне нагружать систему не хочется.

Однако, в таком режиме доступны не все функции, к примеру, авторизация пользователей1), отчеты и… может быть что-то еще, не знаю.

:!: Вместо LogAnalyzer можно использовать LibreNMS.

Apache

Нужен для работы LogAnalyzer. Ниже мое творчество, основанное на данных2) из разных источников. Установка производится на Raspberry Pi OS 11 (bullseye).

Установка

  1. Обновить систему sudo apt update && sudo apt upgrade;
  2. установить необходимые пакеты sudo apt install apache2 php libapache2-mod-php;
  3. установить библиотеку GD3) в зависимости от установленной ранее версии PHP4) sudo apt install php7.4-gd;
  4. открыть конфигурацию sudo nano /etc/apache2/apache2.conf и установить переменную «ServerName»5);
  5. открыть sudo nano /etc/apache2/mods-enabled/dir.conf и переместить «index.php» в начало списка;

Настройка

В базовом варианте настроить нужно только авторизацию:

  1. выполнить sudo htpasswd -c /etc/apache2/.htpasswd UserName6) и ввести 2 раза новый пароль7);
  2. открыть sudo nano /etc/apache2/sites-enabled/000-default.conf и в секцию «<VirtualHost *:80>» вставить код ниже.
<Directory "/var/www/html">
   AuthType Basic
   AuthName "Restricted Content"
   AuthUserFile /etc/apache2/.htpasswd
   Require valid-user
</Directory>

Теперь нужно проверить синтаксис конфигурации и, если все хорошо, перезапустить сервис:

  • sudo apache2ctl configtest;
  • sudo systemctl restart apache2.

LogAnalyzer

Опять же, информация ниже, это микс из некоторого количества разных источников8), т.к. ни в одном месте нет единой картины, увы, детка, это опен сорс, чтоб его…

Установка

В домашнем каталоге выполнить последовательно следующие команды:

  1. mkdir tmpLA && cd tmpLA;
  2. wget https://download.adiscon.com/loganalyzer/loganalyzer-4.1.12.tar.gz9);
  3. tar zxvf loganalyzer-4.1.12.tar.gz;
  4. sudo mv loganalyzer-4.1.12/src/* /var/www/html;
  5. sudo chown -R www-data:www-data /var/www/html;
  6. cd ~ && rm -r tmpLA.

Настройка

Для заполнения конфигурационного файла, проще всего перейти браузером по адресу сервера и ответить на вопросы конфигуратора, после чего в каталоге с анализатором создастся файл «config.php».

Параметры

Ниже описание некоторых полезных параметров из файла конфигурации, для открытия которого нужно выполнить команду sudo nano /var/www/html/config.php.

  • $CFG['ViewMessageCharacterLimit'] = 100; – изменение лимита символов в колонке «Message»;
  • $CFG['InjectHtmlHeader'] = "<style>.mainheader > tbody > tr > td:nth-child(2) { display:none; }</style>"; – скрытие рекламного баннера;
  • $CFG['ShowMessage'] = true; – так и не понял, что это делает, а в код поленился лезть;
  • $CFG['Columns'] = array ( SYSLOG_DATE, SYSLOG_FACILITY, SYSLOG_SEVERITY, SYSLOG_HOST, SYSLOG_MESSAGE ); – изменение состава колонок вида «Legacy Columns Configuration»10);
  • $CFG['DefaultViewsID'] = "SYSLOG"; – вид по умолчанию, если в источнике не указано другое;
  • $CFG['ViewDefaultLanguage'] = "ru"; – язык по умолчанию, см. секцию с локализацией;
  • $CFG['ViewEnableAutoReloadSeconds'] = 60; – периодичность обновления страницы по умолчанию;
  • $CFG['DefaultSourceID'] = 'Source2'; – источник по умолчанию.

Источники

Дополнительные источники добавляются в конце конфигурации перед закрывающим тегом «?>».

$CFG['Sources']['Source2']['ID'] = 'Source2';
$CFG['Sources']['Source2']['Name'] = 'MikroTik Devices';
$CFG['Sources']['Source2']['ViewID'] = 'LEGACY';
$CFG['Sources']['Source2']['SourceType'] = SOURCE_DISK;
$CFG['Sources']['Source2']['LogLineType'] = 'Syslog23';
$CFG['Sources']['Source2']['DiskFile'] = '/var/log/mikrotik/remote.log';

Данный пример иллюстрирует добавление логов устройств MikroTik, которые пишутся в файл «remote.log» в формате IETF-syslog (RFC 5424) и для просмотра используется набор колонок «legacy».

Локализация

Чисто для эстетического удовольствия перевел те части интерфейса, которые доступны в рамках этой статьи.

Для установки русского перевода LogAnalyzer'а нужно в домашнем каталоге сделать следующее:

  1. wget https://wiki.soloshin.su/_media/raspberry_pi/pi_4_model_b/raspberry_pi_os/syslog-ng/loganalyzer-4.1.12-russian.tar.gz;
  2. tar -xvf loganalyzer-4.1.12-russian.tar.gz && rm loganalyzer-4.1.12-russian.tar.gz;
  3. sudo mv ru /var/www/html/lang.

:!: Однако, это не совсем все… Часть строк находится в файле конфигурации.

Раз кусочек11):

$CFG['SearchCustomButtonCaption'] = "Хочу расстроиться!";

И вот еще:

$CFG['Search'][] = array ( "DisplayName" => "Предупреждения и ошибки", "SearchQuery" => "filter=severity%3A0%2C1%2C2%2C3%2C4&search=Search" );
$CFG['Search'][] = array ( "DisplayName" => "Только ошибки", "SearchQuery" => "filter=severity%3A0%2C1%2C2%2C3&search=Search" );
$CFG['Search'][] = array ( "DisplayName" => "Сообщения за последний час", "SearchQuery" => "filter=datelastx%3A1&search=Search" );
$CFG['Search'][] = array ( "DisplayName" => "Сообщения за последние 12 часов", "SearchQuery" => "filter=datelastx%3A2&search=Search" );
$CFG['Search'][] = array ( "DisplayName" => "Сообщения за последние 24 часа", "SearchQuery" => "filter=datelastx%3A3&search=Search" );
$CFG['Search'][] = array ( "DisplayName" => "Сообщения за последние 7 дней", "SearchQuery" => "filter=datelastx%3A4&search=Search" );
$CFG['Search'][] = array ( "DisplayName" => "Сообщения за последний 31 день", "SearchQuery" => "filter=datelastx%3A5&search=Search" );

Дисклеймер

  • Использование материалов данной базы знаний разрешено на условиях лицензии, указанной внизу каждой страницы! При использовании материалов активная гиперссылка на соответствующую страницу данной базы знаний обязательна!
  • Автор не несет и не может нести какую либо ответственность за последствия использования материалов, размещенных в данной базе знаний. Все материалы предоставляются по принципу «как есть». Используйте их исключительно на свой страх и риск.
  • Все высказывания, мысли или идеи автора, размещенные в материалах данной базе знаний, являются исключительно его личным субъективным мнением и могут не совпадать с мнением читателей!
  • При размещении ссылок в данной базе знаний на интернет-страницы третьих лиц автор не несет ответственности за их техническую функциональность (особенно отсутствие вирусов) и содержание! При обнаружении таких ссылок, можно и желательно сообщить о них в комментариях к соответствующей статье.
1)
Что легко решается авторизацией Apache.
2)
Источник раз, два и много других.
3)
Нужна для отображения графиков LogAnalyzer.
4)
В моем случае, как видно, PHP 7.4.
5)
Доменное имя машины, где установлен Апач, к примеру «server.home.int».
6)
Где «UserName», понятно, имя пользователя
7)
Далее, для добавления других пользователей убрать флаг «-c»!
9)
Актуальную версию можно узнать тут.
10)
Данный кейс оптимален для просмотра логов MikroTik.
11)
Забавная, кстати, кнопка – быстрая команда, по умолчанию ищущая слово «error» в логе.

Обсуждение

Ваш комментарий:
J W A P A N R F J Y B E V T J T
 
Последнее изменение: 2023/03/21 19:29 — Николай Солошин