{"id":15160,"date":"2023-09-12T11:53:06","date_gmt":"2023-09-12T06:23:06","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=15160"},"modified":"2024-02-23T14:50:24","modified_gmt":"2024-02-23T09:20:24","slug":"opensearch-alert-integration-with-sns","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/opensearch-alert-integration-with-sns\/","title":{"rendered":"OpenSearch Alert Integration with SNS"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"800\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/08\/banner.jpg?w=1024\" alt=\"\" class=\"wp-image-15218\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Why Opt for Integrating Alerts with OpenSearch?<\/h4>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">Monitoring the OpenSearch visualization dashboard 24*7 becomes challenging when application or system logs fail to appear. Therefore, it&#8217;s essential to establish alerts that promptly notify us when such issues arise.                             The flexibility and scalability of OpenSearch make it a compelling choice for implementing alerting solutions in various domains, from IT operations and security to business intelligence and analytics.  <\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Overview of OpenSearch cluster<\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">OpenSearch, a powerful and versatile search and analytics engine, plays a crucial role in helping you gain valuable insights from your data. However, staying on top of potential issues and anomalies in your OpenSearch cluster requires a proactive approach.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">OpenSearch provides a robust alerting and monitoring framework that enables you to set up customized alerts based on your specific use cases and requirements. By defining alert conditions that trigger notifications, you can be instantly notified about critical events such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Abnormal CPU utilization<\/li>\n\n\n\n<li>Out-of-memory incidents<\/li>\n\n\n\n<li>Query performance degradation<\/li>\n\n\n\n<li>Data indexing failures<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">What is SNS (Simple Notification Service)<\/h4>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">AWS SNS is a versatile notification service that empowers you to build event-driven, cloud-native applications. In this blog post, we&#8217;ll explore the process of integrating OpenSearch alerts with AWS SNS, and we&#8217;ll uncover how this integration can greatly enhance your monitoring capabilities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So now we will deep-dive into the integration of OpenSearch alerts with AWS SNS.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Now we will have to create an SNS topic. <\/p>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">Log in to the AWS Management Console, then navigate to the SNS service. Click on &#8216;Create topic&#8217; and provide a name along with a display name for your topic. Afterward, click &#8216;Create topic.&#8217;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Remember to note down the Amazon Resource Name (ARN) of the newly created SNS topic.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"828\" height=\"346\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2024\/02\/arn.png\" alt=\"\" class=\"wp-image-17554\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/02\/arn.png 828w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/02\/arn-300x125.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/02\/arn-768x321.png 768w\" sizes=\"auto, (max-width: 828px) 100vw, 828px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2<\/h2>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">As we have created an SNS Topic, we will now need to create a subscription endpoint where we can receive an alert. So in our case, I want to get a notification on my email ID hence email is selected as an endpoint for the subscription.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"238\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/image-12.png?w=800\" alt=\"\" class=\"wp-image-15430\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3<\/h2>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">Next, create an OpenSearch role that grants access to the SNS service, enabling it to initiate alerts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" style=\"width: 1000000px\" src=\"https:\/\/lh6.googleusercontent.com\/HRoYJf-70hXpWB5LgpvmSJR2ewcFEg1sswIum5SWwj13mG28yYxPixe3zgrAD-mO8Xs1bBYEACkcgw8Wng5-dItIuCZwyDonof3UlFk6JdITIA9CW8NFJFQhA0aAf7gzWy_YpU1iOaP8dYsay8EPfA\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"172\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/image-13.png?w=800\" alt=\"\" class=\"wp-image-15431\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now attach the SNS Full access policy for this role.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Update the trust relationship to openSearch for the same. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    \"Version\": \"2012-10-17\",\n    \"Statement\": &#091;\n        {\n            \"Action\": &#091;\n                \"sts:AssumeRole\"\n            ],\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"Service\": &#091;\n                    \"opensearchservice.amazonaws.com\"\n                ]\n            }\n        }\n    ]\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5<\/h2>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">Once we have created a role in IAM. Now navigate to your OpenSearch cluster and update&nbsp;the access policy of openSearch cluster.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"247\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/image-22.png?w=800\" alt=\"\" class=\"wp-image-15432\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Go to the security panel to update the access policy.<\/p>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">Having established a role with complete SNS access and having designated Amazon OpenSearch as a trusted entity, we need to incorporate this role into the access policy of your OpenSearch cluster.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": &#091;\n    {\n      \"Effect\": \"Allow\",\n      \"Principal\": {\n        \"AWS\": \"*\"\n      },\n      \"Action\": \"es:*\",\n      \"Resource\": \"arn:aws:es:ap-south-1:&lt;account-id&gt;:domain\/&lt;opensearch-domain-name&gt;\/*\"\n    },\n    {\n      \"Effect\": \"Allow\",\n      \"Principal\": {\n        \"AWS\": \"arn:aws:iam::&lt;account-id&gt;:role\/SNS-ACCESS\"\n      },\n      \"Action\": \"es:ESHttpPost\",\n      \"Resource\": \"arn:aws:es:ap-south-1:&lt;account-id&gt;:domain\/&lt;opensearch-domain-name&gt;\/_doc\/_bulk\"\n    }\n  ]\n}\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"361\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/image-21.png?w=800\" alt=\"\" class=\"wp-image-15433\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Now Login into OpenSearch then go to the notification channel and create a channel for SNS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/P_-lylMyky6Ag_4PDBcgbN59F8j5tCZ57FTC__G5fguojPtlDo_OtA9hyfOiIIKceuGrKXcCMJ9M5AkBIb6m1ZwUH14Qyfu_ocswZKNY1kOvLFbMX9J8ahhPDwNhqQ1hPbjzstxE4-ecusbUkDctXA\" width=\"624\" height=\"155\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7<\/h2>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">To complete the setup, proceed by selecting &#8220;Create Channel&#8221; and opt for SES as the chosen channel type. Input the SNS Topic ARN and the Role ARN of the previously established role. This configuration ensures the activation of alerts effectively.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/UL8rUECwwhZsux98dkHte57bJUAIEfyJ9ItA-FnTP5ysGPoR-zM_7NzxNBwqHy1FOk_hW-9SizN0ok_i32XR2Vb5DfFow7M-mKTzL5yciOy1bWVWdlh11dvoVuclU2Mxev_nq7I81ls7NCzJIJvmEg\" width=\"624\" height=\"271\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Now<\/strong> <strong>let&#8217;s check an example for setting up alerts on openSearch.<\/strong><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Step 1<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Once you log into OpenSearch, navigate to the Alerting section.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Step 2<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Once you\u2019re inside the alerting system click on Monitor and click on Create monitor to create an alert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/HnIHLLui9rZ9lAkV7UekX56QvBe93jDe8fEqb8KbFOnx7je6f-bjtyNDTgzCvOwfvUFNQfhrZhze_wxN1vl2NwWdVpAuW93tjtCiKskFc3gP8Tlp8Jsvco1e5QGJHvdlt92CSI1wT8A-sXmuc7Bztgg\" width=\"624\" height=\"119\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Step 3<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Now we will create an alert to monitor the index. Give a name and time interval that it will monitor the index.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/u9xgWMtdI66-Qsu9nh1HKXbQ1zAfiStYO88Y_ntuMgxNc081xs7ZlV9GIQO6z21XangiWFhYZQCQe_WYtvL0q-52L0yB99PkNQxSpfrTJ2qdO5jBid5ChOIsquZhVoLcvE64Gi3rOBoY6Hc9knHP9iI\" width=\"624\" height=\"320\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Step 4<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Provide the index name for which monitoring needs to be enabled.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/c4fMeLNQAzH0F6f-43Q2P20OgHSPJEmJ5CEZ9GgWxy0THhMcdMbPCE3FOBiqq15adwlBYfj6PbGvl16n8vyHFgCA6-r6Yqx3OgmA0jXFJd_zjApwGAHJ_yeq8gIN183_mBbwv7vwNlk1y5w4HASunlc\" width=\"624\" height=\"111\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Step 5<\/h5>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">We will write a query for monitoring the index, aiming to identify instances where data hasn&#8217;t been received. In this illustration, will use the <strong>env: dev<\/strong> tag that accompanies each log entering the OpenSearch of the <strong>fmpp-goal index<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/tDrnJ1y36PL_saqhEngklWkZ91OsEOS5vAvC6hLFdARZXRzziPuVJGsphCXKOd1HWfpLnjxBdyWMc4LP4ZszL0AQFEL-tki6ecJxCKWh5mZJLP4ZLmB4H8LNpNYRggtH_AnQkfHHr4uIZOKOPsI2Qt4\" width=\"624\" height=\"296\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Step 6<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Once you&#8217;ve established the monitoring query for the index, proceed to configure the trigger. This enables the generation of alerts whenever logs are not generated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/Gwywv4PAU31Cn--IljuFX4XEAcidzFw7LYPI3_WjAFOUWgWwJsisYDl3VlviVSOTROMup6Mlsh5nQp_gVyPDXvM5Ra8bur3tmgT9hQWrz3o5rrb8bFL_wWRJfPdCVAqBkfakW1j6zVqQqrm397aFsUs\" width=\"624\" height=\"88\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Step 7<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Now, define the alert condition based on the specific use case. In my scenario, I&#8217;ve configured it to trigger when the count reaches zero. This condition is applicable when no logs are present, meaning the <strong>env: dev<\/strong> tag is absent in the fmpp-goal index. Therefore, I&#8217;ve precisely set the trigger condition to zero.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/Uvv3eFvN4r0iim53jbez-QTwlCOBBSs6aMFCxNYrWylrTVqMDMF-84fB814dfhBnrghjEsGQqmOOeU1SMZhIwBbp4KwuuJK-o76_G8lUxjpdOgDnx50XaUt4EzLwBEuMroV-QYIL50UQWIcb8bzxhwc\" width=\"624\" height=\"260\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Step 8<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Now set the alert message and notification channel which we have configured earlier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"241\" src=\"https:\/\/lh3.googleusercontent.com\/13GthojzqhdJ0I6LHFbwt3irfzUcVsBsYhZFN2I-YAdWz5mbYAoNPAcmCFGyg02ErLFI8Wdfu6mKAMH3vsPJKH8ozKZjCMGV4olbtrwy95YtsOIijkdZTG0AjAj4RvUwhbYndwhKGW5pTsOUSfBMyaE\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Step 9<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Click on Create and that will complete the alerting setup on OpenSearch<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/nFq6QIb-Puv68jg51ChhLRvONqtAqmWtnAmTkMQC6Nq-sXJxlytCCFpT70sFxqYsi1uR9_uRU0zVCJQonz3GlR79xdTYUM00NUAsIh3QR0rTrHg-zPCGzh9Znaq1kvJmijtJm83y6NhXLjxMqODThOk\" width=\"624\" height=\"69\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Step 10<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Once the alert is set up using openSearch. You will receive the notification below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"270\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/image-20-1.png?w=800\" alt=\"\" class=\"wp-image-15434\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In the same way, you can set up alerts for API Failure as well.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Conclusion<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-justify wp-block-paragraph\">Real-time monitoring and alerts are not just a convenience but a necessity. The integration of OpenSearch alerts with AWS SNS empowers you to take control of your cluster&#8217;s health by providing instant notifications that enable swift action. With this integration, you can ensure that potential issues are addressed before they impact your users or disrupt your operations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Blog Pundits: <a href=\"https:\/\/opstree.com\/blog\/\/author\/deepakgupta97\/\">&nbsp;<strong>Deepak Gupta<\/strong><\/a><strong><strong> <\/strong><\/strong><\/strong> <strong>and <a rel=\"noreferrer noopener\" href=\"https:\/\/opstree.com\/blog\/\/author\/sandeep7c51ad81ba\/\" target=\"_blank\">Sandeep Rawat<\/a><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>OpsTree is an End-to-End <a href=\"https:\/\/opstree.com\/services\/\" target=\"_blank\" rel=\"noreferrer noopener\">DevOps Solution<\/a> Provider.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/opstree.com\/contact-us\/?utm_source=WordPress&amp;utm_medium=Blog&amp;utm_campaign=OpenSearch+Alert+Integration+with+SNS\" target=\"_blank\" rel=\"noreferrer noopener\">Contact Us<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Connect with Us<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-social-links aligncenter is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-fe0a7de2 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-youtube wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-github wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-facebook wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-medium wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M13.2,12c0,3-2.4,5.4-5.3,5.4S2.6,15,2.6,12s2.4-5.4,5.3-5.4S13.2,9,13.2,12 M19.1,12c0,2.8-1.2,5-2.7,5s-2.7-2.3-2.7-5s1.2-5,2.7-5C17.9,7,19.1,9.2,19.1,12 M21.4,12c0,2.5-0.4,4.5-0.9,4.5c-0.5,0-0.9-2-0.9-4.5s0.4-4.5,0.9-4.5C21,7.5,21.4,9.5,21.4,12\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-twitter wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/twitter.com\/opstreedevops\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Twitter<\/span><\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Why Opt for Integrating Alerts with OpenSearch? Monitoring the OpenSearch visualization dashboard 24*7 becomes challenging when application or system logs fail to appear. Therefore, it&#8217;s essential to establish alerts that promptly notify us when such issues arise. The flexibility and scalability of OpenSearch make it a compelling choice for implementing alerting solutions in various domains, [&hellip;]<\/p>\n","protected":false},"author":239127798,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[26084,44070,768739294,83934289,768739308,676319247,765246259,4996032],"class_list":["post-15160","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-alerting","tag-automation","tag-aws","tag-aws-sns","tag-devops","tag-devops-solutioning","tag-opensearch-alert","tag-technical-blogs"],"blocksy_meta":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-3Ww","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/15160","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/239127798"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=15160"}],"version-history":[{"count":26,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/15160\/revisions"}],"predecessor-version":[{"id":17555,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/15160\/revisions\/17555"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=15160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=15160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=15160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}