{"id":11595,"date":"2022-02-17T11:57:38","date_gmt":"2022-02-17T08:57:38","guid":{"rendered":"https:\/\/kifarunix.com\/?p=11595"},"modified":"2024-03-09T09:44:20","modified_gmt":"2024-03-09T06:44:20","slug":"install-elk-stack-8-x-on-ubuntu","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/install-elk-stack-8-x-on-ubuntu\/","title":{"rendered":"Install ELK Stack 8.x on Ubuntu 24.04\/Ubuntu 22.04"},"content":{"rendered":"\n<p>In this tutorial, you will learn how to install ELK stack 8.x on Ubuntu 24.04\/Ubuntu 22.04 systems. Elastic\/ELK stack 8.x has been released making it another major version release after Elastic 7.0. Elastic 8.x comes with a lot of improvements including;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>compatibility with 7.x REST API<\/li>\n\n\n\n<li>security features enabled and configured by default (HTTPS and Authentication)<\/li>\n\n\n\n<li>Better protection for system indices<\/li>\n\n\n\n<li>New k-nearest neighbor (kNN) API<\/li>\n\n\n\n<li>Read more on the <a href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/reference\/current\/release-highlights.html#release-highlights\" target=\"_blank\" rel=\"noopener\">Elastic 8.0 release highlights<\/a> page.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ul><li><a href=\"#install-elk-stack-8-x-on-ubuntu-24-04-ubuntu-22-04\">Install ELK Stack 8.x on Ubuntu 24.04\/Ubuntu 22.04<\/a><ul><li><a href=\"#set-system-hostname\">Set system Hostname<\/a><\/li><li><a href=\"#install-elastic-stack-8-x-repositories\">Install Elastic Stack 8.x Repositories<\/a><\/li><li><a href=\"#install-elk-stack-8-x\">Install ELK Stack 8.x<\/a><ul><li><a href=\"#install-elasticsearch-8-x-on-ubuntu\">Install Elasticsearch 8.x on Ubuntu<\/a><\/li><li><a href=\"#configure-elasticsearch-8-x-on-ubuntu\">Configure Elasticsearch 8.x on Ubuntu<\/a><\/li><li><a href=\"#adjust-elasticsearch-jvm-settings\">Adjust Elasticsearch JVM Settings<\/a><\/li><li><a href=\"#running-elasticsearch\">Running Elasticsearch<\/a><\/li><\/ul><\/li><li><a href=\"#check-elasticsearch-logs\">Check Elasticsearch Logs<\/a><\/li><li><a href=\"#install-kibana-8-x-on-ubuntu-24-04-ubuntu-22-04\">Install Kibana 8.x on Ubuntu 24.04\/Ubuntu 22.04<\/a><\/li><li><a href=\"#configure-kibana-on-ubuntu-24-04-ubuntu-22-04\">Configure Kibana on Ubuntu 24.04\/Ubuntu 22.04<\/a><ul><li><a href=\"#configure-kibana-to-listen-on-non-loopback-interface\">Configure Kibana to Listen on Non-Loopback Interface<\/a><\/li><li><a href=\"#generate-kibana-elasticsearch-enrollment-token\">Generate Kibana-Elasticsearch Enrollment Token<\/a><\/li><li><a href=\"#generate-kibana-encryption-keys\">Generate Kibana Encryption Keys<\/a><\/li><li><a href=\"#running-kibana\">Running Kibana<\/a><\/li><li><a href=\"#access-kibana-8-dashboard\">Access Kibana 8 Dashboard<\/a><\/li><\/ul><\/li><li><a href=\"#how-to-install-logstash-8-and-connect-it-to-elasticsearch-8\">How to Install Logstash 8 and Connect it to Elasticsearch 8<\/a><\/li><li><a href=\"#install-filebeat-8\">Install Filebeat 8<\/a><\/li><\/ul><\/li><li><a href=\"#other-tutorials\">Other Tutorials<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"install-elk-stack-8-x-on-ubuntu-24-04-ubuntu-22-04\">Install ELK Stack 8.x on Ubuntu 24.04\/Ubuntu 22.04<\/h2>\n\n\n\n<p>You can run Elastic Stack 8.x as a docker container or run it on your system as a package. We will be installing it as a package in this tutorial.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"set-system-hostname\">Set system Hostname<\/h3>\n\n\n\n<p>Begin by setting your system hostname;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo su -<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>hostnamectl set-hostname elk.kifarunix-demo.com<\/code><\/pre>\n\n\n\n<p>Update DNS records locally on hosts file if you don&#8217;t have DNS server;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"192.168.122.149 elk.kifarunix-demo.com elk\" &gt;&gt; \/etc\/hosts<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-elastic-stack-8-x-repositories\">Install Elastic Stack 8.x Repositories<\/h3>\n\n\n\n<p>To install Elastic Stack 8.x on Ubuntu, you need to install Elastic Stack 8.x repositories as follows.<\/p>\n\n\n\n<p>Install Elastic stack 8.x repository signing key.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install gnupg2<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -qO - https:\/\/artifacts.elastic.co\/GPG-KEY-elasticsearch | \\\ngpg --dearmor -o \/etc\/apt\/trusted.gpg.d\/elastic.gpg<\/code><\/pre>\n\n\n\n<p>Install the Elastic Stack 8.x repository;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"deb https:\/\/artifacts.elastic.co\/packages\/8.x\/apt stable main\" &gt; \/etc\/apt\/sources.list.d\/elastic-8.x.list<\/code><\/pre>\n\n\n\n<p>Run system update;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-elk-stack-8-x\">Install ELK Stack 8.x<\/h3>\n\n\n\n<p>Elastic stack is made up of various opensource tools; Elasticsearch, Logstash, Kibana, and Beats.<\/p>\n\n\n\n<p>In this setup, I will only install the Kibana and Elasticsearch. Since I do not require any special data processing on data, Logstash wont be necessary.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-elasticsearch-8-x-on-ubuntu\">Install Elasticsearch 8.x on Ubuntu<\/h4>\n\n\n\n<p>You can install Elasticsearch 8.x automatically from Elastic repos installed above by executing the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install elasticsearch -y<\/code><\/pre>\n\n\n\n<p>During the installation, the Security features will be enabled by default;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Authentication and authorization are enabled.<\/li>\n\n\n\n<li>TLS for the transport and HTTP layers is enabled and configured.<\/li>\n\n\n\n<li>Elastic super user account (elastic) and its password is created.<\/li>\n<\/ul>\n\n\n\n<pre class=\"scroll-box\"><code>Reading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nThe following NEW packages will be installed:\n  elasticsearch\n0 upgraded, 1 newly installed, 0 to remove and 156 not upgraded.\nNeed to get 631 MB of archives.\nAfter this operation, 1,317 MB of additional disk space will be used.\nGet:1 https:\/\/artifacts.elastic.co\/packages\/8.x\/apt stable\/main amd64 elasticsearch amd64 8.11.3 [631 MB]\nFetched 65.0 MB in 4s (17.7 MB\/s)      \nSelecting previously unselected package elasticsearch.\n(Reading database ... 74004 files and directories currently installed.)\nPreparing to unpack ...\/elasticsearch_8.11.3_amd64.deb ...\nCreating elasticsearch group... OK\nCreating elasticsearch user... OK\nUnpacking elasticsearch (8.11.3) ...\nSetting up elasticsearch (8.11.3) ...\n--------------------------- Security autoconfiguration information ------------------------------\n\nAuthentication and authorization are enabled.\nTLS for the transport and HTTP layers is enabled and configured.\n\nThe generated password for the elastic built-in superuser is : 57eAxSaLpBWhR465FvzZ\n\nIf this node should join an existing cluster, you can reconfigure this with\n'\/usr\/share\/elasticsearch\/bin\/elasticsearch-reconfigure-node --enrollment-token <token-here>'\nafter creating an enrollment token on your existing cluster.\n\nYou can complete the following actions at any time:\n\nReset the password of the elastic built-in superuser with \n'\/usr\/share\/elasticsearch\/bin\/elasticsearch-reset-password -u elastic'.\n\nGenerate an enrollment token for Kibana instances with \n '\/usr\/share\/elasticsearch\/bin\/elasticsearch-create-enrollment-token -s kibana'.\n\nGenerate an enrollment token for Elasticsearch nodes with \n'\/usr\/share\/elasticsearch\/bin\/elasticsearch-create-enrollment-token -s node'.\n\n-------------------------------------------------------------------------------------------------\n### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd\n sudo systemctl daemon-reload\n sudo systemctl enable elasticsearch.service\n### You can start elasticsearch service by executing\n sudo systemctl start elasticsearch.service\nScanning processes...                                                                                                                                                                                \nScanning linux images...                                                                                                                                                                             \n\nRunning kernel seems to be up-to-date.\n\nNo services need to be restarted.\n\nNo containers need to be restarted.\n\nNo user sessions are running outdated binaries.\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"configure-elasticsearch-8-x-on-ubuntu\">Configure Elasticsearch 8.x on Ubuntu<\/h4>\n\n\n\n<p>Since we are running a basic setup single node cluster, we will go with the default settings.<\/p>\n\n\n\n<p>If you check the Elasticsearch configuration file,<strong><code>\/etc\/elasticsearch\/elasticsearch.yml<\/code><\/strong>, you will see the security setting enabled;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------\n#\n# The following settings, TLS certificates, and keys have been automatically      \n# generated to configure Elasticsearch security features on 11-01-2024 08:08:17\n#\n# --------------------------------------------------------------------------------\n\n# Enable security features\nxpack.security.enabled: true\n\nxpack.security.enrollment.enabled: true\n\n# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents\nxpack.security.http.ssl:\n  enabled: true\n  keystore.path: certs\/http.p12\n\n# Enable encryption and mutual authentication between cluster nodes\nxpack.security.transport.ssl:\n  enabled: true\n  verification_mode: certificate\n  keystore.path: certs\/transport.p12\n  truststore.path: certs\/transport.p12\n# Create a new cluster with the current node only\n# Additional nodes can still join the cluster later\ncluster.initial_master_nodes: [\"elk.kifarunix-demo.com\"]\n\n# Allow HTTP API connections from anywhere\n# Connections are encrypted and require user authentication\nhttp.host: 0.0.0.0\n\n# Allow other nodes to join the cluster from anywhere\n# Connections are encrypted and mutually authenticated\n#transport.host: 0.0.0.0\n\n#----------------------- END SECURITY AUTO CONFIGURATION -------------------------\n<\/code><\/pre>\n\n\n\n<p>Without comment lines, this is how the default Elasticsearch 8.0 configuration looks like;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -Ev '^#|^$' \/etc\/elasticsearch\/elasticsearch.yml<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>path.data: \/var\/lib\/elasticsearch\npath.logs: \/var\/log\/elasticsearch\nxpack.security.enabled: true\nxpack.security.enrollment.enabled: true\nxpack.security.http.ssl:\n  enabled: true\n  keystore.path: certs\/http.p12\nxpack.security.transport.ssl:\n  enabled: true\n  verification_mode: certificate\n  keystore.path: certs\/transport.p12\n  truststore.path: certs\/transport.p12\ncluster.initial_master_nodes: [\"elk.kifarunix-demo.com\"]\nhttp.host: 0.0.0.0\n<\/code><\/pre>\n\n\n\n<p>Of course you can update the cluster name, node name, the host and the port details.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"adjust-elasticsearch-jvm-settings\">Adjust Elasticsearch JVM Settings<\/h4>\n\n\n\n<p>Elasticsearch typically configures its JVM heap size automatically based on the node&#8217;s roles and total memory. For most production setups, it&#8217;s advisable to stick with these default settings.<\/p>\n\n\n\n<p>However, if you need to change the default heap size, you can do so by setting the minimum (Xms) and maximum (Xmx) heap size. It&#8217;s important to note that Xms and Xmx should have the same values.<\/p>\n\n\n\n<p>When adjusting the heap size, consider the available RAM. Keep Xms and Xmx below 50% of your total memory.<\/p>\n\n\n\n<p>For example, in our setup, our test server has 8G RAM and we set the heap size is set to 2048M for both maximum and minimum sizes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"-Xms2g\n-Xmx2g\" &gt; \/etc\/elasticsearch\/jvm.options.d\/jvm-heap.options<\/code><\/pre>\n\n\n\n<p>Update the heap size as per your resource allocated to the system.<\/p>\n\n\n\n<p>That sums up our configurations for Elasticsearch.You can check other <a href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/reference\/current\/system-config.html\" target=\"_blank\" rel=\"noreferrer noopener\">Important system configurations<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"running-elasticsearch\">Running Elasticsearch<\/h4>\n\n\n\n<p>Start and enable Elasticsearchto run on system boot;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl daemon-reload<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable --now elasticsearch<\/code><\/pre>\n\n\n\n<p>To check the status;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status elasticsearch<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\u25cf elasticsearch.service - Elasticsearch\n     Loaded: loaded (\/usr\/lib\/systemd\/system\/elasticsearch.service; enabled; preset: enabled)\n     Active: active (running) since Thu 2024-02-29 05:29:47 UTC; 1s ago\n       Docs: https:\/\/www.elastic.co\n   Main PID: 2382 (java)\n      Tasks: 88 (limit: 9407)\n     Memory: 2.4G (peak: 2.4G)\n        CPU: 29.772s\n     CGroup: \/system.slice\/elasticsearch.service\n             \u251c\u25002382 \/usr\/share\/elasticsearch\/jdk\/bin\/java -Xms4m -Xmx64m -XX:+UseSerialGC -Dcli.name=server -Dcli.script=\/usr\/share\/elasticsearch\/bin\/elasticsearch -Dcli.li>\n             \u251c\u25002441 \/usr\/share\/elasticsearch\/jdk\/bin\/java -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -Djava.security.manager=allow -XX:+Alwa>\n             \u2514\u25002464 \/usr\/share\/elasticsearch\/modules\/x-pack-ml\/platform\/linux-x86_64\/bin\/controller\n\nFeb 29 05:29:37 elk.kifarunix-demo.com systemd[1]: Starting elasticsearch.service - Elasticsearch...\nFeb 29 05:29:38 elk.kifarunix-demo.com systemd-entrypoint[2441]: CompileCommand: exclude org\/apache\/lucene\/util\/MSBRadixSorter.computeCommonPrefixLengthAndBuildHistogram bo>\nFeb 29 05:29:38 elk.kifarunix-demo.com systemd-entrypoint[2441]: CompileCommand: exclude org\/apache\/lucene\/util\/RadixSelector.computeCommonPrefixLengthAndBuildHistogram boo>\nFeb 29 05:29:38 elk.kifarunix-demo.com systemd-entrypoint[2382]: Feb 29, 2024 5:29:38 AM sun.util.locale.provider.LocaleProviderAdapter <clinit>\nFeb 29 05:29:38 elk.kifarunix-demo.com systemd-entrypoint[2382]: WARNING: COMPAT locale provider will be removed in a future release\nFeb 29 05:29:47 elk.kifarunix-demo.com systemd[1]: Started elasticsearch.service - Elasticsearch.\n<\/code><\/pre>\n\n\n\n<p>You can as well verify ES status using curl command. Replace the IP\/hostname\/domain name accordingly.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl https:\/\/elk.kifarunix-demo.com:9200 --cacert \/etc\/elasticsearch\/certs\/http_ca.crt -u elastic<\/code><\/pre>\n\n\n\n<p>When prompted, enter the Elasticsearch password generated during installation of Elasticsearch;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>The generated password for the elastic built-in superuser is : aHOvDjbr-h1yIQ8dVOEO<\/code><\/pre>\n\n\n\n<p>If you get such an output, then all is well.<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>{\n  \"name\" : \"elk.kifarunix-demo.com\",\n  \"cluster_name\" : \"elasticsearch\",\n  \"cluster_uuid\" : \"Y1Jg3Rn6Rce2HwD8AYXioA\",\n  \"version\" : {\n    \"number\" : \"8.12.2\",\n    \"build_flavor\" : \"default\",\n    \"build_type\" : \"deb\",\n    \"build_hash\" : \"48a287ab9497e852de30327444b0809e55d46466\",\n    \"build_date\" : \"2024-02-19T10:04:32.774273190Z\",\n    \"build_snapshot\" : false,\n    \"lucene_version\" : \"9.9.2\",\n    \"minimum_wire_compatibility_version\" : \"7.17.0\",\n    \"minimum_index_compatibility_version\" : \"7.0.0\"\n  },\n  \"tagline\" : \"You Know, for Search\"\n}\n<\/code><\/pre>\n\n\n\n<p>Also, check the ports are opened, both HTTP and transport ports;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -altnp | grep -E \"9200|9300\"<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>LISTEN 0      4096                    *:9200             *:*    users:((\"java\",pid=2441,fd=450))                       \nLISTEN 0      4096                [::1]:9300          [::]:*    users:((\"java\",pid=2441,fd=444))                       \nLISTEN 0      4096   [::ffff:127.0.0.1]:9300             *:*    users:((\"java\",pid=2441,fd=445))\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"check-elasticsearch-logs\">Check Elasticsearch Logs<\/h3>\n\n\n\n<p>Elasticsearch writes logs under <strong><code>\/var\/log\/elasticsearch<\/code><\/strong> path. The logs that you might need to check if there is any issue with your Elasticsearch instance is <strong><code>\/var\/log\/elasticsearch\/$CLUSTER_NAME.log<\/code><\/strong>.<\/p>\n\n\n\n<p>Where <strong><code>$CLUSTER_NAME<\/code><\/strong> is the value of the <strong><code>cluster.name<\/code><\/strong> option in the <strong><code>elasticsearch.yaml<\/code><\/strong> file. If you didn&#8217;t change the value, then it defaults to, elasticsearch and hence, the log file should be, <strong><code><strong><code>\/var\/log\/elasticsearch\/elasticsearch.log<\/code><\/strong><\/code><\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -f <strong><strong>\/var\/log\/elasticsearch\/elasticsearch.log<\/strong><\/strong><\/code><\/pre>\n\n\n\n<p>Sample logs;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>[2024-02-29T05:29:48,645][INFO ][o.e.x.i.a.TransportPutLifecycleAction] [elk.kifarunix-demo.com] adding index lifecycle policy [.fleet-actions-results-ilm-policy]\n[2024-02-29T05:29:48,694][INFO ][o.e.x.i.a.TransportPutLifecycleAction] [elk.kifarunix-demo.com] adding index lifecycle policy [.fleet-file-fromhost-meta-ilm-policy]\n[2024-02-29T05:29:48,742][INFO ][o.e.x.i.a.TransportPutLifecycleAction] [elk.kifarunix-demo.com] adding index lifecycle policy [.fleet-file-fromhost-data-ilm-policy]\n[2024-02-29T05:29:48,795][INFO ][o.e.x.i.a.TransportPutLifecycleAction] [elk.kifarunix-demo.com] adding index lifecycle policy [.fleet-file-tohost-meta-ilm-policy]\n[2024-02-29T05:29:48,920][INFO ][o.e.h.n.s.HealthNodeTaskExecutor] [elk.kifarunix-demo.com] Node [{elk.kifarunix-demo.com}{t4ZXgoxGTF2QZB38NAggBg}] is selected as the current health node.\n[2024-02-29T05:29:48,988][INFO ][o.e.x.s.a.Realms         ] [elk.kifarunix-demo.com] license mode is [basic], currently licensed security realms are [reserved\/reserved,file\/default_file,native\/default_native]\n[2024-02-29T05:29:48,990][INFO ][o.e.l.ClusterStateLicenseService] [elk.kifarunix-demo.com] license [44fc78b6-1189-40d2-8127-153369d4bcd8] mode [basic] - valid\n[2024-02-29T05:31:23,055][INFO ][o.e.x.s.s.SecurityIndexManager] [elk.kifarunix-demo.com] security index does not exist, creating [.security-7] with alias [.security]\n[2024-02-29T05:31:23,087][INFO ][o.e.c.m.MetadataCreateIndexService] [elk.kifarunix-demo.com] [.security-7] creating index, cause [api], templates [], shards [1]\/[0]\n[2024-02-29T05:31:23,320][INFO ][o.e.c.r.a.AllocationService] [elk.kifarunix-demo.com] current.health=\"GREEN\" message=\"Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.security-7][0]]]).\" previous.health=\"YELLOW\" reason=\"shards started [[.security-7][0]]\"\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-kibana-8-x-on-ubuntu-24-04-ubuntu-22-04\">Install Kibana 8.x on Ubuntu 24.04\/Ubuntu 22.04<\/h3>\n\n\n\n<p>Since we already setup Elastic repos, simply install Kibana 8 by running the command;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install kibana<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>Building dependency tree       \nReading state information... Done\nThe following NEW packages will be installed:\n  kibana\n0 upgraded, 1 newly installed, 0 to remove and 157 not upgraded.\nNeed to get 281 MB of archives.\nAfter this operation, 761 MB of additional disk space will be used.\nGet:1 https:\/\/artifacts.elastic.co\/packages\/8.x\/apt stable\/main amd64 kibana amd64 8.0.0 [281 MB]\nFetched 281 MB in 2min 3s (2282 kB\/s)                                                                                                                                      \nSelecting previously unselected package kibana.\n(Reading database ... 71317 files and directories currently installed.)\nPreparing to unpack ...\/kibana_8.0.0_amd64.deb ...\nUnpacking kibana (8.0.0) ...\nSetting up kibana (8.0.0) ...\nCreating kibana group... OK\nCreating kibana user... OK\nCreated Kibana keystore in \/etc\/kibana\/kibana.keystore\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configure-kibana-on-ubuntu-24-04-ubuntu-22-04\">Configure Kibana on Ubuntu 24.04\/Ubuntu 22.04<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"configure-kibana-to-listen-on-non-loopback-interface\">Configure Kibana to Listen on Non-Loopback Interface<\/h4>\n\n\n\n<p>Kibana is set to run on&nbsp;<strong>localhost:5601<\/strong>&nbsp;by default. To allow external access, edit the configuration file and replace the value of&nbsp;<code>server.host<\/code>&nbsp;with an interface IP.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vim \/etc\/kibana\/kibana.yml<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code># Kibana is served by a back end server. This setting specifies the port to use.\n<strong>server.port: 5601<\/strong>\n\n...\n# To allow connections from remote users, set this parameter to a non-loopback address.\n#server.host: \"localhost\"\n<strong>server.host: \"192.168.122.149\"<\/strong>\n<\/code><\/pre>\n\n\n\n<p>Those are the only changes we will make for now since we are just running a basic single node cluster.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"generate-kibana-elasticsearch-enrollment-token\">Generate Kibana-Elasticsearch Enrollment Token<\/h4>\n\n\n\n<p>Enrollment token is required to configure Kibana instance to communicate with an existing Elasticsearch cluster that has security features enabled. You can generate an enrollment token for Kibana using the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/usr\/share\/elasticsearch\/bin\/elasticsearch-create-enrollment-token -s kibana<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>eyJ2ZXIiOiI4LjEyLjIiLCJhZHIiOlsiMTkyLjE2OC4xMjIuMTQ5OjkyMDAiXSwiZmdyIjoiYmRkZDFkYmIwOTRmNjI3NWFmMjEzYjQyYmFjMWYxMzg0NDA4NTJhZTZhMzZmMjY4NzIwZjk1NGRkNjEyNjQ2NCIsImtleSI6ImZoUmQ4NDBCbVp6UGpxN094MmR0OmlYNnBBa3FOU2hTQnVLaFpXbk1ZYmcifQ==<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"generate-kibana-encryption-keys\">Generate Kibana Encryption Keys<\/h4>\n\n\n\n<p>Kibana uses encryption keys in several areas, ranging from encrypting data in Kibana associated indices to storing session information. The keys required are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>xpack.encryptedSavedObjects.encryptionKey<\/code><\/strong>: Used to encrypt stored objects such as dashboards and visualizations<\/li>\n\n\n\n<li><strong><code>xpack.reporting.encryptionKey<\/code><\/strong>: Used to encrypt saved reports<\/li>\n\n\n\n<li><strong><code>xpack.security.encryptionKey<\/code><\/strong>: Used to encrypt session information<\/li>\n<\/ul>\n\n\n\n<p>These can be generated using the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/usr\/share\/kibana\/bin\/kibana-encryption-keys generate<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>xpack.encryptedSavedObjects.encryptionKey: 706c88e045c127e21b81c902425cdb54\nxpack.reporting.encryptionKey: d67296d7d4958bdd1594e965e6b97ab9\nxpack.security.encryptionKey: d496d7cb6a5983c213f7902767069744<\/code><\/pre>\n\n\n\n<p>Insert these lines into Kibana config file, kibana.yml.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo -e \"xpack.encryptedSavedObjects.encryptionKey: 706c88e045c127e21b81c902425cdb54\nxpack.reporting.encryptionKey: d67296d7d4958bdd1594e965e6b97ab9\nxpack.security.encryptionKey: d496d7cb6a5983c213f7902767069744\" &gt;&gt; \/etc\/kibana\/kibana.yml<\/code><\/pre>\n\n\n\n<p>With all comment lines removed, this is how our Kibana configuration looks like;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -Ev '^#|^$' \/etc\/kibana\/kibana.yml<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>server.port: 5601\nserver.host: \"192.168.122.149\"\nelasticsearch.hosts: [\"http:\/\/localhost:9200\"]\nlogging:\n  appenders:\n    file:\n      type: file\n      fileName: \/var\/log\/kibana\/kibana.log\n      layout:\n        type: json\n  root:\n    appenders:\n      - default\n      - file\npid.file: \/run\/kibana\/kibana.pid\nxpack.encryptedSavedObjects.encryptionKey: 706c88e045c127e21b81c902425cdb54\nxpack.reporting.encryptionKey: d67296d7d4958bdd1594e965e6b97ab9\nxpack.security.encryptionKey: d496d7cb6a5983c213f7902767069744\n<\/code><\/pre>\n\n\n\n<p>If you need to secure Kibana 8 by proxying it with Nginx, you can check how to on our previous by following the link below;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-elastic-stack-7-on-ubuntu-18-04-debian-9-8\/#proxykibanawithnginx\" target=\"_blank\" rel=\"noreferrer noopener\">Configure Nginx with SSL to Proxy Kibana<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"running-kibana\">Running Kibana<\/h4>\n\n\n\n<p>Once the installation is done, start and enable Kibana 8.0 to run on system boot.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable --now kibana<\/code><\/pre>\n\n\n\n<p>Confirm Kibana status;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status kibana<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\u25cf kibana.service - Kibana\n     Loaded: loaded (\/usr\/lib\/systemd\/system\/kibana.service; enabled; preset: enabled)\n     Active: active (running) since Thu 2024-02-29 05:38:22 UTC; 28s ago\n       Docs: https:\/\/www.elastic.co\n   Main PID: 2836 (node)\n      Tasks: 11 (limit: 9407)\n     Memory: 333.0M (peak: 333.6M)\n        CPU: 8.274s\n     CGroup: \/system.slice\/kibana.service\n             \u2514\u25002836 \/usr\/share\/kibana\/bin\/..\/node\/bin\/node \/usr\/share\/kibana\/bin\/..\/src\/cli\/dist\n\nFeb 29 05:38:29 elk.kifarunix-demo.com kibana[2836]: [2024-02-29T05:38:29.241+00:00][INFO ][plugins-service] Plugin \"securitySolutionServerless\" is disabled.\nFeb 29 05:38:29 elk.kifarunix-demo.com kibana[2836]: [2024-02-29T05:38:29.242+00:00][INFO ][plugins-service] Plugin \"serverless\" is disabled.\nFeb 29 05:38:29 elk.kifarunix-demo.com kibana[2836]: [2024-02-29T05:38:29.242+00:00][INFO ][plugins-service] Plugin \"serverlessObservability\" is disabled.\nFeb 29 05:38:29 elk.kifarunix-demo.com kibana[2836]: [2024-02-29T05:38:29.242+00:00][INFO ][plugins-service] Plugin \"serverlessSearch\" is disabled.\nFeb 29 05:38:29 elk.kifarunix-demo.com kibana[2836]: [2024-02-29T05:38:29.576+00:00][INFO ][http.server.Preboot] http server running at http:\/\/192.168.122.149:5601\nFeb 29 05:38:29 elk.kifarunix-demo.com kibana[2836]: [2024-02-29T05:38:29.686+00:00][INFO ][plugins-system.preboot] Setting up [1] plugins: [interactiveSetup]\nFeb 29 05:38:29 elk.kifarunix-demo.com kibana[2836]: [2024-02-29T05:38:29.699+00:00][INFO ][preboot] \"interactiveSetup\" plugin is holding setup: Validating Elasticsearch co>\nFeb 29 05:38:29 elk.kifarunix-demo.com kibana[2836]: [2024-02-29T05:38:29.717+00:00][INFO ][root] Holding setup until preboot stage is completed.\nFeb 29 05:38:29 elk.kifarunix-demo.com kibana[2836]: i Kibana has not been configured.\nFeb 29 05:38:29 elk.kifarunix-demo.com kibana[2836]: <strong>Go to http:\/\/192.168.122.149:5601\/?code=242398 to get started.<\/strong>\n<\/code><\/pre>\n\n\n\n<p>From the status output, you will see such lines;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>Kibana has not been configured.<\/strong><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>Go to http:\/\/192.168.122.149:5601\/?code=242398 to get started.<\/strong><\/code><\/pre>\n\n\n\n<p>Use the provided Kibana URL on browser to complete the setup.<\/p>\n\n\n\n<p>Similarly, Kibana logs are available under <strong><code>\/var\/log\/kibana\/kibana.log<\/code><\/strong> and <code><strong>\/var\/log\/syslog<\/strong>.<\/code><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"access-kibana-8-dashboard\">Access Kibana 8 Dashboard<\/h4>\n\n\n\n<p>You can now access Kibana 8.0 from your browser using the url provided above, <strong><code>http:\/\/192.168.122.149:5601\/?code=242398<\/code><\/strong>. It could be different for you.<\/p>\n\n\n\n<p>If UFW is running, open Kibana port;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ufw allow 5601\/tcp<\/code><\/pre>\n\n\n\n<p>Upon accessing Kibana 8 interface, on the welcome page, you will be required to configure Elastic to get started.<\/p>\n\n\n\n<p>So just copy the Kibana token generated using the <code><strong>\/usr\/share\/elasticsearch\/bin\/elasticsearch-create-enrollment-token -s kibana<\/strong><\/code>, command and paste on the box.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/kifarunix.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/kibana-8-enrollment.png&quot;,&quot;figureClassNames&quot;:&quot;aligncenter size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-20276&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1473,&quot;targetHeight&quot;:778,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image: Install ELK Stack 8.x on Ubuntu&quot;,&quot;alt&quot;:&quot;Install ELK Stack 8.x on Ubuntu&quot;}\" data-wp-interactive=\"core\/image\" class=\"aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1473\" height=\"778\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2024\/02\/kibana-8-enrollment.png?v=1709185585\" alt=\"Install ELK Stack 8.x on Ubuntu\" class=\"wp-image-20276\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2024\/02\/kibana-8-enrollment.png?v=1709185585 1473w, https:\/\/kifarunix.com\/wp-content\/uploads\/2024\/02\/kibana-8-enrollment-768x406.png?v=1709185585 768w\" sizes=\"(max-width: 1473px) 100vw, 1473px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image: Install ELK Stack 8.x on Ubuntu\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div>\n\n\n<p>Once you past the token, you will see Kibana automatically connects to Elasticsearch. Thus, click <strong>Configure Elastic<\/strong>. This will then save the settings, configure and restart Elasticsearch.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/kifarunix.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/kibana-elasticsearch-setup.png&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-20277&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1285,&quot;targetHeight&quot;:716,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image: Install ELK Stack 8.x on Ubuntu&quot;,&quot;alt&quot;:&quot;Install ELK Stack 8.x on Ubuntu&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1285\" height=\"716\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2024\/02\/kibana-elasticsearch-setup.png?v=1709185623\" alt=\"Install ELK Stack 8.x on Ubuntu\" class=\"wp-image-20277\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2024\/02\/kibana-elasticsearch-setup.png?v=1709185623 1285w, https:\/\/kifarunix.com\/wp-content\/uploads\/2024\/02\/kibana-elasticsearch-setup-768x428.png?v=1709185623 768w\" sizes=\"(max-width: 1285px) 100vw, 1285px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image: Install ELK Stack 8.x on Ubuntu\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>You are then taken to Login page. Login using the generated Elastic user credentials.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"958\" height=\"621\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/02\/kibana-8.0-login-page.png\" alt=\"Install ELK Stack 8.x on Ubuntu\" class=\"wp-image-11603\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/02\/kibana-8.0-login-page.png?v=1645086143 958w, https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/02\/kibana-8.0-login-page-768x498.png?v=1645086143 768w\" sizes=\"(max-width: 958px) 100vw, 958px\" \/><\/figure><\/div>\n\n\n<p>On the welcome page, click <strong>Explore on my own<\/strong> to proceed to Kibana 8.0 dashboard.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1898\" height=\"949\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/02\/kibana-8.0_dashboard.png\" alt=\"Install ELK Stack 8.x on Ubuntu\" class=\"wp-image-11604\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/02\/kibana-8.0_dashboard.png?v=1645086175 1898w, https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/02\/kibana-8.0_dashboard-768x384.png?v=1645086175 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/02\/kibana-8.0_dashboard-1536x768.png?v=1645086175 1536w\" sizes=\"(max-width: 1898px) 100vw, 1898px\" \/><\/figure><\/div>\n\n\n<p>And this is how you can install ELK Stack 8.x. You can now explore further.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"how-to-install-logstash-8-and-connect-it-to-elasticsearch-8\">How to Install Logstash 8 and Connect it to Elasticsearch 8<\/h3>\n\n\n\n<p>If you want to use Logstah to further process your event log, then consider installing Logstash. Follow the link below to access a comprehensive guide on how to install Logstash 8 on Ubuntu\/Debian Linux;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-logstash-8-on-ubuntu-debian\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Logstash 8 on Ubuntu\/Debian<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-filebeat-8\">Install Filebeat 8<\/h3>\n\n\n\n<p>You can also check our sample Filebeat 8 guide;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-filebeat-8-on-debian\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Filebeat 8 on Debian 12<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"other-tutorials\">Other Tutorials<\/h2>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/configure-logstash-elasticsearch-basic-authentication\/\" target=\"_blank\" rel=\"noreferrer noopener\">Configure Logstash Elasticsearch Basic Authentication<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/configure-filebeat-elasticsearch-authentication\/\" target=\"_blank\" rel=\"noreferrer noopener\">Configure Filebeat-Elasticsearch Authentication<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/how-to-enable-basic-authentication-on-elk-stack\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Enable Basic Authentication on ELK Stack<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you will learn how to install ELK stack 8.x on Ubuntu 24.04\/Ubuntu 22.04 systems. Elastic\/ELK stack 8.x has been released making it<\/p>\n","protected":false},"author":3,"featured_media":11605,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[121,910,72],"tags":[4591,4588,4592,4587,4593,4590],"class_list":["post-11595","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","category-elastic-stack","category-monitoring","tag-elastic-stack-8-0","tag-elasticsearch-8-0","tag-install-elasticsearch-8-0","tag-install-elk-8-0","tag-install-elk-stack-8-x-on-ubuntu","tag-kibana-8-0","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/11595"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=11595"}],"version-history":[{"count":16,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/11595\/revisions"}],"predecessor-version":[{"id":20403,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/11595\/revisions\/20403"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/11605"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=11595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=11595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=11595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}