mykolq / zabbix_lsi_template

Template is for discovering and monitoring LSI (Avago, Broadcom) storage controllers
13 stars 12 forks source link

Can you use both perccli64 and storcli64? #11

Open lpowers-ucsf opened 6 months ago

lpowers-ucsf commented 6 months ago

I haven't set this up yet, but am looking into it. I just installed Zabbix 7.0 and was going to see if it will work. We need to monitor servers using either perccli64 or storcli64 because they might be either one. Can you only choose one of these for the entire environment or can you select which one to use for each server that you monitor?

mykolq commented 6 months ago

I set it by trigger. I have module for lsi for agent 2 and can share it for u if you give me feedback. Later I will put it on github

lpowers-ucsf commented 6 months ago

I have Zabbix agent 2 installed on everything. If you could share it later I'd like to try it out. We have a mix of controllers:

Broadcom / LSI MegaRAID 12GSAS/PCIe Secure SAS39xx LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05) Broadcom / LSI MegaRAID SAS-3 3108 [Invader] (rev 02) Broadcom / LSI MegaRAID Tri-Mode SAS3508 (rev 01) LSI Logic / Symbios Logic MegaRAID SAS 2208 [Thunderbolt] (rev 05)

We would like to get them all into monitoring as soon as possible.

Thanks for your help!

mykolq commented 6 months ago

Plugin works with all lsi stack including Dell perc. Please remind me about it on Monday

mykolq commented 6 months ago

https://github.com/mykolq/zabbix_agent2_plugins/tree/main/lsi try to install and use plugin

mykolq commented 6 months ago

Do I install use the Zabbix template from https://github.com/mykolq/zabbix_lsi_template or is there another template I should use with this plugin?

This is what I get after starting zabbix-agent2 after installing the plugin using the precompiled binary:

Mar 25 08:47:46 ccls28 systemd[1]: Started Zabbix Agent 2. Mar 25 08:47:46 ccls28 zabbix_agent2[153314]: 2024/03/25 08:47:46.365535 cannot register plugins: plugin cannot be loaded by agent using protocol version 6.0.13, the supported version is 6.4.0 Mar 25 08:47:46 ccls28 zabbix_agent2[153314]: zabbix_agent2 [153314]: ERROR: cannot register plugins: plugin cannot be loaded by agent using protocol version 6.0.13, the supported version is 6.4.0 Mar 25 08:47:46 ccls28 systemd[1]: zabbix-agent2.service: Main process exited, code=exited, status=1/FAILURE Mar 25 08:47:46 ccls28 systemd[1]: zabbix-agent2.service: Failed with result 'exit-code'.

[root@ccls28 plugins.d]# rpm -q zabbix-agent2 zabbix-agent2-6.0.27-release1.el9.x86_64

Do I need to compile it myself from source, or should it work with this version?

I test it with 6.4. can you try to update ur agent?

lpowers-ucsf commented 6 months ago

Do I install use the Zabbix template from https://github.com/mykolq/zabbix_lsi_template or is there another template I should use with this plugin?

I had to install zabbix-agent2-6.4.0 to get the precompiled plugin to work.

[root@c4-zabbix ansible]# zabbix_get -s 10.10.10.187 -k 'lsi.allinfo[storcli64]' {"StorageControllers":[{"Id":0,"Model":"SAS 3916","SerialNumber":"FW-00000000","Firmware":"5.220.02-3691","State":"Optimal"}],"LogicalDisks":[{"ControllerId":0,"Consist":"Yes","Name":"","Type":"RAID6","Size":"130.964 TB","State":"Optimal","DGVD":"0/239","LdId":"/c0/v239"},{"ControllerId":0,"Consist":"Yes","Name":"","Type":"RAID6","Size":"130.964 TB","State":"Optimal","DGVD":"1/238","LdId":"/c0/v238"},{"ControllerId":0,"Consist":"Yes","Name":"","Type":"RAID6","Size":"130.964 TB","State":"Optimal","DGVD":"2/237","LdId":"/c0/v237"},{"ControllerId":0,"Consist":"Yes","Name":"","Type":"RAID6","Size":"130.964 TB","State":"Optimal","DGVD":"3/236","LdId":"/c0/v236"},{"ControllerId":0,"Consist":"Yes","Name":"","Type":"RAID6","Size":"130.964 TB","State":"Optimal","DGVD":"4/235","LdId":"/c0/v235"},{"ControllerId":0,"Consist":"Yes","Name":"","Type":"RAID6","Size":"98.223 TB","State":"Optimal","DGVD":"5/234","LdId":"/c0/v234"}],"Batteries":[{"ControllerId":0,"Type":"CV","Model":"CVPM05","State":"Optimal","Temp":25}],"Flags":{"PdInfoFromCtl":false,"PdInfoArgs":"enclosure","BatteryExists":true,"BatteryInfoArgs":"cv"}}

mykolq commented 6 months ago

Great:)And template for this I will share in a couple of days. Sure, it is new template

mykolq commented 6 months ago

https://github.com/mykolq/zabbix_lsi_template/blob/agent2_module_template/LSI_Perc_Lenovo%20agent%202%20module.json

mykolq commented 6 months ago

https://github.com/mykolq/zabbix_lsi_template/blob/agent2_module_template/README.md

lpowers-ucsf commented 6 months ago

Thanks! I imported the template and added the global macros and I see two triggers for the host I added the template to I'm just not sure what they mean.

Screenshot 2024-03-25 at 10 38 51 AM
mykolq commented 6 months ago

It is arguments for getting info about physical disks and batteries. It must be charged by script for api I added. Or you can change it manually. See tag macroname for macroname and macrovalue for it's value

lpowers-ucsf commented 6 months ago

Ok I've installed the script to /usr/lib/zabbix/externalscripts because that was the default location and have made it executable and have installed the pyzabbix module using pip. I just don't know how to setup the script in Zabbix and what to set for the trigger action. Can you help me with what I should make these? I tried going off your documentation but I still don't get it.

Screenshot 2024-03-25 at 10 59 33 AM Screenshot 2024-03-25 at 11 01 34 AM
mykolq commented 6 months ago

Ok I've installed the script to /usr/lib/zabbix/externalscripts because that was the default location and have made it executable and have installed the pyzabbix module using pip. I just don't know how to setup the script in Zabbix and what to set for the trigger action. Can you help me with what I should make these? I tried going off your documentation but I still don't get it.

Screenshot 2024-03-25 at 10 59 33 AM Screenshot 2024-03-25 at 11 01 34 AM

Sorry, this script is too old for me and I cannot view it on prod. But it seems you are on the right way

mykolq commented 6 months ago

It must be something like that IMG_20240325_212139 IMG_20240325_212120

lpowers-ucsf commented 6 months ago

Ok now it says "Remote command" with a Status of "Executed" but those triggers are still there. Do I need to install the script on all hosts that use the template and have it execute through them, or is it supposed to only be installed on the Zabbix server because that's where I put it. If I'm reading the logs correctly it looks like it needs to be on the hosts and not the Zabbix server?

mykolq commented 6 months ago

Script is executed on server. You don't need to have it on agent stations. Macroses is now set on host by script? If set, problems will be solved later. If not, you have to debug script.

lpowers-ucsf commented 6 months ago

Ok this is what I see when I try and execute the same command that Zabbix is executing:

Screenshot 2024-03-25 at 12 12 06 PM Screenshot 2024-03-25 at 12 12 22 PM
mykolq commented 6 months ago

You don't need to escape script parameter name with ", only value

lpowers-ucsf commented 6 months ago

Ok I removed those and still get the unexpected keyword argument 'user' when I pass --zbxuser 'zabbix-api' to the script. If I don't set zbxuser it tells me it's required. I'm not passing a --user to the script though. Screenshot attached:

Screenshot 2024-03-25 at 1 11 10 PM
lpowers-ucsf commented 6 months ago

Ok I fixed it. I needed to change:

zabbix = ZabbixAPI(zbxurl, user = apiuser, password = apipass)

to:

zabbix = ZabbixAPI(zbxurl) zabbix.login(apiuser, apipass)

mykolq commented 6 months ago

Ok I fixed it. I needed to change:

zabbix = ZabbixAPI(zbxurl, user = apiuser, password = apipass)

to:

zabbix = ZabbixAPI(zbxurl) zabbix.login(apiuser, apipass)

Add mr with fix, plz. It will be fine for other users

lpowers-ucsf commented 6 months ago

Sorry, add what? Also, do you have a template that has the battery and disks monitored so they trigger alerts when things fail or would I have to figure out how to add them myself?

mykolq commented 6 months ago

Sorry, add what? Also, do you have a template that has the battery and disks monitored so they trigger alerts when things fail or would I have to figure out how to add them myself?

This template has battery and disks

lpowers-ucsf commented 6 months ago

Is it the lsi.allinfo.errors trigger that will show up when there is a problem with either the battery or disks? That's the only trigger I see that looks like it would alert for those. I need to put it on a host that has a failed disk to see if it's working properly still.

mykolq commented 6 months ago

Is it the lsi.allinfo.errors trigger that will show up when there is a problem with either the battery or disks? That's the only trigger I see that looks like it would alert for those. I need to put it on a host that has a failed disk to see if it's working properly still.

You are new in zabbix? Batteries and other are discovered by low level discoveries and you have to see it in discoveries

mykolq commented 6 months ago

IMG_20240326_211226 Please read zabbix docs about low level discovery

lpowers-ucsf commented 6 months ago

Sorry I'm still pretty new to Zabbix. I just noticed that I was missing a macro for {$DEFAULT_LLD_THROTTLING_HB_PERIOD} so I've added it and made it 1h. The discovery seems to be working now just one is failing and I don't know if it's ok to ignore or if I still have a problem somewhere.

Screenshot 2024-03-26 at 12 02 15 PM
mykolq commented 6 months ago

It is ok, by design. You will get pd metrics by then last discovery on screenshot. With enclosure parameters of storcli in module.

lpowers-ucsf commented 6 months ago

What do I need to change to switch one host to use perccli64? Do I set a macro on the host itself to switch it?

mykolq commented 6 months ago

What do I need to change to switch one host to use perccli64? Do I set a macro on the host itself to switch it?

Yes, macro. You must set macro manually