Skip to main content

Module 1: Data ingestion

Module contents:

BASIC | 2 MIN

Moogsoft offers several different methods of getting data into the product.

Can you explain which method to use for a given use case?

Can you explain the characteristics of each type?

Watch the video if you are not sure!

Consult the documentation for more information.

Demo video: Different ingestion methods in APEX AIOps Incident Management

This video explains some of the different methods for ingesting data into APEX AIOps Incident Management, including collectors, tool-specific integrations, and custom (CYOI) integrations.

*Please note Moogsoft is now part of Dell's IT Operations solution called APEX AIOps, and changed its name to APEX AIOps Incident Management. The UI in this video may differ slightly but the content covered is still relevant.

There are a few different methods for ingesting data into Incident Management.

1_Updated_Ingestion_Method_Project.jpg

The collector is an agent that is deployed on a system you want to monitor. It handles discovery and sourcing metrics data. Then it transmits the data to Incident Management without the involvement of an additional third-party software product.

2_Updated_Ingestion_Method_Project.jpg

These are tool-specific integrations.

3_Updated_Ingestion_Method_Project.jpg

These are fully UI-based integrations and include logic to reformat data from third-party software into Incident Management format without additional configuration.

4_Updated_Ingestion_Method_Project.jpg

Push integrations are done via webhook. These consist of instructions and preconfigured mappings for transmitting data from a third-party monitoring application to Incident Management.

5_Updated_Ingestion_Method_Project.jpg

Under the push category, we also offer API-based integrations. Events and metrics API pages include a full description of the schema and required fields, as well as auto-generated cURL commands with example JSON events.

6_Updated_Ingestion_Method_Project.jpg

You can also build a custom integration.  Choose this option over the events or metrics APIs if you want to ingest data with different schemas, and specify how to map third-party data to Incident Management.

7_Updated_Ingestion_Method_Project.jpg

BASIC | 2 MIN

Do you know how to install a Moogsoft collector? If not watch this demo.

Documentation is available here.

Demo video: Install an APEX AIOps Incident Management Collector ►

This video explains how to Install an APEX AIOps Incident Management Collector on an Amazon EC2 instance running Docker.

*Please note Moogsoft is now part of Dell's IT Operations solution called APEX AIOps, and changed its name to APEX AIOps Incident Management. The UI in this video may differ slightly but the content covered is still relevant.

In this demo, we are going to install the APEX AIOps Incident Management collector to an EC2 instance that's running Docker. 

Collector.png

Here's the installation script.

1_Collector.png

It sets the API key...

2_Collector.png

And the controller variable...

3_Collector.png

...then downloads the installer script and plugs in those variables.

4_Collector.png

There's one more variable to be set, but we have to run this script first.

5_Collector.png

The install script is downloading now.

6_Collector.png

Here’s a prompt to set the file location variable.  Note that the file location will be different based on whether you are installing the collector as a root user or not.

7_Collector.png

Saving this is not a requirement.  But if you want to start, stop, and reload the collector later, either put this variable in one of your Linux startup config files, or export it like this.

8_Collector.png

Here’s the collector we just installed.

9_Collector.png

By default only the System plugin is enabled.

10_Collector.png

Let’s enable the Docker plugin. You can apply a filter to exclude certain container ID prefixes if you want.

11_Collector.png

And now we enabled the Docker plugin. Let’s check if the metrics are flowing in. A wide variety of metrics are available. These came from the docker plugin we just enabled,,and they include container, memory cpu, network, and block IO stats.

12_Collector.png

These came from the system plugin that was enabled by default.

13_Collector.png

Each of these metrics come with a variety of useful tags that you can use for troubleshooting or correlating alerts when something happens.

14_Collector.png

Now you know how to install a collector. Thanks for watching!

BASIC | 4 MIN

This video demonstrates how to integrate AWS CloudWatch with Moogsoft.

Documentation is available.

Demo video: Integrate with Amazon CloudWatch ►

This video explains how to set up the Amazon CloudWatch integration in APEX AIOps Incident Management.

*Please note Moogsoft is now part of Dell's IT Operations solution called APEX AIOps, and changed its name to APEX AIOps Incident Management. The UI in this video may differ slightly but the content covered is still relevant.

In this video, we will go over how to integrate Amazon CloudWatch and send the data to Incident Management.

The instruction documentation is conveniently located right here.

1D1096E5-CD66-44E5-B882-7415980E66B4.jpeg

We are going to add our AWS credentials.

B5782DD3-DC32-4427-8D07-B0E0481EE768.jpeg

We need to create a policy and a role in AWS to complete the configuration. To do so, we need this JSON script from Incident Management.

114225CF-121A-4DAF-B897-97A2B25B2F81.jpeg

Grab this JSON script.

BF0C9E88-603E-4261-B594-98737D2385F8.jpeg

And now we are going to AWS.

Navigate to the policy section.

img-0DB281FB-FB0B-475E-87EE-A061A3E3492E.jpeg
68C00B9E-CD08-496D-AA8F-7988E4DA7C69.jpeg
4DFC513A-37C2-4A57-BD48-BA12CB5222AA.jpeg

Paste the JSON script we grabbed from Incident Management...

48E3BF8D-62AE-486F-8E3A-0800192D7E01.jpeg

...and provide a meaningful name.

5CFB3310-B9AA-49AD-A41C-B9A1ED6A92E1.jpeg

Now we got the policy. Let's create the role now.

A2712723-CAA2-475B-A676-ED6AFF7B0C52.jpeg

"Another AWS Account" is what we need here.

B6297430-F07F-4984-943F-112D9F9C1539.jpeg

We need to provide the APEX AIOps Incident Management AWS account number here.

B2F55669-6D3A-4CAC-B7B2-7CF772373311.jpeg

Let's go back to Incident Management. Copy this...

FE668783-9AB4-4E25-B12C-73A746CD88BB.jpeg

And paste it here.

B2F55669-6D3A-4CAC-B7B2-7CF772373311.jpeg

Next, check "Require External ID". We need to grab it from Incident Management. Here it is.

25539DAE-BDF5-4782-AAC0-543FE25CD96A.jpeg
CE01CB58-D13A-430F-AADF-46DD739C6CDB.jpeg

To this role we are creating, we need to associate the policy that we just created. Let me search by the name I gave that policy.

95428D77-4182-4EE1-B0B3-79C7CF1E00EF.jpeg

Lastly, provide a name for the role.

78B0AFE4-DFEA-472C-8612-CE7F0ED48920.jpeg

And now we have the role created.

Let's go back to Incident Management and plug in the new role information. Here's the name of the role, and here's the AWS account number.

799476B5-3642-439C-8D1D-415EE029209D.jpeg

And the new credentials are now available for use.

743FE3BE-E5E3-49EB-A6DC-52CF0A2C197F.jpeg

Select a region, and test.

It works! Now, the data from Cloudwatch will start to flow into this instance of Incident Management.

Thanks for watching!

BASIC | 8 MIN

Lean how to use the CYOI feature to configure a custom integration. The video covers:

  • When to use the custom integration option

  • Ingest data in JSON format into Moogsoft

  • Map data from your monitoring software to Moogsoft event fields

  • Set up and test a deduplication key to reduce operational noise

Documentation is available.

Demo video: Create a custom integration ►

*Please note Moogsoft is now part of Dell's IT Operations solution called APEX AIOps, and changed its name to APEX AIOps Incident Management. The UI in this video may differ slightly but the content covered is still relevant.

After watching this video, you will be able to configure a custom integration to bring data from your monitoring source into Incident Management. You will be able to identify when to choose this over other integration options, ingest data in JSON format into Incident Management, map data from your monitoring software to Incident Management event fields, and set up and test a deduplication key to reduce operational noise.

1_CYOI.png

Incident Management offers a few different ways to ingest source data. You can install a data collector to the system you want to monitor...

1_CYOI7_25.png

...or integrate with specific monitoring tools.

2_CYOI7_25.png

Or you can build your own custom integration. You should choose a custom integration when there is no collector for your environment, and there is no specific integration available for your monitoring tool.

3_CYOI7_25.png

Creating your own integration has several benefits. First, you are not limited to particular monitoring tools. You can set up a custom integration with any monitoring source that can send data in JSON format.

5_CYOI.png

Second, you will use real data to design and test your integration. The Create Your Own Integration feature makes it easy to inspect source data before you map it.

4_CYOI7_25.png

And finally, creating a custom integration is simple. When you configure a webhook in a monitoring tool, you usually have to write code to modify the outgoing data payload. The Create Your Own Integration feature does all the mapping right in the Incident Management user interface, with no code.

5_CYOI7_25.png

After you have ingested data using a custom integration, you can transform and enrich it using the Incident Management Workflow Engine.  Still without writing any code.

6_CYOI7_25.png

Let’s step through setting up a custom integration together. Let’s say we have source data in JSON format that’s structured like this:

8_CYOI.png

We want to ingest the events so we can deduplicate and correlate them in Incident Management.

9_CYOI.png

And we need to map them to the Incident Management event fields.

10_CYOI.png

We also want to map the values for severity. Our source events only have four severity levels: NONE, INFO, WARN, and PROBLEM. We want to map these values to Incident Management severity levels like this.

11_CYOI.png

This is where you can set up a custom data ingestion. We are going to set up a new integration. Our source data in this example events, but note that we support metrics also.

7_CYOI7_25.png

We just created a custom endpoint for our integration.

8_CYOI7_25.png

Grab that, and the API Key for our Incident Management instance which is found here.

9_CYOI7_25.png

We’ve input those values in the source system. And now, Incident Management is receiving raw data from our source. Note that up to 10 of the most recent events are cached. You can click the reload button to refresh the list of data payloads.

10_CYOI7_25.png

We can examine the data for each event here.

11_CYOI7_25.png

Note that some of these events have blank hostnames, and for some the hostnames are populated.

12_CYOI7_25.png

Let’s see how the payload and target fields line up. Incident Management automatically matched the obvious ones.

13_CYOI7_25.png

We don’t have a value for source, which is a required field.  So we need to map something to that field.

14_CYOI7_25.png

Let’s look at the data again. We want to map hostname to source, but we know it’s blank in some cases, and required fields can’t be blank.

15_CYOI7_25.png

Let’s do this. We’ll map hostname to source if it exists, and if not we’ll use ip_address.

16_CYOI7_25.png

We’ll map hostname to source first. Then we’ll add a second mapping, and map ip_address. Incident Management will use the first mapping if a value exists and is valid. Otherwise, it will move on and use the next mapping.

17_CYOI7_25.png

This defines the condition that generates the event.

18_CYOI7_25.png

We’ll map the Type field to check.

19_CYOI7_25.png

Next let’s take care of the severity. Our monitoring service has only four severity levels: NONE, INFO, WARN, and PROBLEM. So we’ll map them to the Incident Management severity levels like this...

20_CYOI7_25.png

With that we took care of all the required fields. Let’s see what other fields we might want to bring in. Let’s say we want to keep region. And let’s add a custom tag for ip_address.

21_CYOI7_25.png

The last step before we save our integration is to configure the deduplication key. Here’s how deduplication works. Incident Management uses the fields in the deduplication key to assign multiple events to the same alert and reduce noise. The idea behind deduplication is that events with the same context should become part of the same alert.

27_CYOI.png
28_CYOI.png

For example, we might find out about a condition that affects one of our hosts with a warning event, which then escalates to a critical event. Since the key context is the same, Incident Management would assign those events to the same alert.

29_CYOI.png

Here comes another event, and since the dedupe key is different, it is categorized into a separate alert. Like this, selecting the right fields for your use case is the key factor for successful deduplication. The default is set to be the combination of the Source, Service, and Check fields, but you can select what works for you.  Just ask yourself, what should be the common factors for two events to be considered duplicates.

30_CYOI.png

Going  back to our custom integration, these are the default fields for deduplication. You can change them if you wish, but Incident Management recommends you use the defaults unless your business needs require that you use different fields.

22_CYOI7_25.png

In our case we don’t have a value for class, so we’ll remove that from the default keys.

23_CYOI7_25.png
24_CYOI7_25.png

Let’s test. Success! Here are the resulting deduplication keys.

25_CYOI7_25.png

Based on these values, some of the events have been assigned to the same alert.

26_CYOI7_25.png

Our custom integration is ready to go. Let’s save and activate it.  Note that it will stay in provisioned status until Incident Management processes an event.

27_CYOI7_25.png

The monitoring data is flowing into Incident Management through our custom integration. Thanks for watching!

28_CYOI7_25.png

BASIC | 5 MIN

In Moogsoft, you can use tags to create custom fields to store data that is important to your organization. Learn how to use them with this video.

Documentation is available.

Use case walkthrough: Use tags to create custom fields ►

This video explains how to create custom fields using tags in APEX AIOps Incident Management.

*Please note Moogsoft is now part of Dell's IT Operations solution called APEX AIOps, and changed its name to APEX AIOps Incident Management. The UI in this video may differ slightly but the content covered is still relevant.

While working on data ingestion, you may realize you need additional fields other than the ones provided by Incident Management to map your incoming payload. Tags are custom fields you can create to store such information.

For example, let’s say you are creating an integration using the Events API.

You’ve mapped basic information to the fields available by default.

1_CreateCustomFields_00_00_26_29_Still002.jpg

But you also need to map the environment value in your incoming payload. There’s no field available for that to be mapped. What to do?

This is where you use tags.

This shows the JSON format for a custom tag. There is a key: environment, and a value: production. Incident Management will generate a tag to hold the environment type when the Events API receives this in an event payload.

2_CreateCustomFields_00_00_50_00_Still003.jpg

Keep in mind, you should create tags ONLY WHEN you need to use them later in the journey of the data. if that data is not useful for routing, filtering, correlation, or troubleshooting, there’s no need to map every single field to Incident Management.

3_CreateCustomFields_00_01_04_29_Still004.jpg

Instead of the Events API, you may be using the Create Your Own Integration feature for the flexibility of its field mapping. In that case, there’s a convenient feature to auto-create tags. Here’s how it works.

4_CreateCustomFields_00_01_19_15_Still005.jpg

Add a new mapping row.

5_CreateCustomFields_00_01_30_29_Still006.jpg

And in the target field, select tags.

6_CreateCustomFields_00_01_33_29_Still007.jpg

And for payload fields, search for and add the JSON key which includes the tags you want to use. We’ll add the instance details.

7_CreateCustomFields_00_01_44_00_Still008.jpg

This adds IP Address and Instance ID at the same time.

8_CreateCustomFields_00_01_48_22_Still009.jpg

Of course, you can also map tags one at a time. Here's how you do that. Now we have the environment value stored as a tag.

9_CreateCustomFields_00_01_58_22_Still010.jpg

Another way to create tags is using the workflow engine.

Let’s say the impacted customer is not part of the incoming event payload, so you want to enrich events with customer information from an external source.

This workflow queries the data catalog using the instance_id. It looks up the customer value and stores it in a newly created tag.

10_CreateCustomFields_00_02_23_15_Still011.jpg
11_CreateCustomFields_00_02_27_25_Still012.jpg

You can generate tags from any workflow action that allows you to specify an output field. For example, Extract Substring or Match and Update.

12_CreateCustomFields_00_02_39_18_Still013.jpg

OK, now that you know how to create tags, next, let me show you how to use them.

You can use tags to filter a list. We’ll add a column for the customer tag…

13_CreateCustomFields_00_02_57_27_Still014.jpg

…and filter by the value we want.

14_CreateCustomFields_00_03_07_06_Still015.jpg

And, you can refer to tags to help with troubleshooting.

15_CreateCustomFields_00_03_16_20_Still016.jpg

This correlation definition uses tags to filter, and to correlate.

Let’s say the alerts originating in the test environment should not be put through this correlation definition.

Since you have a tag for the environment value, you can use that to filter the alert flow like this.

16_CreateCustomFields_00_03_33_29_Still017.jpg

Also, suppose you want to use the customer name to correlate alerts. Here alerts that share the exact same value for the customer tag and similar values for service are grouped together into an incident.

17_CreateCustomFields_00_03_43_26_Still018.jpg

Another place you can use tags is routing. Let’s say your support team uses PagerDuty to respond to customer-impacting incidents. So you want to route production incidents to PagerDuty, but not incidents affecting the development or test servers.

Here, we’ve used the environment tag to create a filter so only production incidents will be routed to this integration.

19_CreateCustomFields_00_04_08_03_Still019.jpg

Now you know how to use tags. Thanks for watching.

Now you know how to Thanks for watching!