BaldMansMojo / check_vmware_esx

chech_vmware_esx Fork of check_vmware_api.pl
GNU General Public License v2.0
124 stars 67 forks source link

SOAP request error - possibly a protocol issue: #80

Closed fir3wall closed 6 years ago

fir3wall commented 9 years ago

Hello,

I'm experiencing some issues with plugin - very often all of my checks reporting SOAP request error (unknown state). I'm understood that most likely this is related to number of sessions.

Current troubleshoot steps:

Logs on ESXI: User root@ logged out (login time: , number of API invocations: , user agent: ) info 26/10/2015 13:40:11 root

What I'm doing I've got:

Problem popping up every 15-20 min on machine that have 6 VM's on it. I'm on standard Icinga2 config to check service every 1 min.

I'm using: vSphere SDK for Perl version: 6.0.0 Connecting to ESXI 5.5.0 (I've got mixed of 5.5 and 6.0 in company)

Is there is any other troubleshoot steps to avoid that kind of issues? Or only good combination of timeout / sessions / check interval?

BaldMansMojo commented 9 years ago

Don't use SDK 6. It contains some serious bugs and there is no need to use it. I wasn't able her to get it up and running on a Centos 6.x. A lot of useres reported problems with it. SDK 6 is only needed for features of ESX 6 not covered with SDK 5.x. And I'm sure I'm not using such features. Especially in a scenario with a mixed environment I will not use it. Normally this SOAP errors will go away using SDK5.x.. If you got SOAP errors first try the command line tools from the SDK. See https://github.com/BaldMansMojo/check_vmware_esx/issues/75 and https://github.com/BaldMansMojo/check_vmware_esx/issues/79. 79 will be implemented this week or next week.

6 VMs are definetely no problem. I have here servers with more than 40 VMs and everything works well. So first check the response time from the commandline. Be sure the session files and session lockfiles are working well. Check host related check via host and via vcenter. Check only moving things like VMs (if you use Vmotion) via Vcenter.

fir3wall commented 8 years ago

Hello,

I've rebuild my monitoring server (as Centos 7.2) and hitting this issue again. Installed 5.5 Perl SDK

It's timming out with SOAP request error - possibly a protocol issue: 500 read timeout to all of my ESXI 6 and ESXI 5.5 hosts

Logs even with --nosession showing use root login and user root logout number of API invocations: 0

Example usage:

[root@dionmonitor01 check_vmware_esx]# ./check_vmware_esx.pl -u root -p test -H charon --select=uptime --nosession length() used on @array (did you mean "scalar(@array)"?) at /usr/lib64/perl5/IO/Compress/Zlib/Extra.pm line 198. SOAP request error - possibly a protocol issue: 500 read timeout

In the same moment this works without any problem: [root@dionmonitor01 check_vmware_esx]# esxcli --server charon --username root --password 'test' system time get2016-08-04T12:18:17Z

Is there is any official guide how to jump across that kind of issues on EL7? Default Icinga2 setup on Ubuntu with same version of SDK works without any problems

D

BaldMansMojo commented 8 years ago

That's why I have set up my monitor systems (and some gearman worker) with CentOS 6.x . We roll out 7.x since some months and it is a real big bullshit. systemd, new security issues ... . We ran in trouble with logrotate. The logdir belongs to a user (and group) root had access. But logrotate needs a su statement in the configuration.

But look here: http://morgajel.net/2015/05/20/1676

This could help you. If you wanna have it easy -> go back to 6.x

Keep me informed. Martin

simoesp commented 6 years ago

just do a cpan IO::Compress::Zlib::Extra

will fix

BaldMansMojo commented 6 years ago

Fantastic. I generally use RPMs instead of installing modules by hand. This will keep your package database clean. If I need a newer package than deliverd by OS release (or third party repos) I will do a backport because this avoids confilcts between packages and manually installed software