openbaton / zabbix-plugin

An Open Baton monitoring plugin handling metrics pushed to the Zabbix server monitoring system
Apache License 2.0
3 stars 11 forks source link

Zabbix plugin not automatically creating Action on Zabbix Server #20

Open ChrispyTea opened 5 years ago

ChrispyTea commented 5 years ago

Hi

I'm trying to monitor my VNFs for autoscaling. I am running Zabbix server 3.0 and I configured autoregistration which is working well. I also manually configured the alert script as shown below and set it as a media option for a user under Administration→Users. I set the 'Send to' option to http://zabbix-plugin-ip:8010/zabbixplugin/notifications (where zabbix-plugin-ip is the same as the one in my zabbix plugin properties file)

alertscript

The documentation says that an Action should be created automatically when using the createThreshold method. I am not sure if the ASE uses the createThreshold method but if it does, the Action is not being created. I am trying to create the Action myself but I am not quite sure what the Zabbix plugin expects to receive. When creating my Action I set the default message to

{“triggerId”: {TRIGGER.ID}, “triggerName”: {TRIGGER.NAME}, “triggerStatus”: {TRIGGER.STATUS}, “triggerSeverity”: {TRIGGER.SEVERITY}, “triggerUrl”: {TRIGGER.URL}, “itemName”: {ITEM.NAME}, “hostName”: {HOST.NAME}, “itemKey”: {ITEM.KEY}, “itemValue”: {ITEM.VALUE}, “eventId”: {EVENT.ID}, “eventDate”: {EVENT.DATE}, “eventTime”: {EVENT.TIME}}

I am getting the following error in my send_notification.log

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: http Destination: http://203.0.113.183:8010/zabbixplugin/notifications Notification body: {“triggerId”: 14170, “triggerName”: CPU overload on sipp-server-6446836, “triggerStatus”: PROBLEM, “triggerSeverity”: High, “triggerUrl”: , “itemName”: CPU utilization, “hostName”: sipp-server-6446836, “itemKey”: system.cpu.util[,user], “itemValue”: 54.217736, “eventId”: 1642, “eventDate”: 2019.01.10, “eventTime”: 09:31:09}

Thu Jan 10 09:31:27 SAST 2019: curl failed to send notification with error: 6 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: http Destination: http://203.0.113.183:8010/zabbixplugin/notifications Notification body: {“triggerId”: 14171, “triggerName”: CPU overload on sipp-client-5835507, “triggerStatus”: PROBLEM, “triggerSeverity”: High, “triggerUrl”: , “itemName”: CPU utilization, “hostName”: sipp-client-5835507, “itemKey”: system.cpu.util[,user], “itemValue”: 50.101345, “eventId”: 1643, “eventDate”: 2019.01.10, “eventTime”: 09:31:20}

and the following in my ase.log

2019-01-10 15:01:23.382 INFO 3230 --- [ThreadPoolTaskScheduler-9] o.o.a.core.detection.DetectionEngine : Get monitoring plugin with following parameters: 203.0.113.183 2019-01-10 15:01:23.389 ERROR 3230 --- [ThreadPoolTaskScheduler-9] o.o.a.core.detection.task.DetectionTask : Exception occured while getting measurements -> Expected a com.google.gson.JsonArray but was com.google.gson.JsonObject, Trying again next time...

Would really appreciate help with configuring the Action.

Thanks, Tapiwa

marcellom commented 5 years ago

Hi @ChrispyTea, the ASE does not use the createThreshold method, that's why the Action in Zabbix Server is not being created. The error is because the zabbix plugin sends the notification but there is no receiver. The ASE pulls the monitoring data from the zabbix plugin so you don't need the notification mechanism.

ChrispyTea commented 5 years ago

Thanks for the quick response.

Thank you for the clarification. However, I am still getting an error in my ase logs

2019-01-10 15:43:23.734 INFO 3230 --- [ThreadPoolTaskScheduler-9] o.o.a.core.detection.DetectionEngine : Get monitoring plugin with following parameters: 203.0.113.183 2019-01-10 15:43:23.736 ERROR 3230 --- [ThreadPoolTaskScheduler-9] o.o.a.core.detection.task.DetectionTask : Exception occured while getting measurements -> Expected a com.google.gson.JsonArray but was com.google.gson.JsonObject, Trying again next time...

mpauls commented 5 years ago

It seems it is not getting the measurement results properly but it receives an exception. That's why it's receiving an object but not the array that's supposed to contain the results.

Can you check in Zabbix if the VM gets monitored properly and the metric you defined in the ASE is available?