{"id":14033,"date":"2023-05-30T12:03:48","date_gmt":"2023-05-30T06:33:48","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=14033"},"modified":"2023-05-30T12:03:48","modified_gmt":"2023-05-30T06:33:48","slug":"basic-logging-setup-of-loki-grafana","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2023\/05\/30\/basic-logging-setup-of-loki-grafana\/","title":{"rendered":"Basic Logging Setup of Loki Grafana"},"content":{"rendered":"\n<p>Let&#8217;s say you are the DevOps lead for a large e-commerce platform that runs on a microservices architecture with hundreds of services. You need to monitor the logs of all these services to quickly identify issues, troubleshoot problems, and optimize the system&#8217;s performance. You also want to be able to search and analyze logs across all services in real time and be alerted when any critical issues arise.<\/p>\n\n\n\n<p>To address this scenario, you could use Grafana Loki as your centralized logging system. Loki is a lightweight and cost-effective solution that can handle high volumes of logs and store them in a distributed manner. You can configure each service to send logs to Loki, which will automatically index them and make them available for search and analysis.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>Loki and Grafana are two open-source projects that are commonly used together for log aggregation, analysis, and visualization.<\/p>\n\n\n\n<p>Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be a cost-effective solution for storing and querying logs and uses a unique indexing approach to provide fast and efficient searching of log data. Loki is also highly extensible, allowing users to easily add custom logging drivers and integrate with other systems.<\/p>\n\n\n\n<p>Grafana, on the other hand, is a popular open-source platform for visualizing and analyzing time-series data, including logs. It provides a powerful and flexible dashboarding system that allows users to create customized visualizations and alerts based on their log data. Grafana also integrates with many different data sources, including Loki, which makes it a great choice for log analysis and visualization.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">Why prefer Loki over other logging tools?<\/h3>\n\n\n\n<p>There are other logging tools available but Loki&#8217;s combination of scalability, cost-effectiveness, Prometheus integration, centralized log aggregation, powerful querying capabilities, log stream processing and community support make it a compelling choice for many organizations seeking an efficient and effective logging solution.<\/p>\n\n\n\n<ol>\n<li>Efficient scaling: Loki is highly scalable and able to handle massive volumes of log data efficiently thanks to its distributed architecture and compressed, indexed log storage.<\/li>\n\n\n\n<li>Cost-effectiveness: When compared to conventional log management solutions, Loki&#8217;s use of object storage\u2014such as Amazon S3 or Google Cloud Storage\u2014helps lower storage costs.<\/li>\n\n\n\n<li>Seamless integration with Prometheus: Loki integrates smoothly with Prometheus, allowing for correlation between logs and metrics. This correlation enhances troubleshooting and analysis capabilities.<\/li>\n\n\n\n<li>Centralized log aggregation and querying: Loki provides a centralized log aggregation solution, enabling logs from multiple sources to be collected and queried in a unified manner. Its powerful filtering and querying capabilities, inspired by Prometheus, make log analysis and troubleshooting more efficient.<\/li>\n\n\n\n<li>Log stream processing: Loki supports log stream processing, allowing for the extraction of labels and application of filters to logs. This enables actions such as routing logs to different destinations or creating alerting rules based on log content.<\/li>\n\n\n\n<li>Open-source and community-driven: As an open-source project with an active community, Loki benefits from a wide range of community-contributed integrations, enhancements, and support. This makes it a flexible and well-supported logging solution.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Loki Architecture<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/untitled-2022-10-07-2210.png?w=673\" alt=\"\" class=\"wp-image-14101\" width=\"800\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Installation <\/h2>\n\n\n\n<p>There are diff methods available to install Loki e.g. via helm, docker-compose, binary and etc<\/p>\n\n\n\n<p>Choose the specific version from site <a href=\"https:\/\/github.com\/grafana\/loki\/releases\/\" target=\"_blank\" rel=\"noopener\">Loki-Releases<\/a> and run via below instructions.<\/p>\n\n\n\n<p>While running binary we need to pass config-file. Please find an example of config file below<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>auth_enabled: false\n\nserver:\n  http_listen_port: 3100\n\ningester:\n  lifecycler:\n    address: 127.0.0.1\n    ring:\n      kvstore:\n        store: inmemory\n      replication_factor: 1\n    final_sleep: 0s\n  chunk_idle_period: 5m\n  chunk_retain_period: 30s\n  max_transfer_retries: 0\n\nschema_config:\n  configs:\n    - from: 2018-04-15\n      store: boltdb\n      object_store: filesystem\n      schema: v11\n      index:\n        prefix: index_\n        period: 168h\n\nstorage_config:\n  boltdb:\n    directory: \/data\/loki\/index\n\n  filesystem:\n    directory: \/data\/loki\/chunks\n\nlimits_config:\n  enforce_metric_name: false\n  reject_old_samples: true\n  reject_old_samples_max_age: 168h\n\nchunk_store_config:\n  max_look_back_period: 0s\n\ntable_manager:\n  retention_deletes_enabled: false\n  retention_period: 0s\n<\/code><\/pre>\n\n\n\n<p>To learn more about config-file follow <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/configuration\/\" target=\"_blank\" rel=\"noopener\">link<\/a>. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Install Grafana  for visualization<\/h3>\n\n\n\n<p>We can install Grafana through linux package manager.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Use the given command to install some requisite packages \u2013\nsudo apt install -y gnupg2 curl\n\n# Use the following command to add the Grafana GPG key to your system \u2013\ncurl https:\/\/packages.grafana.com\/gpg.key | sudo apt-key add -\n\n# Run the given command to add Grafana package repository to your system \u2013\nsudo add-apt-repository \"deb https:\/\/packages.grafana.com\/oss\/deb stable main\"\n\nsudo apt update\nsudo apt -y install grafana\n\n# Once the package is installed, use the following command to start and enable Grafana services \u2013\n\nsudo systemctl start grafana-server\nsudo systemctl enable grafana-server\nsudo systemctl status grafana-server<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Install Loki Agent <\/h3>\n\n\n\n<p>Grafana Loki supports the following official clients for sending logs:<\/p>\n\n\n\n<ul>\n<li>Promtail<\/li>\n\n\n\n<li>Docker Driver<\/li>\n\n\n\n<li>Fluentd<\/li>\n\n\n\n<li>Fluent Bit<\/li>\n\n\n\n<li>Logstash<\/li>\n\n\n\n<li>Lambda Promtail<\/li>\n<\/ul>\n\n\n\n<p>We will use Promtail for logging agent with Loki.<\/p>\n\n\n\n<p><strong>Promatil Installations<\/strong> &#8211; With each Loki <a href=\"https:\/\/github.com\/grafana\/loki\/releases\" target=\"_blank\" rel=\"noopener\">releases<\/a> we will find Promtail binary in Assessts. <\/p>\n\n\n\n<p>While running binary pass the config file. Please find an example of config file below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server:\n  http_listen_port: 9080\n  grpc_listen_port: 0\n\npositions:\n  filename: \/var\/log\/positions.yaml\n\nclients:\n  - url: http:\/\/Loki_server_ip:3100\/loki\/api\/v1\/push\n\nscrape_configs:\n- job_name: system\n  static_configs:\n  - targets:\n      - localhost\n    labels:\n      job: agent1\n      instance: \n      __path__: \/var\/log\/*log<\/code><\/pre>\n\n\n\n<p>In Config file we give diff labels which are used to identify agents and we can group identical server logs and can apply different filter by running query.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Log analysis<\/h2>\n\n\n\n<p><strong>Step 1<\/strong> &#8211; Login Grafana add loki as Datasource.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/screenshot-from-2023-05-11-11-57-04.png?w=1024\" alt=\"\" class=\"wp-image-14068\" width=\"800\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Step 2<\/strong> &#8211; we can verify that logs are coming or not in explore section. Select the the Loki Datasource and select label which you have given in  config file of Promtail of your agents.  You will find logs of that particular server below in sheet and Graph form.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/2.png?w=1024\" alt=\"\" class=\"wp-image-14069\" width=\"800\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/3.png?w=1024\" alt=\"\" class=\"wp-image-14070\" width=\"800\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Step 3<\/strong> &#8211; Create Grafana Dashboards, we need use loki query lanaguage <strong>LogQL<\/strong> and with helps of its we will create Graphs.<\/p>\n\n\n\n<p>To get the syslogs from agent 1 we will run query as shown below in snapshots.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/screenshot-from-2023-05-11-12-26-27.png?w=1024\" alt=\"\" class=\"wp-image-14071\" width=\"800\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>In same way we create more panel for our Dashboards. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/05\/screenshot-from-2023-05-11-13-33-51-1.png?w=1024\" alt=\"\" class=\"wp-image-14073\" width=\"800\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>Grafana Loki can help you monitor and troubleshoot your microservices architecture efficiently and effectively. It provides a cost-effective, scalable, and easy-to-use solution for storing, searching, and analyzing logs from your applications and infrastructure.<\/p>\n\n\n\n<p><strong>Blog Pundits: <a href=\"https:\/\/www.linkedin.com\/in\/mehul-sharma-devops\/\" target=\"_blank\" rel=\"noreferrer noopener\">Mehul Sharma<\/a> and <a rel=\"noreferrer noopener\" href=\"https:\/\/opstree.com\/blog\/\/author\/sandeep7c51ad81ba\/\" target=\"_blank\">Sandeep Rawat<\/a><\/strong><\/p>\n\n\n\n<p><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=Basic+Logging+Setup+of+Loki+Grafana\" target=\"_blank\" rel=\"noreferrer noopener\">Contact Us<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><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-1 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=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/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>Let&#8217;s say you are the DevOps lead for a large e-commerce platform that runs on a microservices architecture with hundreds of services. You need to monitor the logs of all these services to quickly identify issues, troubleshoot problems, and optimize the system&#8217;s performance. You also want to be able to search and analyze logs across &hellip; <a href=\"https:\/\/opstree.com\/blog\/2023\/05\/30\/basic-logging-setup-of-loki-grafana\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Basic Logging Setup of Loki Grafana&#8221;<\/span><\/a><\/p>\n","protected":false},"author":235078562,"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":[44070,768739308,676319247,62087,114816,4996032],"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-3El","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/14033"}],"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\/235078562"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=14033"}],"version-history":[{"count":25,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/14033\/revisions"}],"predecessor-version":[{"id":14253,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/14033\/revisions\/14253"}],"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=14033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=14033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=14033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}