posted

1 Comment

webhook-512

 

Did you know that both vRealize Log Insight and vRealize Operations Manager support webhooks? Did you know that webhooks allow integrations with any other product that supports an API? In this post, I would like to demonstrate the integrations that exist today. Read on to learn more!

 

What are Webhooks?

Webhooks are user-defined HTTP callbacks. Something happens in an application (e.g. alert fired, change made, commit merged, etc) that some remote service cares about. It doesn’t matter why they care, they just want to be told that some event happened. It could be for auditing, or to start a workflow, or something else.

Webhook Configuration for vRealize

Log Insight Webhook Configuration

Log Insight added support for webhooks in version 3.3. There are two places in Log Insight where webhooks can be configured:

  1. For system notification: under the General page in the Administration section
    li-40-system-webhook
  2. For user alerts: while creating a new user alert or by editing an existing user alert
    li-40-user-webhook

In both cases, a space separated list of webhook URLs should be specified. Note that authenticated webhooks are not supported in the Log Insight UI as of version 4.0. You can of course send traffic over HTTPS, but the destination cannot require authentication.

vRealize Operations Manager Webhook Configuration

In vROps go to Administration > Outbound Settings > Select the green plus icon to add a new one > For plugin type select Rest Notification Plugin. Next, fill in all the options. Note, all fields are required even if you are not using them.

vrops-rest-test

The Problem: Translation

The problem with webhooks is that the output per product is proprietary and the incoming format per product is also proprietary. These means that by default, two different products cannot communicate across each other. If you try to communicate between say Log Insight and ServiceNow natively, you will get an error:

li-40-webhook-error

The good news is there is a solution!

The Solution: Shims

In short, you can use a shim — which is something that sits between the products — to handle the translation for you. The language of the shim or the dependencies it requires is up to the shim implementer, but in short you need a service which can accept incoming HTTP requests, parse the incoming HTTP request, and send a differently formatted outgoing HTTP request.

I am happy to announce that an open-source shim is available today here. This shim comes with a variety of integrations listed below.

Integrations Available Today

Development/Operations: Run something

  • Jenkins
  • vRealize Orchestrator

Chat: Send a message

  • HipChat
  • PushBullet
  • Slack
  • Socialcast

Incidents/Tickets: Create/Update a thread

  • Bugzilla
  • GrooveHQ
  • ServiceNow
  • Zendesk

On-call/Operations: Notify people

  • OpsGenie
  • PagerDuty

Summary

As you can see, webhooks are a powerful and flexible way for product integration with any system. Since vRealize products today have webhook capabilities for alerting, you can configure integration as desired. If you are interested in addition webhook shim integrations, please consider submitting a pull request.

In my next post, I will deep dive into a specific integration example so you can see the power in action.