Add kibana custom dashboard
These files provide an alternative for those who want their custom dashboards on kibana. The playbook setupKibanaDashboards.yml installs elasticdump and uses it to dump into kibana's index a simple dashboard that collects logs from filebeat. Change-Id: Ibb3407b1f19eac5f7cda753e00c3bc6f3ff16da7
This commit is contained in:
parent
1dba3bc75c
commit
fde2f649bf
BIN
elk_metrics_6x/assets/openstack-kibana-custom-dashboard.png
Normal file
BIN
elk_metrics_6x/assets/openstack-kibana-custom-dashboard.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 119 KiB |
@ -422,6 +422,24 @@ Example command using the embedded Ansible from within the grafana directory.
|
||||
-e galera_root_user=root \
|
||||
-e 'galera_address={{ internal_lb_vip_address }}'
|
||||
|
||||
Optional | add kibana custom dashboard
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
If you want to use a custom dashboard directly on your kibana,
|
||||
you can run the playbook bellow. The dashboard uses filebeat to
|
||||
collect the logs of your deployment.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
ansible-playbook setupKibanaDashboard.yml $USER_VARS
|
||||
|
||||
Overview of kibana custom dashboard
|
||||
|
||||
.. image:: assets/openstack-kibana-custom-dashboard.png
|
||||
:scale: 50 %
|
||||
:alt: Kibana Custom Dashboard
|
||||
:align: center
|
||||
|
||||
|
||||
Upgrading the cluster
|
||||
---------------------
|
||||
|
37
elk_metrics_6x/setupKibanaDashboard.yml
Normal file
37
elk_metrics_6x/setupKibanaDashboard.yml
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
- name: Install Kibana Dashboards
|
||||
hosts: "elastic-logstash"
|
||||
become: true
|
||||
vars_files:
|
||||
- vars/variables.yml
|
||||
|
||||
environment: "{{ deployment_environment_variables | default({}) }}"
|
||||
|
||||
tasks:
|
||||
- name: Add nodejs 6.x source
|
||||
shell: "curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -"
|
||||
|
||||
- name: Install nodejs
|
||||
apt:
|
||||
name: nodejs
|
||||
state: "present"
|
||||
update_cache: yes
|
||||
register: _apt_task
|
||||
until: _apt_task is success
|
||||
retries: 3
|
||||
delay: 2
|
||||
|
||||
- name: Install elasticdump
|
||||
npm:
|
||||
name: elasticdump
|
||||
path: /opt/elasticdump
|
||||
state: "present"
|
||||
|
||||
- block:
|
||||
- name: Copy openstack dashboard json template to /tmp dir
|
||||
template:
|
||||
src: templates/openstack-log-dashboard.json
|
||||
dest: /tmp/openstack-log-dashboard.json
|
||||
|
||||
- name: Upload Custom Openstack Log Dashboard
|
||||
shell: "/opt/elasticdump/node_modules/elasticdump/bin/elasticdump --input=/tmp/openstack-log-dashboard.json --output={{ kibana_index_on_elasticsearch }} --type=data"
|
107
elk_metrics_6x/templates/openstack-log-dashboard.json
Normal file
107
elk_metrics_6x/templates/openstack-log-dashboard.json
Normal file
@ -0,0 +1,107 @@
|
||||
{
|
||||
"_index":".kibana",
|
||||
"_type":"doc",
|
||||
"_id":"visualization:439b9700-78a4-11e8-b957-6d408ad5f3d7",
|
||||
"_score":1,
|
||||
"_source":{
|
||||
"type":"visualization",
|
||||
"visualization":{
|
||||
"title":"[OpenStack] Log Level",
|
||||
"visState":"{\"title\":\"[OpenStack] Log Level\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"loglevel\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OpenStack LOG\"}}]}",
|
||||
"uiStateJSON":"{}",
|
||||
"description":"",
|
||||
"version":1,
|
||||
"kibanaSavedObjectMeta":{
|
||||
"searchSourceJSON":"{\"index\":\"filebeat-*\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"_index":".kibana",
|
||||
"_type":"doc",
|
||||
"_id":"visualization:aee19340-78b6-11e8-b957-6d408ad5f3d7",
|
||||
"_score":1,
|
||||
"_source":{
|
||||
"type":"visualization",
|
||||
"updated_at":"2018-06-25T20:31:04.820Z",
|
||||
"visualization":{
|
||||
"title":"[OpenStack] Log Level by Module Name",
|
||||
"visState":"{\"title\":\"[OpenStack] Log Level by Module Name\",\"type\":\"pie\",\"params\":{\"addLegend\":true,\"addTooltip\":true,\"isDonut\":true,\"labels\":{\"last_level\":true,\"show\":false,\"truncate\":100,\"values\":true},\"legendPosition\":\"right\",\"type\":\"pie\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"module\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
|
||||
"uiStateJSON":"{}",
|
||||
"description":"",
|
||||
"version":1,
|
||||
"kibanaSavedObjectMeta":{
|
||||
"searchSourceJSON":"{\"index\":\"filebeat-*\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"_index":".kibana",
|
||||
"_type":"doc",
|
||||
"_id":"visualization:7b6488c0-78b5-11e8-b957-6d408ad5f3d7",
|
||||
"_score":1,
|
||||
"_source":{
|
||||
"type":"visualization",
|
||||
"updated_at":"2018-06-25T20:22:28.939Z",
|
||||
"visualization":{
|
||||
"title":"[Openstack] Log Level Bar Per Host",
|
||||
"visState":"{\"title\":\"[Openstack] Log Level Bar Per Host\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"stacked\",\"type\":\"histogram\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"data\":{\"id\":\"2\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"2\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"beat.hostname\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"2\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"loglevel\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"2\"}}]}",
|
||||
"uiStateJSON":"{}",
|
||||
"description":"",
|
||||
"version":1,
|
||||
"kibanaSavedObjectMeta":{
|
||||
"searchSourceJSON":"{\"index\":\"filebeat-*\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"_index":".kibana",
|
||||
"_type":"doc",
|
||||
"_id":"search:51d3fb90-78b9-11e8-b957-6d408ad5f3d7",
|
||||
"_score":1,
|
||||
"_source":{
|
||||
"type":"search",
|
||||
"updated_at":"2018-06-25T20:51:10.156Z",
|
||||
"search":{
|
||||
"title":"AllLogs",
|
||||
"description":"",
|
||||
"hits":0,
|
||||
"columns":[
|
||||
"_source"
|
||||
],
|
||||
"sort":[
|
||||
"@timestamp",
|
||||
"desc"
|
||||
],
|
||||
"version":1,
|
||||
"kibanaSavedObjectMeta":{
|
||||
"searchSourceJSON":"{\"index\":\"filebeat-*\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"_index":".kibana",
|
||||
"_type":"doc",
|
||||
"_id":"dashboard:1ffbe820-78b0-11e8-b957-6d408ad5f3d7",
|
||||
"_score":1,
|
||||
"_source":{
|
||||
"type":"dashboard",
|
||||
"updated_at":"2018-06-25T20:52:44.699Z",
|
||||
"dashboard":{
|
||||
"title":"[Openstack] Log Dashboard",
|
||||
"hits":0,
|
||||
"description":"",
|
||||
"panelsJSON":"[{\"panelIndex\":\"1\",\"gridData\":{\"x\":0,\"y\":0,\"w\":6,\"h\":3,\"i\":\"1\"},\"id\":\"439b9700-78a4-11e8-b957-6d408ad5f3d7\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"2\",\"gridData\":{\"x\":0,\"y\":3,\"w\":12,\"h\":5,\"i\":\"2\"},\"id\":\"7b6488c0-78b5-11e8-b957-6d408ad5f3d7\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"3\",\"gridData\":{\"x\":6,\"y\":0,\"w\":6,\"h\":3,\"i\":\"3\"},\"id\":\"aee19340-78b6-11e8-b957-6d408ad5f3d7\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"5\",\"gridData\":{\"x\":0,\"y\":8,\"w\":12,\"h\":5,\"i\":\"5\"},\"version\":\"6.2.4\",\"type\":\"search\",\"id\":\"51d3fb90-78b9-11e8-b957-6d408ad5f3d7\"}]",
|
||||
"optionsJSON":"{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
|
||||
"version":1,
|
||||
"timeRestore":false,
|
||||
"kibanaSavedObjectMeta":{
|
||||
"searchSourceJSON":"{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -35,7 +35,7 @@ kibana_username: admin
|
||||
kibana_password: admin
|
||||
kibana_nginx_port: 81
|
||||
kibana_server_name: "{{ ansible_hostname }}"
|
||||
|
||||
kibana_index_on_elasticsearch: "http://{{ hostvars[groups['elastic-logstash'][0]]['container_address'] }}:{{ elastic_port}}/.kibana"
|
||||
|
||||
# logstash vars
|
||||
logstash_beat_input_port: 5044
|
||||
|
Loading…
Reference in New Issue
Block a user