← Return To Home

How to monitor an SFTP site with Serverless360

Introduction

At Serverless360, we often get asked by customers if we have the capability to monitor resources that don’t necessarily fit with the core aim of the product. For example, we have an Azure solution where you are building a Logic App and Function solution to process files from the SFTP server. In the solution, one of the dependencies needs to work well to make sure that the SFTP site is available so it would make sense that you would want to monitor it.
Unfortunately, out of the box, we don’t support direct monitoring of SFTP sites. As a product owner, it also gives me a challenge because I love that our product is very customer focused but sometimes a feature isn’t right for your product.

Serverless360 is about the management and monitoring of Serverless components and capabilities and our USP is to specialize around these features that customers struggle with and this is where we add the most value.

When it comes to SFTP, if I multiply that out by all the possible scenarios then very quickly, we would be investing a lot of areas that weren’t really Serverless. That said I haven’t forgot about customers, early on we made the decision to focus on Azure Serverless technologies knowing that we well as manage and monitor them, we can work with customers to use these features to help us build a great solution. In the example of SFTP, we can use a Logic App to set up a monitoring process and then connect that to Serverless360.
Let’s look at how we would do this.

Step 1 – Create Logic App

First off, I have created a Logic App.  The Logic App will be triggered by an HTTP request.  Once triggered the Logic App will use the SFTP connector and the List Files in Folder action.   This will access the folder and do a non-invasive action of just list the directory.  It should not error unless if can’t connect to the server.

You can see the Logic App below.

Creating Logic Apps

Step 2 – Connect to Serverless 360

Next up I move over to Serverless360 and to one of my composite applications.  In the case of the SFTP server, it could be a dependency on one or more of your apps.  Inside the composite app, I go to the monitor’s section as shown below and I will enable the Watch Monitor.  Note I can have multiple watch monitors if I need to.

Serverless360 watch monitor

Inside the watch monitor at the top menu, I will use the “Associate Entities” menu option then choose “API Endpoint” as shown below

Assosiate entities in Serverless360 watch monitor

In the wizard to configure the API Endpoint to monitor I will give it a name and add the HTTP URL for accessing the Logic App as shown below.

API monitoring in Serverless360

Next, we need to modify the Payload details.  The Logic App needs the request method changed to POST rather than GET and I also changed the payload to have an empty JSON object in it as shown below.

Configure Payload details

Now we need to configure the response handling from the Logic App.  The desired state is that we are returned to an HTTP 200.  I have turned on the Status Code Alerts section and indicated 200 status code is expected otherwise it’s an error.

I turn off JSON path alerts as we don’t need to parse the body and I have modified the response time alerts to something reasonable.

API alert configuration

After the initial setup, you can see below my API Endpoint is healthy and it will be checked by the watch monitor on a regular basis.  Any error conditions will be alerted using the normal notification channels.

Status of API endpoint

Wrap-up

Hopefully at this point you can see my earlier suggestion that in some of the more custom monitoring scenarios you can combine Serverless360 API Endpoint monitoring with a Logic App to take advantage of the massive number of connectors that there for Logic Apps and as result you can pretty much monitor anything you want.

Author: Michael Stephenson

Mike is a very highly experienced leader when it comes to delivering real-world cloud solutions having worked on >40 projects with many multiple large customers. He has worked with Microsoft Azure technologies since they first came out and has lead the technical side of the cloud adoption at a number of companies and has helped those companies become recognized by Microsoft as the benchmark for cloud adoption in their industry sectors.