Ad Widget

Collapse

Ubuntu + Zabbix 6 + Rsyslog

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sherwood
    Junior Member
    • Jan 2025
    • 6

    #1

    Ubuntu + Zabbix 6 + Rsyslog

    Добрый, не могу разобраться с ошибкой.

    По инструкции из инета настроил файл rsyslog.conf то есть вписал в конец строку if $fromhost-ip contains '192.168.155.16' then /var/log/mikrotik.log (ip свой). На оборудовании настроил логирование на сервер, логирование пошло в файле есть данные. Далее в Zabbix в Zabbix-server элементы данных создал новый элемент данных по инструкции - https://www.zabbix.com/documentation...ypes/log_items Все заработало, теперь можно смотреть логи с этого устройства в Zabbix. Далее добавил еще одно устройство и все тоже работало. Теперь нужно добавить еще одно устройство и вот тут проблема которая заключается в том что если посмотреть логи последнего устройства в Zabbix то там будут логи двух устройство последнего и предпоследнего. В файлах rsyslog логи тех устройств что и положено. Получается что Zabbix почему то читает два разных файла логов и показывает их как одно.

    Click image for larger version

Name:	Снимок экрана 2025-01-02 в 10.47.33.png
Views:	148
Size:	17.1 KB
ID:	496675

    Click image for larger version

Name:	Снимок экрана 2025-01-02 в 10.48.40.png
Views:	102
Size:	79.2 KB
ID:	496676

    Click image for larger version

Name:	Снимок экрана 2025-01-02 в 17.25.29.png
Views:	101
Size:	15.3 KB
ID:	496677
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Тут проблема не в Zabbix-е, а в настройках rsyslogd. Условие в последней строке конфига подходит под оба устройства (последнее и предпоследнее), поэтому срабатывает на оба - данные с предпоследнего устройства пишутся в два лог-файла параллелльно.
    Нужно либо в последней строке конфига поменять условие с "contains" (поиск подстроки) на точное совпадение, либо в строке для предпоследнего устройства добавить ещё действие "stop", чтобы для него обработка не шла дальше.

    Comment

    • sherwood
      Junior Member
      • Jan 2025
      • 6

      #3
      Originally posted by Kos
      Условие в последней строке конфига подходит под оба устройства (последнее и предпоследнее)
      А под первое оно не подходит, вроде одинаковые строчки в конфиге? (Я новичок в этом, просто хочу разобраться).

      Originally posted by Kos
      поэтому срабатывает на оба - данные с предпоследнего устройства пишутся в два лог-файла параллелльно.
      Куда пишутся? В файлах mikrotik.log nasts220.log ciscoSG300.log логи правильные, данные с тех устройств с каких и приходят.

      Originally posted by Kos
      Нужно либо в последней строке конфига поменять условие с "contains" (поиск подстроки) на точное совпадение, либо в строке для предпоследнего устройства добавить ещё действие "stop", чтобы для него обработка не шла дальше.
      Попробовать в двух последних строчках поменять на - isequal ?

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        Originally posted by sherwood
        А под первое оно не подходит, вроде одинаковые строчки в конфиге? (Я новичок в этом, просто хочу разобраться).
        Условие
        Code:
        if $fromhost-ip contains '10.30.178.2'
        срабатывает и для адреса "10.30.178.2", и для адреса "10.30.178.254" (он тоже содержит подстроку "10.30.178.2"). Адрес "10.30.178.1" такой строки не содержит.

        При таких настройках у вас в файл ciscoSG300.log будут писаться логи с двух устройств, посмотрите на этот лог повнимательнее.
        Last edited by Kos; 03-01-2025, 10:15.

        Comment

        • sherwood
          Junior Member
          • Jan 2025
          • 6

          #5
          Originally posted by Kos
          Code:
          if $fromhost-ip contains '10.30.178.2'
          срабатывает и для адреса "10.30.178.2", и для адреса "10.30.178.254" (он тоже содержит подстроку "10.30.178.2"). Адрес "10.30.178.1" такой строки не содержит.
          Теперь понятно, спасибо за разъяснение.

          Originally posted by Kos
          таких настройках у вас в файл ciscoSG300.log будут писаться логи с двух устройств, посмотрите на этот лог повнимательнее.
          Прошу прощение, да посмотрел внимательно действительно Rsyslog пишет в один файл данные с двух устройств. Поставил после второй строчки -
          Code:
          &stop
          И все заработало. Спасибо.

          Comment

          Working...