Kibana
Kibana is an open source data visualization dashboard for Elasticsearch. It provides visualization capabilities on top of the content indexed on an Elasticsearch cluster. Users can create bar, line and scatter plots, or pie charts and maps on top of large volumes of data.
As we are going to create the Kibana dashboard with Nginx webserver for better security. Before setting up the Kibana, we have to install and setup the Elasticsearch in the same server. For Elasticsearch setup please click here.
$ sudo rpm -ivh kibana-7.9.1-x86_64.rpm
Step 3: Edit the Kibana configuration file. Enable the below lines
$ sudo vim /etc/kibana/kibana.yml
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
$ sudo systemctl enable kibana
$ sudo systemctl start kibana
Step 5: Check the kibana is running or not by checking the listening port in below command
NGINX Installation with Kibana
$ sudo yum -y install epel-release
Step 7: Next, install the Nginx and httpd-tools package
$ sudo yum -y install nginx httpd-tools
Step 8: Edit the Nginx configuration file and remove the 'server { }' block, so we can add a new virtual host configuration.
Step 9: Now we need to create a new virtual host configuration file in the conf.d directory. Create the new file 'kibana.conf'
server {
listen 80;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
index index.php index.html index.htm;
server_name localhost or ip;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost: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;
}
location /nested {
alias /var/www/html;
#try_files $uri $uri/ @nested;
}
}
Step 10: Then create a new basic authentication file with the htpasswd command.
$ sudo htpasswd -c /etc/nginx/htpasswd-user kibanaadmin
12345678
Step 11: Test the Nginx configuration and make sure there is no error. Then add Nginx to run at the boot time and start Nginx.
$ sudo nginx -t
$ sudo systemctl enable nginx
$ sudo systemctl start nginx