Sumo Logic integration with Sitecore Azure PaaS

Hi Champs,

Today I am going to take you to the new product called Sumo Logic which we can integrate with Sitecore Azure PaaS for better log management.

Before starting you may have below two questions.

What is Sumo Logic?

Sumo Logic is a cloud-based machine data analytics company focusing on security, operations and BI use-cases. It provides log management and analytics services that leverage machine-generated big data to deliver real-time IT insights

Why Sumo Logic?

As per my experience Sumo Logic is coolest tool I ever seen for Log Management and monitoring. It gives a GUI based Live log management system by which you can track everything and not losing your time for checking logs from files. One more advantage is it alerts you one basis of exception captured in Log.

We will move without killing more time to the steps of configurations which are as below. Note all below steps you need to perform against your Sitecore Azure PaaS resource group.

Step 1. Configure Azure storage account

In this step you configure a storage account to which you will export monitoring data for your Azure service.

If you have a storage account with a container that you want to use for this purpose, make a note of its resource group, storage account name and container name and proceed to Step 2.

To configure an Azure storage account, do the following:

  1. Create a new storage account General-purpose v2 (GPv2) storage account. For instructions, see Create a storage account in Azure help.
  2. In the Azure portal, navigate to the storage account you just created (in the previous step).
  3. Select Blobs under Blob Service.
    Make a note of the container name, you will need to supply later in this procedure.

    1. Select + Container,
    2. Enter the Name
    3. Select Private for the Public Access Level.
    4. Click OK.

Step 2. Configure an HTTP source

In this step, you configure an HTTP source to receive logs from the Azure function.

  1. Select a hosted collector where you want to configure the HTTP source. If desired, create a new hosted collector, as described on Configure a Hosted Collector.
  2. Configure an HTTP source, as described on HTTP Logs and Metrics Source. Make a note of the URL for the source, you will need it in the next step.

Step 3. Configure Azure resources using ARM template

In this step, you use a Sumo-provided Azure Resource Manager (ARM) template to create an Event Hub, three Azure functions, Service Bus Queue, and a Storage Account.

  1. Download the blobreaderdeploy.json ARM template.
  2. Click Create a Resource, search for Template deployment in the Azure Portal, and then click Create.
  3. On the Custom deployment blade, click Build your own template in the editor.
  4. Copy the contents of the template and paste it into the editor window.
  5. Click Save.
  6. On the Custom deployment blade, do the following:
    1. Create a new Resource Group (recommended) or select an existing one.
    2. Choose Location.
    3. Set the values of the following parameters:
  • SumoEndpointURL: URL for the HTTP source you configured in Step 2 above.
  • StorageAccountName: Name of the storage account where  you are storing logs from Azure Service, that you configured in Step 1 above.
  • StorageAccountResourceGroupName: Name of the resource group of the storage account you configured in Step 1 above.
  • Filter Prefix (Optional): If you want to filter logs from a specific container, enter the following, replacing the variable with your container name: /blobServices/default/containers/<container_name>/
  1. Select the check box to agree to the terms and conditions, and then click Purchase.

Azure_Blob_Storage_Custom_Deployment.png

  1. Verify the deployment was successful by looking at Notifications at top right corner of Azure Portal.

notification-success.png

  1. (Optional) In the same window, click Go to resource group to verify the all resources were successfully created, such as shown in the following example:

Azure_Blob_all-resources.png

  1. Go to Storage accounts and search for sumobrlogs, then select sumobrlogs<random-string>.

storage-accounts.png

  1. Under Table Service do the following:
    1. Click Tables.
    2. Click + Table.
    3. For Name, enter FileOffsetMap.
  2. Click OK.

Azure_Blob_create-table.png

Step 4. Push logs from Azure Service to Azure Blob Storage

This section describes how to push logs from an Azure service to Azure Blob Storage by configuring Diagnostic Logs. The instructions use the Azure Web Apps Service as an example.

  1. Login to the Azure Portal.
  2. Click AppServices > Your Function App > Diagnostic Logs under Monitoring.
  3. You will see the Diagnostic Logs blade. Enable Application Logging, Web Server Logging, or both, and click Storage Settings.
  4. Select the Storage Account whose connection string you configured in Step 1.
  5. In the Containers blade, select the container you created in Step 1.
  6. In the Diagnostic Logs blade, specify the Retention Period (Days), and click Save to exit Diagnostic Logs configuration.export-webapp-logs.png

Happy learning and innovating Sitecore.

Advertisement

Sitecore Fake SMTP Server Module

Hi Champs,

Today I am going to introduce a Sitecore Module especially to developers who can use this to capture Emails from their Sitecore implementation in Sitecore Tab itself for their Local machine.

So not losing more time I like to give a small pathway to use this module, which is as below.

Installation:

  1. You need to download the module from the below link.
    https://marketplace.sitecore.net/en/Modules/S/SitecoreFakeSMTPModule10.aspx
  2. Install this module to your dev local machine environment.
  3. After installation, you will find one new folder created in your website folder as below.                                                                                        wwwroot\<your website folder>\FakeSmtp\website\
  4. You need to create a simple website for this by following below simple steps.
    • Create a new website in IIS with the name “fakesmtp”.
    • Point this website to the new folder created above.        fake(wwwroot\<your website folder>\FakeSmtp\website\)
    • Create a new binding for this website with “sitecore.fake.smtp” as below.bin
    • And the last step is to add new host entry for this like below. 127.0.0.1         sitecore.fake.smtp

How to use this module from Sitecore:

  1. After installing this module you need to login to Sitecore.
  2. Then you need to go to Developer Menu.
  3. In the developer’s menu, you will find the new tab called “Fake SMTP”
  4. This tab has a button called “Start Fake SMTP” click the button.

smf

  1. Now, this will open new tab which will have different menu but initial page has some instruction implementing the code in your Sitecore .NET project to get these email capture in this module.

        ffdsf

  1. I believe everyone most of the time uses the library (System.Net.Mail.SmtpClient) which is mentioned in instruction page.
  2. If yes then you can directly get to Messages tab where you can see next email captured when it gets triggered.
  3. If no then you just need to add/update few lines of code to get this working

Note:  Right now model doesn’t have close button which will come in next release.

Please leave comments/query/suggestions.

Happy innovating Sitecore.

Automating Deployment Slot Swapping for Sitecore Azure PaaS

Hi Champs,

Today I am going to introduce you to the steps which you can use to swap deployment slots for production environment automatically in release pipeline by small manual intervention for approval/resume. Below are the steps which will help you to set-up slot automation.

Given any scenario this will work, but in my case it is like below.

I have release pipeline stetted up according to the environments.

Configuring slot swaps in Production

The Dev and QA environments orchestrate whatever flow you want in those environments (e.g. provision using ARM, deploy, run functional tests, run load tests etc.), and in this example don’t have any slot specific activity. Therefore let’s take a look at the production environment tasks itself directly:

(I’ve kept this to a minimum to keep it clearer, so no provisioning, running scripts or other activities.)

First deploy the web application to the staging slot in the production environment using the Azure App Service Deploy task:

Check the Deploy to slot option in the standard task, and then choose the Slot (I called the slot “staging” but you can use any name).

Next I’ve added an Agentless phase as it’s not going to delegate any actions to an agent, and added a Manual Intervention task. This causes the flow to pause until the manual intervention is completed by the specified approvers (groups and/or individuals). If it’s approved then it carries on, if it’s rejected (or times out and therefore is rejected) then the flow stops. In this case that works for me as I want the staging environment to be manually verified and then signed off as ok for final release to production. If it gets rejected then it never gets promoted from staging to production.

Finally, if the staging slot has been manually verified and is ready to be used, then we can initiate the actual slot swap (in an agent phase) using the Azure App Service Manage task:

The staging and production slots will then be swapped over, leaving the old production version in the staging app and the latest version in the production slot.

This flow supports the actual slot swaps being automated, but with manual approval. A nice side effect of the slot swap is that should there be a problem, the slot swap can be reversed to redeploy (rollback) the old version of the app now in the staging slot.

Happy Learning/Innovating Azure.

Working with Sitecore Managed Cloud

Hi Champs,

Today I am going to share my experience of working with Sitecore Managed Cloud from scratch. In my scenario, it was fresh website deployment on Sitecore Managed Cloud offering which I will split this is below section to make it better. Sorry but this is a bit lengthy and theoretical article which may get boring but reading this article will give you a better understanding of working practically with Sitecore Managed Cloud.

Engaging the Customer:

In this process, you need to agree with Customer and Sitecore that you will be using this offering from Sitecore. For that Sitecore Team and you need to list down the benefits like below for this offering.

  1. Service availability is managed by the Sitecore team.
  2. Sitecore Managed Cloud Team will be responsible to set entire infrastructure.
  3. Depending on traffic/expected traffic Sitecore Managed Cloud team suggests the Scaled environment topology be used in the Production environment.
  4. Sitecore Managed Cloud team will be monitoring the activities and report any unwanted incident happens and try to help the Partner team to work on that exact point to make sure that nothing is going wrong.

Step-in to procure:

In this process Customer and Partner team has to sign an agreement and procure the Sitecore Managed Cloud services and also add it to Sitecore License. At the same time Partner and Customer has to also need to provide information about different modules that are used in the implementation so that Sitecore License will have all the necessary conditions applied to it. Once this is done Sitecore Managed Cloud team will assign a ticket to Client for feeling the same information and some more information. This ticket will have table which you guys need to fill for information like including things like Solr/Azure search, EXM, JSS, and different modules if applicable. After this Sitecore Managed Cloud team will commission environments like (Dev, QA, Prod)  as mentioned by you with all the credentials details.

Set-up Azure DevOps:

This process is a bit useful for developers and DevOps guys. You need to follow the below steps.

  1. Create a release pipelines according to branches and strategies.
  2. Once this is done when now you need to change the subscriptions and resources to Sitecore Managed Cloud.
  3. For above you need to add Service Connection for your Azure DevOps.
  4. To get service connection you need to create a Sitecore Ticket so that Sitecore Managed Cloud team will create Service Connection and will share the details to you.
  5. Onccce that is in place you need to create Service Connection in you Azure DevOps and apply right Subscriptions and resources to right task and jobs in pipelines according to environments.
  6. Now you are ready for a fully automated Sitecore System and can deploy everything step by step on respective environment and test the implementation.

Note:

  1. In Sitecore Scaled environment you will get different web apps for each service like cm, cd, processing, redis, xConnect, xcSearch, and others.
  2. As Solr comes as a different Cloud offering in Sitecore Managed Cloud so that will be partially maintained by Sitecore Managed Cloud team but for more information on this you can check with Sitecore itself.
  3. While implementing this if you face any issues you need to follow same process of raising the Sitecore support ticket to get solutions.
  4. For escalations and different leadership help, Sitecore assigns a Customer Success Manager for this offering which is a great help from Sitecore.

Happy Learning Sitecore…..

Sitecore IoT Module Part-2

Hi Champs,

Thank you for checking out my basic IoT Module for Sitecore, Today I am going to write a few more steps which you need to follow to actuallt test the module if you want. From my previous blog you can understand that you need buy Arduino  and other required things to check.

Below are few steps which you need to follow to run Arduino code.

  1. Download an IDE for Arduino from below and install it on you machine or you can use Cloud version.
    https://www.arduino.cc/en/main/software
    https://auth.arduino.cc/login
  2. After doing this unzip the code which got download in your website folder from below.
    youwebsitefolder\IoT\Controlling_Arduino_from_Sitecore.zip
  3. Then after unzip you will get the sketch file.
  4. This sketch file you need to open with IDE and hit run and after that you will able to check Module.

Happy Learning….

Sitecore Module for Stepping in IoT

Hi Champs,

Today I am going to share my innovative primary module to connect to robotic kits like “Arduino, Raspberry pi, Atmega”. But I have tested this with Arduino as it has wider community. There are different ways to get IoT resolved most recommended in Microsoft era is Azure IoT Hub. But there is one more leader which is AWS IoT Core. And using AWS IoT Core there is great offering from Arduino which is Arduino’s AWS hosted IoT IDE where you can find predefined projects and modules. You can create your own project for your circuit. 

You can find the module on below link—-

https://marketplace.sitecore.net/en/Modules/S/Sitecore_IoT_ModuleArduino.aspx

This module will be showing you how to create a Sitecore web application capable of communicating with Arduino. Excited yet? No? Well, you should be.

All you need for this Module, an Arduino board (my particular model is the Uno Rev3, but I’m sure most models will work just fine), and some basic wire and LED components. I picked up an ARDX Starter Kit, which contained all the LEDs and wires I needed. 

This once you install this module you will get two pages for controlling Arduino as below.

1.     http://your-domain/Iot/IoT%20Controlling

2.     http:// your-domain /IoT/IoT%20monitoring

If you on the first page you will get below the control panel, where you will get the basic functionality of triggering LED.

No alt text provided for this image

You can change the functionality for triggering different commands.

Now the second part of this module is the Monitoring panel, where you can monitor different inputs given by Arduino to Sitecore application. You can also configure this page with personalization and capturing data into xDB and get different reports.

Below are some photos for my circuit connections which are useful for you to connect.

No alt text provided for this image

Using my breadboard, I configured the hardware portion of my project like so (excuse the terrible art):

No alt text provided for this image

Below are the connections for the monitoring circuit.

No alt text provided for this image

Purpose of this Module:

The purpose of creating this module is to make the Sitecore community aware that IoT is next which we need to spread. This module gives us to communicate with IoT devices. Another emerging thing about stepping into this is IoT devices are widely used in different things Like Agriculture, Intelligence, Security, Armed Forces. I want to get Sitecore involved in the above field.

In future:

My plan in future is to work with my own case study of Wireless Agriculture Monitoring and Solution system which we already implemented to KIAAR which is research institute in India. This case study was limited to only institute now I want to make sure that the model is working on wider scale and Sitecore is platform, where I can collect every data, manipulate it and get monitoring reports as well as create the real-time solution for that situation and send it back to Farmers in the form of SMS, Email or other media in their own languages.

Please check blog Sitecore IoT Part-2 for getting insights of how to run Arduino code.

Happy for sharing this, stay tuned for great and innovative stuff. Please do comment and share