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

Undefined subroutine &Util::connect #85

Closed Fathoum closed 8 years ago

Fathoum commented 8 years ago

Hello,

I am using Ubuntu Server 14.04 LTS with Icinga2 as monitoring choice. As the old installation in our network is using icinga (1) with the old check_esx3 plugin, I wanted to use the newer and obviously better version from you.

But I can't get it to work, after installing the Perl SDK 5.1 I still get the error mentioned in the title when using the plugin.

I already tried setting up a completely new VM for testing this, installed the SDK and a fresh Icinga2 installation, configured only the host, command and services for this plugin, but still get the same error.

Could you kindly hint me in the right direction where I can look for mistakes?

I really want to upgrade to the new installation and want your plugin to work before I am satisfied enough to say I am ready for the migration.

Keep up the good work, Fabian

BaldMansMojo commented 8 years ago

Hi,

I'm quite sure that you haven't install the Perl SDK from Vmware correctly. Util::connect is imported from VMware::VIRuntime. So first test if something doesn't work is to use the the CLI tools delivered with the SDK. If you are able to connect via CLI test the plugin. But test it first from the command line as you Icinga user (and not as root). I recommend a tmpfs for storing the session files. See README.

Give me a short note it it is fixed. Additional hint: Don't use SDK 6 even if you have machines running ESX 6. Currently not needed.

If you need more working examples for the command definition submit your Email address.

Regards Martin

Fathoum commented 8 years ago

Thanks for the quick answer!

I also noticed something is wrong with the installation, it always tries to uninstall.. I am aware that the install.pl calls the uninstall which is a multi-function script that checks for the calling object. Though it seems the calling object doesn't get transferred somehow (I already edited an output in that told me the internal_basename is always vmware-uninstall-vSphere-CLI.pl though I am calling ./vmware-install.pl). I am a bit clueless why this is happening even on a fresh installed VM.. This does happen with every version of the SDK I tried, I think I am missing something that makes perl behave incorrectly. The script also uses relative paths with installdirs defined with "./" a lot and I am guessing this also is causing a faulty installation..

I think I already have a working command definition as Icinga outputs the same error as when calling from command line. Thanks though for the offer.

BaldMansMojo commented 8 years ago

Ok - so I close this issue for now. Feel free to reopen it if there are any problems regarding the plugin.

For you information: if your check command definitions are from the old op5 plugin you have to redifine it. There are a lot (usefull) new options (like --multiline) and changed options.

Regards Martin

Fathoum commented 8 years ago

I just solved the issue. It's still not working, but I got over this issue.

I had to add "use VMware::VILib;" to your script, now it recognizes the function..

BaldMansMojo commented 8 years ago

You have definetely a problem with your installation. VMware::VILib is included automatically.