Infrastructure Monitoring is the key to effective management,but is it enough only to monitor and send alerts? Flint offers you to fix your critical services when they are down or unavailable within no-time.

In the previous blog,we learned how Flint can integrate with Nagios,now in this blog we will see how Flint integrates with Solarwinds and auto-remidiate your critical services.

Let's see in more detail how Flint can pro-actively fix the down-time of your services in integration with Solarwinds.

Prerequisites

  • Solarwinds installed on localhost and the monitored Apache2 server is running on IP 192.168.2.11.
  • The Solarwinds web console should be accessible through: http://localhost/orion/Admin/ in order to view the http service which needs to be monitored
  • Flint is installed and running on the Solarwinds server (Flint can be installed on separate host as well)

Things to do:

A. Login to the Solarwinds web console and to monitor a particular web server we need to add a new External node,here we are monitoring a webhost node and apache server.

B. On the solarwinds web console we can set alerts in order to monitor unusual events. At this instance,Flint comes into picture which is capable of automating the entire downtime-uptime scenario.The customized Flint Alerts on the solarwinds web console are as below

Alert_console

Under the alert manager we have added two Flint alerts:

  • Flint Alert1- to notify Flint platform that the server is Up
  • Flint Alert2- to notify Flint platform that server is down and run restart.rb flintbit to fix the downtime

C. In the TRIGGER ACTIONS tab under manage alerts on the solarwinds web console we need to add Flint action to monitor and restart the server.To configure the Flint action we need to select the Send a GET or POST Request to a Web Server action from the list which appears after we click on the Add Action button under TRIGGER ACTIONS on the solarwinds console

action_console

D. Now in the configure action console we need to mention the URL and the body to POST in order to trigger the restart service action

configure_console

http://localhost:3501/v1/bit/run/example:restart.rb?flint-key=qOAIRJqdIGOrSnvqRYklcb3U6LNgZpoFelqfmXM1qm8MAXc%2FEXnsb6bIjK68sPco

The above URL will run the restart.rb flintbit and will restart the service,here in this URL we are providing flint-key to authenticate the user to use the Flint API's.

status=${N=SwisEntity;M=Status}#
nodeIP=${N=SwisEntity;M=Node.IP_Address}#
nodestatus=${N=SwisEntity;M=Node.Status}#
statusdescription=${N=SwisEntity;M=Node.StatusDescription}#

The body to POST will return us the important parameters so that we can fix dedicated service.The same parameters will be send back to Flint when the service goes Up and the work is done by Flint Alert1 to notify flint that the service is Up and running.

E. After saving the changes in the Alert Manager of the solarwinds web console we are now ready to test the entire scenario. We need to hit the below command in our ubuntu terminal to make the apache2 server down

sudo service apache2 stop

By firing the command all the applications and services running on this server will go down.On the solarwinds console it will show Application status is Down.

down_console

F. Login to Flint to enable the ssh connector:Go to Connectors from left side navigation and click on the action tab and enable the ssh connector

enable ssh connector

G. Go to Logs and check the logs console, it will show the following result as soon as the service goes “DOWN” the Flint alert will notify Flint and the same will be displayed in the logs

Logs status

As we can see in the logs the status:2 that means the apache2 server has gone down.

H. At this moment the Trigger action configured on the solarwinds console will trigger the ‘restart.rb’ flintbit in order to restart the server

Logs_status

By calling the ssh connector in ‘restart.rb’ flintbit we achieved to make the server up,here the status=1 which means that the apache2 server is Up.

stat=                 @input.get("status")                #Getting the values from body to POST
nodeIPadd=            @input.get("nodeIP")   
nodestat=             @input.get("nodestatus")
statusdesc=           @input.get("statusdescription")

@log.info("BODY IS "+body.to_s)                          
body_split = body.split("#")                              #splitting the BODY with delimiter '#'
@log.info(body_split.to_s)
status = body_split[0].split("=")
status = status[1]
nodeIP = body_split[1].split("=")
nodeIP = nodeIP[1]
nodestatus = body_split[2].split("=")
nodestatus = nodestatus[1]
statusdescription = body_split[3].split("=")
statusdescription = statusdescription[1]
@log.info("status:#{status}")
@log.info("nodeIP:#{nodeIP}")
@log.info("nodestatus:#{nodestatus}")
@log.info("statusdescription:#{statusdescription}")

if status == "2"                                            #server status is down
response=@call.connector("ssh")                             #calling ssh connector
              .set("target",nodeIP)
          .set("type","exec")              
          .set("username","webhost")
              .set("password","webhost1")
              .set("command","sudo service apache2 start")   #starting apache2 server
              .set("timeout",60000)
              .sync

The above flintbit calls the ssh connector to remotely connect to the server which has gone in the “Down” status.

I. The same will be displayed on the Solarwinds console as the Application status is Up

Up_console

"Great!! your service is Up again",this is how Flint-Solarwinds integration can make things simple for an IT infrastructure by avoiding manual interventions where Solarwinds monitors the infrastructure and Flint solves the real-time problems.

Conclusion:

With Flint and Solarwinds, it's very easy to setup customized alert and event-driven automation with just few lines of code. Flint’s flexible workflow engine allows to implement custom handling of events and also can be integrated with Service Desks and other notification systems.

To know more about Flint capabilities, visit http://www.getflint.io or share your automation requirements with us at info@infiverve.com

Flint is free to use. Download it today!

Next Post Previous Post