Ad Widget

Collapse

SMART by Zabbix agent 2

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Tonik
    Junior Member
    • Jun 2023
    • 13

    #1

    SMART by Zabbix agent 2

    Добрый день. Zabbix Server 6.4.7.
    Есть компьютер Windows 10 x64 LTSC 21H2 (ip 192.168.69.82), установлен Zabbix Agent 2 (6.4.7) и Smartmontools 7.3.
    Добавлен шаблон "SMART by Zabbix agent 2", но данные по нему не приходят.

    Вывод команд:
    Code:
    root@zabbix:/home/zabbix# zabbix_get -s 192.168.69.82 -k system.run["smartctl --scan-open"]
    /dev/sda -d ata # /dev/sda, ATA device
    /dev/sdb -d ata # /dev/sdb, ATA device
    /dev/sdc -d ata # /dev/sdc, ATA device
    /dev/sdd -d scsi # /dev/sdd, SCSI device
    /dev/sde -d scsi # /dev/sde, SCSI device
    /dev/sdf -d scsi # /dev/sdf, SCSI device
    /dev/sdg -d scsi # /dev/sdg, SCSI device
    /dev/csmi1,0 -d ata # /dev/csmi1,0, ATA device
    /dev/csmi1,1 -d ata # /dev/csmi1,1, ATA device
    /dev/csmi1,2 -d ata # /dev/csmi1,2, ATA device
    /dev/csmi1,3 -d ata # /dev/csmi1,3, ATA device
    Code:
    root@zabbix:/home/zabbix# zabbix_get -s 192.168.69.82 -k smart.disk.get
    []
    root@zabbix:/home/zabbix# zabbix_get -s 192.168.69.82 -k smart.disk.discovery
    []
    В чем ошибка? Подскажите, пожалуйста. Спасибо.
    Last edited by Tonik; 26-03-2024, 10:33.
  • Answer selected by Tonik at 27-03-2024, 18:17.
    Hamardaban
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2019
    • 2713

    Т.е. smartctl вызывается в забиксе нормально и данные возвращает... Но происходит "exit_status": 2 и из-за этого видимо он данные игнорирует....
    (в исходниках написано что эта ошибка логиируется если dp.SmartStatus == nil . т.е. статуса смарта нет в выводе)
    На форуме были похожие темы - народ вроде сошелся на использовании более старой версии smartctl...
    Можно разобраться что это за причина и пробовать чинить, но проще перейти на шаблон старого агента с вызовом smartctl и lld
    Last edited by Hamardaban; 27-03-2024, 14:28.

    Comment

    • Hamardaban
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • May 2019
      • 2713

      #2
      Проверьте правильно ли на агенте настроен путь к smartctl в Plugins.Smart.Path
      и есть ли ошибки в логе агента относящиеся к данному плагину. Попробуйте увеличить уровень логирования и проследить как выполняется запрос данных.
      Ключи какой тип имеют? Активный или пассивный агент?
      Last edited by Hamardaban; 26-03-2024, 19:25.

      Comment

      • Tonik
        Junior Member
        • Jun 2023
        • 13

        #3
        Файл smart.conf я не настраивал. Не настривая его, у меня работает шаблон "SMART by Zabbix agent 2" (пассивный) на другом компьютере (192.168.69.79). Но там нет raid-платы и стоит Zabbix Agent 2 (6.0.7) на Windows Server 2022 Standard, а Smartmontools 7.3 такой же.
        Я попробовал установить на 192.168.69.82 тоже Zabbix Agent 2 (6.0.7), результат так же пустой.
        Тогда я включил DebugLevel=5 и в zabbix_agent2.log получил вот это:
        Code:
        2024/03/26 13:46:45.074466 received passive check request: 'smart.disk.get' from '192.168.69.10'
        2024/03/26 13:46:45.074466 [1] processing update request (1 requests)
        2024/03/26 13:46:45.074466 [1] adding new request for key: 'smart.disk.get'
        2024/03/26 13:46:45.074466 [1] created direct exporter task for plugin 'Smart' itemid:0 key 'smart.disk.get'
        2024/03/26 13:46:45.074466 executing direct exporter task for key 'smart.disk.get'
        2024/03/26 13:46:45.088494 [Smart] executing smartctl command: smartctl --scan -j
        2024/03/26 13:46:47.151073 [Smart] command smartctl --scan -j smartctl raw response: {
          "json_format_version": [
            1,
            0
          ],
          "smartctl": {
            "version": [
              7,
              3
            ],
            "svn_revision": "5338",
            "platform_info": "x86_64-w64-mingw32-w10-21H2",
            "build_info": "(sf-7.3-1)",
            "argv": [
              "smartctl",
              "--scan",
              "-j"
            ],
            "exit_status": 0
          },
          "devices": [
            {
              "name": "/dev/sda",
              "info_name": "/dev/sda",
              "type": "ata",
              "protocol": "ATA"
            },
            {
              "name": "/dev/sdb",
              "info_name": "/dev/sdb",
              "type": "ata",
              "protocol": "ATA"
            },
            {
              "name": "/dev/sdc",
              "info_name": "/dev/sdc",
              "type": "ata",
              "protocol": "ATA"
            },
            {
              "name": "/dev/sdd",
              "info_name": "/dev/sdd",
              "type": "scsi",
              "protocol": "SCSI"
            },
            {
              "name": "/dev/sde",
              "info_name": "/dev/sde",
              "type": "scsi",
              "protocol": "SCSI"
            },
            {
              "name": "/dev/sdf",
              "info_name": "/dev/sdf",
              "type": "scsi",
              "protocol": "SCSI"
            },
            {
              "name": "/dev/sdg",
              "info_name": "/dev/sdg",
              "type": "scsi",
              "protocol": "SCSI"
            },
            {
              "name": "/dev/csmi1,0",
              "info_name": "/dev/csmi1,0",
              "type": "ata",
              "protocol": "ATA"
            },
            {
              "name": "/dev/csmi1,1",
              "info_name": "/dev/csmi1,1",
              "type": "ata",
              "protocol": "ATA"
            },
            {
              "name": "/dev/csmi1,2",
              "info_name": "/dev/csmi1,2",
              "type": "ata",
              "protocol": "ATA"
            },
            {
              "name": "/dev/csmi1,3",
              "info_name": "/dev/csmi1,3",
              "type": "ata",
              "protocol": "ATA"
            }
          ]
        }
        2024/03/26 13:46:47.151073 [Smart] executing smartctl command: smartctl --scan -d sat -j
        2024/03/26 13:46:47.278133 [Smart] command smartctl --scan -d sat -j smartctl raw response: {
          "json_format_version": [
            1,
            0
          ],
          "smartctl": {
            "version": [
              7,
              3
            ],
            "svn_revision": "5338",
            "platform_info": "x86_64-w64-mingw32-w10-21H2",
            "build_info": "(sf-7.3-1)",
            "argv": [
              "smartctl",
              "--scan",
              "-d",
              "sat",
              "-j"
            ],
            "exit_status": 0
          }
        }
        2024/03/26 13:46:47.278133 [Smart] executing smartctl command: smartctl -a /dev/csmi1,0 -j
        2024/03/26 13:46:47.278642 [Smart] executing smartctl command: smartctl -a /dev/csmi1,1 -j
        2024/03/26 13:46:47.430248 [Smart] command smartctl -a /dev/csmi1,0 -j smartctl raw response: {
          "json_format_version": [
            1,
            0
          ],
          "smartctl": {
            "version": [
              7,
              3
            ],
            "svn_revision": "5338",
            "platform_info": "x86_64-w64-mingw32-w10-21H2",
            "build_info": "(sf-7.3-1)",
            "argv": [
              "smartctl",
              "-a",
              "/dev/csmi1,0",
              "-j"
            ],
            "exit_status": 2
          },
          "local_time": {
            "time_t": 1711536407,
            "asctime": "Wed Mar 26 13:46:47 2024 RTZ"
          },
          "device": {
            "name": "/dev/csmi1,0",
            "info_name": "/dev/csmi1,0",
            "type": "ata",
            "protocol": "ATA"
          }
        }
        2024/03/26 13:46:47.430248 [Smart] skipping device /dev/csmi1,0
        2024/03/26 13:46:47.430776 [Smart] command smartctl -a /dev/csmi1,1 -j smartctl raw response: {
          "json_format_version": [
            1,
            0
          ],
          "smartctl": {
            "version": [
              7,
              3
            ],
            "svn_revision": "5338",
            "platform_info": "x86_64-w64-mingw32-w10-21H2",
            "build_info": "(sf-7.3-1)",
            "argv": [
              "smartctl",
              "-a",
              "/dev/csmi1,1",
              "-j"
            ],
            "exit_status": 2
          },
          "local_time": {
            "time_t": 1711536407,
            "asctime": "Wed Mar 26 13:46:47 2024 RTZ"
          },
          "device": {
            "name": "/dev/csmi1,1",
            "info_name": "/dev/csmi1,1",
            "type": "ata",
            "protocol": "ATA"
          }
        }
        2024/03/26 13:46:47.430776 [Smart] skipping device /dev/csmi1,1
        2024/03/26 13:46:47.430776 executed direct exporter task for key 'smart.disk.get'
        2024/03/26 13:46:47.430776 sending passive check response: '[]' to '192.168.69.10'
        ​Прописал в smart.conf:
        Code:
        Plugins.Smart.Path="C:\Program Files\smartmontools\bin\smartctl.exe"
        Вывод аналогично пустой, в zabbix_agent2.log теперь вместо "command smartctl" прописано "command "C:\Program Files\smartmontools\bin\smartctl.exe"

        Меня интересует состояние sda, sdb, sdc дисков, они подключены в материнскую плату, остальные подключены в raid плату, их состояние я буду мониторить через плату. Чувствую буду писать сам шаблон для мониторинга используя команды smartctl: обнаружу через фильтр диски ata начинающиеся на sd и у каждого буду выполнять команду smartctl -A /dev/sdX. Так, кстати, все параметры буду мониторить.​

        Comment

        • Hamardaban
          Senior Member
          Zabbix Certified SpecialistZabbix Certified Professional
          • May 2019
          • 2713

          #4
          Т.е. smartctl вызывается в забиксе нормально и данные возвращает... Но происходит "exit_status": 2 и из-за этого видимо он данные игнорирует....
          (в исходниках написано что эта ошибка логиируется если dp.SmartStatus == nil . т.е. статуса смарта нет в выводе)
          На форуме были похожие темы - народ вроде сошелся на использовании более старой версии smartctl...
          Можно разобраться что это за причина и пробовать чинить, но проще перейти на шаблон старого агента с вызовом smartctl и lld
          Last edited by Hamardaban; 27-03-2024, 14:28.

          Comment

          • Tonik
            Junior Member
            • Jun 2023
            • 13

            #5
            Спасибо за подсказку, но я лучше сам тогда напишу шаблон.
            smartctl -j --scan-open выводит JSON, $..[?(@.type=='ata')].name парсит список дисков ATA. Потом просто сделаю предобработку на проверку /dev/sd, чтоб конкретно только диски в материнке мониторить.

            Comment

            Working...