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

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


raspberry_pi:pi_4_model_b:raspberry_pi_os:librenms:configuration:extensions

Настройка дополнительных компонентов LibreNMS

В этой статье описаны некоторые дополнительные настройки системы мониторинга сети «LibreNMS». Сама установка описана тут.

:!: Для удобства, все операции выполняются из консоли с правами «root», для этого нужно ввести команду sudo -s, в противном случае, перед каждым вводом необходимо добавлять «sudo»1)!

Быстрая проверка ICMP

По умолчанию, LibreNMS опрашивает устройства каждые 5 минут, предварительно делая проверку доступности. При необходимости, интервал опроса можно снизить до 1 минуты2), но зачастую это не нужно, т.к. это создает дополнительную большую нагрузку на дисковую подсистему сервера мониторинга и более чем достаточно, просто ежеминутно проверять доступность устройства в сети, посредством отправки ICMP-запроса.

  1. Если установлен RRDCached3), его необходимо предварительно остановить

    systemctl stop rrdcached
  2. авторизуемся под пользователем «librenms»

    su - librenms
  3. открываем файл конфигурации

    nano config.php

    добавляем в него параметр «ping_rrd_step» или, если он там уже есть, – правим, сохраняем, закрываем

    $config['ping_rrd_step'] = 60;
  4. обновляем файлы RRD

    ./scripts/rrdstep.php -h all
  5. выходим из пользователя

    exit
  6. открываем конфигурацию Cron для LibreNMS

    nano /etc/cron.d/librenms

    и добавляем в нее

    *    *    * * *   librenms    /opt/librenms/ping.php >> /dev/null 2>&1
  7. запускаем службу RRDCached

    systemctl start rrdcached

При желании, немного извратившись, интервал проверки можно снизить до 30 секунд.

Настройка RRDCached

Для снижения нагрузки на дисковую подсистему сервера мониторинга, создаваемую RRD при обновлении графиков, крайне желательно настроить RRDCached.

  1. Устанавливаем пакет и его зависимости

    apt update && apt install rrdcached
  2. открываем конфигурацию

    nano /etc/default/rrdcached

    и вносим в нее изменения

    DAEMON=/usr/bin/rrdcached
    WRITE_TIMEOUT=1800
    WRITE_JITTER=1800
    WRITE_THREADS=4
    BASE_PATH=/opt/librenms/rrd/
    JOURNAL_PATH=/var/lib/rrdcached/journal/
    PIDFILE=/var/run/rrdcached.pid
    SOCKFILE=/run/rrdcached.sock
    SOCKGROUP=librenms
    DAEMON_GROUP=librenms
    DAEMON_USER=librenms
    BASE_OPTIONS="-B -F -R"
  3. меняем группу и владельца

    chown librenms:librenms /var/lib/rrdcached/journal/
  4. перезапускаем для применения новых настроек

    systemctl restart rrdcached
  5. авторизуемся под пользователем «librenms»

    su - librenms

    и включаем RRDCached в настройках LibreNMS4)

    ./lnms config:set rrdcached "unix:/run/rrdcached.sock"

Сбор сообщений syslog

Казалось бы, тут все просто, но нет – в официальной документации, по этому вопросу затаилась… ошибка! Но об этом чуть ниже.

Сначала все, как обычно:

  1. авторизуемся под пользователем «librenms»

    su - librenms
  2. включаем поддержку syslog и выходим

    ./lnms config:set enable_syslog 1 && exit
  3. обновляем списки пакетов и устанавливаем syslog-ng5)

    apt update && apt install syslog-ng-core
  4. открываем новую конфигурацию

    nano /etc/syslog-ng/conf.d/librenms.conf

    и вставляем в нее следующее

    source s_net {
            tcp(port(514) flags(syslog-protocol));
            udp(port(514) flags(syslog-protocol));
    };
    
    destination d_librenms {
            program("/opt/librenms/syslog.php" template ("$HOST||$FACILITY||$PRIORITY||$LEVEL||$TAG||$R_YEAR-$R_MONTH-$R_DAY $R_HOUR:$R_MIN:$R_SEC||$MSG||$PROGRAM\n") template-escape(yes));
    };
    
    log {
            source(s_net);
            source(s_sys);
            destination(d_librenms);
    };

    сохраняем, закрываем

  5. перечитываем конфигурацию

    syslog-ng-ctl reload

    и получаем в ответ ошибку

    Config reload failed, reverted to previous config
  6. вызываем синтаксический анализ

    syslog-ng --syntax-only

    а он нам ничего не говорит!

  7. тогда перезапускаем демона

    systemctl restart syslog-ng

    что вызывает ошибку

    Job for syslog-ng.service failed because the control process exited with error code.
  8. открываем журнал

    journalctl -u syslog-ng

    мотаем в самый низ и видим белым по черному

    Error resolving reference; content='source', name='s_sys', location='/etc/syslog-ng/conf.d/librenms.conf:12:9
  9. опять открываем конфигурацию

    nano /etc/syslog-ng/conf.d/librenms.conf

    и смотрим на 12-ю строчку

    source(s_sys);
  10. ищем такой источник выше, не находим, удивляемся и удаляем эту строку из пути лога, в итоге получается, что правильная базовая конфигурация выглядит так

    source s_net {
            tcp(port(514) flags(syslog-protocol));
            udp(port(514) flags(syslog-protocol));
    };
    
    destination d_librenms {
            program("/opt/librenms/syslog.php" template ("$HOST||$FACILITY||$PRIORITY||$LEVEL||$TAG||$R_YEAR-$R_MONTH>
    };
    
    log {
            source(s_net);
            destination(d_librenms);
    };
  11. еще раз перезапускаем демона

    systemctl restart syslog-ng

    и наслаждаемся работающей передачей логов в LibreNMS!

Очистка журнала

Единственный способ, очистить журнал syslog в LibreNMS, не залезая в базу данных, такой:

  • авторизоваться под пользователем

    sudo su - librenms
  • и выполнить6)

    ./lnms config:set syslog_purge 0
    ./daily.sh
    ./lnms config:set syslog_purge 30
    exit

Настройка MikroTik

Вообще, базовая настройка syslog на MikroTik, выглядит так, но все же лучше немного заморочиться и сделать так.


Дисклеймер

  • Использование материалов данной базы знаний разрешено на условиях лицензии, указанной внизу каждой страницы! При использовании материалов активная гиперссылка на соответствующую страницу данной базы знаний обязательна!
  • Автор не несет и не может нести какую либо ответственность за последствия использования материалов, размещенных в данной базе знаний. Все материалы предоставляются по принципу «как есть». Используйте их исключительно на свой страх и риск.
  • Все высказывания, мысли или идеи автора, размещенные в материалах данной базе знаний, являются исключительно его личным субъективным мнением и могут не совпадать с мнением читателей!
  • При размещении ссылок в данной базе знаний на интернет-страницы третьих лиц автор не несет ответственности за их техническую функциональность (особенно отсутствие вирусов) и содержание! При обнаружении таких ссылок, можно и желательно сообщить о них в комментариях к соответствующей статье.
1)
К примеру «sudo systemctl status rrdcached».
2)
А предварительную ping-проверку можно вовсе отключить.
3)
См. ниже.
4)
Тоже самое можно сделать через верб интерфейс по пути «Global Settings» → «Poller» → «Datastore: RRDTool» → «Enable rrdcached (socket)», но зачем…
5)
При этом «rsyslog» автоматически удаляется!
6)
Можно весь этот фрагмент скопировать, вставить и нажать ввод.

Обсуждение

Ваш комментарий:
L L V P M H V O L​ N G A V E B V
 
Последнее изменение: 2023/03/21 13:21 — Николай Солошин