{"id":783,"date":"2024-09-17T14:39:36","date_gmt":"2024-09-17T21:39:36","guid":{"rendered":"http:\/\/184.72.63.26\/?p=783"},"modified":"2024-10-01T13:02:01","modified_gmt":"2024-10-01T20:02:01","slug":"enhancing-observability-with-aws-opensearch","status":"publish","type":"post","link":"https:\/\/www.wallacel.com\/index.php\/2024\/09\/17\/enhancing-observability-with-aws-opensearch\/","title":{"rendered":"Enhancing Observability with AWS OpenSearch"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction<\/h3>\n\n\n\n<p>Observability is a key pillar in Site Reliability Engineering (SRE) that involves monitoring systems, identifying anomalies, troubleshooting issues, and ensuring seamless operations of services. SREs strive to maintain a balance between deploying new features rapidly and maintaining system reliability. To achieve this, observability tools help gather data, metrics, and logs from different layers of the system.<\/p>\n\n\n\n<p>Observability includes metrics, logging, and tracing to provide deep insights into application health and performance. One of the robust tools for achieving this in the AWS cloud environment is OpenSearch (formerly Elasticsearch Service). AWS OpenSearch is an analytics suite that includes a search engine, a data visualization tool (Kibana, rebranded as OpenSearch Dashboards), and a RESTful API for ingesting, searching, and analyzing data. SREs can use AWS OpenSearch to centralize their logs, metrics, and traces for an integrated observability solution.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why Use AWS OpenSearch for Observability?<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Centralized Log Management<\/strong>: OpenSearch allows the collection and centralization of logs from multiple sources, making it easy to search and analyze data for troubleshooting.<\/li>\n\n\n\n<li><strong>Real-time Analytics<\/strong>: Ingest data in near-real-time to monitor system performance and identify issues quickly.<\/li>\n\n\n\n<li><strong>Scalability<\/strong>: OpenSearch is fully managed on AWS, scaling to handle large volumes of data from diverse sources.<\/li>\n\n\n\n<li><strong>Visualization<\/strong>: OpenSearch Dashboards provide powerful visualization capabilities for creating graphs, charts, and dashboards, offering an intuitive way to interpret data.<\/li>\n<\/ol>\n\n\n\n<p><strong>Setting Up AWS OpenSearch to Ingest VPC Flow Logs<\/strong><\/p>\n\n\n\n<p>In this blog, I will explore how AWS OpenSearch can enhance observability by ingesting VPC Flow Logs. VPC Flow Logs provide network traffic insights within your AWS environment, making them a crucial data source to monitor security and network performance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Set Up an AWS OpenSearch Domain<\/h3>\n\n\n\n<p>For the purpose of evaluation, I will create a single node domain using <strong>t3.small.search<\/strong> instance with <strong>10GB<\/strong> EBS storage that is within the AWS free tier.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Create an OpenSearch Domain:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Go to the <a href=\"https:\/\/console.aws.amazon.com\/\">AWS Management Console<\/a><\/li>\n\n\n\n<li>Navigate to <strong>OpenSearch Service<\/strong> and click on <strong>Create domain<\/strong><\/li>\n\n\n\n<li>Choose <strong>Standard create<\/strong> for <strong>Domain creation method<\/strong><\/li>\n\n\n\n<li>Choose <strong>Dev\/test<\/strong> for <strong>Templates<\/strong> and <strong>Domain without standby<\/strong> for <strong>Deployment option<\/strong><\/li>\n\n\n\n<li>Choose <strong>1-AZ<\/strong> for <strong>Availability Zone(s)<\/strong><\/li>\n\n\n\n<li>Choose OpenSearch <strong>2.15 (latest)<\/strong> for <strong>Version<\/strong><\/li>\n\n\n\n<li>Select <strong>t3.small.search<\/strong> as instance type, <strong>1 node<\/strong> and <strong>10GiB<\/strong> EBS storage size per node<\/li>\n\n\n\n<li>Select <strong>Pubic access<\/strong> and <strong>IPv4 only<\/strong> for <strong>Network<\/strong><\/li>\n\n\n\n<li><strong>Create master user <\/strong>and choose your own <strong>Master username<\/strong> and <strong>Master<\/strong> <strong>password<\/strong><\/li>\n\n\n\n<li>For <strong>Access policy<\/strong>, choose <strong>Only use fine-grained access control<\/strong> to allow open access to the domain<\/li>\n\n\n\n<li>For <strong>Encryption<\/strong>, choose <strong>Use AWS owned key<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"798\" height=\"779\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-24.png\" alt=\"\" class=\"wp-image-784\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-24.png 798w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-24-300x293.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-24-768x750.png 768w\" sizes=\"auto, (max-width: 798px) 100vw, 798px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"796\" height=\"789\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-25.png\" alt=\"\" class=\"wp-image-785\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-25.png 796w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-25-300x297.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-25-150x150.png 150w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-25-768x761.png 768w\" sizes=\"auto, (max-width: 796px) 100vw, 796px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"796\" height=\"821\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-26.png\" alt=\"\" class=\"wp-image-786\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-26.png 796w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-26-291x300.png 291w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-26-768x792.png 768w\" sizes=\"auto, (max-width: 796px) 100vw, 796px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"799\" height=\"478\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-27.png\" alt=\"\" class=\"wp-image-787\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-27.png 799w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-27-300x179.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-27-768x459.png 768w\" sizes=\"auto, (max-width: 799px) 100vw, 799px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"796\" height=\"818\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-28.png\" alt=\"\" class=\"wp-image-788\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-28.png 796w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-28-292x300.png 292w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-28-768x789.png 768w\" sizes=\"auto, (max-width: 796px) 100vw, 796px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"796\" height=\"597\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-29.png\" alt=\"\" class=\"wp-image-789\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-29.png 796w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-29-300x225.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-29-768x576.png 768w\" sizes=\"auto, (max-width: 796px) 100vw, 796px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"797\" height=\"533\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-30.png\" alt=\"\" class=\"wp-image-790\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-30.png 797w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-30-300x201.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-30-768x514.png 768w\" sizes=\"auto, (max-width: 797px) 100vw, 797px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"379\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-31.png\" alt=\"\" class=\"wp-image-791\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-31.png 750w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-31-300x152.png 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Create CloudWatch Log Group<\/h3>\n\n\n\n<p>Create a new log group (<strong>vpc_flow_loggroup)<\/strong> in <strong>CloudWatch Logs<\/strong> to receive the VPC Flow Logs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"984\" height=\"589\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-32.png\" alt=\"\" class=\"wp-image-793\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-32.png 984w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-32-300x180.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-32-768x460.png 768w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/figure>\n\n\n\n<p>Create a IAM policy (<strong>MyVPCFlowLogtoCloudWatchPermission<\/strong>) with the following permission to write to the CloudWatch log group<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"json\" class=\"language-json\">{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n\t\t{\n\t\t\t\"Sid\": \"Statement1\",\n\t\t\t\"Effect\": \"Allow\",\n\t\t\t\"Action\": \"logs:*\",\n\t\t\t\"Resource\": \"arn:aws:logs:us-west-2:&lt;account id&gt;:log-group:vpc_flow_loggroup:*\"\n\t\t}\n\t]\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"988\" height=\"499\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-33.png\" alt=\"\" class=\"wp-image-794\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-33.png 988w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-33-300x152.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-33-768x388.png 768w\" sizes=\"auto, (max-width: 988px) 100vw, 988px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"980\" height=\"826\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-34.png\" alt=\"\" class=\"wp-image-795\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-34.png 980w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-34-300x253.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-34-768x647.png 768w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/figure>\n\n\n\n<p>Create an IAM Role (<strong>MyVPCFlowLogRole<\/strong>) and attach the new policy to it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"494\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-35-1024x494.png\" alt=\"\" class=\"wp-image-796\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-35-1024x494.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-35-300x145.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-35-768x370.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-35.png 1039w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>After the IAM role is created, edit the Trust relationship and change the service to <strong>vpc-flow-logs.amazonaws.com<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"760\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-37-1.png\" alt=\"\" class=\"wp-image-815\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-37-1.png 786w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-37-1-300x290.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-37-1-768x743.png 768w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Enable VPC Flow Log<\/h2>\n\n\n\n<p>Go to <strong>VPC<\/strong> in AWS Management Console and select your VPC. Select <strong>Flow logs<\/strong> and choose <strong>Create flow log<\/strong>. <br>Choose <strong>All<\/strong> For Filter to have all traffic logged in CloudWatch for our analysis. <br>For <strong>Maximum aggregation interval<\/strong>, I will choose <strong>1 minute<\/strong> to produce a higher volume of flow logs records.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"606\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/vpc.png\" alt=\"\" class=\"wp-image-816\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/vpc.png 750w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/vpc-300x242.png 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/figure>\n\n\n\n<p>For <strong>Destination<\/strong>, choose <strong>Send to CloudWatch Logs<\/strong> and choose the <strong>vpc_flow_loggroup<\/strong> that we just created.<br>For <strong>IAM role<\/strong>, choose the IAM role (<strong>MyVPCFLowLogRole<\/strong>) we created in previous step.<br>For <strong>Log record format<\/strong>, choose <strong>AWS default format<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"728\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-39.png\" alt=\"\" class=\"wp-image-800\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-39.png 746w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-39-300x293.png 300w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/figure>\n\n\n\n<p>To verify our vpc flow log is sending log records, go to <strong>CloudWatch<\/strong> and check that new <strong>Log streams<\/strong> are created under the new vpc flow log group.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"790\" height=\"746\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-40-1.png\" alt=\"\" class=\"wp-image-877\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-40-1.png 790w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-40-1-300x283.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-40-1-768x725.png 768w\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"808\" height=\"510\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/log.png\" alt=\"\" class=\"wp-image-817\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/log.png 808w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/log-300x189.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/log-768x485.png 768w\" sizes=\"auto, (max-width: 808px) 100vw, 808px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Ingest CloudWatch Logs into OpenSearch Using Subscription Filter<\/h3>\n\n\n\n<p>When it comes to ingesting CloudWatch Logs into OpenSearch, there are two main approaches: <strong>Amazon Data Firehose<\/strong> <strong>streams<\/strong> and <strong>CloudWatch Logs subscription filter<\/strong>. Data Firehose streams offers powerful data transformation capabilities with built-in error handling, automated scaling and backups to Amazon S3. This is ideal for complex, high-throughput log processing. On the other hand, CloudWatch Logs subscription filters provide a simpler and more cost-effective way to forward logs directly to OpenSearch while allowing pattern-based filtering at the source.<\/p>\n\n\n\n<p>For this blog, I will focus on using <strong>CloudWatch Logs subscription filters<\/strong> to streamline log ingestion and analysis in OpenSearch.<\/p>\n\n\n\n<p>First we need an IAM role with permission to write to OpenSearch cluster. Go to <strong>IAM<\/strong> console, create a policy with the following permission and replace the ARN with your own OpenSearch domain ARN.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"json\" class=\"language-json\">{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n\t\t{\n\t\t\t\"Sid\": \"Statement1\",\n\t\t\t\"Effect\": \"Allow\",\n\t\t\t\"Action\": [\n\t\t\t\t\"es:*\"\n\t\t\t],\n\t\t\t\"Resource\": \"arn:aws:es:us-west-2:&lt;account id&gt;:domain\/vpclog-opensearch\"\n\t\t}\n\t]\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1021\" height=\"504\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-45-1.png\" alt=\"\" class=\"wp-image-879\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-45-1.png 1021w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-45-1-300x148.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-45-1-768x379.png 768w\" sizes=\"auto, (max-width: 1021px) 100vw, 1021px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1021\" height=\"843\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-46.png\" alt=\"\" class=\"wp-image-809\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-46.png 1021w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-46-300x248.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-46-768x634.png 768w\" sizes=\"auto, (max-width: 1021px) 100vw, 1021px\" \/><\/figure>\n\n\n\n<p>Now, create a new IAM role (<strong>MyCloudWatchToOSRole<\/strong>) and attach this new policy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"495\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-47-1024x495.png\" alt=\"\" class=\"wp-image-810\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-47-1024x495.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-47-300x145.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-47-768x371.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-47.png 1032w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"457\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-48-1024x457.png\" alt=\"\" class=\"wp-image-811\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-48-1024x457.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-48-300x134.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-48-768x343.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-48.png 1051w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Go to <strong>CloudWatch<\/strong> in AWS Management Console, choose the vpc flow log group and create a <strong>Amazon OpenSearch Service Subscription Filter.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1006\" height=\"480\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-44.png\" alt=\"\" class=\"wp-image-806\" style=\"width:791px;height:auto\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-44.png 1006w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-44-300x143.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-44-768x366.png 768w\" sizes=\"auto, (max-width: 1006px) 100vw, 1006px\" \/><\/figure>\n\n\n\n<p>For <strong>Lambda IAM Execution Role<\/strong>, choose the IAM role (<strong>MyCloudWatchToOSRole<\/strong>) we created for writing the log to our OpenSearch cluster.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"790\" height=\"748\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-43.png\" alt=\"\" class=\"wp-image-805\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-43.png 790w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-43-300x284.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-43-768x727.png 768w\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" \/><\/figure>\n\n\n\n<p>For <strong>Log format<\/strong>, choose <strong>Amazon VPC Flow Logs<\/strong>, test the log pattern and verify the test results.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"802\" height=\"772\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/pattern1.png\" alt=\"\" class=\"wp-image-821\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/pattern1.png 802w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/pattern1-300x289.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/pattern1-768x739.png 768w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/figure>\n\n\n\n<p>The VPC flow logs are parsed correctly using the subscription filter pattern.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"799\" height=\"592\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/pattern2.png\" alt=\"\" class=\"wp-image-822\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/pattern2.png 799w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/pattern2-300x222.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/pattern2-768x569.png 768w\" sizes=\"auto, (max-width: 799px) 100vw, 799px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Set Up OpenSearch Dashboard<\/h3>\n\n\n\n<p>To access the OpenSearch Dashboard, in the AWS Management Console, navigate to your OpenSearch domain and select <strong>OpenSearch Dashboards URL<\/strong>. Log in using the credentials you set up while creating the OpenSearch domain.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"860\" height=\"508\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-52.png\" alt=\"\" class=\"wp-image-824\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-52.png 860w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-52-300x177.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-52-768x454.png 768w\" sizes=\"auto, (max-width: 860px) 100vw, 860px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"682\" height=\"787\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-53.png\" alt=\"\" class=\"wp-image-825\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-53.png 682w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-53-260x300.png 260w\" sizes=\"auto, (max-width: 682px) 100vw, 682px\" \/><\/figure>\n\n\n\n<p><strong>Create a Role and Mapped user:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to <strong>OpenSearch<\/strong> -> <strong>Management<\/strong> -> <strong>Security<\/strong>, choose <strong>Explore existing roles<\/strong><\/li>\n\n\n\n<li>Find the <strong>all_access<\/strong> role and choose <strong>Manage mapping<\/strong><\/li>\n\n\n\n<li>Copy and paste the ARN of the IAM role (<strong>MyCloudWatchToOSRole<\/strong>) to the Backend roles to give the role full permission to the cluster<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"865\" height=\"747\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-55.png\" alt=\"\" class=\"wp-image-828\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-55.png 865w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-55-300x259.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-55-768x663.png 768w\" sizes=\"auto, (max-width: 865px) 100vw, 865px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"156\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-56-1024x156-1.png\" alt=\"\" class=\"wp-image-881\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-56-1024x156-1.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-56-1024x156-1-300x46.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-56-1024x156-1-768x117.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"509\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-57-1024x509-1.png\" alt=\"\" class=\"wp-image-882\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-57-1024x509-1.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-57-1024x509-1-300x149.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-57-1024x509-1-768x382.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"708\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/mapuser1.png\" alt=\"\" class=\"wp-image-833\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/mapuser1.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/mapuser1-300x207.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/mapuser1-768x531.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>To verify that vpc flow log is being ingested to OpenSearch cluster, go to <strong>Dev Tools<\/strong> and enter the following command in the console:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">GET _cat\/indices<\/code><\/pre>\n\n\n\n<p>An index named <strong>cwl-yyyy.mm.dd<\/strong> has been created. Unlike other indices that are green, the cwl index is yellow because this is a single node setup with no other node to synchronize.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"349\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-60-1024x349.png\" alt=\"\" class=\"wp-image-835\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-60-1024x349.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-60-300x102.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-60-768x262.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-60.png 1070w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>We can also retrieve all the documents in the index with this command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">GET _search\n{\n  \"query\": {\n    \"match_all\": {}\n  }\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"653\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/devtools.png\" alt=\"\" class=\"wp-image-837\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/devtools.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/devtools-300x191.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/devtools-768x490.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>To create an index pattern, go to <strong>OpenSearch -&gt; Discover-&gt; Create<\/strong> <strong>Index Patterns<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For <strong>Index pattern name<\/strong>, enter <strong>cwl-*<\/strong>, then go to next step.<\/li>\n\n\n\n<li>For <strong>Time field<\/strong>, choose <strong>@timestamp<\/strong> to create the index pattern.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"619\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-62-1024x619.png\" alt=\"\" class=\"wp-image-838\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-62-1024x619.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-62-300x181.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-62-768x464.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-62.png 1132w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"628\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-63-1024x628.png\" alt=\"\" class=\"wp-image-839\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-63-1024x628.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-63-300x184.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-63-768x471.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-63.png 1137w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Analyzing VPC Flow Logs Using the OpenSearch Dashboard<\/h2>\n\n\n\n<p>To Create Visualizations and Dashboard, go to <strong>Visualize Library<\/strong> in OpenSearch Dashboards and create visualizations such as area graphs, pie charts, and data tables based on the VPC Flow Logs data.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"771\" height=\"620\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-64.png\" alt=\"\" class=\"wp-image-841\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-64.png 771w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-64-300x241.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-64-768x618.png 768w\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" \/><\/figure>\n\n\n\n<p>Let&#8217;s create our first visualization to sum up the traffic volume using Area graph.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"778\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-65-1024x778.png\" alt=\"\" class=\"wp-image-843\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-65-1024x778.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-65-300x228.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-65-768x583.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-65.png 1136w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Add a second visual to track all incoming traffic IP addresses to our VPC using a pie chart. The outer layer is the <strong>Source IP address<\/strong> and inner layer is their <strong>port number<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"588\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-66-1024x588.png\" alt=\"\" class=\"wp-image-844\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-66-1024x588.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-66-300x172.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-66-768x441.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-66.png 1422w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Create a similar pie chart for the <strong>Destination IP address<\/strong> and <strong>port number<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"618\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-67-1024x618.png\" alt=\"\" class=\"wp-image-845\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-67-1024x618.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-67-300x181.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-67-768x464.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-67.png 1431w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>For our last visual, add a pie chart to show the percentage of Accepted\/Rejected traffic.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"775\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-68-1024x775.png\" alt=\"\" class=\"wp-image-847\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-68-1024x775.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-68-300x227.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-68-768x582.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-68.png 1145w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now that we have all the visuals ready, let&#8217;s create a Dashboard to see everything in one place.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"717\" height=\"395\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-69.png\" alt=\"\" class=\"wp-image-848\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-69.png 717w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-69-300x165.png 300w\" sizes=\"auto, (max-width: 717px) 100vw, 717px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"658\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-70-1024x658.png\" alt=\"\" class=\"wp-image-849\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-70-1024x658.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-70-300x193.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-70-768x493.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-70.png 1213w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"698\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/09\/image-71-1024x698.png\" alt=\"\" class=\"wp-image-850\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-71-1024x698.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-71-300x204.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-71-768x523.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/09\/image-71.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>With the logs ingested and visualizations set up, we can use the OpenSearch Dashboards to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Monitor Traffic:<\/strong> Identify trends in network traffic, bandwidth consumption, and unusual activities (e.g., spikes in outbound traffic).<\/li>\n\n\n\n<li><strong>Troubleshoot Network Issues:<\/strong> Analyze failed connections, packet loss, and latency by filtering logs based on attributes like source\/destination IPs, ports, and protocols.<\/li>\n\n\n\n<li><strong>Security Analysis:<\/strong> Detect potential security threats by monitoring unauthorized access attempts, suspicious IP addresses, or abnormal data flows.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Observability is a key pillar in Site Reliability Engineering (SRE) that involves monitoring systems, identifying anomalies, troubleshooting issues, and ensuring seamless operations of services. SREs strive to maintain a balance between deploying new features rapidly and maintaining system reliability. To achieve this, observability tools help gather data, metrics, and logs from different layers of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":866,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[52,50,51],"class_list":["post-783","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","tag-cloudwatch","tag-opensearch","tag-sre"],"_links":{"self":[{"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/posts\/783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/comments?post=783"}],"version-history":[{"count":36,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/posts\/783\/revisions"}],"predecessor-version":[{"id":883,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/posts\/783\/revisions\/883"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/media\/866"}],"wp:attachment":[{"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/media?parent=783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/categories?post=783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/tags?post=783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}