Ad Widget

Collapse

grep в Userparameter

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • tikondrus
    Member
    • Jan 2011
    • 36

    #1

    grep в Userparameter

    навеяло статьей на хабре про мониторинг смарта винтов.
    добавил в конфиг агента
    Code:
    UserParameter=uHDD.health.[*], smartctl -H /dev/$1 | grep "test" | cut -f2 -d: | tr -d " "
    UnsafeUserParameters=1
    создал item, в котором uHDD.health.[hda]. Type of information - Character
    в результате получаю пустую строку, через zabbix_get тоже
    Code:
     [root@mars etc]zabbix_get -s 192.168.10.1 -p 10050 -k uHDD.health.[hda]
    если делаю UserParameter=uHDD.health.[*], smartctl -H /dev/$1
    то

    выполняю команду в консоли. всё хорошо
    Code:
    [root@mars etc]# smartctl -H /dev/hda
    smartctl version 5.37 [i686-redhat-linux-gnu] Copyright (C) 2002-6 Bruce Allen
    Home page is [url]http://smartmontools.sourceforge.net/[/url]
    
    === START OF READ SMART DATA SECTION ===
    SMART overall-health self-assessment test result: PASSED
    [root@mars etc]# smartctl -H /dev/hda | grep "test" | cut -f2 -d: | tr -d " "
    PASSED
    почему zabbix возвращает вместо "PASSED" пустую строку? и сервер и клиент версии 2.0.8.
    Item Status - Enabled. В "Not Supported" не переходит.
  • ArtemK
    Senior Member
    • May 2013
    • 232

    #2
    Попробуйте из под пользователя zabbix запустить команду, может прав не хватает? И лучше во всех скриптах и прочих конфигах писать полные пути до всяких smartctl, грепов и прочих.

    Comment

    • tikondrus
      Member
      • Jan 2011
      • 36

      #3
      добавление su не помогает.
      и повторяю, без грепа работает. т.е. smartctl -H /dev/hda возвращает тоже что и выполнение комманды в консоли

      Comment

      • ableev
        Senior Member
        Zabbix Certified Specialist
        • Oct 2012
        • 276

        #4
        Запускать smartctl можно из-под root, или с sudo.
        Code:
        localhost ~ # sudo -u zabbix smartctl -H /dev/sda
        smartctl 5.43 
        Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
        
        Smartctl open device: /dev/sda failed: Permission denied
        Если у вас еще нет набора команд, доступных заббиксу через sudo, советую сделать:
        Code:
        touch/etc/sudoers.d/zabbix
        chmod 440 /etc/sudoers.d/zabbix
        Файл создали.
        Выясняем, где лежит smartctl
        Code:
        localhost ~ # which smartctl
        /usr/sbin/smartctl
        Выяснили. Разрешаем заббиксу запускать его без пароля. Для этого добавляем строчку в sudoers для заббикса:
        Code:
        zabbix ALL=(ALL) NOPASSWD: /usr/sbin/smartctl
        И готово:
        Code:
        localhost ~ # sudo -u zabbix sudo /usr/sbin/smartctl -H /dev/sda
        smartctl 5.43
        Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
        
        === START OF READ SMART DATA SECTION ===
        SMART overall-health self-assessment test result: PASSED
        Теперь заббикс сможет запускать smartctl. Ну и напоследок, для красоты:
        Code:
         UserParameter=uHDD.health.[*], sudo /usr/sbin/smartctl -H /dev/$1 | grep -Po 'test\sresult:\s\K.*'

        Comment

        • gescheit
          Senior Member
          • Jul 2007
          • 156

          #5
          Выложил свой скриптик для проверки
          https://github.com/gescheit/scripts/...s/disksmart.sh.
          Запускается без аргументов. Выводит что-то вроде "/dev/ada0 ton of errors in log" если есть ошибки, или "OK" если всё нормально. Скрипт использует блокировки и кэширование данных, поэтому нужно вместе с ним еще и function.sh скачать.

          Comment

          • tikondrus
            Member
            • Jan 2011
            • 36

            #6
            2 ableev

            Спасибо, отличные разъяснения!

            теперь имею

            от рута

            Code:
            [root@mars2 etc]# /usr/sbin/smartctl -H /dev/hda
            smartctl version 5.37 [i686-redhat-linux-gnu] Copyright (C) 2002-6 Bruce Allen
            Home page is http://smartmontools.sourceforge.net/
            
            === START OF READ SMART DATA SECTION ===
            SMART overall-health self-assessment test result: PASSED
            от заббикса
            Code:
            [root@mars2 etc]# sudo -u zabbix /usr/sbin/smartctl -H /dev/hda
            smartctl version 5.37 [i686-redhat-linux-gnu] Copyright (C) 2002-6 Bruce Allen
            Home page is http://smartmontools.sourceforge.net/
            
            Smartctl open device: /dev/hda failed: Permission denied
            добавил прав

            Code:
            [root@mars2 etc]# ls -l /dev/hda
            brw-r----- 1 root disk 3, 0 Oct 12 13:58 /dev/hda
            [root@mars2 etc]# chmod o+r /dev/hda
            [root@mars2 etc]# sudo -u zabbix /usr/sbin/smartctl -H /dev/hda
            smartctl version 5.37 [i686-redhat-linux-gnu] Copyright (C) 2002-6 Bruce Allen
            Home page is http://smartmontools.sourceforge.net/
            
            Smartctl: Device Read Identity Failed (not an ATA/ATAPI device)
            
            A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.
            Last edited by tikondrus; 14-10-2013, 13:49.

            Comment

            • ableev
              Senior Member
              Zabbix Certified Specialist
              • Oct 2012
              • 276

              #7
              Не-не...
              Вы набираете
              Code:
               sudo -u zabbix /usr/sbin/smartctl -H /dev/hda
              Это запуск /usr/sbin/smartctl из-под zabbix.
              А надо
              Code:
               sudo -u zabbix sudo /usr/sbin/smartctl -H /dev/hda
              И в zabbix_agentd.conf добавить строчку
              [CODE]sudo /usr/sbin/smartctl -H $1[CODE]
              с sudo.
              Менять права на устройство не нужно.

              Comment

              • tikondrus
                Member
                • Jan 2011
                • 36

                #8
                ага, с sudo действительно работает

                Code:
                [root@zabbix]# sudo -u zabbix sudo /usr/sbin/smartctl -H /dev/sda
                smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-358.23.2.el6.x86_64] (local build)
                Copyright (C) 2002-12 by Bruce Allen, [url]http://smartmontools.sourceforge.net[/url]
                
                === START OF READ SMART DATA SECTION ===
                SMART overall-health self-assessment test result: PASSED
                или так

                Code:
                sudo -u zabbix sudo /usr/sbin/smartctl -H /dev/sda | grep "test"| cut -f2 -d: |tr -d " "
                PASSED


                в конфиг заббикса добавил
                Code:
                UserParameter=uHDD.health.[*],sudo /usr/sbin/smartctl -H /dev/$1 | grep "test"| cut -f2 -d: |tr -d " "

                результат не изменился, в "Last value" пустое значение


                /var/log/zabbix/zabbix_agentd.log изобилует

                Code:
                sudo: sorry, you must have a tty to run sudo
                для лечения необходимо в /etc/sudoers закоментировать строку Default requiretty:
                Code:
                 #Default requiretty
                и ЗАРАБОТАЛО!! спасибо

                Comment

                Working...