====== Install Kibana ====== First, make sure that all of the latest patches are installed. sudo apt update sudo apt dist-upgrade sudo reboot Configure Firewall: sudo ufw allow ssh sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable Install [[linux:install:java]] Add the Elastic Search Key and Software: wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - cat > /tmp/elastic-7.x.list << EOF deb https://artifacts.elastic.co/packages/7.x/apt stable main EOF sudo mv /tmp/elastic-7.x.list /etc/apt/sources.list.d/ sudo apt-get update sudo apt-get install kibana Configure the Kibana configuration: sudo sed -i 's/#server.name: "your-hostname"/server.name: "kibana-1"/g' /etc/kibana/kibana.yml If you are going to use Kibana with an Elasticsearch cluster, skip the next line since it will be configured below... sudo sed -i 's|#elasticsearch.hosts: \["http://localhost:9200"\]|elasticsearch.hosts: \["http://elasticsearch.contoso.com:9200"\]|g' /etc/kibana/kibana.yml Start Kibana, configure it to automatically start: sudo service kibana start sudo systemctl enable kibana [[linux:nginx:start|Install NGINX Web Server]] Set up the reverse proxy to serve the Kibana UI: cat > /tmp/kibana << EOF server { listen 80; location / { proxy_pass http://127.0.0.1:5601; proxy_http_version 1.1; proxy_set_header Upgrade \$http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host \$host; proxy_cache_bypass \$http_upgrade; } } EOF sudo mv /tmp/kibana /etc/nginx/sites-available/ sudo ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/kibana sudo service nginx reload ===== Using With An Elasticsearch Cluster ===== You'll need to set-up the Elasticsearch software on the Kibana server using the "client" role and the Elasticsearch cluster name. [[linux:elk:elasticsearch]] but do not start the service. Configure the Kibana node as a Coordinating-only node. In elasticsearch.yml, set node.data, node.master and node.ingest to false: echo "node.master: false" | sudo tee -a /etc/elasticsearch/elasticsearch.yml echo "node.data: false" | sudo tee -a /etc/elasticsearch/elasticsearch.yml echo "node.ingest: false" | sudo tee -a /etc/elasticsearch/elasticsearch.yml Configure the client node to listen only on the loopback device: sudo sed -i 's/network.host: [_eth0_, _local_]/network.host: [_local_]/g' /etc/elasticsearch/elasticsearch.yml sudo sed -i 's/#elasticsearch.url: "http://localhost:9200"/elasticsearch.url: "http://localhost:9200"/g' /etc/kibana/kibana.yml