ZABBIX Forums  

Go Back   ZABBIX Forums > Zabbix in Your Language > На русском языке

Reply
 
Thread Tools Display Modes
  #1  
Old 05-04-2013, 12:24
_AlekseY_ _AlekseY_ is offline
Member
 
Join Date: Apr 2012
Posts: 77
Default Проблема в работе 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 at 13:42.
Reply With Quote
  #2  
Old 05-04-2013, 16:07
zalex_ua zalex_ua is offline
Senior Member
Zabbix certified specialist
 
Join Date: Oct 2009
Location: Riga, Latvia. GMT +02
Posts: 1,286
Default

Ищите дальше в логе строку которая возвращвется, например через 3 секунды.
Code:
7947:20130405:165503.777 check_https: curl_easy_perform failed for [10.20.0.1:443]: Timeout was reached
Reply With Quote
  #3  
Old 08-04-2013, 08:37
_AlekseY_ _AlekseY_ is offline
Member
 
Join Date: Apr 2012
Posts: 77
Default

Есть такая.
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
Это мне как то сертификат надо куда то скачивать и подкладывать???
Reply With Quote
  #4  
Old 08-04-2013, 09:37
zalex_ua zalex_ua is offline
Senior Member
Zabbix certified specialist
 
Join Date: Oct 2009
Location: Riga, Latvia. GMT +02
Posts: 1,286
Default

Вот как выглядит у меня с тем самым хостом с которым заббикс заработал корректно:
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 вы можете почитать например здесь
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html
Reply With Quote
  #5  
Old 08-04-2013, 10:52
_AlekseY_ _AlekseY_ is offline
Member
 
Join Date: Apr 2012
Posts: 77
Default

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

Меня смущает, что в вашем случае всё это получается без прямого указания ключа -sslv3. А у меня без него обрывается сразу. Это где то настраивается??? Быть может в этом есть какая то заморока???
Reply With Quote
  #6  
Old 08-04-2013, 11:01
zalex_ua zalex_ua is offline
Senior Member
Zabbix certified specialist
 
Join Date: Oct 2009
Location: Riga, Latvia. GMT +02
Posts: 1,286
Default

Quote:
Originally Posted by _AlekseY_ View Post
Я правильно вас понял, что возникновение этой ошибки не критично для работоспособности проверки.

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

Попробуйте с других сервероов запустить команду, сравните результат, разберитесь в чем разница и т.д.
Попробуйте переустановить libcurl со всеми зависимостями.
Reply With Quote
  #7  
Old 10-04-2013, 08:24
_AlekseY_ _AlekseY_ is offline
Member
 
Join Date: Apr 2012
Posts: 77
Default

Переустановил 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
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 18:31.