Ad Widget

Collapse

Сложные веб проверки

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • noworry
    Junior Member
    • Jan 2011
    • 18

    #1

    Сложные веб проверки

    Всем Здравствуйте. Есть такая задачка дергать определенное значение на странице. Сейчас это делается шел скриптом, в нем курл.
    Так вот, проблема заключается в том, что если контента на странице нет, мой шел скрипт с парой седом подвисает в процессах на хосте, иногда даже это полностью "забивает" заббикс агента и я не получаю данные с хоста.
    Хочется или оптимизировать шел скрипт, или все же понять как красиво это сделать веб мониторингом. Потому, что при недоступности сервиса как минимум график выпадает на 5-10 минут.
    Сейчас это выглядит так:
    Code:
    UserParameter=site.status.item[*],/usr/bin/curl --silent --connect-timeout 10 --max-time 10 $1 | sed -n $2p | sed 's/^.*:\ //'
    Буду рад советам. Спасибо
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    1) Попробуйте увеличить таймауты для zabbix_agent и zabbix_server
    /etc/zabbix/zabbix_agentd.conf
    Timeout=30
    /etc/zabbix/zabbix_server.conf
    Code:
    ### Option: Timeout
    #       Specifies how long we wait for agent, SNMP device or external check (in seconds).
    #
    # Mandatory: no
    # Range: 1-30
    # Default:
    Timeout=30
    И рестартовать zabbix_agent и zabbix_server
    По умолчанию там 3 сек Timeout

    2) Добавить код, чтобы ни при каких условиях не было пустой строки (или данных неправильного типа) на выходе скрипта и item не перешёл в состояние "не поддерживается"
    Пример:
    bash-3.00# echo "test"| sed "s/^\$/OK/"
    test
    bash-3.00# echo ""| sed "s/^\$/OK/"
    OK
    3) Пробовали использовать для своей задачи http://www.zabbix.com/documentation/...web_monitoring ?
    Last edited by dima_dm; 15-01-2011, 06:52.

    Comment

    • noworry
      Junior Member
      • Jan 2011
      • 18

      #3
      1)таймауты не помогут...
      2)проблема действительно в том, что итем уходит в not supported на какое то время. Спасибо
      3)я все свои веб проверки перевел на внутренние мехаинзмы Z, но так и не понял как мне отлавливать и сохранять число находящееся на странице.

      Пробую добавить sed 's/^\$/OK/' и ничего. Не пойму, или у меня там вообще ничего не вылетает вместо пустой строки или...непонятно пока

      Comment

      • noworry
        Junior Member
        • Jan 2011
        • 18

        #4
        Вот как я решил эту проверку. Может кому тоже понадобится

        Code:
        #!/bin/bash
        var1=`/usr/bin/curl --silent --connect-timeout 20 $1 | sed -n $2p |sed  's/^.*:\ //'`
        if [ $var1 -eq $some ];then
        echo $var1
        else
        echo "-1"
        fi
        exit
        И поменял в Items - Data type на Numeric(float)

        Comment

        Working...