Ad Widget

Collapse

Проблема в работе net.tcp.service[https,,4443]

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • _AlekseY_
    Member
    • Apr 2012
    • 77

    #1

    Проблема в работе net.tcp.service[https,,4443]

    Здравствуйте.

    Понадобилось тут проверять доступность сервиса, работающего по https на порту 4443. Zabbix агент на сервере не установлен и возможности его установить нет.

    Использовал простую проверку net.tcp.service[https,,4443]. По результатам проверки возвращается 0, что значит - сервис не работает.

    Выкрутил дебаг левел на 4, в логе получил следующие записи.
    In substitute_key_macros() data:'net.tcp.service[https,,4443]'
    End of substitute_key_macros():SUCCEED data:'net.tcp.service[https,,4443]'
    In get_value() key:'net.tcp.service[https,,4443]'
    In get_value_simple() key_orig:'net.tcp.service[https,,4443] addr : '10.*.*.*'

    Попробовал поменять тип проверки на Zabbix agent, но в лог посыпались ошибки first error network, another error, по видимому из-за отсутствия агента.

    При попытке заёти на страницу через браузер всё проходит на ура.

    Подскажите, пожалуйста, куда копать???

    Zabbix Server 2.0.5
    OS SuSe 11.2
    Систему собирал из исходников.
    $ ./configure --enable-server --with-mysql --with-net-snmp --with-openipmi --with-libcurl
    Last edited by _AlekseY_; 05-04-2013, 13:42.
  • zalex_ua
    Senior Member
    Zabbix Certified Trainer
    Zabbix Certified SpecialistZabbix Certified Professional
    • Oct 2009
    • 1286

    #2
    Ищите дальше в логе строку которая возвращвется, например через 3 секунды.
    Code:
    7947:20130405:165503.777 check_https: curl_easy_perform failed for [10.20.0.1:443]: Timeout was reached

    Comment

    • _AlekseY_
      Member
      • Apr 2012
      • 77

      #3
      Есть такая.
      check_https: curl_easy_perform failed for [10.*.*.*:4443]: SSL connect error
      Это что у меня не работает???

      Из командной строки выполнил curl -v https://10.*.*.*:4443/
      В ответ получил:
      Code:
      * About to connect() to 10.*.*.* port 4443 (#0)
      *    Trying 10.*.*.*... connected
      * Connected to 10.*.*.* (10.*.*.*) port 4443 (#0)
      * successfully set sertificate verify locations:
      *    CAfile: none
      *    CApath: /etc/ssl/certs/
      * SSLv3, TLS handshake, Client hello (1):
      * error:140773F2:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert unexpected message
      * Closing connection #0
      curl: (35) error:140773F2:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert
      Попробовал сделать curl -v -sslv3 https://10.*.*.*:4443/
      Code:
      * About to connect() to 10.*.*.* port 4443 (#0)
      *    Trying 10.*.*.*... connected
      * Connected to 10.*.*.* (10.*.*.*) port 4443 (#0)
      * successfully set sertificate verify locations:
      *    CAfile: none
      *    CApath: /etc/ssl/certs/
      * SSLv3, TLS handshake, Client hello (1):
      * SSLv3, TLS handshake, Server hello (2):
      * SSLv3, TLS handshake, CERT (11):
      * SSLv3, TLS alert, Server hello (2):
      * SSL sertificate problem, verify that the CA cert is OK. Details:
      error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
      * Closing connection #0
      Это мне как то сертификат надо куда то скачивать и подкладывать???

      Comment

      • zalex_ua
        Senior Member
        Zabbix Certified Trainer
        Zabbix Certified SpecialistZabbix Certified Professional
        • Oct 2009
        • 1286

        #4
        Вот как выглядит у меня с тем самым хостом с которым заббикс заработал корректно:
        Code:
        # curl -v https://some_host
        * About to connect() to some_host port 443 (#0)
        *   Trying 10.20.*.*... connected
        * Connected to some_host (10.20.*.*) port 443 (#0)
        * successfully set certificate verify locations:
        *   CAfile: none
          CApath: /etc/ssl/certs
        * SSLv3, TLS handshake, Client hello (1):
        * SSLv3, TLS handshake, Server hello (2):
        * SSLv3, TLS handshake, CERT (11):
        * SSLv3, TLS alert, Server hello (2):
        * SSL certificate problem, verify that the CA cert is OK. Details:
        error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
        * Closing connection #0
        curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
        error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
        More details here: http://curl.haxx.se/docs/sslcerts.html
        
        curl performs SSL certificate verification by default, using a "bundle"
         of Certificate Authority (CA) public keys (CA certs). If the default
         bundle file isn't adequate, you can specify an alternate file
         using the --cacert option.
        If this HTTPS server uses a certificate signed by a CA represented in
         the bundle, the certificate verification probably failed due to a
         problem with the certificate (it might be expired, or the name might
         not match the domain name in the URL).
        If you'd like to turn off curl's verification of the certificate, use
         the -k (or --insecure) option.
        Это хост в локальной сети, его сертификат подписан НЕдоверенным ЦС.
        Это почти тоже самое что самоподписной сертификат.

        Почему же заббикс сервер работает ?
        Потому что в коде заббикса в функции process_httptest есть такте строки:
        Code:
        			CURLE_OK != (err = curl_easy_setopt(easyhandle, opt = CURLOPT_SSL_VERIFYPEER, 0L)) ||
        			CURLE_OK != (err = curl_easy_setopt(easyhandle, opt = CURLOPT_SSL_VERIFYHOST, 0L)))
        А что такое CURLOPT_SSL_VERIFYPEER и CURLOPT_SSL_VERIFYHOST вы можете почитать например здесь

        Comment

        • _AlekseY_
          Member
          • Apr 2012
          • 77

          #5
          Я правильно вас понял, что возникновение этой ошибки не критично для работоспособности проверки.

          Меня смущает, что в вашем случае всё это получается без прямого указания ключа -sslv3. А у меня без него обрывается сразу. Это где то настраивается??? Быть может в этом есть какая то заморока???

          Comment

          • zalex_ua
            Senior Member
            Zabbix Certified Trainer
            Zabbix Certified SpecialistZabbix Certified Professional
            • Oct 2009
            • 1286

            #6
            Originally posted by _AlekseY_
            Я правильно вас понял, что возникновение этой ошибки не критично для работоспособности проверки.

            Меня смущает, что в вашем случае всё это получается без прямого указания ключа -sslv3. А у меня без него обрывается сразу. Это где то настраивается??? Быть может в этом есть какая то заморока???
            Правильно поняли !
            Дейсвительно с проблемой без ключа sslv3 следует разобраться.

            Попробуйте с других сервероов запустить команду, сравните результат, разберитесь в чем разница и т.д.
            Попробуйте переустановить libcurl со всеми зависимостями.

            Comment

            • _AlekseY_
              Member
              • Apr 2012
              • 77

              #7
              Переустановил libcurl со всеми зависимостями. Проблема не исчезла. Устанавливал из репозитория с параметрами по умолчанию.
              Есть подозрение, что где то надо прописать SSLv3 умолчательным протоколом или как то так. К сожалению, я не знаю где это можно указать.
              Обновиться на более новые версии пакетов тоже не могу

              Версии используемых пакетов:
              zabbix@********:~> cat /etc/SuSE-release
              SUSE Linux Enterprise Server 11 (i586)
              VERSION = 11
              PATCHLEVEL = 2

              zabbix@********:~> curl --version
              curl 7.19.7 (i686-suse-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8j zlib/1.2.3 libidn/1.10
              Protocols: tftp ftp telnet dict ldap http file https ftps
              Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

              Comment

              Working...