summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Vagrantfile3
-rw-r--r--android.yml12
-rw-r--r--ansible.cfg2
-rw-r--r--atom.yml10
-rw-r--r--aus-colo-servers.yml41
-rw-r--r--certbot.yml5
-rw-r--r--docs/README.ansible_best_practices.md4
-rw-r--r--docs/README.dehydrated.md15
-rw-r--r--docs/README.jenkins16
-rw-r--r--docs/README.publishing.md117
-rw-r--r--docs/README.ssl.md134
-rwxr-xr-xdocs/examples/prometheus_parse_inv.py56
-rw-r--r--docs/maintenance/gerrit.md84
-rw-r--r--elk.yml49
-rw-r--r--filebeat.yml11
-rw-r--r--files/apache/android-git.linaro.org.conf25
-rw-r--r--files/apache/android-review.linaro.org.conf21
-rw-r--r--files/apache/android.linaro.org.conf54
-rw-r--r--files/apache/dev-private-git.linaro.org.conf46
-rw-r--r--files/apache/dev-private-review.linaro.org.conf36
-rw-r--r--files/apache/docs.ci.trustedfirmware.org.conf51
-rw-r--r--files/apache/gerrit.devboardsforandroid.linaro.org.conf106
-rw-r--r--files/apache/gerrit.forge.aws.linaro.com.conf75
l---------files/apache/git-mi.linaro.org.conf1
-rw-r--r--files/apache/git.linaro.org.conf43
-rw-r--r--files/apache/git.mlplatform.org.conf258
-rw-r--r--files/apache/git.trustedfirmware.org.conf35
-rw-r--r--files/apache/grafana.linaro.org.conf53
-rw-r--r--files/apache/lhg-review.linaro.org.conf109
-rw-r--r--files/apache/mi.linaro.org.conf39
-rw-r--r--files/apache/review.linaro.org.conf49
-rw-r--r--files/apache/review.mlplatform.org.conf53
-rw-r--r--files/apache/review.trustedfirmware.org.conf52
-rw-r--r--files/apache/snapshots.linaro.org.conf111
-rw-r--r--files/apache/source.devboardsforandroid.linaro.org.conf69
-rw-r--r--files/apache/testdata.lava.morello-project.org.conf18
-rw-r--r--files/apache/vhost-obs.conf55
-rwxr-xr-xfiles/duplicity/ci.linaro.org.backup (renamed from roles/jenkins-master-deps/templates/backup.sh.j2)0
-rwxr-xr-xfiles/duplicity/ci.trustedfirmware.org.backup79
-rwxr-xr-xfiles/duplicity/mbedtls.trustedfirmware.org.backup79
-rwxr-xr-xfiles/duplicity/review.trustedfirmware.org.backup79
-rw-r--r--files/elasticsearch/elk.linaro.org.conf49
-rw-r--r--files/elasticsearch/templates/default.json7
-rw-r--r--files/elasticsearch/templates/logstash.json61
-rw-r--r--files/fossology/fossology.linaro.org.conf46
-rw-r--r--files/gerrit/android-review.linaro.org19
-rw-r--r--files/gerrit/dev-private-review.linaro.org17
-rw-r--r--files/gerrit/gerrit.devboardsforandroid.linaro.org65
-rw-r--r--files/gerrit/gerrit.forge.aws.linaro.com90
-rw-r--r--files/gerrit/gitiles_gerrit.devboardsforandroid.linaro.org7
-rw-r--r--files/gerrit/lhg-review.linaro.org86
-rw-r--r--files/gerrit/review.linaro.org13
-rw-r--r--files/gerrit/review.mlplatform.org17
-rw-r--r--files/gerrit/review.trustedfirmware.org19
-rw-r--r--files/gitlab/aarch64-09.toml69
-rw-r--r--files/gitlab/deployments.ctt.linaro.org.toml27
-rw-r--r--files/gitlab/gitlab-runner-manager.lkft.org.toml202
-rw-r--r--files/gitlab/gitlab-runner-manager.morello-project.org.toml101
-rw-r--r--files/gitlab/gitlab-runner-manager.ovss.linaro.org.toml49
-rw-r--r--files/gitlab/gitlab-runner.morello-project.org.toml27
-rw-r--r--files/gitlab/runner-cassini.ctt.linaro.org.toml101
-rw-r--r--files/jenkins/ci.linaro.org.conf17
-rw-r--r--files/jenkins/ci.linaro.org.ssh28
-rw-r--r--files/lava-remote-worker/env22
-rw-r--r--files/lava-remote-worker/token1
-rw-r--r--files/patchwork/apache.conf9
-rw-r--r--files/phabricator/apache.conf20
-rw-r--r--files/phabricator/issues.trustedfirmware.org-apache.conf20
-rw-r--r--files/prometheus/grafana.linaro.org/nodes.yaml295
-rw-r--r--files/prometheus/grafana.linaro.org/prometheus.yml141
-rw-r--r--files/publishing/default-publishing-ie.linaro.org.conf24
-rw-r--r--files/publishing/default-snapshots.linaro.org.conf24
-rw-r--r--files/publishing/docker-proxy.conf77
-rw-r--r--files/publishing/llp-apache-96boards.conf41
-rw-r--r--files/publishing/llp-apache-obs.conf39
-rw-r--r--files/publishing/llp-apache-testdata-validation.conf10
-rw-r--r--files/publishing/llp-apache.conf139
-rw-r--r--files/publishing/llp-docker-apache.conf33
-rw-r--r--files/pxe-kickstart.conf14
-rw-r--r--files/reservations.yml71
-rw-r--r--files/weblogs.linaro.org.conf56
-rw-r--r--fossology.yml14
-rw-r--r--gerrit-mirror.yml9
-rw-r--r--gerrit.yml4
-rw-r--r--git.yml8
-rw-r--r--gitlab.yml23
-rw-r--r--grafana.yml18
-rw-r--r--group_vars/all26
-rw-r--r--group_vars/android_git (renamed from group_vars/android-git)0
-rw-r--r--group_vars/apache_auth (renamed from group_vars/apache-auth)0
-rw-r--r--group_vars/apache_redirects1
-rw-r--r--group_vars/aus-colo8
-rw-r--r--group_vars/fossology13
-rw-r--r--group_vars/gerrit12
-rw-r--r--group_vars/gerrit_mirror4
-rw-r--r--group_vars/git18
-rw-r--r--group_vars/gitlab2
-rw-r--r--group_vars/gitlab_runner2
-rw-r--r--group_vars/grafana6
-rw-r--r--group_vars/jenkins_master31
-rw-r--r--group_vars/jenkins_slaves10
-rw-r--r--group_vars/jenkins_slaves_hetzner2
-rw-r--r--group_vars/jenkins_slaves_online2
-rw-r--r--group_vars/jenkins_slaves_simple2
-rw-r--r--group_vars/jenkins_tf_master31
-rw-r--r--group_vars/patchwork16
-rw-r--r--group_vars/publishing41
-rw-r--r--group_vars/publishing_docker (renamed from group_vars/publishing-docker)5
-rw-r--r--group_vars/publishing_docker_site14
-rw-r--r--group_vars/weblogs2
-rw-r--r--host_vars/aarch64-0938
-rw-r--r--host_vars/aarch64-1024
-rw-r--r--host_vars/aarch64_085
-rw-r--r--host_vars/android-git-ap.linaro.org1
-rw-r--r--host_vars/android-git-ie.linaro.org2
-rw-r--r--host_vars/android-git-us.linaro.org5
-rw-r--r--host_vars/android-review.linaro.org11
-rw-r--r--host_vars/android.linaro.org13
-rw-r--r--host_vars/armhf-015
-rw-r--r--host_vars/bugs.96boards.org3
-rw-r--r--host_vars/bugs.linaro.org12
-rw-r--r--host_vars/buildkite.ctt.linaro.org15
-rw-r--r--host_vars/builds.96boards.org9
-rw-r--r--host_vars/ci.linaro.org72
-rw-r--r--host_vars/ci.staging.trustedfirmware.org41
-rw-r--r--host_vars/ci.trustedfirmware.org41
-rw-r--r--host_vars/deployments.ctt.linaro.org17
-rw-r--r--host_vars/dev-private-git.linaro.org31
-rw-r--r--host_vars/dev-private-review.linaro.org8
-rw-r--r--host_vars/developer.trustedfirmware.org23
-rw-r--r--host_vars/eclair.trustedfirmware.org59
-rw-r--r--host_vars/elk.linaro.org68
-rw-r--r--host_vars/flexnet-aws.trustedfirmware.org70
-rw-r--r--host_vars/flexnet.trustedfirmware.org60
-rw-r--r--host_vars/gerrit.devboardsforandroid.linaro.org52
-rw-r--r--host_vars/gerrit.forge.aws.linaro.com38
-rw-r--r--host_vars/git-ap.linaro.org22
-rw-r--r--host_vars/git-ie.linaro.org22
-rw-r--r--host_vars/git-us.linaro.org25
-rw-r--r--host_vars/git.mlplatform.org23
-rw-r--r--host_vars/git.morello-project.org101
-rw-r--r--host_vars/git.trustedfirmware.org44
-rw-r--r--host_vars/gitlab-runner-manager-tuxtest.ctt.linaro.org9
-rw-r--r--host_vars/gitlab-runner-manager.lkft.org24
-rw-r--r--host_vars/gitlab-runner-manager.morello-project.org20
-rw-r--r--host_vars/gitlab-runner-manager.ovss.linaro.org17
-rw-r--r--host_vars/gitlab-runner.morello-project.org16
-rw-r--r--host_vars/grafana.linaro.org38
-rw-r--r--host_vars/j12-qrep-011
-rw-r--r--host_vars/lava-monitoring.linaro.org41
-rw-r--r--host_vars/lava.morello-project.org12
-rw-r--r--host_vars/leg-aarch64-012
-rw-r--r--host_vars/lhg-review.linaro.org23
-rw-r--r--host_vars/lite-cloud.ctt.linaro.org (renamed from host_vars/mmwg-hackbox.linaro.org)4
-rw-r--r--host_vars/mbedtls.trustedfirmware.org42
-rw-r--r--host_vars/obs-bastion-cn1.linaro.cloud8
-rw-r--r--host_vars/obs-bastion-us1.linaro.cloud5
-rw-r--r--host_vars/obs-server-cn1.linaro.cloud1
-rw-r--r--host_vars/obs-server-us1.linaro.cloud1
-rw-r--r--host_vars/obs.linaro.org23
-rw-r--r--host_vars/patches-gcc.linaro.org8
-rw-r--r--host_vars/patches.linaro.org13
-rw-r--r--host_vars/patches.opendataplane.org4
-rw-r--r--host_vars/publishing-ap.linaro.org32
-rw-r--r--host_vars/publishing-ie.linaro.org43
-rw-r--r--host_vars/qcom-hackbox.linaro.org6
l---------host_vars/qcom-hackbox2.linaro.org1
-rw-r--r--host_vars/qcom-proxy.linaro.org11
-rw-r--r--host_vars/r1-x86-1.aus-colo.linaro.org70
-rw-r--r--host_vars/r2-a19.aus-colo.linaro.org5
-rw-r--r--host_vars/r2-x86-1.aus-colo.linaro.org76
-rw-r--r--host_vars/r3-x86-1.aus-colo.linaro.org16
-rw-r--r--host_vars/releases-ap.linaro.org5
-rw-r--r--host_vars/releases-ara-mdk.linaro.org1
-rw-r--r--host_vars/releases-ie.linaro.org22
-rw-r--r--host_vars/releases-us.linaro.org11
-rw-r--r--host_vars/review.linaro.org12
-rw-r--r--host_vars/review.mlplatform.org18
-rw-r--r--host_vars/review.trustedfirmware.org16
-rw-r--r--host_vars/router.aus-colo.linaro.org724
-rw-r--r--host_vars/ses-proxy.ctt.linaro.org1
-rw-r--r--host_vars/snapshots.linaro.org40
-rw-r--r--host_vars/staging-bugs.linaro.org12
-rw-r--r--host_vars/staging-git.morello-project.org98
-rw-r--r--host_vars/staging-issues.trustedfirmware.org16
-rw-r--r--host_vars/systems-monitoring.linaro.org34
-rw-r--r--host_vars/testdata.linaro.org11
-rw-r--r--host_vars/weblogs.linaro.org12
-rw-r--r--host_vars/x86-158
-rw-r--r--host_vars/x86-TF-0124
-rw-r--r--host_vars/x86-TF-0224
l---------host_vars/x86-TF-031
l---------host_vars/x86-TF-041
l---------host_vars/x86-TF-051
-rw-r--r--host_vars/x86_64-104
-rw-r--r--hosts186
-rw-r--r--jenkins-master.yml34
-rw-r--r--jenkins-slaves.yml20
-rw-r--r--jenkins.yml104
-rw-r--r--lava-remote-worker.yml11
-rw-r--r--metricbeat.yml7
-rw-r--r--obs-cn1.yml89
-rw-r--r--obs-us1.yml93
-rw-r--r--obs-workers.yml8
-rw-r--r--obs.yml13
-rw-r--r--patchwork.yml7
-rw-r--r--per-service/bugzilla/files/bugzilla-apache.conf22
-rw-r--r--postfix.yml17
-rw-r--r--publishing-baremetal.yml11
-rw-r--r--publishing-docker.yml28
-rw-r--r--publishing.yml24
-rw-r--r--roles/apache-site/defaults/main.yml4
-rw-r--r--roles/apache-site/files/block-refs.conf5
-rw-r--r--roles/apache-site/files/headers-http.conf4
-rw-r--r--roles/apache-site/files/headers-https.conf5
-rw-r--r--roles/apache-site/files/letsencrypt.conf4
-rw-r--r--roles/apache-site/files/logrotate.conf19
-rw-r--r--roles/apache-site/files/settings-ssl.conf3
-rw-r--r--roles/apache-site/files/ssl.conf85
-rw-r--r--roles/apache-site/handlers/main.yml4
-rw-r--r--roles/apache-site/tasks/docker_apache.yml27
-rw-r--r--roles/apache-site/tasks/install_site.yml15
-rw-r--r--roles/apache-site/tasks/main.yml79
-rw-r--r--roles/atom/meta/main.yml12
-rw-r--r--roles/bugzilla/tasks/main.yml9
-rwxr-xr-xroles/bugzilla/templates/renumber_cf_versions_sortkeys.py77
-rw-r--r--roles/certbot/defaults/main.yml3
-rw-r--r--roles/certbot/files/acme-challenge.apache222
-rwxr-xr-xroles/certbot/files/apache.hook.service3
-rw-r--r--roles/certbot/handlers/main.yml5
-rw-r--r--roles/certbot/tasks/certbot.yml43
-rw-r--r--roles/certbot/tasks/main.yml8
-rw-r--r--roles/certbot/tasks/snakeoil.yml20
-rw-r--r--roles/cgit/files/header.html2
-rw-r--r--roles/cgit/handlers/main.yml4
-rw-r--r--roles/cgit/tasks/main.yml27
-rw-r--r--roles/cgit/templates/cgitrc10
-rw-r--r--roles/cgit/templates/cgitrc-repo-hide4
-rw-r--r--roles/cgit/templates/linaro.css9
-rw-r--r--roles/cgit/templates/linaro.js (renamed from roles/cgit/templates/header.html)14
-rw-r--r--roles/colo-bastion/files/serial-connect19
-rw-r--r--roles/colo-bastion/tasks/main.yml11
-rw-r--r--roles/colo-console-server/files/conserver-server.conf3
-rwxr-xr-xroles/colo-console-server/files/serial-connect-dl12047
-rwxr-xr-xroles/colo-console-server/files/serial-connect-dl32081
-rw-r--r--roles/colo-console-server/handlers/main.yml3
-rw-r--r--roles/colo-console-server/tasks/main.yml43
-rw-r--r--roles/colo-console-server/templates/conserver.cf.j239
-rw-r--r--roles/colo-console-server/templates/conserver.passwd.j210
-rw-r--r--roles/curator/defaults/main.yml8
-rw-r--r--roles/curator/tasks/main.yml40
-rw-r--r--roles/curator/templates/curator.conf.j21
-rw-r--r--roles/curator/templates/curator.cron7
-rw-r--r--roles/curator/templates/fb-systems-cleanup.yml18
-rw-r--r--roles/curator/templates/hb-cleanup.yml18
-rw-r--r--roles/curator/templates/index_backup.yml27
-rw-r--r--roles/curator/templates/index_restore.yml57
-rw-r--r--roles/curator/templates/mb-lava-1m-snapshot.yml20
-rw-r--r--roles/curator/templates/mb-lava-30d-cleanup.yml18
-rw-r--r--roles/curator/templates/mb-systems-cleanup.yml18
-rw-r--r--roles/deb-repository/files/.mini-dinstall-linaro-overlay-sid.conf130
-rw-r--r--roles/deb-repository/files/.mini-dinstall-linaro-staging-sid.conf130
-rwxr-xr-xroles/deb-repository/files/install-gpg.sh6
-rwxr-xr-xroles/deb-repository/files/sign-release.sh12
-rw-r--r--roles/deb-repository/tasks/main.yml33
-rw-r--r--roles/defaults/defaults/main.yml4
-rw-r--r--roles/defaults/files/20auto-upgrades3
-rw-r--r--roles/defaults/files/50unattended-upgrades91
-rw-r--r--roles/defaults/handlers/main.yml5
-rw-r--r--roles/defaults/tasks/main.yml39
-rw-r--r--roles/defaults/templates/journald.conf.j243
-rw-r--r--roles/dehydrated/defaults/main.yml2
-rw-r--r--roles/dehydrated/tasks/dehydrated.yml91
-rw-r--r--roles/dehydrated/tasks/main.yml109
-rw-r--r--roles/dehydrated/tasks/snakeoil.yml7
-rw-r--r--roles/dehydrated/templates/dehydrated.cron2
-rw-r--r--roles/dehydrated/templates/hook-dns-01-real.py2
-rw-r--r--roles/dehydrated/templates/hook-http-017
-rw-r--r--roles/dehydrated/templates/main.config2
-rw-r--r--roles/django/defaults/main.yml2
-rw-r--r--roles/django/tasks/main.yml16
-rw-r--r--roles/docker-compose-deps/meta/main.yml3
-rw-r--r--roles/docker-compose-deps/tasks/main.yml3
-rw-r--r--roles/docker-deps/tasks/main.yml19
-rw-r--r--roles/docker-elastalert/defaults/main.yml28
-rw-r--r--roles/docker-elastalert/tasks/main.yml66
-rw-r--r--roles/docker-elastalert/templates/config.json.j221
-rw-r--r--roles/docker-elastalert/templates/elastalert-check.cron2
-rwxr-xr-xroles/docker-elastalert/templates/elastalert-check.py24
-rw-r--r--roles/docker-elastalert/templates/elastalert.yaml.j213
-rw-r--r--roles/docker-elastalert/templates/logstash-check.cron2
-rwxr-xr-xroles/docker-elastalert/templates/logstash-check.py16
-rw-r--r--roles/docker-elastalert/templates/rules/alert_email.stub3
-rw-r--r--roles/docker-elastalert/templates/rules/cpu-load-spike.yaml27
-rw-r--r--roles/docker-elastalert/templates/rules/docker-container-changed.yaml22
-rw-r--r--roles/docker-elastalert/templates/rules/du-gt-70.yaml24
-rw-r--r--roles/docker-elastalert/templates/rules/du-gt-80.yaml27
-rw-r--r--roles/docker-elastalert/templates/rules/heavy-diskio.yaml28
-rw-r--r--roles/docker-elastalert/templates/rules/memory-gt-95.yaml24
-rw-r--r--roles/docker-elasticsearch/defaults/main.yml10
-rw-r--r--roles/docker-elasticsearch/tasks/main.yml109
-rw-r--r--roles/docker-elasticsearch/templates/Dockerfile.j210
-rw-r--r--roles/docker-elasticsearch/templates/elasticsearch.yml.j28
-rw-r--r--roles/docker-elasticsearch/templates/jvm.options117
-rw-r--r--roles/docker-elk/defaults/main.yml15
-rw-r--r--roles/docker-elk/tasks/main.yml51
-rw-r--r--roles/docker-elk/templates/Dockerfile_elk.j214
-rw-r--r--roles/docker-event-watcher/files/event-watcher.py (renamed from roles/docker-publishing/files/event-watcher.py)0
-rw-r--r--roles/docker-event-watcher/handlers/main.yml3
-rw-r--r--roles/docker-event-watcher/tasks/main.yml12
-rw-r--r--roles/docker-event-watcher/templates/crond.j21
-rw-r--r--roles/docker-flexnet/handlers/main.yml5
-rw-r--r--roles/docker-flexnet/meta/main.yml (renamed from roles/obs-worker/meta/main.yml)0
-rw-r--r--roles/docker-flexnet/tasks/main.yml23
-rw-r--r--roles/docker-fossology/defaults/main.yml13
-rw-r--r--roles/docker-fossology/tasks/main.yml71
-rw-r--r--roles/docker-fossology/templates/docker-compose.yml.j280
-rw-r--r--roles/docker-gitlab/handlers/main.yml8
-rw-r--r--roles/docker-gitlab/tasks/main.yml60
-rw-r--r--roles/docker-gitlab/templates/gitlab.rb.j2 (renamed from roles/filebeat/templates/filebeat.yml.j2)2
-rw-r--r--roles/docker-gitlab/templates/morelloproject.conf.tmp21
-rw-r--r--roles/docker-grafana/tasks/main.yml60
-rw-r--r--roles/docker-grafana/templates/grafana.ini135
-rw-r--r--roles/docker-grafana/templates/ldap.toml27
-rw-r--r--roles/docker-grimoirelab/defaults/main.yml27
-rw-r--r--roles/docker-grimoirelab/tasks/main.yml70
-rw-r--r--roles/docker-hatstall/defaults/main.yml10
-rw-r--r--roles/docker-hatstall/files/apache-hatstall.conf67
-rw-r--r--roles/docker-hatstall/tasks/main.yml31
-rw-r--r--roles/docker-jenkins-master/tasks/main.yml92
-rw-r--r--roles/docker-jenkins-master/templates/hosts.j212
-rw-r--r--roles/docker-kibiter/defaults/main.yml10
-rw-r--r--roles/docker-kibiter/handlers/main.yml13
-rw-r--r--roles/docker-kibiter/tasks/main.yml42
-rw-r--r--roles/docker-kibiter/templates/Dockerfile.j216
-rw-r--r--roles/docker-llvmmonitor/defaults/main.yml5
-rw-r--r--roles/docker-llvmmonitor/tasks/main.yml25
-rw-r--r--roles/docker-logstash/defaults/main.yml13
-rw-r--r--roles/docker-logstash/files/30-output.conf8
-rw-r--r--roles/docker-logstash/files/logstash.conf9
-rw-r--r--roles/docker-logstash/files/templates/30-output.conf8
-rw-r--r--roles/docker-logstash/files/templates/logstash.conf9
-rw-r--r--roles/docker-logstash/tasks/main.yml61
-rw-r--r--roles/docker-prometheus/defaults/main.yml6
-rw-r--r--roles/docker-prometheus/tasks/main.yml78
-rw-r--r--roles/docker-prometheus/templates/Dockerfile.j215
-rw-r--r--roles/docker-prometheus/templates/prometheus.yml.j229
-rw-r--r--roles/docker-publishing-site/defaults/main.yml5
-rw-r--r--roles/docker-publishing-site/tasks/main.yml81
-rw-r--r--roles/docker-publishing-site/templates/allowed_hosts.txt (renamed from roles/docker-publishing/templates/allowed_hosts.txt)0
-rw-r--r--roles/docker-publishing-site/templates/llp-crontab.cron14
-rw-r--r--roles/docker-publishing-site/templates/proxy_settings.py (renamed from roles/docker-publishing/files/proxy_settings.py)0
-rw-r--r--roles/docker-publishing/defaults/main.yml2
-rw-r--r--roles/docker-publishing/files/apache-proxy.conf9
-rw-r--r--roles/docker-publishing/files/docker_run.sh8
-rw-r--r--roles/docker-publishing/handlers/main.yml7
-rw-r--r--roles/docker-publishing/tasks/deploy-site.yml87
-rw-r--r--roles/docker-publishing/tasks/main.yml44
-rw-r--r--roles/docker-publishing/templates/llp-crontab.cron15
-rw-r--r--roles/docker-ses-proxy/handlers/main.yml3
-rw-r--r--roles/docker-ses-proxy/tasks/main.yml39
-rw-r--r--roles/docker-ses-proxy/templates/docker-firewall.j28
-rw-r--r--roles/docker-swarm-manager/meta/main.yml (renamed from roles/docker-publishing/meta/main.yml)1
-rw-r--r--roles/docker-swarm-manager/tasks/main.yml52
-rw-r--r--roles/docker-swarm-manager/templates/swarm.txt.j23
-rw-r--r--roles/docker-tcwg-proxy/defaults/main.yml13
-rw-r--r--roles/docker-tcwg-proxy/tasks/main.yml50
-rw-r--r--roles/docker-tf-jenkins-master/tasks/main.yml25
-rw-r--r--roles/dovecot-imapd/handlers/main.yml2
-rw-r--r--roles/dovecot-imapd/tasks/main.yml6
-rw-r--r--roles/dovecot-imapd/templates/local.conf1
-rw-r--r--roles/duplicity/tasks/main.yml21
-rw-r--r--roles/duplicity/templates/backup.cron (renamed from roles/jenkins-master-deps/templates/backup.cron)0
-rw-r--r--roles/filebeat/defaults/main.yml35
-rw-r--r--roles/filebeat/handlers/main.yml6
-rw-r--r--roles/filebeat/tasks/main.yml42
-rw-r--r--roles/filebeat/templates/apache2.yml.j22
-rw-r--r--roles/filebeat/templates/system.yml.j22
-rw-r--r--roles/gerrit/files/review.mlplatform.org/tosa_cla.html56
-rw-r--r--roles/gerrit/handlers/main.yml10
-rw-r--r--roles/gerrit/meta/main.yml3
-rw-r--r--roles/gerrit/tasks/configure.yml42
-rw-r--r--roles/gerrit/tasks/deps.yml69
-rw-r--r--roles/gerrit/tasks/gerrit.yml82
-rw-r--r--roles/gerrit/templates/gerrit-automate3
-rwxr-xr-xroles/gerrit/templates/gerrit.service25
-rw-r--r--roles/gerrit/templates/gerrit.sysv3
-rw-r--r--roles/gerrit/templates/secure.config4
-rw-r--r--roles/git-deps/files/git_logrotate2
-rw-r--r--roles/git-deps/handlers/main.yml3
-rw-r--r--roles/git-deps/tasks/daemon.yml21
-rw-r--r--roles/git-deps/tasks/pkgs.yml3
-rw-r--r--roles/git-deps/templates/git-daemon.service21
-rw-r--r--roles/gitlab-runner/defaults/main.yml8
-rw-r--r--roles/gitlab-runner/tasks/main.yml131
-rw-r--r--roles/gitlab-runner/templates/env.conf.j24
-rw-r--r--roles/gitlab-runner/templates/gitlab-cleanup.j23
-rw-r--r--roles/gitlab-runner/templates/kill.conf.j23
-rw-r--r--roles/gitlab-runner/templates/morello-start.sh8
-rw-r--r--roles/gitolite/templates/gitolite.rc1
-rw-r--r--roles/grokmirror/files/known_hosts7
-rw-r--r--roles/grokmirror/tasks/main.yml22
-rw-r--r--roles/grokmirror/tasks/master.yml2
-rw-r--r--roles/grokmirror/tasks/slave.yml5
-rw-r--r--roles/grokmirror/templates/grokcheck.cron.d2
-rw-r--r--roles/grokmirror/templates/grokmirror.cron.d2
-rw-r--r--roles/jenkins-master-deps/tasks/main.yml72
-rw-r--r--roles/jenkins-master-deps/templates/cleanup-crontab.cron1
-rw-r--r--roles/jenkins-slave-deps/files/docker_ssh/buildslave.config4
-rw-r--r--roles/jenkins-slave-deps/files/docker_ssh/buildslave.known_hosts17
-rw-r--r--roles/jenkins-slave-deps/files/jenkins_sudoers4
-rw-r--r--roles/jenkins-slave-deps/tasks/main.yml99
-rw-r--r--roles/jenkins-slave-deps/templates/buildslave.config19
-rw-r--r--roles/jenkins-slave-deps/templates/credentials.sh3
-rw-r--r--roles/jenkins-slave-deps/templates/ecr-sync.crontab4
-rwxr-xr-xroles/jenkins-slave-deps/templates/update_ecr_images.sh11
-rw-r--r--roles/jenkins-trigger-agent/tasks/main.yml51
-rw-r--r--roles/lava-docker-worker/tasks/main.yml33
-rw-r--r--roles/lava-docker-worker/templates/lava-docker-worker5
-rw-r--r--roles/lava-elk-deps/defaults/main.yml7
-rw-r--r--roles/lava-elk-deps/files/jobfailure_dashboard.json26
-rw-r--r--roles/lava-elk-deps/files/kibana_dashboard.json222
-rw-r--r--roles/lava-elk-deps/files/kisscache_dashboard.json26
-rw-r--r--roles/lava-elk-deps/files/kisscache_visualizations.json114
-rw-r--r--roles/lava-elk-deps/files/lavalab-kibana.json7548
-rw-r--r--roles/lava-elk-deps/files/morello_dashboard.json26
-rw-r--r--roles/lava-elk-deps/files/morello_visualization.json30
-rw-r--r--roles/lava-elk-deps/files/systems-kibana.json7340
-rw-r--r--roles/lava-elk-deps/tasks/main.yml47
-rw-r--r--roles/lava-elk-deps/templates/crond.j218
-rwxr-xr-xroles/lava-elk-deps/templates/devicehealth.py.j278
-rw-r--r--roles/lava-elk-deps/templates/es-crond.j25
-rw-r--r--roles/lava-elk-deps/templates/gitlab_clone_stats.py.j2105
-rw-r--r--roles/lava-elk-deps/templates/jobqueue_production.py.j261
-rw-r--r--roles/lava-elk-deps/templates/kisscache.py.j266
-rw-r--r--roles/lava-remote-worker/tasks/main.yml21
-rw-r--r--roles/letsencrypt/tasks/main.yml4
-rw-r--r--roles/linaro-git-tools/tasks/main.yml2
-rw-r--r--roles/metricbeat/defaults/main.yml40
-rw-r--r--roles/metricbeat/handlers/main.yml3
-rw-r--r--roles/metricbeat/tasks/main.yml35
-rw-r--r--roles/metricbeat/templates/metricbeat.yml.j21
-rw-r--r--roles/mirroring-gerrit/files/git-us.linaro.org.conf22
-rw-r--r--roles/mirroring-gerrit/files/git.trustedfirmware.org.conf27
l---------roles/mirroring-gerrit/files/lhg-review.linaro.org.conf1
-rw-r--r--roles/mirroring-gerrit/tasks/main.yml23
-rw-r--r--roles/mirroring-gerrit/templates/gitcookies.j21
-rw-r--r--roles/mirroring-gerrit/templates/privkey.j21
-rw-r--r--roles/mirroring-gerrit/templates/ssh-config.j25
-rw-r--r--roles/mirroring-gerrit/templates/ssh_config_include1
-rw-r--r--roles/nfs-client/defaults/main.yml2
-rw-r--r--roles/nfs-client/tasks/main.yml8
-rw-r--r--roles/nfs-server/tasks/main.yml28
-rw-r--r--roles/nfs-server/templates/cleanup-crontab.cron3
-rw-r--r--roles/nfs-server/templates/exports.j22
-rw-r--r--roles/node_exporter/defaults/main.yml7
-rw-r--r--roles/node_exporter/handlers/main.yml6
-rw-r--r--roles/node_exporter/tasks/main.yml78
-rw-r--r--roles/node_exporter/templates/ne_push.j214
-rw-r--r--roles/node_exporter/templates/ne_push_cron.j25
-rw-r--r--roles/node_exporter/templates/node_exporter.service.j230
-rw-r--r--roles/node_exporter/templates/web-config.j28
-rw-r--r--roles/obs-bastion/tasks/main.yml88
-rw-r--r--roles/obs-worker/tasks/main.yml25
-rw-r--r--roles/obs/files/BSConfig.pm213
-rw-r--r--roles/obs/files/landingpage/LICENSE.md29
-rw-r--r--roles/obs/files/landingpage/css/layouts/marketing.css286
-rw-r--r--roles/obs/files/landingpage/index.html141
-rwxr-xr-xroles/obs/files/obs-installgpg.sh6
-rwxr-xr-xroles/obs/files/sign.sh12
-rw-r--r--roles/obs/handlers/main.yml5
-rw-r--r--roles/obs/tasks/main.yml74
-rw-r--r--roles/obs/tasks/sign.yml23
-rw-r--r--roles/obs/templates/obs.conf68
-rw-r--r--roles/obs/templates/options.yml157
-rw-r--r--roles/obs_deps/defaults/main.yml4
-rw-r--r--roles/obs_deps/tasks/main.yml34
-rw-r--r--roles/obs_deps/templates/s3fs.creds.j21
-rw-r--r--roles/openvpn-client/defaults/main.yml3
-rw-r--r--roles/patchwork-deps/handlers/main.yml6
-rw-r--r--roles/patchwork-deps/tasks/main.yml41
-rwxr-xr-xroles/pdu-liebert/files/pdu_power317
-rw-r--r--roles/pdu-liebert/files/pdu_power.sudoers2
-rw-r--r--roles/pdu-liebert/tasks/main.yml24
-rw-r--r--roles/pdu-liebert/templates/pdu_power.conf.j2246
-rw-r--r--roles/phabricator/handlers/main.yml2
-rw-r--r--roles/phabricator/tasks/main.yml29
-rw-r--r--roles/phabricator/templates/mysqld.cnf1
-rw-r--r--roles/postfix/defaults/main.yml5
-rw-r--r--roles/postfix/handlers/main.yml15
-rw-r--r--roles/postfix/tasks/main.yml32
-rw-r--r--roles/postfix/tasks/relay.yml19
-rw-r--r--roles/postfix/templates/main.cf64
-rw-r--r--roles/postfix/templates/relay.cf5
-rw-r--r--roles/postfix/templates/sasl_passwd2
-rw-r--r--roles/postgres/tasks/main.yml17
-rw-r--r--roles/postgres10/tasks/main.yml49
-rw-r--r--roles/postgres10/templates/listen_addresses.conf1
-rw-r--r--roles/publishing-deps/tasks/main.yml50
-rw-r--r--roles/publishing-deps/templates/allowed_hosts.txt.j23
-rw-r--r--roles/publishing-deps/templates/llp-crontab.cron18
-rw-r--r--roles/rktools/tasks/main.yml10
-rw-r--r--roles/snowflake-publishing/defaults/main.yml6
-rw-r--r--roles/snowflake-publishing/tasks/main.yml57
-rw-r--r--roles/snowflake-publishing/templates/llp-crontab.cron8
-rw-r--r--roles/ssh-admin/tasks/main.yml17
-rw-r--r--roles/ssh-ldap/defaults/main.yml1
-rw-r--r--roles/ssh-ldap/handlers/main.yml5
-rw-r--r--roles/ssh-ldap/meta/main.yml3
-rw-r--r--roles/ssh-ldap/tasks/main.yml44
-rw-r--r--roles/ssh-ldap/tasks/update_pam.yml6
-rw-r--r--roles/ssh-ldap/templates/nslcd.conf15
-rw-r--r--roles/ssh-ldap/templates/sshd_config20
-rw-r--r--roles/sslcert-bundle/files/gd_bundle-g2-g1.pem79
-rw-r--r--roles/sslcert-bundle/tasks/main.yml7
-rw-r--r--roles/sslcert-self-signed/tasks/main.yml11
-rw-r--r--roles/sslcert-self-signed/templates/ssleay.conf9
-rw-r--r--roles/sslcert/tasks/main.yml8
-rw-r--r--roles/systemd-container/tasks/base-container.yml2
-rw-r--r--roles/ufw/files/after.rules33
-rw-r--r--roles/ufw/files/ufw-docker.rules27
-rw-r--r--roles/ufw/tasks/main.yml28
-rw-r--r--roles/ufw/tasks/scaleway.yml21
-rw-r--r--roles/weblogs/tasks/main.yml47
-rw-r--r--roles/weblogs/templates/weblogs.cron7
l---------secrets_external1
-rw-r--r--ssh-aus-colo-ldap.yml7
-rw-r--r--ssh-ldap.yml16
-rw-r--r--ssh/config106
-rw-r--r--ssh/known_hosts376
-rw-r--r--ssh/known_hosts_tf10
-rw-r--r--ssh/sockets/.placeholder0
l---------ssh/systems-bot-ssh1
l---------ssh/systems-bot-ssh.pub1
-rwxr-xr-xssh/update_key.sh11
-rw-r--r--templates/patchwork/patches.linaro.org_local_settings.py32
-rw-r--r--templates/patchwork/patchwork.cron.d6
-rw-r--r--templates/router/r1-x86-2-dnsmasq38
-rw-r--r--templates/weblogs/96boards_settings.py17
-rw-r--r--templates/weblogs/releases_settings.py17
-rwxr-xr-xtests/ansible-lint-test.sh29
-rwxr-xr-xtests/ansible-lint.sh18
-rw-r--r--tests/ci-stack/docker-compose.yml110
-rw-r--r--tests/ci-stack/docker_vol_x86_64.txt2
-rw-r--r--tests/ci-stack/hosts-simulator9
-rw-r--r--tests/ci-stack/jenkins_jobs.ini11
-rw-r--r--tests/ci-stack/shadow2
-rwxr-xr-xtests/docker-test.sh120
-rw-r--r--tests/tf-ci-stack/docker-compose.yml110
-rw-r--r--tests/tf-ci-stack/docker_vol_x86_64.txt2
-rw-r--r--tests/tf-ci-stack/hosts-simulator9
-rw-r--r--tests/tf-ci-stack/jenkins_jobs.ini11
-rw-r--r--tests/tf-ci-stack/shadow2
-rw-r--r--tests/tf-ci-stack/swarm.txt1
-rw-r--r--weblogs.yml21
555 files changed, 25768 insertions, 7011 deletions
diff --git a/Vagrantfile b/Vagrantfile
index e43bcc2d..0df37f95 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -7,7 +7,8 @@
# you're doing.
Vagrant.configure("2") do |config|
- config.vm.box = "alxgrh/ubuntu-trusty-x86_64"
+ config.vm.box = "generic/ubuntu1804"
+ config.vm.synced_folder ".", "/vagrant", type: "rsync", create: true
config.vm.provision :shell, inline: <<SCRIPT
sudo apt-add-repository -y ppa:ansible/ansible
diff --git a/android.yml b/android.yml
new file mode 100644
index 00000000..3caa25bb
--- /dev/null
+++ b/android.yml
@@ -0,0 +1,12 @@
+---
+- hosts:
+ - android.linaro.org
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
+ - "{{secrets_dir}}/group_vars/all"
+ - "{{secrets_dir}}/group_vars/dehydrated"
+ - "vars/empty.yml"
+ roles:
+ - {role: apache-site, src: "apache/{{inventory_hostname}}.conf", config: "{{inventory_hostname}}", tags: [apache]}
+ - {role: dehydrated, tags: [ssl] }
diff --git a/ansible.cfg b/ansible.cfg
index bb0ec2b4..591e9ac6 100644
--- a/ansible.cfg
+++ b/ansible.cfg
@@ -1,5 +1,7 @@
[defaults]
inventory = hosts
+retry_files_enabled = False
+forks = 100
[ssh_connection]
ssh_args = -F ./ssh/config
diff --git a/atom.yml b/atom.yml
new file mode 100644
index 00000000..6e5a600d
--- /dev/null
+++ b/atom.yml
@@ -0,0 +1,10 @@
+---
+- name: Deploy the roles that are common to all Systems managed servers
+ hosts: all
+ vars_files:
+ - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
+ - "{{secrets_dir}}/group_vars/all"
+ become: true
+
+ roles:
+ - {role: atom, when: no_atom is undefined}
diff --git a/aus-colo-servers.yml b/aus-colo-servers.yml
deleted file mode 100644
index a719d84c..00000000
--- a/aus-colo-servers.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-# Deploy aus-colo specific roles
----
-- name: Configure firewall/router
- hosts: router.aus-colo.linaro.org
- become: yes
- vars_files:
- - "{{secrets_dir}}/host_vars/{{inventory_hostname}}"
- roles:
- - role: colo-router
-
-- name: Configure bastion
- hosts: aus-colo.linaro.org
- become: yes
- vars_files:
- - "{{secrets_dir}}/host_vars/{{inventory_hostname}}"
- - "files/reservations.yml"
- roles:
- - role: colo-bastion
- - {role: pdu-liebert, tags: [colo_users]}
-
-- name: Configure our x86-1 top-of-rack servers
- hosts:
- - r1-x86-1.aus-colo.linaro.org
- - r2-x86-1.aus-colo.linaro.org
- - r3-x86-1.aus-colo.linaro.org
- become: yes
- vars_files:
- - "files/reservations.yml"
- roles:
- - {role: colo-console-server, tags: [colo_users]}
-
-- name: Configure rack2 PXE
- hosts:
- - r2-x86-1.aus-colo.linaro.org
- vars_files:
- - "{{secrets_dir}}/group_vars/all"
- - host_vars/router.aus-colo.linaro.org
- become: yes
- roles:
- - {role: colo-pxe, tags: [pxe]}
- - {role: apache-site, src: pxe-kickstart.conf, config: kickstart, tags: [apache] }
diff --git a/certbot.yml b/certbot.yml
deleted file mode 100644
index 62e149e5..00000000
--- a/certbot.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-- name: Configure certbot
- hosts: certbot
- become: yes
- roles:
- - role: certbot
diff --git a/docs/README.ansible_best_practices.md b/docs/README.ansible_best_practices.md
index 283851cb..775528c4 100644
--- a/docs/README.ansible_best_practices.md
+++ b/docs/README.ansible_best_practices.md
@@ -23,6 +23,10 @@ file to chain them together.
`gerrit` and `bugzilla` roles are an example of using this.
+4. When running a command via a handler, you may need to include a task to check that the command was run and if not re-trigger
+it. It is possible that if another handler action fails and your handler is only called on a one-time event (ie, a
+file is installed) your handler will never be run on a followup. See https://review.linaro.org/c/infrastructure/ansible-playbooks/+/33481 for an example.
+
5. Try not to use lineinfile, use file or template instead. Lineinfile generally ends in things breaking.
6. Changed=true. A playbook should *always* run with changed=False, not unless a change has actually happened. If you are getting changed=True everytime the playbook runs, do not submit a review.
diff --git a/docs/README.dehydrated.md b/docs/README.dehydrated.md
index 6e8708a1..49927f3e 100644
--- a/docs/README.dehydrated.md
+++ b/docs/README.dehydrated.md
@@ -15,24 +15,14 @@ Example of usage is in host_vars/publishing-ap.linaro.org
Ansible Command Line Options
============================
-As a convenience for testing, you may define the var "snakeoil" to any
-value and this role will set the following vars to point to the self-signed
-certificate on the server:
-
-- ssl_cert
-- ssl_key
-- ssl_ca
-
-And it will not attempt to install dehydrated on the server instance.
-
-You may also define the var "testing" which will use the LetsEncrypt
+You may define the var "testing" which will use the LetsEncrypt
staging environment for acquiring the certificates. The staging
environment does not have a rate limit on failed requests and should
be used until you know that the certificates will deploy correctly
to the server.
To have dehydrated install certificates from the LetsEncrypt production
-environment, make leave "snakeoil" and "testing" undefined.
+environment, leave "testing" undefined.
domains.txt
@@ -62,6 +52,7 @@ Automation
==========
Certs are checked/renewed every 12 hours by cron job in /etc/cron.d/dehydrated
+with the output sent to /var/log/dehydrated.
Certs should renew 30 days from their expiration. Any email alerts received
from LetsEncrypt warning that a cert has less than 30 days until expiry should
diff --git a/docs/README.jenkins b/docs/README.jenkins
new file mode 100644
index 00000000..155bfb71
--- /dev/null
+++ b/docs/README.jenkins
@@ -0,0 +1,16 @@
+Linaro jenkins instructions
+-----
+
+Steps for adding a new jenkins slave to known_hosts
+=======
+
+1. ssh jenkins-server ssh-keyscan $newip >> ssh/known_hosts
+2. ansible-playbook -D -C -K jenkins-master.yml -l ci.linaro.org -t jenkins-master
+2.5 if looks good, re-run without "-C"
+3. enable known_hosts verification strategy for specific node in jenkins
+4. disconnect and re-connect the jenkins slave
+5. verify from the slave log that known_hosts verification was used
+
+
+
+
diff --git a/docs/README.publishing.md b/docs/README.publishing.md
new file mode 100644
index 00000000..3dd5881c
--- /dev/null
+++ b/docs/README.publishing.md
@@ -0,0 +1,117 @@
+Overview
+========
+
+This document is meant to explain the lay out of our publishing servers.
+
+Previously publishing sites were deployed as a single django application
+on a server. The service has slowly been transitioned to run inside
+of a docker container in order to allow us to stack multiple sites
+on single physical server and to more easily maintain the service.
+
+In this setup, we generally refer to the host of one or more sites as
+a "publishing server". It is assigned a hostname of 'publishing-<region>'
+and listed under 'publishing-docker' in the ansible hosts inventory file.
+Server wide settings (include docker image name and SSL certificates)
+are setup in the publishing server's host_vars file.
+
+"publishing sites" are instances of LLP running inside of a container
+on a publishing server. These generally have their own DNS name
+('releases-ie.linaro.org'). The site hostname is assigned to the
+group 'publishing-docker-site' in the ansible hosts inventory file.
+Site specific settings are made in the site's host_vars file.
+
+The publishing server runs an apache webserver that maintains a vhost
+for each site that it has and will proxy request to the appropriate
+container. It is also responsible for hosting any cron jobs that
+need to be run and they are stored as:
+ /etc/cron.d/llp-crontab-<site-hostname>
+
+Example Deployment
+------------------
+
+Refer to the ansible playbooks for an example of this deployment
+on "publishing-ie.linaro.org"
+
+publishing-ie.linaro.org - publishing server
+releases-ie.linaro.org - LLP site, geo balanced for "releases.linaro.org"
+snapshots.linaro.org - LLP site for publishing snapshot builds, used heavily by CI system
+testdata.linaro.org - LLP site for test data
+
+
+LLP
+===
+
+The LLP code based is maintained at:
+
+https://git.linaro.org/infrastructure/linaro-license-protection.git
+
+Configuration
+-------------
+
+Configuration is performed in several locations:
+
+- /srv/linaro-license-protection/settings*.py (inside the container)
+
+These will be all the django settings that are common to any production publishing site. These
+will normally be paths that the application will use.
+
+- /srv/linaro-license-protection/license-protected-downloads/config.py (inside the container)
+
+This file contains the INTERNAL_HOSTS set of IP addresses that are exempt from password authentication
+to access protected downloads. These will normally be CI systems that need to download protected files.
+
+- /srv/<site-hostname>/secrets.py (on publishing-server)
+
+This file contains all of the secrets and unique configuration for the publishing site. This is where things
+like the S3 bucket and postgresql credentials are stored. Settings in this file override the defaults from
+the settings*.py files inside the docker container.
+
+Bind Mounts
+-----------
+
+When the container is run, the following mountpoints are created:
+
+/srv/<site-hostname> on the publishing-server is mounted as /srv inside the container
+/srv/linaro-license-protection on the publishing-server is mounted on /srv/linaro-license-protection inside
+the container
+
+The second mount allows us the option to update the code on a publishing server without restarting the
+container and potentially disturbing an upload, but doing this should be avoided as updating via Jenkins
+and Ansible are preferred.
+
+
+Entrypoint
+----------
+
+The entrypoint for the docker instance is the docker_run.sh script (/srv/docker_run.sh in the container,
+/srv/<site-hostname>/docker_run.sh on the publishing server).
+
+This script is responsible for starting up LLP on the correct port through gunicorn.
+
+Note: With the mount of the of linaro-license-protection repo inside the container, it is possible to
+load up changes to the code by kill -HUP'ing the gunicorn process without having to restart the container.
+This should be avoided, as deploying changes through the review process and Ansible is preferred.
+
+
+Updating Docker Image
+=====================
+
+This software is available in the docker image 'linaro/ci-amd64-llp-alpine'.
+The image should be rebuilt monthly as well if there are any triggering changes
+to the dockerfile.
+
+In order to force a new docker image to be built, you should trigger the jenkins job:
+
+https://ci.linaro.org/job/ci-dockerfile-build/build?delay=0sec
+
+Image: ci-amd64-llp-alpine
+Nodelabel: build-amd64
+
+
+After a new image is created and uploaded to Docker Hub, you will need to ensure:
+
+1. The new image is pulled to the server by defining the "docker_upgrade" ansible var:
+ ansible-playbook [...] -l <server-hostname> -e "docker_upgrade=true"
+
+2. The containers are restarted to use the new code:
+ ansible-playbook [...] -l <site-hostname> -e "docker_upgrade=true"
diff --git a/docs/README.ssl.md b/docs/README.ssl.md
deleted file mode 100644
index ffd452ce..00000000
--- a/docs/README.ssl.md
+++ /dev/null
@@ -1,134 +0,0 @@
-Quickstart for Bootstrapping Certbot
-=====================================
-
-1. Edit the apache config file and make sure the acme-challenge
- code has been added to the port 80 vhost (see "Apache Config" below)
-
-2. Edit the host_vars for the server and set "certbot_domains" to a list of all hostnames that should have a certificate on the server
-
-3. Ensure that the 'certbot' role is called before the 'apache-site' role in
- the playbook and has the "ssl" tag associated with it
-
-4. Install the apache configs (use --skip-tags ssl) to allow the acme-challenge
- configs
-
-5. Ensure the acme-challenge exemption is working:
-
-cat hello > /srv/certbot/.well-known/acme-challenge/foo.txt
-curl http://{{hostname}}/.well-known/acme-challenge/foo.txt
-
-6. Install 'certbot' role by itself (use --tags ssl to create the certs)
-
-Once the playbook has been successfully bootstrapped on the server, it will
-no longer require any special action.
-
-
-Certbot Renewal
-===============
-
-Part of the certbot install includes a cron job that runs every 12 hours
-that calls "certbot renew". If a cert is within 30 days of expiring, it
-will automatically renew. If you a see a 20 day or less warning that means
-the cron job is failing for some reason.
-
-After fixing whatever the problem is, you can either run "certbot renew" as
-root on the server, or you can simply run the playbook again with "--tags ssl".
-
-
-Overview of all SSL Playbooks
-=============================
-
-Our playbooks currently have five roles dedicated to setting up SSL
-certificates on a server. Most of these are obsolete and will be
-removed from our roles in the future, so please do not use them
-in any new development work.
-
-- certbot
-
- This is the currently preferred role for creating and maintaining ssl
- certs on a server. It installs the 'certbot' program from the PPA.
- This role is meant to be a temporary fix until we can implement an
- automated certificate management system.
-
-- letsencrypt
-
- Obsoleted by 'certbot'. Do not use.
-
- This role sets up and maintains a LetsEncrypt certificate for the server
- using the obsoleted 'letsencrypt' script provided by the EFF. 'letsencrypt'
- has been superceded by 'certbot', and the role is kept around to ease
- transition to the 'ssl' role. Packages for 'letsencrypt' are no longer
- available for Ubuntu Xenial (16.04) systems.
-
-- sslcert-bundle
-
- Obsolete. Do not use.
-
- This was a previous implementation that used a wildcard certificate from
- godaddy for our sites. It is being kept around in order to ease transition
- to the 'ssl' role and as the paths to this certificate may be hardcoded
- into configuration files for several services (notable apache configs).
-
-- sslcert
-
- Obsolete. Do not use.
-
- There should be nothing left dependent upon this role.
-
-- ssl-self-signed
-
- Obsolete. Do not use.
-
- There should be nothing left dependent upon this role.
-
-
-Details for the 'certbot' role - certbot support
-============================================
-
-The 'certbot' role will ensure that a cert/key pair for each FQDN
-listed in the "certbot_domains" variable for the host is created on
-the server. If the extra arg "snakeoil" is set to True, the certs will
-be created and symlinked to the snakeoil cert. If it's not defined or
-not set to True, the certbot program will be run and will either request
-or renew LE certificates for each item in "certbot_domains".
-
-The command that is run for each domain is:
-certbot --apache certonly -d <domain> -e <email>
-
-
-The following host_vars may be set:
-
- certbot_domains: A list of domains that the cert will be valid for
- certbot_email: The email address to use when registering for a cert
-
-By default, certbot_domains is set to only the hostname of the server. If
-you need to add more hostnames, override the list in the host_vars for the
-server.
-
-
-Apache Config
-=============
-
-Ensure that the following directives exist in the port 80 vhost on the server:
-
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
-
-Next, make sure that an exemption is made for any redirect or rewrite rules for the /.well-known/acme-challenge/ URL
-
- * For mod_rewrite, use:
-
- RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.*$
-
- * For a redirect, use:
-
- RedirectMatch permanent \
- "^/(?!\.well-known/acme-challenge)(.*)" \
- "https://{{hostname}}/$1"
-
- * For a config with mod_proxy, use:
-
- ProxyPass /.well-known/acme-challenge/ !
-
diff --git a/docs/examples/prometheus_parse_inv.py b/docs/examples/prometheus_parse_inv.py
new file mode 100755
index 00000000..efe7c768
--- /dev/null
+++ b/docs/examples/prometheus_parse_inv.py
@@ -0,0 +1,56 @@
+#!/usr/bin/python3
+
+from ansible.inventory.manager import InventoryManager
+from ansible.parsing.dataloader import DataLoader
+from ansible.vars.manager import VariableManager
+
+import yaml
+
+from ipaddress import ip_address
+import socket
+socket.setdefaulttimeout(3)
+
+HOSTS_BY_IP = {}
+
+dl = DataLoader()
+im = InventoryManager(loader=dl, sources=['hosts'])
+vm = VariableManager(loader=dl, inventory=im)
+
+for host in im.get_hosts():
+
+ avars = vm.get_vars(host=host)
+
+ # Check for no_atom, which means this
+ # host is virtual and its IP is already
+ # being monitored
+ no_atom = avars.get("no_atom") or False
+ if no_atom == True:
+ print( "skipping %s: no_atom virtual host" % (str(host)))
+ continue
+
+ ip = avars.get("ansible_host") or None
+ if ip is None:
+ try:
+ ip = socket.gethostbyname(str(host))
+ except socket.gaierror as e:
+ print("skipping %s: %s" % (str(host), e))
+ continue
+
+ # skip private IPs
+ if ip_address(ip).is_private:
+ print( "skipping %s: private IP %s" % (str(host), ip))
+ continue
+
+ if ip not in HOSTS_BY_IP:
+ HOSTS_BY_IP[ip] = []
+
+ HOSTS_BY_IP[ip].append(host)
+
+# dump to prometheus conf file
+entries = []
+for ip in HOSTS_BY_IP:
+ item = {"targets": [ip+":9100"], "labels": {"job":"node","hostname":str(HOSTS_BY_IP[ip].pop())}}
+ entries.append(item)
+
+outfile = open("nodes.yaml", "w")
+yaml.dump(entries, outfile)
diff --git a/docs/maintenance/gerrit.md b/docs/maintenance/gerrit.md
new file mode 100644
index 00000000..dee6e089
--- /dev/null
+++ b/docs/maintenance/gerrit.md
@@ -0,0 +1,84 @@
+This document is intent to outline the steps necessary for upgrading the version of gerrit deployed via our playbooks and to list some common problems that might be encountered during the upgrade.
+
+
+## Overview of the Process
+
+1. Create a change to upgrade the play in ansible (outline in next section), but
+ do not merge until upgrade has been deployed.
+2. After testing, schedule time for upgrade with the team.
+3. Send out maintenance announcements to affected customers letting them know to anticipate downtime.
+4. On maintenace day, open an ssh session and become root on the target servers in case manual intervention is needed.
+5. Run the upgrade play.
+6. Verify the server has been upgraded and is operational.
+7. After all servers have been updated, submit the upgrade change.
+8. Announce success.
+
+
+## Preparing the Play
+
+1. Upgrade the 'gerrit_version' in `group_vars/gerrit`
+2. Change the setting for 'gerrit_md5sum'
+3. If the upgrade is a minor release, also upgrade 'gerrit_plugin_version'
+4. Verify that the URLs for external modules on gerrit-forge.org are still valid, change as needed.
+
+
+## Verify the Upgrade
+
+1. Open browser, make sure that the server is back online and responding with new version number.
+2. Verify that you can log in and have administrative access
+3. Check to make sure that the last change before the upgrade is present.
+
+## Possible Problems
+
+* Playbook dies after `gerrit init` is run, can't get it to execute in subsequent runs
+
+The playbook does not directly install gerrit on the system. It is instead installed via the `gerrit -init -d /srv/gerrit` on the gerrit.war that is downloaded to /srv/gerrit/gerrit.war. This command will unpack all required files to their correct location in /srv/gerrit, and the upgraded gerrit file will be located at /srv/gerrit/bin/gerrit.war.
+
+The playbook will only attempt to execute the 'init' command if it has detected the md5sum on the file is different from the md5sum listed in group_vars. If the playbook exits after the 'init' command has been run, you will need to either run it yourself manually or more preferrably delete the /srv/gerrit/gerrit.war file and force ansible to download it again.
+
+
+* Tried to run gerrit manually, but it keeps failing.
+
+It is most likely a memory issue on the server. You may need to temporarily grant more memory to gerrit in order to allow it to run upgrade scripts or reindex projects.
+
+This is done by running: java -jar /srv/gerrit/bin/gerrit.war -Xmx<size of mem in MB> [command].
+
+We typically run gerrit with no more than half of the memory of the server dedicated to it, but if you are having trouble getting the server to reindex try running the operation with a larger memory setting.
+
+
+* It's still not running.
+
+Check in /srv/gerrit/logs/error_log to see if you can find a hint. Most of the time it will be due to inconsistent project or change data, which means the install may need to be reindexed.
+
+
+* Upgrading across major versions.
+
+gerrit does a pretty good job of migrating its internals and self-correcting most problems, but moving to a major version can overwhelm it. If you are making a huge increase in the version and it's failing, you may need to incrementally upgrade gerrit through prior releases.
+
+2.15.4 -> 2.16.10
+2.16.10 -> 3.0.1
+
+
+### Sample Email Announcement
+
+To: linaro-dev@lists.linaro.org, lkft@linaro.org, tcwg@linaro.org
+Subject: [Maintenance] - gerrit servers downtime on 06/02/2021
+
+
+Hello All,
+
+We will be upgrading all Linaro gerrit servers to version 3.3.1
+this weekend on 06/02/2021 starting around 16:00UTC during a five
+hour window.
+
+The following servers are affected and will be unavailable during
+the upgrade window:
+
+
+* android-review.linaro.org
+* dev-private-review.linaro.org
+* lhg-review.linaro.org
+* review.linaro.org
+
+Start: 06/02/2021 16:00UTC
+End: 06/02/2021 21:00UTC
diff --git a/elk.yml b/elk.yml
index 20c96f3f..0e70a35d 100644
--- a/elk.yml
+++ b/elk.yml
@@ -3,16 +3,49 @@
become: yes
vars_files:
- ["{{secrets_dir}}/group_vars/all", "vars/empty.yml" ]
+ - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
- "{{secrets_dir}}/group_vars/dehydrated"
+ - ["{{secrets_dir}}/group_vars/ses-proxy"]
+
roles:
- - { role: ssh-ldap, tags: [ssh-ldap] }
- - { role: ufw, tags: [firewall] }
- - { role: docker-deps, tags: [docker] }
- { role: docker-odp-hook, tags: [docker, odp] }
- - { role: docker-elk, tags: [docker, elk, seb] }
- { role: docker-elasticsearch, tags: [docker, elk, elasticsearch] }
- - { role: lava-elk-deps, tags: [docker, elk] }
- - { role: docker-grimoirelab, tags: [docker, elk, grimoirelab] }
+ - { role: docker-logstash, tags: [docker, elk, logstash] }
- { role: dehydrated, tags: [ssl] }
- - { role: apache-site, src: "elasticsearch/elk.linaro.org.conf", config: "{{inventory_hostname}}", tags: [apache] }
- - { role: apache-auth, host_name: "{{inventory_hostname}}", tags: [apache, apache-auth]}
+ - { role: lava-elk-deps, tags: [docker, elk, lava] }
+ - { role: postfix, tags: [postfix] }
+ - { role: docker-elastalert, tags: [docker, elastalert] }
+# potential race condition for new install. This requires the
+# index .kibitersystems to be setup and the monitoring-systems
+# container to be running
+ - { role: docker-heartbeat, tags: [docker, heartbeat] }
+ - { role: curator, tags: [curator] }
+
+- hosts: prometheus
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/group_vars/all", "vars/empty.yml" ]
+ - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
+ - ["{{secrets_dir}}/group_vars/ses-proxy"]
+ roles:
+ - { role: docker-prometheus, tags: [prometheus] }
+
+- hosts: dashboard_private
+ vars_files:
+ - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
+ # pull this in for access to ldap pw
+ - ["{{secrets_dir}}/host_vars/elk.linaro.org", "vars/empty.yml"]
+ become: yes
+ roles:
+ - { role: docker-kibiter, tags: [docker, elk, dashboard] }
+ - { role: apache-site, src: "apache/monitoring-dashboard-private.conf", config: "{{inventory_hostname}}", tags: [apache] }
+ - { role: elastalert-rules, tags: [elastalert] }
+
+- hosts: dashboard_public
+ become: yes
+ gather_facts: no
+ roles:
+ - { role: docker-kibiter, tags: [docker, elk, dashboard] }
+ - { role: apache-site, src: "apache/monitoring-dashboard-public.conf", config: "{{inventory_hostname}}", tags: [apache] }
+ - { role: elastalert-rules, tags: [elastalert] }
+ - { role: heartbeat-monitors, when: hb_monitors is defined, tags: [heartbeat] }
diff --git a/filebeat.yml b/filebeat.yml
deleted file mode 100644
index a8568d42..00000000
--- a/filebeat.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# Deploy filebeat agent for elk
----
-- name: Configure filebeat
- hosts: filebeat
- gather_facts: no
- become: yes
- vars:
- - logstash_host: elk.linaro.org:5044
- - logstash_cert: logstash-beats.crt
- roles:
- - role: filebeat
diff --git a/files/apache/android-git.linaro.org.conf b/files/apache/android-git.linaro.org.conf
index fbab9c57..7f09ed40 100644
--- a/files/apache/android-git.linaro.org.conf
+++ b/files/apache/android-git.linaro.org.conf
@@ -4,15 +4,15 @@ Mutex default rewrite-map
ServerName {{ git_host }}
ServerAlias {{ inventory_hostname }}
ServerAlias android.git.linaro.org
- Alias "/.well-known/acme-challenge" "/srv/certbot/.well-known/acme-challenge"
- <Directory /srv/certbot/.well-known/acme-challenge>
- Require all granted
- </Directory>
+
+ Include /etc/apache2/linaro/letsencrypt.conf
AllowEncodedSlashes On
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/
RewriteRule ^(.*)$ https://{{ git_host }}$1 [R=301,L]
+
+ Include /etc/apache2/linaro/block-refs.conf
</VirtualHost>
{% if inventory_hostname == 'android-git-us.linaro.org' %}
@@ -25,16 +25,7 @@ Mutex default rewrite-map
AllowEncodedSlashes On
- SSLEngine On
- SSLOptions +StdEnvVars
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
-
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
SSLCertificateChainFile {{ssl_ca}}
@@ -93,7 +84,7 @@ Mutex default rewrite-map
SSLEngine On
SSLProxyEngine On
SSLOptions +StdEnvVars
- SSLProtocol All -SSLv2 -SSLv3
+ SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCompression Off
SSLHonorCipherOrder On
SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
@@ -111,10 +102,12 @@ Mutex default rewrite-map
#RewriteLog ${APACHE_LOG_DIR}/{{ git_host }}-rewrite.log
#RewriteLogLevel 0
+ Include /etc/apache2/linaro/block-refs.conf
+
RewriteMap gitdirs prg:{{tools_checkout_dir}}/linaro-git-tools/git-repo-url-rewrite/git-directory-rewritemap.py
RewriteRule ^/git-ro/(.*) /git-http/${gitdirs:$1} [P,L]
- RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
+ RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider|SemrushBot|PetalBot) [NC]
RewriteRule .* - [R=403,L]
SetEnvIf User-Agent "Amazon Route 53 Health Check" dontlog
diff --git a/files/apache/android-review.linaro.org.conf b/files/apache/android-review.linaro.org.conf
index 6ccffedf..340ea3dc 100644
--- a/files/apache/android-review.linaro.org.conf
+++ b/files/apache/android-review.linaro.org.conf
@@ -48,26 +48,16 @@
ProxyPass / http://127.0.0.1:8080/ nocanon
{% endif %}
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+ Include /etc/apache2/linaro/letsencrypt.conf
</VirtualHost>
{% if ssl_cert is defined %}
<VirtualHost *:443>
ServerName android-review.linaro.org
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
-
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
{% if ssl_ca is defined -%}
@@ -114,5 +104,8 @@
AllowEncodedSlashes On
ProxyPass / http://127.0.0.1:8080/ nocanon
+
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
</VirtualHost>
{% endif %}
diff --git a/files/apache/android.linaro.org.conf b/files/apache/android.linaro.org.conf
new file mode 100644
index 00000000..9b767020
--- /dev/null
+++ b/files/apache/android.linaro.org.conf
@@ -0,0 +1,54 @@
+<VirtualHost *:80>
+ ServerName {{inventory_hostname}}
+ ServerAdmin webmaster@linaro.org
+ DocumentRoot /srv/{{inventory_hostname}}
+
+{% if apache_aliases is defined %}
+ ServerAlias {{apache_aliases|join(' ')}}
+{% endif %}
+
+{% if apache_redirects is defined %}
+ {{apache_redirects}}
+{% endif %}
+
+{% if ssl_cert is defined %}
+ RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{inventory_hostname}}/$1
+ Include /etc/apache2/linaro/letsencrypt.conf
+{% endif %}
+ ErrorLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-error.log
+ CustomLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-access.log combined
+</VirtualHost>
+
+<IfModule mod_ssl.c>
+<VirtualHost *:443>
+ ServerAdmin webmaster@linaro.org
+ DocumentRoot /var/www/html
+
+ ErrorLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-error.log
+ CustomLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-access.log combined
+
+ ServerName {{inventory_hostname}}
+{% if apache_aliases is defined %}
+ ServerAlias {{apache_aliases|join(' ')}}
+{% endif %}
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
+
+ WSGIDaemonProcess lkft-report python-home=/android/django_postgres/workspace-python3 python-path=/android/django_postgres/lcr-report
+ WSGIProcessGroup lkft-report
+ WSGIScriptAlias / /android/django_postgres/lcr-report/lcr/wsgi.py
+ <Directory /android/django_postgres/lcr-report/lcr>
+ <Files wsgi.py>
+ Require all granted
+ </Files>
+ </Directory>
+
+ Alias /static /android/django_postgres/lcr-report/static
+ <Directory /android/django_postgres/lcr-report/static>
+ Require all granted
+ </Directory>
+</VirtualHost>
+</IfModule>
diff --git a/files/apache/dev-private-git.linaro.org.conf b/files/apache/dev-private-git.linaro.org.conf
index b87250b3..7c5aeba6 100644
--- a/files/apache/dev-private-git.linaro.org.conf
+++ b/files/apache/dev-private-git.linaro.org.conf
@@ -11,11 +11,17 @@ LDAPOpCacheTTL 36000
ServerName {{ git_host }}
ServerAdmin webmaster@linaro.org
+ Include /etc/apache2/linaro/headers-http.conf
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{git_host}}/$1"
- Alias "/.well-known/acme-challenge" "/srv/certbot/.well-known/acme-challenge"
- <Directory /srv/certbot/.well-known/acme-challenge>
- Require all granted
- </Directory>
+ Include /etc/apache2/linaro/letsencrypt.conf
+
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
</VirtualHost>
# Support for deprecated *.git.linaro.org subdomains
@@ -24,20 +30,20 @@ LDAPOpCacheTTL 36000
ServerAlias zte.git.linaro.org
RewriteEngine On
+
+ Include /etc/apache2/linaro/block-refs.conf
+
RewriteCond %{HTTP_HOST} ^zte.git.linaro.org [nocase]
RewriteRule ^(.*) https://zte-git.linaro.org$1 [redirect=301,noescape,last]
RewriteRule ^(.*) https://{{ git_host }}$1 [redirect=301,noescape,last]
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
+ Include /etc/apache2/linaro/headers-https.conf
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
SSLCACertificateFile {{ssl_ca}}
@@ -51,16 +57,7 @@ LDAPOpCacheTTL 36000
ServerAlias acadine-git.linaro.org
ServerAdmin webmaster@linaro.org
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
-
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
SSLCACertificateFile {{ssl_ca}}
@@ -79,7 +76,7 @@ LDAPOpCacheTTL 36000
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
- Header always set Strict-Transport-Security "max-age=63072000"
+ Include /etc/apache2/linaro/headers-https.conf
Header append Cache-Control "no-transform"
<FilesMatch "\.(html|htm)$">
@@ -143,4 +140,5 @@ LDAPOpCacheTTL 36000
Options ExecCGI FollowSymlinks
Require all granted
</Directory>
+
</VirtualHost>
diff --git a/files/apache/dev-private-review.linaro.org.conf b/files/apache/dev-private-review.linaro.org.conf
index fd01e8f2..7011eb1f 100644
--- a/files/apache/dev-private-review.linaro.org.conf
+++ b/files/apache/dev-private-review.linaro.org.conf
@@ -13,15 +13,17 @@ LDAPOpCacheTTL 36000
{% if ssl_cert is defined -%}
RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{gerrit_host}}/$1
- Alias "/.well-known/acme-challenge" "/srv/certbot/.well-known/acme-challenge"
- <Directory /srv/certbot/.well-known/acme-challenge>
- Require all granted
- </Directory>
+ Include /etc/apache2/linaro/letsencrypt.conf
{% else %}
CustomLog ${APACHE_LOG_DIR}/{{ gerrit_host }}-access.log combined
ErrorLog ${APACHE_LOG_DIR}/{{ gerrit_host }}-error.log
LogLevel warn
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
DocumentRoot /srv/gerrit
DefineExternalGroup linaro-groups pipe /usr/local/bin/grpcheck.cgi
@@ -50,6 +52,9 @@ LDAPOpCacheTTL 36000
AllowEncodedSlashes On
ProxyPass / http://127.0.0.1:8080/ nocanon
{% endif %}
+
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
</VirtualHost>
{% if ssl_cert is defined %}
@@ -58,16 +63,7 @@ LDAPOpCacheTTL 36000
ServerAlias zte-gerrit.linaro.org
ServerAdmin webmaster@linaro.org
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
-
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
{% if ssl_ca is defined %}
@@ -78,6 +74,11 @@ LDAPOpCacheTTL 36000
ErrorLog ${APACHE_LOG_DIR}/{{ gerrit_host }}-error.log
LogLevel warn
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
DocumentRoot /srv/gerrit
DefineExternalGroup linaro-groups pipe /usr/local/bin/grpcheck.cgi
@@ -97,6 +98,13 @@ LDAPOpCacheTTL 36000
</RequireAll>
</Location>
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+ RewriteCond %{HTTP_COOKIE} !\bGerritAccount\b
+ RewriteCond %{REQUEST_URI} /c/
+ RewriteCond %{REQUEST_URI} !/login
+ RewriteRule "/c/(.*)$" "/login//c/$1" [R]
+
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
diff --git a/files/apache/docs.ci.trustedfirmware.org.conf b/files/apache/docs.ci.trustedfirmware.org.conf
new file mode 100644
index 00000000..ba1d983b
--- /dev/null
+++ b/files/apache/docs.ci.trustedfirmware.org.conf
@@ -0,0 +1,51 @@
+<VirtualHost *:80>
+ ServerName {{config}}
+ ServerAdmin webmaster@linaro.org
+ DocumentRoot /srv/jenkins/docs/{{doc_path}}
+
+{% if apache_aliases is defined %}
+ ServerAlias {{apache_aliases|join(' ')}}
+{% endif %}
+
+{% if apache_redirects is defined %}
+ {{apache_redirects}}
+{% endif %}
+
+{% if ssl_cert is defined %}
+ RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{config}}/$1
+ Include /etc/apache2/linaro/letsencrypt.conf
+{% endif %}
+ ErrorLog ${APACHE_LOG_DIR}/{{config}}-error.log
+ CustomLog ${APACHE_LOG_DIR}/{{config}}-access.log combined
+</VirtualHost>
+
+<IfModule mod_ssl.c>
+<VirtualHost *:443>
+ ServerAdmin webmaster@linaro.org
+ DocumentRoot /srv/jenkins/docs/{{doc_path}}
+
+ <Directory "/srv/jenkins/docs/{{doc_path}}">
+ Order allow,deny
+ Allow from all
+ Require all granted
+ </Directory>
+
+ ErrorLog ${APACHE_LOG_DIR}/{{config}}-error.log
+ CustomLog ${APACHE_LOG_DIR}/{{config}}-access.log combined
+
+ ServerName {{config}}
+{% if apache_aliases is defined %}
+ ServerAlias {{apache_aliases|join(' ')}}
+{% endif %}
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
+ RequestHeader set X-Forwarded-Proto 'https' env=HTTPS
+
+{% if apache_redirects is defined %}
+ {{apache_redirects}}
+{% endif %}
+</VirtualHost>
+</IfModule>
diff --git a/files/apache/gerrit.devboardsforandroid.linaro.org.conf b/files/apache/gerrit.devboardsforandroid.linaro.org.conf
new file mode 100644
index 00000000..c33de03a
--- /dev/null
+++ b/files/apache/gerrit.devboardsforandroid.linaro.org.conf
@@ -0,0 +1,106 @@
+<VirtualHost *:80>
+ ServerName gerrit.devboardsforandroid.linaro.org
+ {% if ssl_cert is defined %}
+
+ RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{hostname}}/$1"
+
+ {% else %}
+
+ DocumentRoot /srv/gerrit
+
+ CustomLog /var/log/apache2/gerrit.devboardsforandroid.linaro.org-access.log combined
+ ErrorLog /var/log/apache2/gerrit.devboardsforandroid.linaro.org-error.log
+
+ ExpiresActive On
+ ExpiresDefault "access plus 0 seconds"
+
+ ExpiresByType text/css "access plus 1 week"
+ ExpiresByType text/javascript "access plus 1 week"
+ ExpiresByType image/png "access plus 1 month"
+ ExpiresByType image/jpg "access plus 1 month"
+ ExpiresByType image/jpeg "access plus 1 month"
+ ExpiresByType image/x-icon "access plus 1 month"
+
+ Header append Cache-Control "no-transform"
+
+ <FilesMatch "\.(html|htm)$">
+ Header add Cache-Control "must-revalidate"
+ </FilesMatch>
+
+ <FilesMatch "\.(js|css)$">
+ Header add Cache-Control "max-age=604800"
+ <ifModule mod_deflate.c>
+ SetOutputFilter DEFLATE
+ </ifModule>
+ </FilesMatch>
+
+ RequestHeader set X-Forwarded-Scheme http
+
+ ProxyRequests Off
+ ProxyVia Off
+ ProxyPreserveHost On
+ <Proxy *>
+ Order deny,allow
+ Allow from all
+ </Proxy>
+
+ AllowEncodedSlashes On
+ ProxyPass / http://127.0.0.1:8080/ nocanon
+ ProxyPass /g/ http://127.0.0.1:8080/r/plugins/gitiles/ retry=0 nocanon Keepalive=On
+ {% endif %}
+
+ Include /etc/apache2/linaro/letsencrypt.conf
+</VirtualHost>
+
+{% if ssl_cert is defined %}
+<VirtualHost *:443>
+ ServerName gerrit.devboardsforandroid.linaro.org
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ {% if ssl_ca is defined -%}
+ SSLCACertificateFile {{ssl_ca}}
+ {%- endif %}
+
+ DocumentRoot /srv/gerrit
+
+ CustomLog /var/log/apache2/gerrit.devboardsforandroid.linaro.org-access.log combined
+ ErrorLog /var/log/apache2/gerrit.devboardsforandroid.linaro.org-error.log
+
+ ExpiresActive On
+ ExpiresDefault "access plus 0 seconds"
+
+ ExpiresByType text/css "access plus 1 week"
+ ExpiresByType text/javascript "access plus 1 week"
+ ExpiresByType image/png "access plus 1 month"
+ ExpiresByType image/jpg "access plus 1 month"
+ ExpiresByType image/jpeg "access plus 1 month"
+ ExpiresByType image/x-icon "access plus 1 month"
+
+ Header append Cache-Control "no-transform"
+
+ <FilesMatch "\.(html|htm)$">
+ Header add Cache-Control "must-revalidate"
+ </FilesMatch>
+
+ <FilesMatch "\.(js|css)$">
+ Header add Cache-Control "max-age=604800"
+ <ifModule mod_deflate.c>
+ SetOutputFilter DEFLATE
+ </ifModule>
+ </FilesMatch>
+
+ RequestHeader set X-Forwarded-Scheme http
+
+ ProxyRequests Off
+ ProxyVia Off
+ ProxyPreserveHost On
+ <Proxy *>
+ Order deny,allow
+ Allow from all
+ </Proxy>
+ AllowEncodedSlashes On
+ ProxyPass / http://127.0.0.1:8080/ nocanon
+</VirtualHost>
+{% endif %}
diff --git a/files/apache/gerrit.forge.aws.linaro.com.conf b/files/apache/gerrit.forge.aws.linaro.com.conf
new file mode 100644
index 00000000..a4d4c112
--- /dev/null
+++ b/files/apache/gerrit.forge.aws.linaro.com.conf
@@ -0,0 +1,75 @@
+<VirtualHost *:80>
+ ServerName gerrit.forge.aws.linaro.com
+ ServerAlias {{inventory_hostname}}
+
+ DocumentRoot /srv/gerrit
+
+ CustomLog /var/log/apache2/gerrit.forge.aws.linaro.com-access.log combined
+ ErrorLog /var/log/apache2/gerrit.forge.aws.linaro.com-error.log
+
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+
+ AllowEncodedSlashes On
+ RewriteEngine On
+ RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/
+ RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|amazonbot|bingbot|Baidu|Baiduspider|360Spider|360|^MauiBot|^SemrushBot|^MegaIndex|PetalBot) [nocase]
+ RewriteRule ^(.*)$ - [forbidden,last]
+
+ {% if ssl_cert is defined %}
+ RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{www_host}}/$1"
+ {% else %}
+ ProxyRequests Off
+ ProxyVia Off
+ ProxyPreserveHost On
+ <Proxy *>
+ Order deny,allow
+ Allow from all
+ </Proxy>
+
+ ProxyPass / http://127.0.0.1:8080/ nocanon
+ {% endif %}
+ Include /etc/apache2/linaro/letsencrypt.conf
+</VirtualHost>
+
+{% if ssl_cert is defined %}
+<VirtualHost *:443>
+ ServerName gerrit.forge.aws.linaro.com
+ ServerAlias {{inventory_hostname}}
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ {% if ssl_ca is defined %}
+ SSLCACertificateFile {{ssl_ca}}
+ {% endif %}
+
+ DocumentRoot /srv/gerrit
+
+ CustomLog /var/log/apache2/gerrit.forge.aws.linaro.com-access.log combined
+ ErrorLog /var/log/apache2/gerrit.forge.aws.linaro.com-error.log
+
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ AllowEncodedSlashes On
+ RewriteEngine On
+ RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|amazonbot|bingbot|Baidu|Baiduspider|360Spider|360|SemrushBot|PetalBot) [nocase]
+ RewriteRule ^(.*)$ - [forbidden,last]
+
+ ProxyRequests Off
+ ProxyVia Off
+ ProxyPreserveHost On
+ <Proxy *>
+ Order deny,allow
+ Allow from all
+ </Proxy>
+
+ ProxyPass / http://127.0.0.1:8080/ nocanon
+</VirtualHost>
+{% endif %}
diff --git a/files/apache/git-mi.linaro.org.conf b/files/apache/git-mi.linaro.org.conf
deleted file mode 120000
index f6fbf658..00000000
--- a/files/apache/git-mi.linaro.org.conf
+++ /dev/null
@@ -1 +0,0 @@
-git.linaro.org.conf \ No newline at end of file
diff --git a/files/apache/git.linaro.org.conf b/files/apache/git.linaro.org.conf
index ee0bf9fc..b3fc8429 100644
--- a/files/apache/git.linaro.org.conf
+++ b/files/apache/git.linaro.org.conf
@@ -6,6 +6,9 @@ ServerTokens Prod
ServerName {{ git_host }}
ServerAlias {{ inventory_hostname }}
ServerAlias git-geo.linaro.org
+ {% if inventory_hostname == "git-us.linaro.org" -%}
+ ServerAlias git-us.ctt.linaro.org
+ {% endif -%}
ServerAdmin webmaster@linaro.org
CustomLog ${APACHE_LOG_DIR}/{{ git_host }}-access.log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D microseconds" env=!dontlog
@@ -23,6 +26,7 @@ ServerTokens Prod
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
+ Include /etc/apache2/linaro/headers-http.conf
Header append Cache-Control "no-transform"
<FilesMatch "\.(html|htm)$">
@@ -60,8 +64,7 @@ ServerTokens Prod
AllowEncodedSlashes On
- RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|bingbot|Baidu|Baiduspider|360Spider|360|^MauiBot|^SemrushBot|^MegaIndex) [nocase]
- RewriteRule ^(.*)$ - [forbidden,last]
+ Include /etc/apache2/linaro/block-refs.conf
RewriteCond %{REQUEST_URI} ^/jmx-console(.*)$
RewriteRule ^/(.*)$ - [forbidden,last]
@@ -101,10 +104,7 @@ ServerTokens Prod
ScriptAliasMatch "(?x)^/git/(.*/(HEAD | info/refs | objects/info/[^/]+ | git-(upload|receive)-pack))$" {{ apache_root }}/cgit/git-http-backend.cgi
- Alias "/.well-known/acme-challenge" "/srv/certbot/.well-known/acme-challenge"
- <Directory /srv/certbot/.well-known/acme-challenge>
- Require all granted
- </Directory>
+ Include /etc/apache2/linaro/letsencrypt.conf
<Directory "{{ repo_root }}">
AllowOverride None
@@ -134,19 +134,21 @@ ServerTokens Prod
ServerAlias git-geo.linaro.org
ServerAdmin webmaster@linaro.org
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
+ Include /etc/apache2/linaro/settings-ssl.conf
+ # special case for the git-us cert: dns challenge causes
+ # the http challenge to fail if it comes later. Have to roll
+ # everything into the http challenge host. This is a one-off
+ # situation, so let's just hardcode it.
+ {% if inventory_hostname != "git-us.linaro.org" -%}
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
SSLCACertificateFile {{ssl_ca}}
+ {% else -%}
+ SSLCertificateFile /etc/dehydrated/certs/git-us.ctt.linaro.org/fullchain.pem
+ SSLCertificateKeyFile /etc/dehydrated/certs/git-us.ctt.linaro.org/privkey.pem
+ SSLCACertificateFile /etc/dehydrated/certs/git-us.ctt.linaro.org/fullchain.pem
+ {% endif %}
CustomLog ${APACHE_LOG_DIR}/{{ git_host }}-access.log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D microseconds" env=!dontlog
ErrorLog ${APACHE_LOG_DIR}/{{ git_host }}-error.log
@@ -163,7 +165,7 @@ ServerTokens Prod
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
- Header always set Strict-Transport-Security "max-age=63072000"
+ Include /etc/apache2/linaro/headers-https.conf
Header append Cache-Control "no-transform"
<FilesMatch "\.(html|htm)$">
@@ -200,8 +202,13 @@ ServerTokens Prod
#RewriteLog ${APACHE_LOG_DIR}/{{ git_host }}-rewrite.log
#RewriteLogLevel 0
- RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|bingbot|Baidu|Baiduspider|360Spider|360) [nocase]
- RewriteRule ^(.*)$ - [forbidden,last]
+ Include /etc/apache2/linaro/block-refs.conf
+
+ RewriteRule ^/landing-teams/working/qualcomm/(.*).git(.*) https://git.codelinaro.org/linaro/qcomlt/$1 [R,L]
+
+ RewriteRule ^/landing-teams/working/qualcomm/(.*) https://git.codelinaro.org/linaro/qcomlt/$1 [R,L]
+
+ RewriteRule ^/landing-teams/working/qualcomm https://git.codelinaro.org/linaro/qcomlt/ [R,L]
RewriteCond %{HTTP_USER_AGENT} !git [nocase]
RewriteRule ^/gitweb/(.*)$ /$1 [nocase,noescape,redirect=301]
diff --git a/files/apache/git.mlplatform.org.conf b/files/apache/git.mlplatform.org.conf
new file mode 100644
index 00000000..907a5362
--- /dev/null
+++ b/files/apache/git.mlplatform.org.conf
@@ -0,0 +1,258 @@
+# Managed by ansible, do not edit.
+ServerSignature Off
+ServerTokens Prod
+
+<VirtualHost *:80>
+ ServerName {{ git_host }}
+ ServerAlias {{ inventory_hostname }}
+ ServerAdmin webmaster@linaro.org
+
+ CustomLog ${APACHE_LOG_DIR}/{{ git_host }}-access.log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D microseconds" env=!dontlog
+ ErrorLog ${APACHE_LOG_DIR}/{{ git_host }}-error.log
+
+ DocumentRoot {{ apache_root }}/cgit
+
+ ExpiresActive On
+ ExpiresDefault "access plus 0 seconds"
+
+ ExpiresByType text/css "access plus 1 month"
+ ExpiresByType text/javascript "access plus 1 month"
+ ExpiresByType image/png "access plus 1 month"
+ ExpiresByType image/jpg "access plus 1 month"
+ ExpiresByType image/jpeg "access plus 1 month"
+ ExpiresByType image/x-icon "access plus 1 month"
+
+ Include /etc/apache2/linaro/headers-http.conf
+ Header append Cache-Control "no-transform"
+
+ <FilesMatch "\.(html|htm)$">
+ Header add Cache-Control "must-revalidate"
+ SetOutputFilter DEFLATE
+
+ BrowserMatch ^Mozilla/4 gzip-only-text/html
+ BrowserMatch ^Mozilla/4\.0[678] no-gzip
+ BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
+
+ Header append Vary User-Agent env=!dont-vary
+ </FilesMatch>
+
+ <FilesMatch "\.(js|css)$">
+ Header add Cache-Control "max-age=5356800"
+ SetOutputFilter DEFLATE
+
+ BrowserMatch ^Mozilla/4 gzip-only-text/html
+ BrowserMatch ^Mozilla/4\.0[678] no-gzip
+ BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
+
+ Header append Vary User-Agent env=!dont-vary
+ </FilesMatch>
+
+ KeepAlive On
+ KeepAliveTimeout 10
+ MaxKeepAliveRequests 150
+
+ RewriteEngine On
+ RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/
+ # Following directives removed from Apache 2.4
+ # http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
+ #RewriteLog ${APACHE_LOG_DIR}/{{ git_host }}-rewrite.log
+ #RewriteLogLevel 0
+
+ AllowEncodedSlashes On
+
+ Include /etc/apache2/linaro/block-refs.conf
+
+ RewriteCond %{REQUEST_URI} ^/jmx-console(.*)$
+ RewriteRule ^/(.*)$ - [forbidden,last]
+ RewriteCond %{REQUEST_URI} ^/GponForm(.*)$
+ RewriteRule ^/(.*)$ - [forbidden,last]
+ RewriteCond %{REQUEST_URI} ^/user(.*)$
+ RewriteRule ^/(.*)$ - [forbidden,last]
+
+ RewriteCond %{HTTP_USER_AGENT} !git [nocase]
+ RewriteRule ^/gitweb/(.*)$ /$1 [nocase,noescape,redirect=301]
+
+ RewriteCond %{HTTP_USER_AGENT} git [nocase]
+ RewriteCond %{REQUEST_URI} !^/git/(.*)$
+ RewriteCond %{REQUEST_URI} !^/git-ro/(.*)$
+ RewriteCond %{REQUEST_URI} !^/git_pulls/(.*)$
+ RewriteCond %{REQUEST_URI} !^/logs/(.*)$
+ RewriteRule ^/(.*)$ /git/$1 [nosubreq,nocase,passthrough]
+ # convert old GitWeb links to work in cgit
+ # we have things in ci and user bookmarks for gitweb URLs to raw file downloads like:
+ # curl -L http://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py
+ RewriteRule ^/(.*)/blob_plain/HEAD:/(.*)$ $1/plain/$2 [R=301]
+ # Summary
+ RewriteCond %{REQUEST_URI} /(.+)/summary [OR]
+ RewriteCond %{query_string} p=(.+);a=summary
+ RewriteRule ^/.*$ /%1/? [R,L,NE]
+
+ AliasMatch ^/git-ro/(.*) {{ repo_root }}/$1
+ AliasMatch ^/git-http/(.*) {{ repo_root }}/$1
+
+ AliasMatch ^/git-ro/(.*)/clone.bundle$ {{ repo_root }}/$1/clone.bundle
+ AliasMatch ^/git-http/(.*)/clone.bundle$ {{ repo_root }}/$1/clone.bundle
+ AliasMatch ^/git/(.*)/clone.bundle$ {{ repo_root }}/$1/clone.bundle
+
+ SetEnvIf User-Agent "Amazon Route 53 Health Check" dontlog
+
+ AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ {{ repo_root }}/$1
+ AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ {{ repo_root }}/$1
+ Alias /manifest.js.gz {{ repo_root }}/manifest.js.gz
+
+ ScriptAliasMatch "(?x)^/git/(.*/(HEAD | info/refs | objects/info/[^/]+ | git-(upload|receive)-pack))$" {{ apache_root }}/cgit/git-http-backend.cgi
+
+ Include /etc/apache2/linaro/letsencrypt.conf
+
+ <Directory "{{ repo_root }}">
+ AllowOverride None
+ Require all granted
+ Options +FollowSymLinks -ExecCGI +Indexes
+ ExpiresActive Off
+ FileEtag None
+ Header set Cache-Control "no-cache, no-store, no-transform"
+ <FilesMatch "\.(bundle)$">
+ FileEtag MTime
+ Header set Cache-Control "no-transform, must-revalidate, max-age=518400"
+ </FilesMatch>
+ </Directory>
+
+ Alias /cgit-css "/var/www/cgit/cgit-css/"
+ ScriptAlias / "{{ apache_root}}/cgit/cgit/"
+ <Directory "{{ apache_root }}/cgit/">
+ AllowOverride None
+ Options ExecCGI FollowSymlinks
+ Require all granted
+ </Directory>
+</VirtualHost>
+
+<VirtualHost *:443>
+ ServerName {{ git_host }}
+ ServerAlias {{ inventory_hostname }}
+ ServerAdmin webmaster@linaro.org
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
+
+ CustomLog ${APACHE_LOG_DIR}/{{ git_host }}-access.log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D microseconds" env=!dontlog
+ ErrorLog ${APACHE_LOG_DIR}/{{ git_host }}-error.log
+
+ DocumentRoot {{ apache_root }}/cgit
+
+ ExpiresActive On
+ ExpiresDefault "access plus 0 seconds"
+
+ ExpiresByType text/css "access plus 1 month"
+ ExpiresByType text/javascript "access plus 1 month"
+ ExpiresByType image/png "access plus 1 month"
+ ExpiresByType image/jpg "access plus 1 month"
+ ExpiresByType image/jpeg "access plus 1 month"
+ ExpiresByType image/x-icon "access plus 1 month"
+
+ Include /etc/apache2/linaro/headers-https.conf
+ Header append Cache-Control "no-transform"
+
+ <FilesMatch "\.(html|htm)$">
+ Header add Cache-Control "must-revalidate"
+ SetOutputFilter DEFLATE
+
+ BrowserMatch ^Mozilla/4 gzip-only-text/html
+ BrowserMatch ^Mozilla/4\.0[678] no-gzip
+ BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
+
+ Header append Vary User-Agent env=!dont-vary
+ </FilesMatch>
+
+ <FilesMatch "\.(js|css)$">
+ Header add Cache-Control "max-age=5356800"
+ SetOutputFilter DEFLATE
+
+ BrowserMatch ^Mozilla/4 gzip-only-text/html
+ BrowserMatch ^Mozilla/4\.0[678] no-gzip
+ BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
+
+ Header append Vary User-Agent env=!dont-vary
+ </FilesMatch>
+
+ KeepAlive On
+ KeepAliveTimeout 9
+ MaxKeepAliveRequests 150
+
+ AllowEncodedSlashes On
+
+ RewriteEngine On
+ # Following directives removed from Apache 2.4
+ # http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
+ #RewriteLog ${APACHE_LOG_DIR}/{{ git_host }}-rewrite.log
+ #RewriteLogLevel 0
+
+ Include /etc/apache2/linaro/block-refs.conf
+
+ RewriteCond %{HTTP_USER_AGENT} !git [nocase]
+ RewriteRule ^/gitweb/(.*)$ /$1 [nocase,noescape,redirect=301]
+
+ RewriteCond %{HTTP_USER_AGENT} git [nocase]
+ RewriteCond %{REQUEST_URI} !^/git/(.*)$
+ RewriteCond %{REQUEST_URI} !^/git-ro/(.*)$
+ RewriteRule ^/(.*)$ /git/$1 [nocase,noescape,passthrough]
+ # convert old GitWeb links to work in cgit
+ # we have things in ci and user bookmarks for gitweb URLs to raw file downloads like:
+ # curl -L http://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py
+ RewriteRule ^/(.*)/blob_plain/HEAD:/(.*)$ $1/plain/$2 [R=301]
+ # Summary
+ RewriteCond %{REQUEST_URI} /(.+)/summary [OR]
+ RewriteCond %{query_string} p=(.+);a=summary
+ RewriteRule ^/.*$ /%1/? [R,L,NE]
+
+ AliasMatch ^/git-ro/(.*) {{ repo_root }}/$1
+ AliasMatch ^/git-http/(.*) {{ repo_root }}/$1
+
+ AliasMatch ^/git-ro/(.*)/clone.bundle$ {{ repo_root }}/$1/clone.bundle
+ AliasMatch ^/git-http/(.*)/clone.bundle$ {{ repo_root }}/$1/clone.bundle
+ AliasMatch ^/git/(.*)/clone.bundle$ {{ repo_root }}/$1/clone.bundle
+ Alias /manifest.js.gz {{ repo_root }}/manifest.js.gz
+
+ SetEnvIf User-Agent "Amazon Route 53 Health Check" dontlog
+
+ AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ {{ repo_root }}/$1
+ AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ {{ repo_root }}/$1
+
+ ScriptAliasMatch "(?x)^/git/(.*/(HEAD | info/refs | objects/info/[^/]+ | git-(upload|receive)-pack))$" {{ apache_root }}/cgit/git-http-backend.cgi
+
+ Alias /logs "/var/www/logs"
+ <Directory "/var/www/logs/">
+ AllowOverride None
+ Require all granted
+ Options -FollowSymLinks -ExecCGI +Indexes
+ </Directory>
+
+ Alias /git_pulls "/var/www/git_pulls"
+ <Directory "/var/www/git_pulls/">
+ AllowOverride None
+ Require all granted
+ Options -FollowSymLinks -ExecCGI +Indexes
+ </Directory>
+
+ <Directory "{{ repo_root }}/">
+ AllowOverride None
+ Require all granted
+ Options +FollowSymLinks -ExecCGI +Indexes
+ ExpiresActive Off
+ FileEtag None
+ Header set Cache-Control "no-cache, no-store, no-transform"
+ <FilesMatch "\.(bundle)$">
+ FileEtag MTime
+ Header set Cache-Control "no-transform, must-revalidate, max-age=518400"
+ </FilesMatch>
+ </Directory>
+
+ Alias /cgit-css "/var/www/cgit/cgit-css/"
+ ScriptAlias / "{{ apache_root}}/cgit/cgit/"
+ <Directory "{{ apache_root }}/cgit/">
+ AllowOverride None
+ Options ExecCGI FollowSymlinks
+ Require all granted
+ </Directory>
+</VirtualHost>
diff --git a/files/apache/git.trustedfirmware.org.conf b/files/apache/git.trustedfirmware.org.conf
index 0ac7e2af..b0ebb8d4 100644
--- a/files/apache/git.trustedfirmware.org.conf
+++ b/files/apache/git.trustedfirmware.org.conf
@@ -22,6 +22,7 @@ ServerTokens Prod
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
+ Include /etc/apache2/linaro/headers-http.conf
Header append Cache-Control "no-transform"
<FilesMatch "\.(html|htm)$">
@@ -51,18 +52,16 @@ ServerTokens Prod
MaxKeepAliveRequests 150
RewriteEngine On
- # Following directives removed from Apache 2.4
- # http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
- #RewriteLog ${APACHE_LOG_DIR}/git.trustedfirmware.org-rewrite.log
- #RewriteLogLevel 0
AllowEncodedSlashes On
- RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|bingbot|Baidu|Baiduspider|360Spider|360) [nocase]
+ RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|bingbot|Baidu|Baiduspider|360Spider|360|PetalBot|SemrushBot) [nocase]
RewriteRule ^(.*)$ - [forbidden,last]
RewriteRule "^/tf-a\/(.*)" "/TF-A/$1" [redirect=301]
+ RewriteRule "^/trusted-firmware-m(.*)" "/TF-M/trusted-firmware-m$1" [redirect=301]
+
RewriteCond %{HTTP_USER_AGENT} !git [nocase]
RewriteRule ^/gitweb/(.*)$ /$1 [nocase,noescape,redirect=301]
@@ -95,10 +94,7 @@ ServerTokens Prod
ScriptAliasMatch "(?x)^/git/(.*/(HEAD | info/refs | objects/info/[^/]+ | git-(upload|receive)-pack))$" /var/www/cgit/git-http-backend.cgi
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
+ Include /etc/apache2/linaro/letsencrypt.conf
<Directory "/srv/repositories">
AllowOverride None
@@ -126,16 +122,7 @@ ServerTokens Prod
ServerName git.trustedfirmware.org
ServerAlias git.trustedfirmware.org
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
-
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
SSLCACertificateFile {{ssl_ca}}
@@ -155,7 +142,7 @@ ServerTokens Prod
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
- Header always set Strict-Transport-Security "max-age=63072000"
+ Include /etc/apache2/linaro/headers-https.conf
Header append Cache-Control "no-transform"
<FilesMatch "\.(html|htm)$">
@@ -187,16 +174,14 @@ ServerTokens Prod
AllowEncodedSlashes On
RewriteEngine On
- # Following directives removed from Apache 2.4
- # http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
- #RewriteLog ${APACHE_LOG_DIR}/git.trustedfirmware.org-rewrite.log
- #RewriteLogLevel 0
- RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|bingbot|Baidu|Baiduspider|360Spider|360) [nocase]
+ RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|bingbot|Baidu|Baiduspider|360Spider|360|PetalBot|SemrushBot) [nocase]
RewriteRule ^(.*)$ - [forbidden,last]
RewriteRule "^/tf-a\/(.*)" "/TF-A/$1" [redirect=301]
+ RewriteRule "^/trusted-firmware-m(.*)" "/TF-M/trusted-firmware-m$1" [redirect=301]
+
RewriteCond %{HTTP_USER_AGENT} !git [nocase]
RewriteRule ^/gitweb/(.*)$ /$1 [nocase,noescape,redirect=301]
diff --git a/files/apache/grafana.linaro.org.conf b/files/apache/grafana.linaro.org.conf
new file mode 100644
index 00000000..9653a310
--- /dev/null
+++ b/files/apache/grafana.linaro.org.conf
@@ -0,0 +1,53 @@
+<VirtualHost *:80>
+ ServerName {{inventory_hostname}}
+ ServerAdmin webmaster@linaro.org
+ DocumentRoot /srv/{{inventory_hostname}}
+
+{% if apache_aliases is defined %}
+ ServerAlias {{apache_aliases|join(' ')}}
+{% endif %}
+
+{% if apache_redirects is defined %}
+ {{apache_redirects}}
+{% endif %}
+
+{% if ssl_cert is defined %}
+ RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{inventory_hostname}}/$1
+ Include /etc/apache2/linaro/letsencrypt.conf
+{% endif %}
+ ErrorLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-error.log
+ CustomLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-access.log combined
+
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+</VirtualHost>
+
+<IfModule mod_ssl.c>
+<VirtualHost *:443>
+ ServerAdmin webmaster@linaro.org
+ DocumentRoot /srv/{{inventory_hostname}}
+
+ ErrorLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-error.log
+ CustomLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-access.log combined
+
+ ServerName {{inventory_hostname}}
+{% if apache_aliases is defined %}
+ ServerAlias {{apache_aliases|join(' ')}}
+{% endif %}
+
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
+ RequestHeader set X-Forwarded-Proto 'https' env=HTTPS
+
+{% if apache_redirects is defined %}
+ {{apache_redirects}}
+{% endif %}
+ ProxyPass "/" "http://{{grafana_container_name}}:{{grafana_port}}/" disablereuse=on
+ ProxyPassReverse "/" "https://{{grafana_container_name}}/"
+</VirtualHost>
+</IfModule>
diff --git a/files/apache/lhg-review.linaro.org.conf b/files/apache/lhg-review.linaro.org.conf
deleted file mode 100644
index 422270fa..00000000
--- a/files/apache/lhg-review.linaro.org.conf
+++ /dev/null
@@ -1,109 +0,0 @@
-# Managed by ansible, do not edit.
-ServerSignature Off
-ServerTokens Prod
-
-LDAPCacheEntries 2048
-LDAPCacheTTL 36000
-LDAPOpCacheEntries 1024
-LDAPOpCacheTTL 36000
-
-<VirtualHost *:80>
- ServerName {{ gerrit_host }}
- ServerAdmin webmaster@linaro.org
-
- {% if ssl_cert is defined -%}
- RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{gerrit_host}}/$1"
- {%- else %}
- CustomLog ${APACHE_LOG_DIR}/{{ gerrit_host }}-access.log combined
- ErrorLog ${APACHE_LOG_DIR}/{{ gerrit_host }}-error.log
- LogLevel warn
-
- DocumentRoot /srv/gerrit
-
- DefineExternalGroup linaro-groups pipe /usr/local/bin/grpcheck.cgi
- <Location "/">
-
- AuthType Basic
- AuthName "{{ host_site_name }}"
- AuthBasicProvider ldap
- AuthLDAPUrl "ldaps://login.linaro.org/ou=accounts,dc=linaro,dc=org?mail,uid?sub"
- AuthLDAPBindDN "{{ apache_ldap_bind }}"
- AuthLDAPBindPassword {{ apache_ldap_bind_pwd }}
- AuthLDAPRemoteUserAttribute uid
- GroupExternal linaro-groups
- <RequireAll>
- Require valid-user
- Require external-group {{ security_groups }}
- </RequireAll>
- </Location>
-
- ProxyRequests Off
- ProxyVia Off
- ProxyPreserveHost On
- <Proxy *>
- Require all granted
- </Proxy>
- AllowEncodedSlashes On
- ProxyPass / http://127.0.0.1:8081/ nocanon
- {% endif %}
-
- Alias "/.well-known/acme-challenge" "/srv/certbot/.well-known/acme-challenge"
- <Directory /srv/certbot/.well-known/acme-challenge>
- Require all granted
- </Directory>
-</VirtualHost>
-
-{% if ssl_cert is defined %}
-<VirtualHost *:443>
- ServerName {{ gerrit_host }}
- ServerAdmin webmaster@linaro.org
-
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
-
- SSLCertificateFile {{ssl_cert}}
- SSLCertificateKeyFile {{ssl_key}}
- {% if ssl_ca is defined -%}
- SSLCACertificateFile {{ssl_ca}}
- {%- endif %}
-
- CustomLog ${APACHE_LOG_DIR}/{{ gerrit_host }}-access.log combined
- ErrorLog ${APACHE_LOG_DIR}/{{ gerrit_host }}-error.log
- LogLevel warn
-
- DocumentRoot /srv/gerrit
-
- DefineExternalGroup linaro-groups pipe /usr/local/bin/grpcheck.cgi
- <Location "/">
-
- AuthType Basic
- AuthName "{{ host_site_name }}"
- AuthBasicProvider ldap
- AuthLDAPUrl "ldaps://login.linaro.org/ou=accounts,dc=linaro,dc=org?mail,uid?sub"
- AuthLDAPBindDN "{{ apache_ldap_bind }}"
- AuthLDAPBindPassword {{ apache_ldap_bind_pwd }}
- AuthLDAPRemoteUserAttribute uid
- GroupExternal linaro-groups
- <RequireAll>
- Require valid-user
- Require external-group {{ security_groups }}
- </RequireAll>
- </Location>
-
- ProxyRequests Off
- ProxyVia Off
- ProxyPreserveHost On
- <Proxy *>
- Require all granted
- </Proxy>
- AllowEncodedSlashes On
- ProxyPass / http://127.0.0.1:8081/ nocanon
-</VirtualHost>
-{% endif %}
diff --git a/files/apache/mi.linaro.org.conf b/files/apache/mi.linaro.org.conf
deleted file mode 100644
index e6e57706..00000000
--- a/files/apache/mi.linaro.org.conf
+++ /dev/null
@@ -1,39 +0,0 @@
-<VirtualHost *:80>
- ServerName {{inventory_hostname}}
- ServerAlias {{inventory_hostname}}
-
- RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{hostname}}/$1"
-
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
-
-</VirtualHost>
-
-<VirtualHost *:443>
- ServerName {{inventory_hostname}}
- ServerAlias {{inventory_hostname}}
-
- SSLEngine On
-
- SSLCertificateFile /etc/letsencrypt/live/{{gerrit_host}}/fullchain.pem
- SSLCertificateKeyFile /etc/letsencrypt/live/{{gerrit_host}}/privkey.pem
- SSLCACertificateFile /etc/letsencrypt/live/{{gerrit_host}}/fullchain.pem
-
- DocumentRoot /srv/gerrit
-
- CustomLog /var/log/apache2/{{inventory_hostname}}-access.log combined
- ErrorLog /var/log/apache2/{{inventory_hostname}}-error.log
-
- ProxyRequests Off
- ProxyVia Off
- ProxyPreserveHost On
- <Proxy *>
- Order deny,allow
- Allow from all
- </Proxy>
-
- AllowEncodedSlashes On
- ProxyPass / http://127.0.0.1:8080/ nocanon
-</VirtualHost>
diff --git a/files/apache/review.linaro.org.conf b/files/apache/review.linaro.org.conf
index 864b34b1..cd726387 100644
--- a/files/apache/review.linaro.org.conf
+++ b/files/apache/review.linaro.org.conf
@@ -2,15 +2,27 @@
ServerName review.linaro.org
ServerAlias {{inventory_hostname}}
- {% if ssl_cert is defined %}
- RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{www_host}}/$1"
- {% else %}
-
- DocumentRoot /srv/gerrit
+ DocumentRoot /srv/gerrit
CustomLog /var/log/apache2/review.linaro.org-access.log combined
ErrorLog /var/log/apache2/review.linaro.org-error.log
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+
+ AllowEncodedSlashes On
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+ RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/
+ RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|amazonbot|bingbot|Baidu|Baiduspider|360Spider|360|^MauiBot|^SemrushBot|^MegaIndex|PetalBot) [nocase]
+ RewriteRule ^(.*)$ - [forbidden,last]
+
+ {% if ssl_cert is defined %}
+ RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{www_host}}/$1"
+ {% else %}
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
@@ -19,36 +31,39 @@
Allow from all
</Proxy>
- AllowEncodedSlashes On
ProxyPass / http://127.0.0.1:8080/ nocanon
-
{% endif %}
-
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
-
+ Include /etc/apache2/linaro/letsencrypt.conf
</VirtualHost>
{% if ssl_cert is defined %}
-
<VirtualHost *:443>
ServerName review.linaro.org
ServerAlias {{inventory_hostname}}
- SSLEngine On
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
{% if ssl_ca is defined %}
SSLCACertificateFile {{ssl_ca}}
{% endif %}
- DocumentRoot /srv/gerrit
+ DocumentRoot /srv/gerrit
CustomLog /var/log/apache2/review.linaro.org-access.log combined
ErrorLog /var/log/apache2/review.linaro.org-error.log
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ AllowEncodedSlashes On
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+ RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|amazonbot|bingbot|Baidu|Baiduspider|360Spider|360|SemrushBot|PetalBot) [nocase]
+ RewriteRule ^(.*)$ - [forbidden,last]
+
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
@@ -57,8 +72,6 @@
Allow from all
</Proxy>
- AllowEncodedSlashes On
ProxyPass / http://127.0.0.1:8080/ nocanon
</VirtualHost>
-
{% endif %}
diff --git a/files/apache/review.mlplatform.org.conf b/files/apache/review.mlplatform.org.conf
new file mode 100644
index 00000000..c1ec499f
--- /dev/null
+++ b/files/apache/review.mlplatform.org.conf
@@ -0,0 +1,53 @@
+<VirtualHost *:80>
+ ServerName {{inventory_hostname}}
+ ServerAlias {{inventory_hostname}}
+
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{inventory_hostname}}/$1"
+
+ RewriteEngine On
+ AllowEncodedSlashes On
+ Include /etc/apache2/linaro/block-refs.conf
+
+ Include /etc/apache2/linaro/letsencrypt.conf
+</VirtualHost>
+
+<VirtualHost *:443>
+ ServerName {{inventory_hostname}}
+ ServerAlias {{inventory_hostname}}
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
+
+ DocumentRoot /srv/gerrit
+
+ CustomLog /var/log/apache2/{{inventory_hostname}}-access.log combined
+ ErrorLog /var/log/apache2/{{inventory_hostname}}-error.log
+
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ RewriteEngine On
+ AllowEncodedSlashes On
+ Include /etc/apache2/linaro/block-refs.conf
+
+ ProxyRequests Off
+ ProxyVia Off
+ ProxyPreserveHost On
+ <Proxy *>
+ Order deny,allow
+ Allow from all
+ </Proxy>
+
+ AllowEncodedSlashes On
+ ProxyPass / http://127.0.0.1:8080/ nocanon
+</VirtualHost>
diff --git a/files/apache/review.trustedfirmware.org.conf b/files/apache/review.trustedfirmware.org.conf
index 5f63d700..b4b5f546 100644
--- a/files/apache/review.trustedfirmware.org.conf
+++ b/files/apache/review.trustedfirmware.org.conf
@@ -2,38 +2,48 @@
ServerName {{inventory_hostname}}
ServerAlias {{inventory_hostname}}
- RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{hostname}}/$1"
-
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+ RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{hostname}}/$1"
+ Include /etc/apache2/linaro/letsencrypt.conf
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
</VirtualHost>
<VirtualHost *:443>
ServerName {{inventory_hostname}}
ServerAlias {{inventory_hostname}}
- SSLEngine On
- SSLCertificateFile {{ssl_cert}}
- SSLCertificateKeyFile {{ssl_key}}
- SSLCACertificateFile {{ssl_ca}}
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
DocumentRoot /srv/gerrit
- CustomLog /var/log/apache2/{{inventory_hostname}}.linaro.org-access.log combined
- ErrorLog /var/log/apache2/{{inventory_hostname}}.linaro.org-error.log
+ CustomLog /var/log/apache2/{{inventory_hostname}}.linaro.org-access.log combined
+ ErrorLog /var/log/apache2/{{inventory_hostname}}.linaro.org-error.log
- ProxyRequests Off
- ProxyVia Off
- ProxyPreserveHost On
- <Proxy *>
- Order deny,allow
- Allow from all
- </Proxy>
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ RewriteEngine on
+ Include /etc/apache2/linaro/block-refs.conf
+ RewriteRule "^/c/trusted-firmware-m(.*)" "/c/TF-M/trusted-firmware-m$1" [redirect=301]
+
+ ProxyRequests Off
+ ProxyVia Off
+ ProxyPreserveHost On
+ <Proxy *>
+ Order deny,allow
+ Allow from all
+ </Proxy>
AllowEncodedSlashes On
- ProxyPass / http://127.0.0.1:8080/ nocanon
+ ProxyPass / http://127.0.0.1:8080/ nocanon
</VirtualHost>
-
diff --git a/files/apache/snapshots.linaro.org.conf b/files/apache/snapshots.linaro.org.conf
new file mode 100644
index 00000000..cf24465b
--- /dev/null
+++ b/files/apache/snapshots.linaro.org.conf
@@ -0,0 +1,111 @@
+<VirtualHost *:80>
+ Alias /static/ /srv/{{ inventory_hostname }}/{{ repo_name }}/license_protected_downloads/static/
+ DocumentRoot /srv/{{ inventory_hostname }}/www
+ ServerName {{ inventory_hostname }}
+{% if apache_aliases is defined %}
+ ServerAlias {{apache_aliases|join(' ')}}
+{% endif %}
+ ServerAdmin webmaster@linaro.org
+
+ CustomLog /var/log/apache2/{{ inventory_hostname }}-access.log combined env=!dontlog
+ ErrorLog /var/log/apache2/{{ inventory_hostname }}-error.log
+
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ # Admin access should be always over SSL
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+ RewriteRule ^(/admin.*) https://{{ inventory_hostname }}$1 [redirect=301,noescape,last]
+ RewriteRule ^(/login.*) https://{{ inventory_hostname }}$1 [redirect=301,noescape,last]
+
+{% if apache_redirects is defined %}
+ {{apache_redirects}}
+{% endif %}
+
+ Include /etc/apache2/linaro/letsencrypt.conf
+
+ <Directory /srv/{{ inventory_hostname }}/{{ repo_name }}/license_protected_downloads/static>
+ Require all granted
+ </Directory>
+
+ <Directory /srv/{{ inventory_hostname }}/www>
+ Require all granted
+ </Directory>
+
+ SetEnv SITE_NAME "{{ sitename }}"
+ SetEnv HOST_NAME "{{ inventory_hostname }}"
+ WSGIScriptAlias / /srv/{{ inventory_hostname }}/{{ repo_name }}/wsgi_production.py
+
+ <Directory /srv/{{ inventory_hostname }}/{{ repo_name }}>
+ <Files wsgi_production.py>
+ Require all granted
+ </Files>
+ </Directory>
+
+ <Directory />
+ IndexOptions NameWidth=* +SuppressDescription
+ Options +Indexes +FollowSymLinks
+ IndexIgnore favicon.ico HEADER.html
+ AllowOverride FileInfo Indexes
+ Require all granted
+ </Directory>
+</VirtualHost>
+
+<VirtualHost *:443>
+ Alias /static/ /srv/{{ inventory_hostname }}/{{ repo_name }}/license_protected_downloads/static/
+ DocumentRoot /srv/{{ inventory_hostname }}/www
+ ServerName {{ inventory_hostname }}
+{% if apache_aliases is defined %}
+ ServerAlias {{apache_aliases|join(' ')}}
+{% endif %}
+ ServerAdmin webmaster@linaro.org
+ CustomLog /var/log/apache2/{{ inventory_hostname }}-access.log combined env=!dontlog
+ ErrorLog /var/log/apache2/{{ inventory_hostname }}-error.log
+
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+
+ Include /etc/apache2/linaro/headers-https.conf
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ ssl_cert }}
+ SSLCertificateKeyFile {{ ssl_key }}
+ SSLCertificateChainFile {{ ssl_ca }}
+
+{% if apache_redirects is defined %}
+ {{apache_redirects}}
+{% endif %}
+
+ <Directory /srv/{{ inventory_hostname }}/{{ repo_name }}/license_protected_downloads/static>
+ Require all granted
+ </Directory>
+
+ <Directory /srv/{{ inventory_hostname }}/www>
+ Require all granted
+ </Directory>
+
+ SetEnv SITE_NAME "{{ sitename }}"
+ SetEnv HOST_NAME "{{ inventory_hostname }}"
+ WSGIScriptAlias / /srv/{{ inventory_hostname }}/{{ repo_name }}/wsgi_production.py
+
+ <Directory /srv/{{ inventory_hostname }}/{{ repo_name }}>
+ <Files wsgi_production.py>
+ Require all granted
+ </Files>
+ </Directory>
+
+ <Directory />
+ IndexOptions NameWidth=* +SuppressDescription
+ Options +Indexes +FollowSymLinks
+ IndexIgnore favicon.ico HEADER.html
+ AllowOverride FileInfo Indexes
+ Require all granted
+ </Directory>
+</VirtualHost>
diff --git a/files/apache/source.devboardsforandroid.linaro.org.conf b/files/apache/source.devboardsforandroid.linaro.org.conf
new file mode 100644
index 00000000..53335e15
--- /dev/null
+++ b/files/apache/source.devboardsforandroid.linaro.org.conf
@@ -0,0 +1,69 @@
+<VirtualHost *:80>
+ ServerName source.devboardsforandroid.linaro.org
+
+ RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://source.devboardsforandroid.linaro.org/$1"
+
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+
+
+ Include /etc/apache2/linaro/letsencrypt.conf
+</VirtualHost>
+
+<VirtualHost *:443>
+ ServerName source.devboardsforandroid.linaro.org
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile /etc/dehydrated/certs/source.devboardsforandroid.linaro.org/fullchain.pem
+ SSLCertificateKeyFile /etc/dehydrated/certs/source.devboardsforandroid.linaro.org/privkey.pem
+ SSLCACertificateFile /etc/dehydrated/certs/source.devboardsforandroid.linaro.org/fullchain.pem
+ DocumentRoot /srv/gerrit
+
+ CustomLog /var/log/apache2/source.devboardsforandroid.linaro.org-access.log combined
+ ErrorLog /var/log/apache2/source.devboardsforandroid.linaro.org-error.log
+
+ ExpiresActive On
+ ExpiresDefault "access plus 0 seconds"
+
+ ExpiresByType text/css "access plus 1 week"
+ ExpiresByType text/javascript "access plus 1 week"
+ ExpiresByType image/png "access plus 1 month"
+ ExpiresByType image/jpg "access plus 1 month"
+ ExpiresByType image/jpeg "access plus 1 month"
+ ExpiresByType image/x-icon "access plus 1 month"
+
+ Header append Cache-Control "no-transform"
+
+ <FilesMatch "\.(html|htm)$">
+ Header add Cache-Control "must-revalidate"
+ </FilesMatch>
+
+ <FilesMatch "\.(js|css)$">
+ Header add Cache-Control "max-age=604800"
+ <ifModule mod_deflate.c>
+ SetOutputFilter DEFLATE
+ </ifModule>
+ </FilesMatch>
+
+ RequestHeader set X-Forwarded-Scheme http
+
+ ProxyRequests Off
+ ProxyVia Off
+ ProxyPreserveHost On
+ <Proxy *>
+ Order deny,allow
+ Allow from all
+ </Proxy>
+
+ AllowEncodedSlashes On
+
+ # Just like AOSP, keep URL navigation simple by using / instead of /plugins/gitiles
+ ProxyPassMatch .*git-upload-pack.* http://127.0.0.1:8080/ retry=0 nocanon Keepalive=On
+ ProxyPassMatch .*/info/refs.* http://127.0.0.1:8080/ retry=0 nocanon Keepalive=On
+
+ ProxyPass / http://127.0.0.1:8080/plugins/gitiles/ retry=0 nocanon Keepalive=On
+
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+ RewriteRule ^/plugins/gitiles(.+)$ https://source.devboardsforandroid.linaro.org$1 [L,R=301,NE]
+</VirtualHost>
diff --git a/files/apache/testdata.lava.morello-project.org.conf b/files/apache/testdata.lava.morello-project.org.conf
new file mode 100644
index 00000000..f160fdeb
--- /dev/null
+++ b/files/apache/testdata.lava.morello-project.org.conf
@@ -0,0 +1,18 @@
+<VirtualHost 172.17.0.1:80>
+ ServerName testdata.lava.morello-project.org
+ ServerAdmin webmaster@linaro.org
+ DocumentRoot /srv/testdata
+
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+
+ <Directory "/srv/testdata">
+ Order allow,deny
+ Allow from all
+ Require all granted
+ </Directory>
+
+ ErrorLog ${APACHE_LOG_DIR}/testdata.lava.morello-project.org-error.log
+ CustomLog ${APACHE_LOG_DIR}/testdata.lava.morello-project.org-access.log combined
+</VirtualHost>
+
diff --git a/files/apache/vhost-obs.conf b/files/apache/vhost-obs.conf
new file mode 100644
index 00000000..41598459
--- /dev/null
+++ b/files/apache/vhost-obs.conf
@@ -0,0 +1,55 @@
+<VirtualHost *:80>
+ ServerName obs.linaro.org
+ ServerAlias obs.linaro.org
+
+ DocumentRoot /srv/obs.linaro.org
+
+ FileETag None
+ <IfModule mod_headers.c>
+ Header unset ETag
+ Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
+ Header set Pragma "no-cache"
+ Header set Expires "Wed, 12 Jan 1980 05:00:00 GMT"
+ </IfModule>
+
+ RewriteEngine on
+ Include /etc/apache2/linaro/letsencrypt.conf
+ Include /etc/apache2/linaro/block-refs.conf
+
+ <Directory "/srv/obs.linaro.org">
+ AllowOverride None
+ Require all granted
+ DirectoryIndex None
+ Options +FollowSymLinks -ExecCGI +Indexes
+ </Directory>
+</VirtualHost>
+
+<VirtualHost *:443>
+ ServerName obs.linaro.org
+ ServerAlias obs.linaro.org
+
+ DocumentRoot /srv/obs.linaro.org
+
+ FileETag None
+ <IfModule mod_headers.c>
+ Header unset ETag
+ Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
+ Header set Pragma "no-cache"
+ Header set Expires "Wed, 12 Jan 1980 05:00:00 GMT"
+ </IfModule>
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
+
+ RewriteEngine On
+ Include /etc/apache2/linaro/block-refs.conf
+
+ <Directory "/srv/obs.linaro.org">
+ AllowOverride None
+ Require all granted
+ DirectoryIndex None
+ Options +FollowSymLinks -ExecCGI +Indexes
+ </Directory>
+</VirtualHost>
diff --git a/roles/jenkins-master-deps/templates/backup.sh.j2 b/files/duplicity/ci.linaro.org.backup
index ec4722d3..ec4722d3 100755
--- a/roles/jenkins-master-deps/templates/backup.sh.j2
+++ b/files/duplicity/ci.linaro.org.backup
diff --git a/files/duplicity/ci.trustedfirmware.org.backup b/files/duplicity/ci.trustedfirmware.org.backup
new file mode 100755
index 00000000..cac35c3b
--- /dev/null
+++ b/files/duplicity/ci.trustedfirmware.org.backup
@@ -0,0 +1,79 @@
+#!/bin/bash
+#
+# Full backups are made on the 1st day of each month or with the 'full' option.
+# Incremental backups are made on any other days.
+#
+# USAGE: backup.sh [full]
+#
+
+# get day of the month
+DATE=`date +%d`
+
+export AWS_ACCESS_KEY_ID={{backup_access_id}}
+export AWS_SECRET_ACCESS_KEY={{backup_key}}
+S3_OPT="--s3-use-new-style --s3-use-ia --s3-use-multiprocessing"
+
+# directories to backup (but . for /)
+BDIRS="{{jenkins_master_data_volume}}"
+BAC="s3://s3.us-east-1.amazonaws.com/trustedfirmware-backups"
+TDIR="{{hostname}}"
+LOGDIR='/var/log/duplicity'
+
+# Setting the pass phrase to encrypt the backup files. Will use symmetrical keys in this case.
+PASSPHRASE='{{backup_gpg}}'
+export PASSPHRASE
+
+# encryption algorithm for gpg, disable for default (CAST5)
+# see available ones via 'gpg --version'
+ALGO=AES
+
+##############################
+
+if [ $ALGO ]; then
+ GPGOPT="--gpg-options '--cipher-algo $ALGO'"
+fi
+
+# Check to see if we're at the first of the month.
+# If we are on the 1st day of the month, then run
+# a full backup. If not, then run an incremental
+# backup.
+
+if [ $DATE = 01 ] || [ "$1" = 'full' ]; then
+ TYPE='full'
+else
+ TYPE='incremental'
+fi
+
+for DIR in $BDIRS
+do
+ if [ $DIR = '.' ]; then
+ EXCLUDELIST='/usr/local/etc/duplicity-exclude.conf'
+ else
+ EXCLUDELIST="/usr/local/etc/duplicity-exclude-$DIR.conf"
+ fi
+
+ if [ -f $EXCLUDELIST ]; then
+ EXCLUDE="--exclude-filelist $EXCLUDELIST"
+ else
+ EXCLUDE=''
+ fi
+
+ # first remove everything older than 2 months
+ if [ $DIR = '.' ]; then
+ CMD="duplicity remove-older-than 2M -v5 --force $S3_OPT $BAC/$TDIR >> $LOGDIR/system.log"
+ else
+ CMD="duplicity remove-older-than 2M -v5 --force $S3_OPT $BAC/$TDIR >> $LOGDIR/$DIR.log"
+ fi
+ eval $CMD
+
+ # do a backup
+ if [ $DIR = '.' ]; then
+ CMD="duplicity $TYPE -v5 $GPGOPT $S3_OPT $EXCLUDE / $BAC/$TDIR >> $LOGDIR/system.log"
+ else
+ CMD="duplicity $TYPE -v5 $GPGOPT $S3_OPT $EXCLUDE /$DIR $BAC/$TDIR >> $LOGDIR/$DIR.log"
+ fi
+ eval $CMD
+
+done
+
+exit 0
diff --git a/files/duplicity/mbedtls.trustedfirmware.org.backup b/files/duplicity/mbedtls.trustedfirmware.org.backup
new file mode 100755
index 00000000..cac35c3b
--- /dev/null
+++ b/files/duplicity/mbedtls.trustedfirmware.org.backup
@@ -0,0 +1,79 @@
+#!/bin/bash
+#
+# Full backups are made on the 1st day of each month or with the 'full' option.
+# Incremental backups are made on any other days.
+#
+# USAGE: backup.sh [full]
+#
+
+# get day of the month
+DATE=`date +%d`
+
+export AWS_ACCESS_KEY_ID={{backup_access_id}}
+export AWS_SECRET_ACCESS_KEY={{backup_key}}
+S3_OPT="--s3-use-new-style --s3-use-ia --s3-use-multiprocessing"
+
+# directories to backup (but . for /)
+BDIRS="{{jenkins_master_data_volume}}"
+BAC="s3://s3.us-east-1.amazonaws.com/trustedfirmware-backups"
+TDIR="{{hostname}}"
+LOGDIR='/var/log/duplicity'
+
+# Setting the pass phrase to encrypt the backup files. Will use symmetrical keys in this case.
+PASSPHRASE='{{backup_gpg}}'
+export PASSPHRASE
+
+# encryption algorithm for gpg, disable for default (CAST5)
+# see available ones via 'gpg --version'
+ALGO=AES
+
+##############################
+
+if [ $ALGO ]; then
+ GPGOPT="--gpg-options '--cipher-algo $ALGO'"
+fi
+
+# Check to see if we're at the first of the month.
+# If we are on the 1st day of the month, then run
+# a full backup. If not, then run an incremental
+# backup.
+
+if [ $DATE = 01 ] || [ "$1" = 'full' ]; then
+ TYPE='full'
+else
+ TYPE='incremental'
+fi
+
+for DIR in $BDIRS
+do
+ if [ $DIR = '.' ]; then
+ EXCLUDELIST='/usr/local/etc/duplicity-exclude.conf'
+ else
+ EXCLUDELIST="/usr/local/etc/duplicity-exclude-$DIR.conf"
+ fi
+
+ if [ -f $EXCLUDELIST ]; then
+ EXCLUDE="--exclude-filelist $EXCLUDELIST"
+ else
+ EXCLUDE=''
+ fi
+
+ # first remove everything older than 2 months
+ if [ $DIR = '.' ]; then
+ CMD="duplicity remove-older-than 2M -v5 --force $S3_OPT $BAC/$TDIR >> $LOGDIR/system.log"
+ else
+ CMD="duplicity remove-older-than 2M -v5 --force $S3_OPT $BAC/$TDIR >> $LOGDIR/$DIR.log"
+ fi
+ eval $CMD
+
+ # do a backup
+ if [ $DIR = '.' ]; then
+ CMD="duplicity $TYPE -v5 $GPGOPT $S3_OPT $EXCLUDE / $BAC/$TDIR >> $LOGDIR/system.log"
+ else
+ CMD="duplicity $TYPE -v5 $GPGOPT $S3_OPT $EXCLUDE /$DIR $BAC/$TDIR >> $LOGDIR/$DIR.log"
+ fi
+ eval $CMD
+
+done
+
+exit 0
diff --git a/files/duplicity/review.trustedfirmware.org.backup b/files/duplicity/review.trustedfirmware.org.backup
new file mode 100755
index 00000000..5676eb2c
--- /dev/null
+++ b/files/duplicity/review.trustedfirmware.org.backup
@@ -0,0 +1,79 @@
+#!/bin/bash
+#
+# Full backups are made on the 1st day of each month or with the 'full' option.
+# Incremental backups are made on any other days.
+#
+# USAGE: backup.sh [full]
+#
+
+# get day of the month
+DATE=`date +%d`
+
+export AWS_ACCESS_KEY_ID={{backup_access_id}}
+export AWS_SECRET_ACCESS_KEY={{backup_key}}
+S3_OPT="--s3-use-new-style --s3-use-ia --s3-use-multiprocessing"
+
+# directories to backup (but . for /)
+BDIRS="/srv"
+BAC="s3://s3.us-east-1.amazonaws.com/trustedfirmware-backups"
+TDIR="{{hostname}}"
+LOGDIR='/var/log/duplicity'
+
+# Setting the pass phrase to encrypt the backup files. Will use symmetrical keys in this case.
+PASSPHRASE='{{backup_gpg}}'
+export PASSPHRASE
+
+# encryption algorithm for gpg, disable for default (CAST5)
+# see available ones via 'gpg --version'
+ALGO=AES
+
+##############################
+
+if [ $ALGO ]; then
+ GPGOPT="--gpg-options '--cipher-algo $ALGO'"
+fi
+
+# Check to see if we're at the first of the month.
+# If we are on the 1st day of the month, then run
+# a full backup. If not, then run an incremental
+# backup.
+
+if [ $DATE = 01 ] || [ "$1" = 'full' ]; then
+ TYPE='full'
+else
+ TYPE='incremental'
+fi
+
+for DIR in $BDIRS
+do
+ if [ $DIR = '.' ]; then
+ EXCLUDELIST='/usr/local/etc/duplicity-exclude.conf'
+ else
+ EXCLUDELIST="/usr/local/etc/duplicity-exclude-$DIR.conf"
+ fi
+
+ if [ -f $EXCLUDELIST ]; then
+ EXCLUDE="--exclude-filelist $EXCLUDELIST"
+ else
+ EXCLUDE=''
+ fi
+
+ # first remove everything older than 2 months
+ if [ $DIR = '.' ]; then
+ CMD="duplicity remove-older-than 2M -v5 --force $S3_OPT $BAC/$TDIR >> $LOGDIR/system.log"
+ else
+ CMD="duplicity remove-older-than 2M -v5 --force $S3_OPT $BAC/$TDIR >> $LOGDIR/$DIR.log"
+ fi
+ eval $CMD
+
+ # do a backup
+ if [ $DIR = '.' ]; then
+ CMD="duplicity $TYPE -v5 $GPGOPT $S3_OPT $EXCLUDE / $BAC/$TDIR >> $LOGDIR/system.log"
+ else
+ CMD="duplicity $TYPE -v5 $GPGOPT $S3_OPT $EXCLUDE /$DIR $BAC/$TDIR >> $LOGDIR/$DIR.log"
+ fi
+ eval $CMD
+
+done
+
+exit 0
diff --git a/files/elasticsearch/elk.linaro.org.conf b/files/elasticsearch/elk.linaro.org.conf
deleted file mode 100644
index e523d2cc..00000000
--- a/files/elasticsearch/elk.linaro.org.conf
+++ /dev/null
@@ -1,49 +0,0 @@
-<VirtualHost *:80>
- CustomLog /var/log/apache2/{{inventory_hostname}}.access.log combined
- ErrorLog /var/log/apache2/{{inventory_hostname}}.error.log
- Redirect permanent / https://{{inventory_hostname}}
-</VirtualHost>
-
-<VirtualHost _default_:443>
- ServerName {{inventory_hostname}}
- ErrorLog /var/log/apache2/{{inventory_hostname}}-error.log
- CustomLog /var/log/apache2/{{inventory_hostname}}-access.log combined
-
- ProxyPass / http://localhost:{{docker_port_kibana}}/
- ProxyPassReverse / http://localhost:{{docker_port_kibana}}/
-
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
-
- SSLCertificateFile {{ssl_cert}}
- SSLCertificateKeyFile {{ssl_key}}
- SSLCACertificateFile {{ssl_ca_cert}}
-
- <Location "/">
- AuthType Basic
- AuthName "{{ inventory_hostname }}"
- AuthBasicProvider ldap
-
- AuthLDAPUrl "{{ apache_ldap_url }}"
- AuthLDAPBindDN "{{ apache_ldap_bind }}"
- AuthLDAPBindPassword {{ apache_ldap_bind_pwd }}
- AuthLDAPRemoteUserAttribute uid
-
- <RequireAll>
- Require valid-user
- <RequireAny>
- Require ldap-group cn=employees,ou=mailing,ou=groups,dc=linaro,dc=org
- Require ldap-group cn=assignees,ou=mailing,ou=groups,dc=linaro,dc=org
- </RequireAny>
- </RequireAll>
- </Location>
-
-</VirtualHost>
-
diff --git a/files/elasticsearch/templates/default.json b/files/elasticsearch/templates/default.json
deleted file mode 100644
index 1e02e7bd..00000000
--- a/files/elasticsearch/templates/default.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "template": "*",
- "settings": {
- "index.refresh_interval": "5s",
- "index.routing.allocation.require.box_type": "hot"
- }
-}
diff --git a/files/elasticsearch/templates/logstash.json b/files/elasticsearch/templates/logstash.json
deleted file mode 100644
index c8e60349..00000000
--- a/files/elasticsearch/templates/logstash.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "template": "logstash-*",
- "settings": {
- "index.refresh_interval": "5s",
- "index.routing.allocation.require.box_type": "hot"
- },
- "mappings": {
- "_default_": {
- "_all": {
- "enabled": true,
- "omit_norms": true
- },
- "dynamic_templates": [
- {
- "message_field": {
- "match": "message",
- "match_mapping_type": "string",
- "mapping": {
- "type": "string",
- "index": "analyzed",
- "omit_norms": true
- }
- }
- },
- {
- "string_fields": {
- "match": "*",
- "match_mapping_type": "string",
- "mapping": {
- "type": "string",
- "index": "analyzed",
- "omit_norms": true,
- "fields": {
- "raw": {
- "type": "string",
- "index": "not_analyzed",
- "ignore_above": 256
- }
- }
- }
- }
- }
- ],
- "properties": {
- "@version": {
- "type": "string",
- "index": "not_analyzed"
- },
- "geoip": {
- "type": "object",
- "dynamic": true,
- "properties": {
- "location": {
- "type": "geo_point"
- }
- }
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/files/fossology/fossology.linaro.org.conf b/files/fossology/fossology.linaro.org.conf
deleted file mode 100644
index 6dd53eeb..00000000
--- a/files/fossology/fossology.linaro.org.conf
+++ /dev/null
@@ -1,46 +0,0 @@
-<VirtualHost *:80>
- ServerAdmin webmaster@localhost
- ServerName {{inventory_hostname}}
- <Proxy "*">
- Allow from all
- </Proxy>
- ProxyPreserveHost on
- ProxyPass /.well-known/acme-challenge/ !
- ProxyPass / http://localhost:{{docker_port}}/
-
- RewriteEngine on
- ReWriteCond %{SERVER_PORT} !^443$
- RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.*$
- RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
-
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
-</VirtualHost>
-
-<VirtualHost *:443>
- ServerAdmin webmaster@localhost
- ServerName {{inventory_hostname}}
- <Proxy "*">
- Allow from all
- </Proxy>
-
- # Compatibility redirect for ci.linaro.org
-# RewriteEngine on
-# RewriteRule ^/repo/(.*) https://%{HTTP_HOST}/$1 [redirect,noescape,last]
- <LocationMatch "^/$">
- Redirect permanent "/" "/repo/"
-</LocationMatch>
-
- AllowEncodedSlashes NoDecode
- ProxyPreserveHost off
- # Note: Jenkins and Apache URL prefixes must match
- ProxyPass / http://localhost:{{docker_port}}/ nocanon
- ProxyPassReverse / http://localhost:{{docker_port}}/
-
- SSLEngine on
- SSLCertificateFile {{ssl_cert}}
- SSLCertificateKeyFile {{ssl_key}}
-</VirtualHost>
-
diff --git a/files/gerrit/android-review.linaro.org b/files/gerrit/android-review.linaro.org
index 8a1bc9b8..b7a4e4d0 100644
--- a/files/gerrit/android-review.linaro.org
+++ b/files/gerrit/android-review.linaro.org
@@ -5,13 +5,9 @@
basePath = /srv/repositories
canonicalWebUrl = http://android-review.linaro.org/
serverId = {{gerrit_config_server_id}}
-[database]
- type = postgresql
- hostname = localhost
- database = reviewdb
- username = gerrit2
[auth]
type = LDAP
+ gitBasicAuthPolicy = HTTP
#openIdSsoUrl = https://login.linaro.org:8443/openidserver/op
#logOutUrl = https://login.linaro.org:8443/openidserver/logoff.action
# type = OpenID
@@ -43,8 +39,11 @@
{% endif %}
[container]
user = git
- javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
- heapLimit = 10240m
+ javaHome = /usr/lib/jvm/java-11-openjdk-amd64/jre
+ heapLimit = {{ gerrit_mem }}
+ javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
+ javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
+
[sshd]
listenAddress = *:29418
idleTimeout = 5m
@@ -53,8 +52,8 @@
[cache]
directory = cache
[cache "projects"]
- memoryLimit = 2048
- diskLimit = 4096
+ memoryLimit = 8192
+ diskLimit = 10240
[download]
scheme = http
scheme = ssh
@@ -74,3 +73,5 @@
autoMigrate = true
[change]
allowDrafts = true
+[receive]
+ enableSignedPush = false
diff --git a/files/gerrit/dev-private-review.linaro.org b/files/gerrit/dev-private-review.linaro.org
index 55406c17..dc9af801 100644
--- a/files/gerrit/dev-private-review.linaro.org
+++ b/files/gerrit/dev-private-review.linaro.org
@@ -2,11 +2,6 @@
basePath = /srv/repositories
canonicalWebUrl = https://dev-private-review.linaro.org/
serverId = {{gerrit_config_server_id}}
-[database]
- type = postgresql
- hostname = localhost
- database = reviewdb
- username = private-git
[auth]
type = HTTP_LDAP
logoutUrl = https://login.linaro.org
@@ -38,7 +33,10 @@
[container]
user = private-git
javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
- heapLimit = 3000m
+ heapLimit = {{ gerrit_mem }}
+ javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
+ javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
+
[sshd]
listenAddress = *:29418
idleTimeout = 5 min
@@ -50,7 +48,7 @@
listenUrl = proxy-https://*:8080/
[cache]
directory = cache
-[cache "web_session"]
+[cache "web_sessions"]
maxAge = 2 weeks
[cache "ldap_groups"]
maxAge = 2 weeks
@@ -79,3 +77,8 @@
autoMigrate = true
[change]
allowDrafts = true
+[receive]
+ enableSignedPush = true
+[database]
+ type = h2
+ database = /srv/gerrit/db/ReviewDB
diff --git a/files/gerrit/gerrit.devboardsforandroid.linaro.org b/files/gerrit/gerrit.devboardsforandroid.linaro.org
new file mode 100644
index 00000000..64683ae4
--- /dev/null
+++ b/files/gerrit/gerrit.devboardsforandroid.linaro.org
@@ -0,0 +1,65 @@
+[core]
+ streamFileThreshold = 512m
+ packedGitLimit = 2000m
+[gerrit]
+ basePath = /srv/repositories
+ canonicalWebUrl = https://gerrit.devboardsforandroid.linaro.org/
+ serverId = 8f6f209b-eb1a-4cbf-aa44-c8bc30e9bfda
+[auth]
+ type = OAUTH
+ loginUrl = /login
+ loginText = Sign-in with GitHub
+ registerPageUrl = "/#/register"
+ gitBasicAuthPolicy = HTTP
+# cookiePath = /
+[oauth]
+ allowEditFullName = true
+ allowRegisterNewEmail = true
+[plugin "gerrit-oauth-provider-github-oauth"]
+ client-id = bfe5b324c057fe64896c
+ fix-legacy-user-id = false
+[sendemail]
+ smtpServer = localhost
+ expiryDays = 15
+ replyToAddress = review@gerrit.devboardsforandroid.linaro.org
+{% if gerrit_config_dovecot_user is defined and gerrit_config_dovecot_password is defined %}
+[receiveemail]
+ protocol = IMAP
+ host = localhost
+ username = review
+{% endif %}
+[container]
+ user = git
+ javaHome = /usr/lib/jvm/java-11-openjdk-amd64/jre
+ heapLimit = {{ gerrit_mem }}
+ javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
+ javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
+
+[sshd]
+ listenAddress = *:29418
+ idleTimeout = 5m
+[httpd]
+ listenUrl = proxy-https://127.0.0.1:8080/
+[cache]
+ directory = cache
+[cache "projects"]
+ memoryLimit = 4096
+ diskLimit = 10240
+[download]
+ scheme = https
+ scheme = ssh
+ scheme = anon_http
+ scheme = repo_download
+[theme]
+ selectionColor = FFFEAE
+[user]
+ name = Linaro Dev Boards for Android Code Review
+ email = review@gerrit.devboardsforandroid.linaro.org
+[index]
+ type = LUCENE
+[noteDb "changes"]
+ autoMigrate = true
+[change]
+ allowDrafts = true
+[receive]
+ enableSignedPush = false
diff --git a/files/gerrit/gerrit.forge.aws.linaro.com b/files/gerrit/gerrit.forge.aws.linaro.com
new file mode 100644
index 00000000..537d1148
--- /dev/null
+++ b/files/gerrit/gerrit.forge.aws.linaro.com
@@ -0,0 +1,90 @@
+[core]
+ streamFileThreshold = 512m
+ packedGitLimit = 3500m
+[gerrit]
+ basePath = /srv/repositories
+ canonicalWebUrl = https://{{www_host}}/
+ serverId = {{gerrit_config_server_id}}
+[ldap]
+ server = ldap://login.linaro.org
+ username = cn=rhodecode,ou=binders,dc=linaro,dc=org
+ accountBase = ou=accounts,dc=linaro,dc=org
+ groupBase = ou=security,ou=groups,dc=linaro,dc=org
+ referral = follow
+ accountPattern = (mail=${username})
+ accountSshUserName = uid
+ accountEmailAddress = mail
+ accountFullName = displayName
+ groupScope = subtree
+ groupMemberPattern = (|(memberUid=${uid})(gidNumber=${gidNumber}))
+[auth]
+ type = LDAP
+ gitBasicAuthPolicy = HTTP
+[sendemail]
+ enable = True
+ smtpServer = localhost
+ expiryDays = 15
+ includeDiff = true
+ maximumDiffSize = 512k
+ replyToAddress = gerrit@forge.linaro.com
+ from = "Forge Code Review <gerrit@forge.linaro.com>"
+[container]
+ user = git
+ javaHome = /usr/lib/jvm/java-11-openjdk-amd64
+ heapLimit = {{ gerrit_mem }}
+ javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
+ javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
+#[receiveemail]
+# protocol = IMAP
+# host = imap.gmail.com
+# username = ""
+# port = 993
+# password = ""
+[sshd]
+ listenAddress = *:29418
+ idleTimeout = 5m
+ loginGraceTime = 1 min
+ batchThreads = 4
+ maxAuthTries = 4
+ backend = NIO2
+[httpd]
+ listenUrl = proxy-https://127.0.0.1:8080/
+[cache]
+ directory = cache
+[cache "web_sessions"]
+ maxAge = 1 month
+[cache "ldap_groups"]
+ maxAge = 2 weeks
+[download]
+ scheme = ssh
+ scheme = anon_http
+[gitweb]
+ type = cgit
+ url = https://git.linaro.org/
+ revision = "/${project}.git/commit/?id=${commit}"
+ # 2.10.6 Doesn't show revision link above if this is activated
+ #linkDrafts = false
+[theme]
+ selectionColor = FFFEAE
+[user]
+ name = Linaro Forge Code Review
+ email = gerrit@forge.linaro.com
+[site]
+ enableDeprecatedQuery = false
+[commitmessage]
+ maxSubjectLength = 70
+ maxLineLength = 80
+ rejectTooLong = false
+
+# https://code.google.com/p/gerrit/issues/detail?id=2296#c2
+[receive]
+ checkReferencedObjectsAreReachable = false
+ enableSignedPush = false
+[index]
+ type = LUCENE
+[repository "*"]
+ defaultSubmitType = REBASE_IF_NECESSARY
+[noteDb "changes"]
+ autoMigrate = true
+[change]
+ allowDrafts = true
diff --git a/files/gerrit/gitiles_gerrit.devboardsforandroid.linaro.org b/files/gerrit/gitiles_gerrit.devboardsforandroid.linaro.org
new file mode 100644
index 00000000..e64e46d9
--- /dev/null
+++ b/files/gerrit/gitiles_gerrit.devboardsforandroid.linaro.org
@@ -0,0 +1,7 @@
+[gerrit]
+ cloneUrlType = http
+ linkname = gitiles
+ target = _self
+ baseGitUrl = https://source.devboardsforandroid.linaro.org/
+[markdown]
+ namedanchor = true
diff --git a/files/gerrit/lhg-review.linaro.org b/files/gerrit/lhg-review.linaro.org
deleted file mode 100644
index 6008c984..00000000
--- a/files/gerrit/lhg-review.linaro.org
+++ /dev/null
@@ -1,86 +0,0 @@
-[gerrit]
- basePath = /srv/repositories
- canonicalWebUrl = https://lhg-review.linaro.org/
- serverId = {{gerrit_config_server_id}}
-[database]
- type = postgresql
- hostname = localhost
- database = reviewdb
- username = lhg
-[auth]
- type = HTTP_LDAP
- logoutUrl = https://login.linaro.org
- cookieSecure = true
-[ldap]
- server = ldaps://login.linaro.org
- username = cn=rhodecode,ou=binders,dc=linaro,dc=org
- accountBase = ou=accounts,dc=linaro,dc=org
- groupBase = ou=security,ou=groups,dc=linaro,dc=org
- referral = follow
- accountPattern = (mail=${username})
- accountSshUserName = uid
- accountEmailAddress = mail
- accountFullName = displayName
- groupScope = subtree
- groupMemberPattern = (|(memberUid=${uid})(gidNumber=${gidNumber}))
-[sendemail]
- smtpServer = localhost
- expiryDays = 15
- includeDiff = true
- maximumDiffSize = 512k
- replyToAddress = review@lhg-review.linaro.org
-{% if gerrit_config_dovecot_user is defined and gerrit_config_dovecot_password is defined %}
-[receiveemail]
- protocol = IMAP
- host = localhost
- username = {{ gerrit_config_dovecot_user }}
-{% endif %}
-[container]
- user = git
- javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
- heapLimit = 4000m
-[sshd]
- listenAddress = *:29418
- idleTimeout = 5 min
- backend = NIO2
- loginGraceTime = 1 min
- batchThreads = 4
- maxAuthTries = 4
-[httpd]
- listenUrl = proxy-https://*:8081/
-[cache]
- directory = cache
-[cache "web_session"]
- maxAge = 2 weeks
-[cache "ldap_groups"]
- maxAge = 2 hours
-[commentlink "bugzilla"]
- match = "(bug\\s+#?)(\\d+)"
- link = https://bugs.linaro.org/show_bug.cgi?id=$2
-[download]
- scheme = ssh
-[theme]
- selectionColor = FFFEAE
-[user]
- name = Linaro Private Code Review
- email = review@lhg-review.linaro.org
-[core]
- packedGitLimit = 1000m
- streamFileThreshold = 512m
-[gitweb]
- type = gitweb
- cgi = /usr/lib/cgi-bin/gitweb.cgi
- revision = "?p=${project}.git;a=commitdiff;h=${commit}"
- linkDrafts = false
-[site]
- enableDeprecatedQuery = false
-[commitmessage]
- maxSubjectLength = 70
- maxLineLength = 80
- rejectTooLong = false
-[index]
- type = LUCENE
-[noteDb "changes"]
- autoMigrate = true
-[change]
- allowDrafts = true
diff --git a/files/gerrit/review.linaro.org b/files/gerrit/review.linaro.org
index c52e56d6..a914427c 100644
--- a/files/gerrit/review.linaro.org
+++ b/files/gerrit/review.linaro.org
@@ -6,7 +6,7 @@
canonicalWebUrl = https://{{www_host}}/
serverId = {{gerrit_config_server_id}}
[ldap]
- server = ldaps://login.linaro.org
+ server = ldap://login.linaro.org
username = cn=rhodecode,ou=binders,dc=linaro,dc=org
accountBase = ou=accounts,dc=linaro,dc=org
groupBase = ou=security,ou=groups,dc=linaro,dc=org
@@ -17,13 +17,9 @@
accountFullName = displayName
groupScope = subtree
groupMemberPattern = (|(memberUid=${uid})(gidNumber=${gidNumber}))
-[database]
- type = postgresql
- hostname = localhost
- database = reviewdb
- username = git
[auth]
type = LDAP
+ gitBasicAuthPolicy = HTTP
#openIdSsoUrl = https://login.linaro.org:8443/openidserver/op
#logOutUrl = https://login.linaro.org:8443/openidserver/logoff.action
[sendemail]
@@ -41,7 +37,9 @@
[container]
user = git
javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
- heapLimit = 14000m
+ heapLimit = {{ gerrit_mem }}
+ javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
+ javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
[sshd]
listenAddress = *:29418
idleTimeout = 5m
@@ -84,6 +82,7 @@
# https://code.google.com/p/gerrit/issues/detail?id=2296#c2
[receive]
checkReferencedObjectsAreReachable = false
+ enableSignedPush = false
[index]
type = LUCENE
[repository "*"]
diff --git a/files/gerrit/review.mlplatform.org b/files/gerrit/review.mlplatform.org
index 793ff841..46657f1d 100644
--- a/files/gerrit/review.mlplatform.org
+++ b/files/gerrit/review.mlplatform.org
@@ -4,17 +4,14 @@
[gerrit]
basePath = /srv/repositories
canonicalWebUrl = https://{{www_host}}/
-[database]
- type = postgresql
- hostname = localhost
- database = reviewdb
- username = git
+ serverId = {{gerrit_config_server_id}}
[auth]
type = OAUTH
loginUrl = /login
loginText = Sign-in with GitHub
registerPageUrl = "/#/register"
- gitBasicAuthPolicy = HTTP
+ gitBasicAuthPolicy = HTTP
+ contributorAgreements = true
[oauth]
allowEditFullName = true
allowRegisterNewEmail = true
@@ -26,8 +23,11 @@
maximumDiffSize = 512k
[container]
user = git
- javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
- heapLimit = 14000m
+ javaHome = /usr/lib/jvm/java-11-openjdk-amd64/bin
+ heapLimit = {{ gerrit_mem }}
+ javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
+ javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
+
[sshd]
listenAddress = *:29418
idleTimeout = 5m
@@ -63,6 +63,7 @@
# https://code.google.com/p/gerrit/issues/detail?id=2296#c2
[receive]
checkReferencedObjectsAreReachable = false
+ enableSignedPush = false
[index]
type = LUCENE
[repository "*"]
diff --git a/files/gerrit/review.trustedfirmware.org b/files/gerrit/review.trustedfirmware.org
index 06000f4b..4e215ad3 100644
--- a/files/gerrit/review.trustedfirmware.org
+++ b/files/gerrit/review.trustedfirmware.org
@@ -4,11 +4,7 @@
[gerrit]
basePath = /srv/repositories
canonicalWebUrl = https://{{www_host}}/
-[database]
- type = postgresql
- hostname = localhost
- database = reviewdb
- username = git
+ serverId = {{gerrit_config_server_id}}
[auth]
type = OAUTH
loginUrl = /login
@@ -27,7 +23,9 @@
[container]
user = git
javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
- heapLimit = 14000m
+ heapLimit = {{ gerrit_mem }}
+ javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
+ javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
[sshd]
listenAddress = *:29418
idleTimeout = 5m
@@ -63,10 +61,19 @@
# https://code.google.com/p/gerrit/issues/detail?id=2296#c2
[receive]
checkReferencedObjectsAreReachable = false
+ enableSignedPush = false
[index]
type = LUCENE
[repository "*"]
defaultSubmitType = REBASE_IF_NECESSARY
+[experiments]
+ enabled = UiFeature__mention_users
[plugin "gerrit-oauth-provider-github-oauth"]
client-id = 1bdcda52ecaa25e3e63b
fix-legacy-user-id = false
+[plugin "audit-sl4j"]
+ format: CSV
+ logName: audit.log
+[plugin "verify-status"]
+ dbType = h2
+ database = /srv/gerrit/db/CiDB
diff --git a/files/gitlab/aarch64-09.toml b/files/gitlab/aarch64-09.toml
new file mode 100644
index 00000000..26fbe2ca
--- /dev/null
+++ b/files/gitlab/aarch64-09.toml
@@ -0,0 +1,69 @@
+concurrent = 10
+check_interval = 0
+
+[session_server]
+ session_timeout = 1800
+
+[[runners]]
+ name = "linaro {{ inventory_hostname }}"
+ url = "{{ gitlab_runner_url['linaro'] }}"
+ token = "{{ gitlab_auth_token['linaro'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 32768
+ limit = 10
+ [runners.custom_build_dir]
+ [runners.cache]
+ [runners.cache.s3]
+ [runners.cache.gcs]
+ [runners.cache.azure]
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = false
+ volumes = ["/var/run/docker.sock:/var/run/docker.sock"]
+ shm_size = 0
+[[runners]]
+ name = "linaroltd {{ inventory_hostname }}"
+ url = "{{ gitlab_runner_url['linaroltd'] }}"
+ token = "{{ gitlab_auth_token['linaroltd'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 32768
+ limit = 10
+ [runners.custom_build_dir]
+ [runners.cache]
+ [runners.cache.s3]
+ [runners.cache.gcs]
+ [runners.cache.azure]
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = false
+ volumes = ["/var/run/docker.sock:/var/run/docker.sock"]
+ shm_size = 0
+[[runners]]
+ name = "lava {{ inventory_hostname }}"
+ url = "{{ gitlab_runner_url['lava'] }}"
+ token = "{{ gitlab_auth_token['lava'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 32768
+ limit = 10
+ [runners.custom_build_dir]
+ [runners.cache]
+ [runners.cache.s3]
+ [runners.cache.gcs]
+ [runners.cache.azure]
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = false
+ volumes = ["/var/run/docker.sock:/var/run/docker.sock"]
+ shm_size = 0
diff --git a/files/gitlab/deployments.ctt.linaro.org.toml b/files/gitlab/deployments.ctt.linaro.org.toml
new file mode 100644
index 00000000..f5ab7fc5
--- /dev/null
+++ b/files/gitlab/deployments.ctt.linaro.org.toml
@@ -0,0 +1,27 @@
+concurrent = 30
+check_interval = 0
+
+[session_server]
+ session_timeout = 1800
+
+[[runners]]
+ name = "{{ inventory_hostname }}"
+ url = "{{ gitlab_runner_url["original"] }}"
+ token = "{{ gitlab_auth_token['original'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 32768
+ limit = 30
+ [runners.custom_build_dir]
+ [runners.cache]
+ [runners.cache.s3]
+ [runners.cache.gcs]
+ [runners.cache.azure]
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = false
+ volumes = ["/var/run/docker.sock:/var/run/docker.sock"]
+ shm_size = 0
diff --git a/files/gitlab/gitlab-runner-manager.lkft.org.toml b/files/gitlab/gitlab-runner-manager.lkft.org.toml
new file mode 100644
index 00000000..9753fae2
--- /dev/null
+++ b/files/gitlab/gitlab-runner-manager.lkft.org.toml
@@ -0,0 +1,202 @@
+concurrent = 600
+check_interval = 0
+listen_address = "0.0.0.0:9252"
+
+[session_server]
+ session_timeout = 1800
+
+[[runners]]
+ name = "{{ inventory_hostname }}"
+ url = "{{ gitlab_runner_url['original'] }}"
+ token = "{{ gitlab_auth_token['original'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 10000
+ limit = 500 # This runner can execute up to xx jobs (created machines)
+ [runners.cache]
+ Type = "s3"
+ Shared = true
+ [runners.cache.s3]
+ ServerAddress = "s3.amazonaws.com"
+ BucketName = "lkft-runner-cache"
+ BucketLocation = "us-east-1"
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ cap_add = ["SYS_PTRACE"]
+ security_opt = ["seccomp:unconfined"]
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = true
+ shm_size = 0
+ # default to 'always'. If this is set to
+ # a list and a docker pull fails, it will
+ # try the next policy in the list until
+ # either success or out of list items.
+ pull_policy = ["always","always"]
+ [runners.docker.sysctls]
+ "net.ipv6.conf.lo.disable_ipv6" = "0"
+ [runners.machine]
+ IdleCount = 0
+ IdleTime = 600
+ OffPeakTimezone = "Europe/London"
+ OffPeakIdleCount = 0
+ OffPeakIdleTime = 600
+ MaxBuilds = 20 # Each machine can handle up to xx jobs in a row (after this it will be removed)
+ MachineDriver = "amazonec2"
+ MachineName = "gitlab-docker-machine-%s"
+ MachineOptions = [
+ "amazonec2-ami=ami-0d73480446600f555",
+ "amazonec2-region=us-east-1",
+ "amazonec2-vpc-id=vpc-0088d6761c7eeb5ef",
+ "amazonec2-subnet-id=subnet-07a5d0ad76657ca12",
+ "amazonec2-zone=a",
+ "amazonec2-use-private-address=true",
+ "amazonec2-tags=runner-manager-name,gitlab-aws-autoscaler,gitlab,true,gitlab-runner-autoscale,true",
+ "amazonec2-iam-instance-profile=gitlab_runner_instance_profile",
+ "amazonec2-instance-type=t2.medium",
+ "amazonec2-root-size=10",
+ ]
+
+[[runners]]
+ name = "{{ inventory_hostname }} large"
+ url = "{{ gitlab_runner_url['large'] }}"
+ token = "{{ gitlab_auth_token['large'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 10000
+ limit = 6 # This runner can execute up to xx jobs (created machines)
+ [runners.cache]
+ Type = "s3"
+ Shared = true
+ [runners.cache.s3]
+ ServerAddress = "s3.amazonaws.com"
+ BucketName = "lkft-runner-cache"
+ BucketLocation = "us-east-1"
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ cap_add = ["SYS_PTRACE"]
+ security_opt = ["seccomp:unconfined"]
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = true
+ shm_size = 0
+ [runners.docker.sysctls]
+ "net.ipv6.conf.lo.disable_ipv6" = "0"
+ [runners.machine]
+ IdleCount = 0
+ IdleTime = 600
+ OffPeakTimezone = "Europe/London"
+ OffPeakIdleCount = 0
+ OffPeakIdleTime = 600
+ MaxBuilds = 2 # Each machine can handle up to xx jobs in a row (after this it will be removed)
+ MachineDriver = "amazonec2"
+ MachineName = "gitlab-docker-machine-%s"
+ MachineOptions = [
+ "amazonec2-ami=ami-0d73480446600f555",
+ "amazonec2-region=us-east-1",
+ "amazonec2-vpc-id=vpc-0088d6761c7eeb5ef",
+ "amazonec2-subnet-id=subnet-0e76da657a939857f",
+ "amazonec2-zone=a",
+ "amazonec2-iam-instance-profile=gitlab_runner_instance_profile",
+ "amazonec2-use-private-address=true",
+ "amazonec2-tags=runner-manager-name,gitlab-aws-autoscaler,gitlab,true,gitlab-runner-autoscale,true",
+ "amazonec2-instance-type=m5.2xlarge",
+ "amazonec2-root-size=100",
+ ]
+
+[[runners]]
+ name = "codelinaro {{ inventory_hostname }}"
+ url = "{{ gitlab_runner_url['codelinaro'] }}"
+ token = "{{ gitlab_auth_token['codelinaro'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 10000
+ limit = 600 # This runner can execute up to xx jobs (created machines)
+ [runners.cache]
+ Type = "s3"
+ Shared = true
+ [runners.cache.s3]
+ ServerAddress = "s3.amazonaws.com"
+ BucketName = "lkft-runner-cache"
+ BucketLocation = "us-east-1"
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ cap_add = ["SYS_PTRACE"]
+ security_opt = ["seccomp:unconfined"]
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = true
+ shm_size = 0
+ [runners.docker.sysctls]
+ "net.ipv6.conf.lo.disable_ipv6" = "0"
+ [runners.machine]
+ IdleCount = 0
+ IdleTime = 600
+ OffPeakTimezone = "Europe/London"
+ OffPeakIdleCount = 0
+ OffPeakIdleTime = 600
+ MaxBuilds = 20 # Each machine can handle up to xx jobs in a row (after this it will be removed)
+ MachineDriver = "amazonec2"
+ MachineName = "gitlab-docker-machine-%s"
+ MachineOptions = [
+ "amazonec2-region=us-east-1",
+ "amazonec2-vpc-id=vpc-0088d6761c7eeb5ef",
+ "amazonec2-subnet-id=subnet-0e76da657a939857f",
+ "amazonec2-zone=a",
+ "amazonec2-use-private-address=true",
+ "amazonec2-tags=runner-manager-name,gitlab-aws-autoscaler,gitlab,true,gitlab-runner-autoscale,true",
+ "amazonec2-iam-instance-profile=gitlab_runner_instance_profile",
+ "amazonec2-instance-type=t2.medium",
+ "amazonec2-root-size=10",
+ ]
+
+[[runners]]
+ name = "codelinaro {{ inventory_hostname }}"
+ url = "{{ gitlab_runner_url['codelinaro-staging'] }}"
+ token = "{{ gitlab_auth_token['codelinaro-staging'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 10000
+ limit = 600 # This runner can execute up to xx jobs (created machines)
+ [runners.cache]
+ Type = "s3"
+ Shared = true
+ [runners.cache.s3]
+ ServerAddress = "s3.amazonaws.com"
+ BucketName = "lkft-runner-cache"
+ BucketLocation = "us-east-1"
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ cap_add = ["SYS_PTRACE"]
+ security_opt = ["seccomp:unconfined"]
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = true
+ shm_size = 0
+ [runners.docker.sysctls]
+ "net.ipv6.conf.lo.disable_ipv6" = "0"
+ [runners.machine]
+ IdleCount = 0
+ IdleTime = 600
+ OffPeakTimezone = "Europe/London"
+ OffPeakIdleCount = 0
+ OffPeakIdleTime = 600
+ MaxBuilds = 20 # Each machine can handle up to xx jobs in a row (after this it will be removed)
+ MachineDriver = "amazonec2"
+ MachineName = "gitlab-docker-machine-%s"
+ MachineOptions = [
+ "amazonec2-region=us-east-1",
+ "amazonec2-vpc-id=vpc-0088d6761c7eeb5ef",
+ "amazonec2-subnet-id=subnet-0e76da657a939857f",
+ "amazonec2-zone=a",
+ "amazonec2-use-private-address=true",
+ "amazonec2-tags=runner-manager-name,gitlab-aws-autoscaler,gitlab,true,gitlab-runner-autoscale,true",
+ "amazonec2-iam-instance-profile=gitlab_runner_instance_profile",
+ "amazonec2-instance-type=t2.medium",
+ "amazonec2-root-size=10",
+ ]
+
diff --git a/files/gitlab/gitlab-runner-manager.morello-project.org.toml b/files/gitlab/gitlab-runner-manager.morello-project.org.toml
new file mode 100644
index 00000000..a2989619
--- /dev/null
+++ b/files/gitlab/gitlab-runner-manager.morello-project.org.toml
@@ -0,0 +1,101 @@
+concurrent = 40
+check_interval = 0
+
+[session_server]
+ session_timeout = 1800
+
+[[runners]]
+ name = "{{ inventory_hostname }}"
+ url = "{{ gitlab_runner_url['original'] }}"
+ token = "{{ gitlab_auth_token['original'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 32768
+ limit = 20
+ [runners.cache]
+ Type = "s3"
+ Shared = true
+ [runners.cache.s3]
+ ServerAddress = "s3.amazonaws.com"
+ BucketName = "morello-runner-cache"
+ BucketLocation = "us-east-1"
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ cap_add = ["SYS_PTRACE"]
+ security_opt = ["seccomp:unconfined"]
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = true
+ shm_size = 0
+ [runners.docker.sysctls]
+ "net.ipv6.conf.lo.disable_ipv6" = "0"
+ [runners.machine]
+ IdleCount = 0
+ IdleTime = 600
+ OffPeakTimezone = "Europe/London"
+ OffPeakIdleCount = 0
+ OffPeakIdleTime = 600
+ MaxBuilds = 20
+ MachineDriver = "amazonec2"
+ MachineName = "gitlab-docker-machine-%s"
+ MachineOptions = [
+ "amazonec2-ami=ami-0d73480446600f555",
+ "amazonec2-region=us-east-1",
+ "amazonec2-vpc-id=vpc-08436079fcdde3c9e",
+ "amazonec2-subnet-id=subnet-00ac0107fe7f09e32",
+ "amazonec2-zone=a",
+ "amazonec2-use-private-address=true",
+ "amazonec2-tags=runner-manager-name,gitlab-aws-autoscaler,gitlab,true,gitlab-runner-autoscale,true",
+ "amazonec2-instance-type=c5.9xlarge",
+ "amazonec2-root-size=600",
+ "amazonec2-userdata=/etc/gitlab-runner/userdata/start.sh",
+ ]
+
+[[runners]]
+ name = "{{ inventory_hostname }} arm64"
+ url = "{{ gitlab_runner_url['arm64'] }}"
+ token = "{{ gitlab_auth_token['arm64'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 32768
+ limit = 15
+ [runners.cache]
+ Type = "s3"
+ Shared = true
+ [runners.cache.s3]
+ ServerAddress = "s3.amazonaws.com"
+ BucketName = "morello-runner-cache"
+ BucketLocation = "us-east-1"
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ cap_add = ["SYS_PTRACE"]
+ security_opt = ["seccomp:unconfined"]
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = true
+ shm_size = 0
+ [runners.docker.sysctls]
+ "net.ipv6.conf.lo.disable_ipv6" = "0"
+ [runners.machine]
+ IdleCount = 0
+ IdleTime = 600
+ OffPeakTimezone = "Europe/London"
+ OffPeakIdleCount = 0
+ OffPeakIdleTime = 600
+ MaxBuilds = 5
+ MachineDriver = "amazonec2"
+ MachineName = "gitlab-docker-machine-%s"
+ MachineOptions = [
+ "amazonec2-region=us-east-1",
+ "amazonec2-vpc-id=vpc-08436079fcdde3c9e",
+ "amazonec2-subnet-id=subnet-00ac0107fe7f09e32",
+ "amazonec2-ami=ami-05c5fea40f596a84c",
+ "amazonec2-zone=a",
+ "amazonec2-use-private-address=true",
+ "amazonec2-tags=runner-manager-name,gitlab-aws-autoscaler,gitlab,true,gitlab-runner-autoscale,true",
+ "amazonec2-instance-type=c6g.8xlarge",
+ "amazonec2-root-size=600",
+ "amazonec2-userdata=/etc/gitlab-runner/userdata/start.sh",
+ ]
diff --git a/files/gitlab/gitlab-runner-manager.ovss.linaro.org.toml b/files/gitlab/gitlab-runner-manager.ovss.linaro.org.toml
new file mode 100644
index 00000000..8ce3755f
--- /dev/null
+++ b/files/gitlab/gitlab-runner-manager.ovss.linaro.org.toml
@@ -0,0 +1,49 @@
+concurrent = 10
+check_interval = 0
+listen_address = "0.0.0.0:9252"
+
+[session_server]
+ session_timeout = 1800
+
+[[runners]]
+ name = "{{ inventory_hostname }}"
+ url = "{{ gitlab_runner_url["original"] }}"
+ token = "{{ gitlab_auth_token['original'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 10000
+ limit = 30 # This runner can execute up to xx jobs (created machines)
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ cap_add = ["SYS_PTRACE"]
+ security_opt = ["seccomp:unconfined"]
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = true
+ shm_size = 0
+ [runners.docker.sysctls]
+ "net.ipv6.conf.lo.disable_ipv6" = "0"
+ [runners.machine]
+ IdleCount = 0
+ IdleTime = 600
+ OffPeakTimezone = "Europe/London"
+ OffPeakIdleCount = 0
+ OffPeakIdleTime = 600
+ MaxBuilds = 20 # Each machine can handle up to xx jobs in a row (after this it will be removed)
+ MachineDriver = "google"
+ MachineName = "gitlab-docker-machine-%s"
+ MachineOptions = [
+ "google-project=ovss-project",
+ "google-zone=us-east1-b",
+ "google-machine-type=e2-standard-8",
+ "google-machine-image=https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20220419",
+ "google-tags=docker-machines,gitlab-runner-manager",
+ "google-disk-size=20",
+ "google-preemptible=false",
+ "google-use-internal-ip=false",
+ "google-use-internal-ip-only=false",
+ "google-network=gitlab-runner-manager",
+ "google-subnetwork=gitlab-runner-manager",
+ "google-skip-firewall-create=false"
+ ]
diff --git a/files/gitlab/gitlab-runner.morello-project.org.toml b/files/gitlab/gitlab-runner.morello-project.org.toml
new file mode 100644
index 00000000..666922f6
--- /dev/null
+++ b/files/gitlab/gitlab-runner.morello-project.org.toml
@@ -0,0 +1,27 @@
+concurrent = 30
+check_interval = 0
+
+[session_server]
+ session_timeout = 1800
+
+[[runners]]
+ name = "arm64 {{ inventory_hostname }}"
+ url = "{{ gitlab_runner_url["original"] }}"
+ token = "{{ gitlab_auth_token['original'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 32768
+ limit = 30
+ [runners.custom_build_dir]
+ [runners.cache]
+ [runners.cache.s3]
+ [runners.cache.gcs]
+ [runners.cache.azure]
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = false
+ volumes = ["/var/run/docker.sock:/var/run/docker.sock"]
+ shm_size = 0
diff --git a/files/gitlab/runner-cassini.ctt.linaro.org.toml b/files/gitlab/runner-cassini.ctt.linaro.org.toml
new file mode 100644
index 00000000..71498644
--- /dev/null
+++ b/files/gitlab/runner-cassini.ctt.linaro.org.toml
@@ -0,0 +1,101 @@
+concurrent = 40
+check_interval = 0
+
+[session_server]
+ session_timeout = 1800
+
+[[runners]]
+ name = "{{ inventory_hostname }} x86_64"
+ url = "{{ gitlab_runner_url['original'] }}"
+ token = "{{ gitlab_auth_token['original'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 32768
+ limit = 20
+ [runners.cache]
+ Type = "s3"
+ Shared = true
+ [runners.cache.s3]
+ ServerAddress = "s3.amazonaws.com"
+ BucketName = "cassini-runner-cache"
+ BucketLocation = "us-east-1"
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ cap_add = ["SYS_PTRACE"]
+ security_opt = ["seccomp:unconfined"]
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = true
+ shm_size = 0
+ [runners.docker.sysctls]
+ "net.ipv6.conf.lo.disable_ipv6" = "0"
+ [runners.machine]
+ IdleCount = 0
+ IdleTime = 600
+ OffPeakTimezone = "Europe/London"
+ OffPeakIdleCount = 0
+ OffPeakIdleTime = 600
+ MaxBuilds = 20
+ MachineDriver = "amazonec2"
+ MachineName = "glr-docker-machine-%s"
+ MachineOptions = [
+ "amazonec2-ami=ami-0b5df848226550db1",
+ "amazonec2-region=us-east-1",
+ "amazonec2-vpc-id=vpc-0be4500b0fd868261",
+ "amazonec2-subnet-id=subnet-0f7c5f814e449ee9e",
+ "amazonec2-zone=a",
+ "amazonec2-use-private-address=true",
+ "amazonec2-tags=runner-manager-name,gitlab-aws-autoscaler,gitlab,true,gitlab-runner-autoscale,true",
+ "amazonec2-instance-type=t3.large",
+ "amazonec2-root-size=600",
+ "amazonec2-userdata=/etc/gitlab-runner/userdata/start.sh",
+ ]
+
+[[runners]]
+ name = "{{ inventory_hostname }} arm64"
+ url = "{{ gitlab_runner_url['arm64'] }}"
+ token = "{{ gitlab_auth_token['arm64'] }}"
+ executor = "{{ gitlab_executor }}"
+ output_limit = 32768
+ limit = 30
+ [runners.cache]
+ Type = "s3"
+ Shared = true
+ [runners.cache.s3]
+ ServerAddress = "s3.amazonaws.com"
+ BucketName = "cassini-runner-cache"
+ BucketLocation = "us-east-1"
+ [runners.docker]
+ tls_verify = false
+ image = "alpine:latest"
+ privileged = true
+ cap_add = ["SYS_PTRACE"]
+ security_opt = ["seccomp:unconfined"]
+ disable_entrypoint_overwrite = false
+ oom_kill_disable = false
+ disable_cache = true
+ shm_size = 0
+ [runners.docker.sysctls]
+ "net.ipv6.conf.lo.disable_ipv6" = "0"
+ [runners.machine]
+ IdleCount = 0
+ IdleTime = 600
+ OffPeakTimezone = "Europe/London"
+ OffPeakIdleCount = 0
+ OffPeakIdleTime = 600
+ MaxBuilds = 10
+ MachineDriver = "amazonec2"
+ MachineName = "glr-docker-machine-%s"
+ MachineOptions = [
+ "amazonec2-region=us-east-1",
+ "amazonec2-vpc-id=vpc-0be4500b0fd868261",
+ "amazonec2-subnet-id=subnet-0f7c5f814e449ee9e",
+ "amazonec2-ami=ami-09b435c65f97ace2e",
+ "amazonec2-zone=a",
+ "amazonec2-use-private-address=true",
+ "amazonec2-tags=runner-manager-name,gitlab-aws-autoscaler,gitlab,true,gitlab-runner-autoscale,true",
+ "amazonec2-instance-type=t4g.large",
+ "amazonec2-root-size=600",
+ "amazonec2-userdata=/etc/gitlab-runner/userdata/start.sh",
+ ]
diff --git a/files/jenkins/ci.linaro.org.conf b/files/jenkins/ci.linaro.org.conf
index 9dd9c7d5..4827705b 100644
--- a/files/jenkins/ci.linaro.org.conf
+++ b/files/jenkins/ci.linaro.org.conf
@@ -8,15 +8,17 @@
ProxyPass /.well-known/acme-challenge/ !
ProxyPass / http://localhost:{{jenkins_master_port}}/
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.*$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
+ Include /etc/apache2/linaro/letsencrypt.conf
</VirtualHost>
<VirtualHost *:443>
@@ -37,7 +39,12 @@
ProxyPass / http://localhost:{{jenkins_master_port}}/ nocanon
ProxyPassReverse / http://localhost:{{jenkins_master_port}}/
- SSLEngine on
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
</VirtualHost>
diff --git a/files/jenkins/ci.linaro.org.ssh b/files/jenkins/ci.linaro.org.ssh
new file mode 100644
index 00000000..9a22adfd
--- /dev/null
+++ b/files/jenkins/ci.linaro.org.ssh
@@ -0,0 +1,28 @@
+# Managed by ansible!
+
+HashKnownHosts no
+
+Host linaro-private.git.linaro.org
+ User linaro-big-little-switcher-bot
+ IdentityFile ~/.ssh/linaro-big-little-switcher-bot_rsa
+
+Host git.linaro.org
+ User linaro-big-little-switcher-bot
+ IdentityFile ~/.ssh/linaro-big-little-switcher-bot_rsa
+
+Host staging.review.linaro.org
+ Port 29418
+ User lava-bot
+ IdentityFile ~/.ssh/lava-bot_rsa
+
+Host review.linaro.org
+ Port 29418
+ User lava-bot
+ IdentityFile ~/.ssh/lava-bot_rsa
+
+Host dev-private-git.linaro.org
+ User git
+Host dev-private-review.linaro.org
+ User git
+
+
diff --git a/files/lava-remote-worker/env b/files/lava-remote-worker/env
new file mode 100644
index 00000000..d70883ad
--- /dev/null
+++ b/files/lava-remote-worker/env
@@ -0,0 +1,22 @@
+DC_SERVER_IMAGE=lavasoftware/lava-server:latest
+DC_DISPATCHER_IMAGE=lavasoftware/lava-dispatcher:latest
+DC_DISPATCHER_HOSTNAME={{ lava_dispatcher_hostname }}
+DC_LAVA_SERVER_HOSTNAME=https://{{ lava_server_hostname }}
+DC_LAVA_MASTER_HOSTNAME={{ lava_server_hostname }}
+DC_LAVA_LOGS_HOSTNAME={{ lava_server_hostname }}
+DC_TOKEN={{ lava_dispatcher_token }}
+DC_LAVA_ADMIN_USERNAME=
+DC_LAVA_ADMIN_PASSWORD=
+http_proxy=
+https_proxy=
+ftp_proxy=
+
+KC_IMAGE=registry.gitlab.com/linaro/kisscache:latest
+KC_POSTGRES_IMAGE=postgres:11.2-alpine
+KC_REDIS_IMAGE=redis:latest
+KC_FRONT_PORT=8001
+# TODO probably make these configurable one day...
+KC_WEB_SCALE=3
+GUNICORN_WORKERS=8
+GUNICORN_THREADS=10
+CELERY_CONCURRENCY=30
diff --git a/files/lava-remote-worker/token b/files/lava-remote-worker/token
new file mode 100644
index 00000000..72f961a1
--- /dev/null
+++ b/files/lava-remote-worker/token
@@ -0,0 +1 @@
+{{ lava_dispatcher_token }}
diff --git a/files/patchwork/apache.conf b/files/patchwork/apache.conf
index 3d49d9ed..69758f56 100644
--- a/files/patchwork/apache.conf
+++ b/files/patchwork/apache.conf
@@ -18,10 +18,7 @@
Require all granted
</Directory>
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
+ Include /etc/apache2/linaro/letsencrypt.conf
WSGIScriptAlias / "{{install_base}}/{{hostname}}/wsgi.py"
<Directory "{{install_base}}/{{hostname}}">
@@ -34,10 +31,10 @@
ErrorLog /var/log/apache2/{{hostname}}-error.log
CustomLog /var/log/apache2/{{hostname}}-acess.log combined
- SSLEngine On
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
- SSLCACertificateFile {{ssl_ca_cert}}
+ SSLCACertificateFile {{ssl_ca}}
DocumentRoot "{{install_base}}/{{hostname}}/project/htdocs"
diff --git a/files/phabricator/apache.conf b/files/phabricator/apache.conf
index 07782134..c39f7345 100644
--- a/files/phabricator/apache.conf
+++ b/files/phabricator/apache.conf
@@ -1,20 +1,28 @@
<VirtualHost *:80>
ServerName {{inventory_hostname}}
+ Include /etc/apache2/linaro/headers-http.conf
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
RedirectMatch permanent \
"^/(?!\.well-known/acme-challenge)(.*)" \
"https://{{inventory_hostname}}/$1"
-
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
+ Include /etc/apache2/linaro/letsencrypt.conf
</VirtualHost>
<VirtualHost *:443>
ServerName {{inventory_hostname}}
- SSLEngine On
+ Include /etc/apache2/linaro/headers-https.conf
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
{% if ssl_ca is defined %}
diff --git a/files/phabricator/issues.trustedfirmware.org-apache.conf b/files/phabricator/issues.trustedfirmware.org-apache.conf
index 59892a21..4ed84698 100644
--- a/files/phabricator/issues.trustedfirmware.org-apache.conf
+++ b/files/phabricator/issues.trustedfirmware.org-apache.conf
@@ -1,21 +1,29 @@
<VirtualHost *:80>
ServerName issues.trustedfirmware.org
+ Include /etc/apache2/linaro/headers-http.conf
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/.*$
RewriteCond %{HTTP_HOST} ^issues\.trustedfirmware\.org$ [NC]
RewriteRule ^ https://developer.trustedfirmware.org%{REQUEST_URI} [L,R=301]
-
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
+ Include /etc/apache2/linaro/letsencrypt.conf
</VirtualHost>
<VirtualHost *:443>
ServerName issues.trustedfirmware.org
- SSLEngine On
+ Include /etc/apache2/linaro/headers-https.conf
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
{% if ssl_ca is defined %}
diff --git a/files/prometheus/grafana.linaro.org/nodes.yaml b/files/prometheus/grafana.linaro.org/nodes.yaml
new file mode 100644
index 00000000..a18aeac0
--- /dev/null
+++ b/files/prometheus/grafana.linaro.org/nodes.yaml
@@ -0,0 +1,295 @@
+- labels:
+ hostname: git-us.linaro.org
+ job: node
+ targets:
+ - 54.152.253.35:9100
+- labels:
+ hostname: android-git-us.linaro.org
+ job: node
+ targets:
+ - 3.87.163.235:9100
+- labels:
+ hostname: dev-private-git.linaro.org
+ job: node
+ targets:
+ - 3.223.170.243:9100
+- labels:
+ hostname: git.trustedfirmware.org
+ job: node
+ targets:
+ - 51.159.18.17:9100
+- labels:
+ hostname: patches.linaro.org
+ job: node
+ targets:
+ - 3.231.0.93:9100
+- labels:
+ hostname: flexnet.trustedfirmware.org
+ job: node
+ targets:
+ - 51.159.23.171:9100
+- labels:
+ hostname: flexnet-aws.trustedfirmware.org
+ job: node
+ targets:
+ - 3.227.200.112:9100
+- labels:
+ hostname: publishing-ie.linaro.org
+ job: node
+ targets:
+ - 52.215.200.125:9100
+- labels:
+ hostname: buildkite.ctt.linaro.org
+ job: node
+ targets:
+ - 44.213.158.5:9100
+- labels:
+ hostname: qcom-proxy.linaro.org
+ job: node
+ targets:
+ - 54.183.104.175:9100
+- labels:
+ hostname: qcom-hackbox.linaro.org
+ job: node
+ targets:
+ - 136.243.177.220:9100
+- labels:
+ hostname: android.linaro.org
+ job: node
+ targets:
+ - 54.228.108.119:9100
+- labels:
+ hostname: lava.morello-project.org
+ job: node
+ targets:
+ - 54.88.117.5:9100
+- labels:
+ hostname: obs.linaro.org
+ job: node
+ targets:
+ - 50.16.54.112:9100
+- labels:
+ hostname: developer.trustedfirmware.org
+ job: node
+ targets:
+ - 54.158.53.90:9100
+- labels:
+ hostname: developer.mlplatform.org
+ job: node
+ targets:
+ - 3.89.121.127:9100
+- labels:
+ hostname: staging-issues.trustedfirmware.org
+ job: node
+ targets:
+ - 54.81.0.7:9100
+- labels:
+ hostname: aarch64-09
+ job: node
+ targets:
+ - 139.178.84.115:9100
+- labels:
+ hostname: ses-proxy.ctt.linaro.org
+ job: node
+ targets:
+ - 52.206.111.78:9100
+- labels:
+ hostname: gitlab-runner-manager.morello-project.org
+ job: node
+ targets:
+ - 52.2.82.179:9100
+- labels:
+ hostname: gitlab-runner.morello-project.org
+ job: node
+ targets:
+ - 54.204.82.153:9100
+- labels:
+ hostname: gitlab-runner-manager.lkft.org
+ job: node
+ targets:
+ - 52.70.137.192:9100
+- labels:
+ hostname: gitlab-runner-manager.ovss.linaro.org
+ job: node
+ targets:
+ - 35.211.168.99:9100
+- labels:
+ hostname: deployments.ctt.linaro.org
+ job: node
+ targets:
+ - 35.173.160.211:9100
+- labels:
+ hostname: runner-cassini.ctt.linaro.org
+ job: node
+ targets:
+ - 35.174.135.224:9100
+- labels:
+ hostname: bugs.linaro.org
+ job: node
+ targets:
+ - 52.54.108.1:9100
+- labels:
+ hostname: bugs.96boards.org
+ job: node
+ targets:
+ - 100.25.199.127:9100
+- labels:
+ hostname: git-ie.linaro.org
+ job: node
+ targets:
+ - 99.81.133.34:9100
+- labels:
+ hostname: git-ap.linaro.org
+ job: node
+ targets:
+ - 18.136.253.116:9100
+- labels:
+ hostname: git.morello-project.org
+ job: node
+ targets:
+ - 174.129.105.184:9100
+- labels:
+ hostname: gerrit.devboardsforandroid.linaro.org
+ job: node
+ targets:
+ - 34.193.93.224:9100
+- labels:
+ hostname: x86-11
+ job: node
+ targets:
+ - 88.99.28.12:9100
+- labels:
+ hostname: x86-12
+ job: node
+ targets:
+ - 88.99.28.38:9100
+- labels:
+ hostname: x86-14
+ job: node
+ targets:
+ - 88.99.149.141:9100
+- labels:
+ hostname: x86-15
+ job: node
+ targets:
+ - 95.216.16.165:9100
+- labels:
+ hostname: ci.linaro.org
+ job: node
+ targets:
+ - 88.99.136.175:9100
+- labels:
+ hostname: grafana.linaro.org
+ job: node
+ targets:
+ - 18.204.18.151:9100
+- labels:
+ hostname: git.mlplatform.org
+ job: node
+ targets:
+ - 54.162.62.73:9100
+- labels:
+ hostname: ci.trustedfirmware.org
+ job: node
+ targets:
+ - 195.154.87.69:9100
+- labels:
+ hostname: ci.staging.trustedfirmware.org
+ job: node
+ targets:
+ - 3.225.239.230:9100
+- labels:
+ hostname: mbedtls.trustedfirmware.org
+ job: node
+ targets:
+ - 3.125.233.239:9100
+- labels:
+ hostname: snapshots.linaro.org
+ job: node
+ targets:
+ - 34.252.32.115:9100
+- labels:
+ hostname: staging-git.morello-project.org
+ job: node
+ targets:
+ - 34.200.228.165:9100
+- labels:
+ hostname: aosp-x86-09
+ job: node
+ targets:
+ - 49.12.133.85:9100
+- labels:
+ hostname: aosp-x86-10
+ job: node
+ targets:
+ - 168.119.145.200:9100
+- labels:
+ hostname: aosp-x86-13
+ job: node
+ targets:
+ - 95.217.145.175:9100
+- labels:
+ hostname: x86-07
+ job: node
+ targets:
+ - 188.40.92.79:9100
+- labels:
+ hostname: x86-08
+ job: node
+ targets:
+ - 188.40.49.144:9100
+- labels:
+ hostname: x86-09
+ job: node
+ targets:
+ - 148.251.184.94:9100
+- labels:
+ hostname: x86-10
+ job: node
+ targets:
+ - 138.201.52.83:9100
+- labels:
+ hostname: x86-13
+ job: node
+ targets:
+ - 88.99.59.232:9100
+- labels:
+ hostname: x86-16
+ job: node
+ targets:
+ - 62.210.124.13:9100
+- labels:
+ hostname: x86-TF-01
+ job: node
+ targets:
+ - 51.159.1.37:9100
+- labels:
+ hostname: x86-TF-02
+ job: node
+ targets:
+ - 51.159.20.54:9100
+- labels:
+ hostname: x86-TF-03
+ job: node
+ targets:
+ - 51.159.22.224:9100
+- labels:
+ hostname: x86-TF-04
+ job: node
+ targets:
+ - 51.159.20.12:9100
+- labels:
+ hostname: x86-TF-05
+ job: node
+ targets:
+ - 51.159.20.18:9100
+- labels:
+ hostname: android-git-ap.linaro.org
+ job: node
+ targets:
+ - 52.76.3.58:9100
+- labels:
+ hostname: android-git-ie.linaro.org
+ job: node
+ targets:
+ - 52.50.27.47:9100
diff --git a/files/prometheus/grafana.linaro.org/prometheus.yml b/files/prometheus/grafana.linaro.org/prometheus.yml
new file mode 100644
index 00000000..ecffbff2
--- /dev/null
+++ b/files/prometheus/grafana.linaro.org/prometheus.yml
@@ -0,0 +1,141 @@
+# my global config
+global:
+ scrape_interval: 15s
+ evaluation_interval: 15s
+ # scrape_timeout is set to the global default (10s).
+
+# Alertmanager configuration
+alerting:
+ alertmanagers:
+ - static_configs:
+ - targets:
+ # - alertmanager:9093
+ # TODO
+ # - should setup a "systems-slack" rule
+ # - also optionally post to SNS with the linaro-systems-errors email added
+ # also, we aren't running a standlone alertmanager on this server currently
+
+# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
+rule_files:
+ - "rules/node_alerts.yaml"
+ - "rules/node_rules.yaml"
+
+# A scrape configuration containing exactly one endpoint to scrape:
+# Here it's Prometheus itself.
+scrape_configs:
+ # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
+
+ # Systems Nodes --------------------------------
+ #
+ # auto generated list of nodes from the ansible playbook. See:
+ # doc/examples/prometheus_parse_inv.py
+ #
+ # Note that at some point it might be easier to use tech native SD
+ # (ie, ec2, scaleway-baremetal, scaleway-instance, hetzner) and then
+ # track lab with a manually created list of nodes.
+ - job_name: 'node'
+ scrape_interval: 60s
+ scrape_timeout: 30s
+ file_sd_configs:
+ - files:
+ - 'nodes.yaml'
+ basic_auth:
+ username: {{ prometheus_scrape_user }}
+ password: {{ prometheus_scrape_password }}
+
+ # Jenkins Servers --------------------------------
+ - job_name: "linaro-jenkins"
+ scrape_interval: 120s
+ scrape_timeout: 10s
+ metrics_path: "/prometheus/"
+ scheme: https
+ tls_config:
+ insecure_skip_verify: true
+ static_configs:
+ - targets: ["ci.linaro.org"]
+
+ - job_name: "tf-jenkins"
+ scrape_interval: 120s
+ scrape_timeout: 10s
+ metrics_path: "/prometheus/"
+ scheme: https
+ tls_config:
+ insecure_skip_verify: true
+ static_configs:
+ - targets: ["ci.trustedfirmware.org"]
+
+ - job_name: "tf-jenkins-staging"
+ scrape_interval: 120s
+ scrape_timeout: 10s
+ metrics_path: "/prometheus/"
+ scheme: https
+ tls_config:
+ insecure_skip_verify: true
+ static_configs:
+ - targets: ["ci.staging.trustedfirmware.org"]
+
+ - job_name: "tf-jenkins-mbedtls"
+ scrape_interval: 120s
+ scrape_timeout: 10s
+ metrics_path: "/prometheus/"
+ scheme: https
+ tls_config:
+ insecure_skip_verify: true
+ static_configs:
+ - targets: ["mbedtls.trustedfirmware.org"]
+
+ # LAVA servers -------------------------------
+ #
+ # This is messy due to the fact that we're querying the same
+ # target, but different metric paths for each lava server.
+ - job_name: 'lava-linaro'
+ scrape_interval: 300s
+ scrape_timeout: 60s
+ metrics_path: /deployments/monitoring/lava_exporter/validation.linaro.org.prom
+ scheme: https
+ static_configs:
+ - targets: ['linaroltd.gitlab.io']
+
+ - job_name: 'lava-lkft'
+ scrape_interval: 300s
+ scrape_timeout: 60s
+ metrics_path: /deployments/monitoring/lava_exporter/lkft.validation.linaro.org.prom
+ scheme: https
+ static_configs:
+ - targets: ['linaroltd.gitlab.io']
+
+ - job_name: 'lava-pmwg'
+ scrape_interval: 300s
+ scrape_timeout: 60s
+ metrics_path: /deployments/monitoring/lava_exporter/pmwg.validation.linaro.org.prom
+ scheme: https
+ static_configs:
+ - targets: ['linaroltd.gitlab.io']
+
+ - job_name: 'lava-ledge'
+ scrape_interval: 300s
+ scrape_timeout: 60s
+ metrics_path: /deployments/monitoring/lava_exporter/ledge.validation.linaro.org.prom
+ scheme: https
+ static_configs:
+ - targets: ['linaroltd.gitlab.io']
+
+ - job_name: 'lava-tf'
+ scrape_interval: 300s
+ scrape_timeout: 60s
+ metrics_path: /deployments/monitoring/lava_exporter/tf.validation.linaro.org.prom
+ scheme: https
+ static_configs:
+ - targets: ['linaroltd.gitlab.io']
+
+ - job_name: 'lava-morello'
+ scrape_interval: 300s
+ scrape_timeout: 60s
+ metrics_path: /deployments/monitoring/lava_exporter/lava.morello-project.org.prom
+ scheme: https
+ static_configs:
+ - targets: ['linaroltd.gitlab.io']
+
+ # Use a similar pattern to support other file service discovery entries here.
+ # We should make job_name == department to help keep track of who owns what.
+
diff --git a/files/publishing/default-publishing-ie.linaro.org.conf b/files/publishing/default-publishing-ie.linaro.org.conf
new file mode 100644
index 00000000..98692a5d
--- /dev/null
+++ b/files/publishing/default-publishing-ie.linaro.org.conf
@@ -0,0 +1,24 @@
+<VirtualHost *:80>
+ ServerName publishing-ie.ctt.linaro.org
+ ServerAlias publishing-ie.ctt.linaro.org
+
+ RewriteEngine on
+ RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.*$
+ RewriteRule /.* http://releases.linaro.org/ [redirect=301,last]
+ Include /etc/apache2/linaro/letsencrypt.conf
+
+</VirtualHost>
+
+<VirtualHost *:443>
+ ServerName publishing-ie.ctt.linaro.org
+ ServerAlias publishing-ie.ctt.linaro.org
+
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
+
+ RewriteEngine on
+ RewriteRule /.* https://releases.linaro.org/ [redirect=301,last]
+</VirtualHost>
diff --git a/files/publishing/default-snapshots.linaro.org.conf b/files/publishing/default-snapshots.linaro.org.conf
new file mode 100644
index 00000000..c9f5e4b7
--- /dev/null
+++ b/files/publishing/default-snapshots.linaro.org.conf
@@ -0,0 +1,24 @@
+<VirtualHost *:80>
+ ServerName snapshots.ctt.linaro.org
+ ServerAlias snapshots.ctt.linaro.org
+
+ RewriteEngine on
+ RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.*$
+ RewriteRule /.* http://snapshots.linaro.org/ [redirect=301,last]
+ Include /etc/apache2/linaro/letsencrypt.conf
+
+</VirtualHost>
+
+<VirtualHost *:443>
+ ServerName snapshots.ctt.linaro.org
+ ServerAlias snapshots.ctt.linaro.org
+
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
+
+ RewriteEngine on
+ RewriteRule /.* https://snapshots.linaro.org/ [redirect=301,last]
+</VirtualHost>
diff --git a/files/publishing/docker-proxy.conf b/files/publishing/docker-proxy.conf
new file mode 100644
index 00000000..3ac28351
--- /dev/null
+++ b/files/publishing/docker-proxy.conf
@@ -0,0 +1,77 @@
+<VirtualHost *:80>
+ ServerAdmin webmaster@linaro.org
+ DocumentRoot /srv/{{inventory_hostname}}
+
+ # Disable caching on this server as the app uses AWS signed URLS with
+ # the timestamp for the expiry embedded in the url
+ FileETag None
+ <IfModule mod_headers.c>
+ Header unset ETag
+ Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
+ Header set Pragma "no-cache"
+ Header set Expires "Wed, 12 Jan 1980 05:00:00 GMT"
+ </IfModule>
+
+ ErrorLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-error.log
+ CustomLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-access.log combined
+
+ ServerName {{inventory_hostname}}
+{% if apache_aliases is defined %}
+ ServerAlias {{apache_aliases|join(' ')}}
+{% endif %}
+
+ # Admin access should be always over SSL
+ RewriteEngine On
+ RewriteRule ^(/admin.*) https://releases.linaro.org$1 [redirect=301,noescape,last]
+ RewriteRule ^(/login.*) https://releases.linaro.org$1 [redirect=301,noescape,last]
+
+
+{% if apache_redirects is defined %}
+ {{apache_redirects}}
+{% endif %}
+ ProxyPass /.well-known/acme-challenge/ !
+ ProxyPass "/" "http://{{inventory_hostname}}:{{llp_port}}/" disablereuse=on
+ ProxyPassReverse "/" "http://{{inventory_hostname}}"
+
+ Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
+ <Directory "/srv/certbot/.well-known/acme-challenge/">
+ Require all granted
+ </Directory>
+</VirtualHost>
+
+<IfModule mod_ssl.c>
+<VirtualHost *:443>
+ ServerAdmin webmaster@linaro.org
+ DocumentRoot /srv/{{inventory_hostname}}
+
+ # Disable caching on this server as the app uses AWS signed URLS with
+ # the timestamp for the expiry embedded in the url
+ FileETag None
+ <IfModule mod_headers.c>
+ Header unset ETag
+ Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
+ Header set Pragma "no-cache"
+ Header set Expires "Wed, 12 Jan 1980 05:00:00 GMT"
+ </IfModule>
+
+ ErrorLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-error.log
+ CustomLog ${APACHE_LOG_DIR}/{{inventory_hostname}}-access.log combined
+
+ ServerName {{inventory_hostname}}
+{% if apache_aliases is defined %}
+ ServerAlias {{apache_aliases|join(' ')}}
+{% endif %}
+
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
+
+ RequestHeader set X-Forwarded-Proto 'https' env=HTTPS
+
+{% if apache_redirects is defined %}
+ {{apache_redirects}}
+{% endif %}
+ ProxyPass "/" "http://{{inventory_hostname}}:{{llp_port}}/" disablereuse=on
+ ProxyPassReverse "/" "https://{{inventory_hostname}}/"
+</VirtualHost>
+</IfModule>
diff --git a/files/publishing/llp-apache-96boards.conf b/files/publishing/llp-apache-96boards.conf
index 00ed978f..016b51da 100644
--- a/files/publishing/llp-apache-96boards.conf
+++ b/files/publishing/llp-apache-96boards.conf
@@ -2,37 +2,34 @@
ServerName builds.96boards.org
ServerAlias builds.96boards.org
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
RewriteEngine on
RedirectMatch "^/$" "http://releases.linaro.org/96boards"
- RedirectMatch "^/snapshots(.*)" "https://snapshots.linaro.org/96boards/$1"
- RedirectMatch "^/releases(.*)" "https://releases.linaro.org/96boards/$1"
-
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/">
- Require all granted
- </Directory>
-
+ RedirectMatch "^/snapshots(.*)" "http://snapshots.linaro.org/96boards$1"
+ RedirectMatch "^/releases(.*)" "http://releases.linaro.org/96boards$1"
+ Include /etc/apache2/linaro/letsencrypt.conf
</VirtualHost>
<VirtualHost *:443>
ServerName builds.96boards.org
ServerAlias builds.96boards.org
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
+ Header set Cache-Control private
+ <FilesMatch ".(jpg|jpeg|png|gif|ico)$">
+ Header set Cache-Control "max-age=86400, public"
+ </FilesMatch>
+
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
- SSLCertificateChainFile {{ssl_ca_cert}}
+ SSLCACertificateFile {{ssl_ca}}
- RewriteEngine on
- RedirectMatch "^/$" "http://releases.linaro.org/96boards"
- RedirectMatch "^/snapshots(.*)" "https://snapshots.linaro.org/96boards/$1"
- RedirectMatch "^/releases(.*)" "https://releases.linaro.org/96boards/$1"
+ RewriteEngine on
+ RedirectMatch "^/$" "https://releases.linaro.org/96boards"
+ RedirectMatch "^/snapshots(.*)" "https://snapshots.linaro.org/96boards$1"
+ RedirectMatch "^/releases(.*)" "https://releases.linaro.org/96boards$1"
</VirtualHost>
diff --git a/files/publishing/llp-apache-obs.conf b/files/publishing/llp-apache-obs.conf
new file mode 100644
index 00000000..bb350378
--- /dev/null
+++ b/files/publishing/llp-apache-obs.conf
@@ -0,0 +1,39 @@
+<VirtualHost *:80>
+ ServerName obs.linaro.org
+ ServerAlias obs.linaro.org
+
+ FileETag None
+ <IfModule mod_headers.c>
+ Header unset ETag
+ Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
+ Header set Pragma "no-cache"
+ Header set Expires "Wed, 12 Jan 1980 05:00:00 GMT"
+ </IfModule>
+
+ RewriteEngine on
+ RedirectMatch "^/$" "http://releases.linaro.org/obs/"
+ RedirectMatch "^/(.*)" "http://releases.linaro.org/obs/$1"
+ Include /etc/apache2/linaro/letsencrypt.conf
+</VirtualHost>
+
+<VirtualHost *:443>
+ ServerName obs.linaro.org
+ ServerAlias obs.linaro.org
+
+ FileETag None
+ <IfModule mod_headers.c>
+ Header unset ETag
+ Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
+ Header set Pragma "no-cache"
+ Header set Expires "Wed, 12 Jan 1980 05:00:00 GMT"
+ </IfModule>
+
+ Include /etc/apache2/linaro/settings-ssl.conf
+ SSLCertificateFile {{ssl_cert}}
+ SSLCertificateKeyFile {{ssl_key}}
+ SSLCACertificateFile {{ssl_ca}}
+
+ RewriteEngine on
+ RedirectMatch "^/$" "https://releases.linaro.org/obs/"
+ RedirectMatch "^/(.*)" "https://releases.linaro.org/obs/$1"
+</VirtualHost>
diff --git a/files/publishing/llp-apache-testdata-validation.conf b/files/publishing/llp-apache-testdata-validation.conf
deleted file mode 100644
index 17d92d00..00000000
--- a/files/publishing/llp-apache-testdata-validation.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-<VirtualHost *:80>
- ServerName testdata.validation.linaro.org
- ServerAlias testdata.validation.linaro.org
-
- RewriteEngine on
- RewriteCond %{HTTP_HOST} ^testdata\.validation\.linaro\.org
- RewriteRule ^(.*)$ http://testdata.linaro.org/$1
-
-</VirtualHost>
-
diff --git a/files/publishing/llp-apache.conf b/files/publishing/llp-apache.conf
deleted file mode 100644
index c8a6d45b..00000000
--- a/files/publishing/llp-apache.conf
+++ /dev/null
@@ -1,139 +0,0 @@
-<VirtualHost *:80>
- Alias /static/ {{django_app_root}}/static/
- DocumentRoot /srv/{{ hostname }}/www
- ServerName {{ publishing_host }}
- ServerAlias {{ hostname }}
- ServerAdmin webmaster@linaro.org
- CustomLog /var/log/apache2/{{ hostname }}-access.log combined env=!dontlog
- ErrorLog /var/log/apache2/{{ hostname }}-error.log
-
- # Admin access should be always over SSL
- RewriteEngine On
- RewriteRule ^(/admin.*) https://{{hostname}}$1 [redirect=301,noescape,last]
-
-{% if hostname == 'releases-us.linaro.org' %}
- RedirectMatch "/components/toolchain/binaries/gcc-8(.*)" "https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/"
- RedirectMatch "/components/toolchain/gcc-linaro/gcc-8(.*)" "https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/"
-{% endif %}
-
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/">
- Require all granted
- </Directory>
-
- <Directory {{django_app_root}}/static>
- <IfVersion < 2.3 >
- Order allow,deny
- Allow from all
- </IfVersion>
- <IfVersion >= 2.3>
- Require all granted
- </IfVersion>
- </Directory>
-
- <Directory /srv/{{ hostname }}/www>
- Order deny,allow
- Allow from all
- </Directory>
-
- XSendFile on
- XSendFilePath /srv/{{ hostname }}/www
-
- SetEnv SITE_NAME "{{ sitename }}"
- SetEnv HOST_NAME "{{ hostname }}"
- WSGIScriptAlias / {{django_app_root}}/wsgi_production.py
-
- SetEnvIf User-Agent "Amazon Route 53 Health Check" dontlog
-
- <Directory {{django_app_root}}>
- <Files wsgi_production.py>
- <IfVersion < 2.3 >
- Order allow,deny
- Allow from all
- </IfVersion>
- <IfVersion >= 2.3>
- Require all granted
- </IfVersion>
- </Files>
- </Directory>
-
- <Directory />
- IndexOptions NameWidth=* +SuppressDescription
- Options +Indexes +FollowSymLinks
- IndexIgnore favicon.ico HEADER.html
- AllowOverride FileInfo Indexes
- </Directory>
-
-</VirtualHost>
-
-<VirtualHost *:443>
- Alias /static/ {{django_app_root}}/static/
- DocumentRoot /srv/{{ hostname }}/www
- ServerName {{ publishing_host }}
- ServerAlias {{ hostname }}
- ServerAdmin webmaster@linaro.org
- CustomLog /var/log/apache2/{{ hostname }}-access.log combined env=!dontlog
- ErrorLog /var/log/apache2/{{ hostname }}-error.log
-
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
- SSLCertificateFile {{ssl_cert}}
- SSLCertificateKeyFile {{ssl_key}}
- SSLCertificateChainFile {{ssl_ca_cert}}
-
-{% if hostname == 'releases-us.linaro.org' %}
- RedirectMatch "/components/toolchain/binaries/gcc-8(.*)" "https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/"
- RedirectMatch "/components/toolchain/gcc-linaro/gcc-8(.*)" "https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/"
-{% endif %}
-
- <Directory {{django_app_root}}/static>
- <IfVersion < 2.3 >
- Order allow,deny
- Allow from all
- </IfVersion>
- <IfVersion >= 2.3>
- Require all granted
- </IfVersion>
- </Directory>
-
- <Directory /srv/{{ hostname }}/www>
- Order deny,allow
- Allow from all
- </Directory>
-
- XSendFile on
- XSendFilePath /srv/{{ hostname }}/www
-
- SetEnv SITE_NAME "{{ sitename }}"
- SetEnv HOST_NAME "{{ hostname }}"
- WSGIScriptAlias / {{django_app_root}}/wsgi_production.py
-
- SetEnvIf User-Agent "Amazon Route 53 Health Check" dontlog
-
- <Directory {{django_app_root}}>
- <Files wsgi_production.py>
- <IfVersion < 2.3 >
- Order allow,deny
- Allow from all
- </IfVersion>
- <IfVersion >= 2.3>
- Require all granted
- </IfVersion>
- </Files>
- </Directory>
-
- <Directory />
- IndexOptions NameWidth=* +SuppressDescription
- Options +Indexes +FollowSymLinks
- IndexIgnore favicon.ico HEADER.html
- AllowOverride FileInfo Indexes
- </Directory>
-
-</VirtualHost>
diff --git a/files/publishing/llp-docker-apache.conf b/files/publishing/llp-docker-apache.conf
deleted file mode 100644
index 9103143c..00000000
--- a/files/publishing/llp-docker-apache.conf
+++ /dev/null
@@ -1,33 +0,0 @@
-<VirtualHost *:80>
- ServerName {{config}}
- ServerAlias {{config}}
- ServerAdmin {{email}}
- CustomLog /var/log/apache2/{{config}}-access.log combined env=!dontlog
- ErrorLog /var/log/apache2/{{config}}-error.log
-
- ProxyPass / http://localhost:808{{PORT}}/
- ProxyPassReverse / http://localhost:808{{PORT}}/
-
- SetEnvIf User-Agent "Amazon Route 53 Health Check" dontlog
-
-
-</VirtualHost>
-
-<VirtualHost *:443>
- ServerName {{config}}
- ServerAlias {{config}}
- ServerAdmin {{email}}
- CustomLog /var/log/apache2/{{config}}-access.log combined env=!dontlog
- ErrorLog /var/log/apache2/{{config}}-error.log
-
- SSLEngine on
- SSLCertificateFile /etc/letsencrypt/live/{{config}}/fullchain.pem
- SSLCertificateKeyFile /etc/letsencrypt/live/{{config}}/privkey.pem
-
- ProxyPass / http://localhost:808{{PORT}}/
- ProxyPassReverse / http://localhost:808{{PORT}}/
-
- SetEnvIf User-Agent "Amazon Route 53 Health Check" dontlog
-
-
-</VirtualHost>
diff --git a/files/pxe-kickstart.conf b/files/pxe-kickstart.conf
deleted file mode 100644
index c5986771..00000000
--- a/files/pxe-kickstart.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-<VirtualHost *:80>
- ServerAdmin webmaster@localhost
- DocumentRoot /data/
-
- ErrorLog ${APACHE_LOG_DIR}/error.log
- CustomLog ${APACHE_LOG_DIR}/access.log combined
-
- ScriptAlias "/cgi-bin/" "/data/cgi-bin/"
- <Directory "/data">
- Options +Indexes +FollowSymLinks
- AllowOverride AuthConfig
- Require all granted
- </Directory>
-</VirtualHost>
diff --git a/files/reservations.yml b/files/reservations.yml
deleted file mode 100644
index 3ed18f55..00000000
--- a/files/reservations.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-reservations:
- - hosts: [r1-a1, r1-a2, r1-a3]
- users: [ben.copeland]
-
- - hosts: [r1-a5, r1-a9] # containers and vms
- users: [ben.copeland]
- tags: [ldap]
-
- - hosts: [r2-a3]
- users: [ben.copeland]
-
- - hosts: [r1-a30, r1-a32, r1-a34, r1-a35, r1-a36, r1-a37, r2-a1, r2-a30, r2-a32, r2-a34] # devcloud
- users: [ben.copeland]
- tags: [ldap, devcloud]
-
- - hosts: [r1-a20, r1-a21, r1-a22, r2-a26, r2-a27, r2-a28] # for LLVM
- users: [ben.copeland, renato.golin, diana.picus, maxim.kuvyrkov]
-
- - hosts: [r1-a6]
- users: [ben.copeland, tobias.grosser]
-
- - hosts: [r3-m1] # serial connection to moonshot
- users: [ben.copeland]
-
- - hosts: [r1-a8, r2-a15, r2-a16, r2-a17, r2-a18, r2-a19, r2-a20]
- users: [fathi.boudra, ben.copeland]
- tags: [ldap]
-
- - hosts: [r2-a11, r2-a21]
- users: [ben.copeland, itaru.kitayama]
-
- - hosts: [r1-a7, r1-a12]
- users: [ben.copeland, victor.chong, bernie.ogden, charles.baylis, christophe.lyon, kugan.vivekanandarajah, omair.javaid, renato.golin, robert.savoye, ryan.arnold, venkataramanan.kumar, yvan.roux, michael.collison, maxim.kuvyrkov, wang.deqiang, jim.wilson, prathamesh.kulkarni, yao.qi, adhemerval.zanella]
-
- - hosts: [r1-a13]
- users: [daniel.stewart, ben.copeland]
- - hosts: [r1-a19]
- users: [ganesh.raju, ben.copeland]
-
- - hosts: [r1-a10]
- users: [tianon.gravi, ben.copeland]
-
- - hosts: [r2-a7]
- users: [ricardo.salveti]
-
- - hosts: [r2-a8, r2-a12]
- users: [antonio.terceiro]
-
- - hosts: [r2-a22, r2-a23, r1-a18] # mongo DB
- users: [zakhar.kleyman, ernie.hershey, andrew.morrow, brian.mccarthy, ben.copeland]
-
- - hosts: [r1-a17]
- users: [ben.copeland, zhangfei.gao]
-
- - hosts: [r2-a13]
- users: [ben.copeland, anders.roxell]
-
- - hosts: [r2-a14]
- users: [ben.copeland, richard.henwood]
-
- - hosts: [r2-a24, r2-a9, r2-a2]
- users: [andy.doan, ben.copeland, tyler.baker, ricardo.salveti]
-
- - hosts: [r2-a10, r1-a11, r1-a14, r1-a17]
- users: [ben.copeland, eric.vanhensberg, renato.golin]
-
- - hosts: [r2-a25]
- users: [ben.copeland, brad.fitzpatrick]
-
- - hosts: [r2-a6]
- users: [ben.copeland, dan.rue]
diff --git a/files/weblogs.linaro.org.conf b/files/weblogs.linaro.org.conf
deleted file mode 100644
index f3068181..00000000
--- a/files/weblogs.linaro.org.conf
+++ /dev/null
@@ -1,56 +0,0 @@
-<VirtualHost *:80>
- ServerAdmin its@linaro.org
- CustomLog /var/log/apache2/{{inventory_hostname}}.access.log combined
- ErrorLog /var/log/apache2/{{inventory_hostname}}.error.log
- Redirect / https://{{inventory_hostname}}/restricted
-</VirtualHost>
-
-<VirtualHost *:443>
- ServerName {{inventory_hostname}}
- ServerAdmin its@linaro.org
-
- CustomLog /var/log/apache2/{{inventory_hostname}}.access.log combined
- ErrorLog /var/log/apache2/{{inventory_hostname}}.error.log
- LogLevel warn
-
- DocumentRoot {{install_base}}/{{inventory_hostname}}
-
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLOptions +StdEnvVars
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
-
- SSLCertificateFile {{ssl_cert}}
- SSLCertificateKeyFile {{ssl_key}}
- SSLCACertificateFile {{ssl_ca_cert}}
-
- <Directory "{{install_base}}/{{inventory_hostname}}">
- Require all granted
- Options Indexes FollowSymLinks
- IndexIgnore /errors
- </Directory>
-
- <Location "/restricted">
-
- AuthType Basic
- AuthName "{{ inventory_hostname }}"
- AuthBasicProvider ldap
-
- AuthLDAPUrl "{{ apache_ldap_url }}"
- AuthLDAPBindDN "{{ apache_ldap_bind }}"
- AuthLDAPBindPassword {{ apache_ldap_bind_pwd }}
- AuthLDAPRemoteUserAttribute uid
-
- <RequireAll>
- Require valid-user
- <RequireAny>
- Require ldap-group cn=linaro-login-users,ou=mailing,ou=groups,dc=linaro,dc=org
- </RequireAny>
- </RequireAll>
- </Location>
-</VirtualHost>
diff --git a/fossology.yml b/fossology.yml
deleted file mode 100644
index 3f11c70c..00000000
--- a/fossology.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-- name: Deploy fossology
- hosts: fossology
- become: yes
- vars_files:
- - "{{secrets_dir}}/host_vars/{{inventory_hostname}}"
- - "{{secrets_dir}}/group_vars/all"
- roles:
- - {role: ssh-ldap, tags: [ssh-ldap]}
- - {role: postfix, tags: [postfix]}
- - {role: docker-deps, tags: [docker-deps]}
- - {role: docker-fossology, tags: [docker]}
- - {role: certbot, tags: [certbot]}
- - {role: apache-site, src: "fossology/fossology.linaro.org.conf", config: "fossology.linaro.org", tags: [apache]}
diff --git a/gerrit-mirror.yml b/gerrit-mirror.yml
deleted file mode 100644
index 257850b1..00000000
--- a/gerrit-mirror.yml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-- hosts:
- - gerrit-mirror
- become: yes
- gather_facts: no
- vars_files:
- - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
- roles:
- - mirroring-gerrit
diff --git a/gerrit.yml b/gerrit.yml
index 70a7d81d..bb10c228 100644
--- a/gerrit.yml
+++ b/gerrit.yml
@@ -9,6 +9,6 @@
- {role: apache-site, src: "apache/{{gerrit_host}}.conf", config: "{{gerrit_host}}", tags: [apache, website-conf] }
- {role: apache-auth, host_name: "{{gerrit_host}}", when: server_access == "private", tags: [apache-auth, website-conf]}
- {role: git-deps}
- - {role: postgres, tags: [gerrit]}
- - {role: dovecot-imapd, tags: [imapd]}
+ - {role: dovecot-imapd, when: skip_dovecot is undefined, tags: [imapd]}
+ - {role: duplicity, tags: [duplicity], when: inventory_hostname == "review.trustedfirmware.org"}
- {role: gerrit, tags: [gerrit]}
diff --git a/git.yml b/git.yml
index 7134a10f..7d3f662e 100644
--- a/git.yml
+++ b/git.yml
@@ -13,3 +13,11 @@
- {role: gitolite, when: hosttype == 'git-main', tags: [gitolite]}
- {role: cgit, tags: [cgit]}
- {role: grokmirror, when: grokmirror_slave or grokmirror_master, tags: [grokmirror]}
+
+- hosts:
+ - gerrit_mirror
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
+ roles:
+ - {role: mirroring-gerrit, tags: [gerrit-mirror]}
diff --git a/gitlab.yml b/gitlab.yml
new file mode 100644
index 00000000..6d893dd8
--- /dev/null
+++ b/gitlab.yml
@@ -0,0 +1,23 @@
+---
+- hosts:
+ - gitlab
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/group_vars/all", "vars/empty.yml"]
+ - ["{{secrets_dir}}/host_vars/{{ inventory_hostname }}", "vars/empty.yml"]
+ - ["{{secrets_dir}}/group_vars/ses-proxy"]
+
+ roles:
+ - {role: docker-gitlab, tags: [gitlab]}
+ - {role: postfix, tags: [postfix]}
+ - {role: dovecot-imapd, tags: [imapd], when enable_incoming_mail is defined}
+
+- hosts:
+ - gitlab_runner
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/group_vars/all", "vars/empty.yml"]
+ - ["{{secrets_dir}}/host_vars/{{ inventory_hostname }}", "vars/empty.yml"]
+ roles:
+ - {role: docker-deps, tags: [docker]}
+ - {role: gitlab-runner, tags: [gitlab-runner]}
diff --git a/grafana.yml b/grafana.yml
new file mode 100644
index 00000000..29550d8a
--- /dev/null
+++ b/grafana.yml
@@ -0,0 +1,18 @@
+---
+- hosts:
+ - grafana
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
+ - "{{secrets_dir}}/group_vars/all"
+ - ["{{secrets_dir}}/group_vars/dehydrated", "vars/empty.yml"]
+ - ["{{secrets_dir}}/group_vars/ses-proxy", "vars/empty.yml"]
+ - "vars/empty.yml"
+ roles:
+ - {role: postgres10, tags: [postgres]}
+ - {role: postfix, tags: [postfix]}
+ - {role: apache-auth, host_name: "{{inventory_hostname}}", when: server_access == "private", tags: [apache]}
+ - {role: apache-site, src: "apache/{{inventory_hostname}}.conf", config: "{{inventory_hostname}}", tags: [apache]}
+ - {role: dehydrated, tags: [ssl]}
+ - {role: docker-grafana, tags: [docker,grafana]}
+ - {role: docker-prometheus, tags: [docker,prometheus]}
diff --git a/group_vars/all b/group_vars/all
index caa73418..fbfe8990 100644
--- a/group_vars/all
+++ b/group_vars/all
@@ -1,5 +1,8 @@
+---
# These are global variables, applying to every play
+ansible_python_interpreter: auto
secrets_dir: secrets
+secrets_dir_external: secrets_external
install_base: /srv
tools_checkout_dir: "{{install_base}}"
server_access: public
@@ -15,3 +18,26 @@ MANAGED_HEADER: Managed by Ansible - do not change!
apache_root: /var/www
linaro_git_server: git.linaro.org
git_user: git
+
+# ansible_hostname is collected as a fact when ansible runs on a server, where as inventory_hostname
+# is the name by which the server was referred to at the time of invocation. Checks to see if we're
+# running on the main host or a vhost. Requires facts to have been gathered.
+aliased_host: "{{ (False if (inventory_hostname | regex_search('^'+ansible_hostname)) else True)|bool }}"
+
+#beats config
+logstash_host: elk.linaro.org:5044
+logstash_cert: logstash-beats.crt
+monitoring_team: systems
+
+# ssh-admin
+admin_user: ubuntu
+
+prometheus_scrape_user: prometheus
+# passwd in secrets
+# since we're using password, let's drop ip restriction
+# so we don't lose monitoring on IP change of prom server
+prometheus_scrape_ips:
+ - 0.0.0.0/0
+
+# convenience var to see if either docker_compose_host or docker_host set for this server
+is_docker_host: "{{ (docker_host is defined and docker_host is true) or (docker_compose_host is defined and docker_compose_host is true) }}"
diff --git a/group_vars/android-git b/group_vars/android_git
index 1c2f0dfc..1c2f0dfc 100644
--- a/group_vars/android-git
+++ b/group_vars/android_git
diff --git a/group_vars/apache-auth b/group_vars/apache_auth
index f14f3aeb..f14f3aeb 100644
--- a/group_vars/apache-auth
+++ b/group_vars/apache_auth
diff --git a/group_vars/apache_redirects b/group_vars/apache_redirects
new file mode 100644
index 00000000..6bdc8b53
--- /dev/null
+++ b/group_vars/apache_redirects
@@ -0,0 +1 @@
+no_atom: yes
diff --git a/group_vars/aus-colo b/group_vars/aus-colo
deleted file mode 100644
index 99430455..00000000
--- a/group_vars/aus-colo
+++ /dev/null
@@ -1,8 +0,0 @@
-login_groups:
- - systems
- - aus-colo
- - users
-
-#SSH LDAP
-# override the default
-ssh_ldap_cache_url: http://10.10.0.1/ldap-files.tgz
diff --git a/group_vars/fossology b/group_vars/fossology
index 178a4765..07d6a2ca 100644
--- a/group_vars/fossology
+++ b/group_vars/fossology
@@ -2,12 +2,19 @@
hostname: "{{inventory_hostname}}"
apache_user: www-data
apache_modules:
- - ssl
- proxy
- proxy_http
- rewrite
-ssl_cert: /etc/letsencrypt/live/{{hostname}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{hostname}}/privkey.pem
+
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+dehydrated_http_domains:
+ - "{{inventory_hostname}}"
+dehydrated_dns_domains: []
+dehydrated_domains_txt: |
+ {{inventory_hostname}}
# Docker
login_groups:
diff --git a/group_vars/gerrit b/group_vars/gerrit
index 03fc1bca..864cdc31 100644
--- a/group_vars/gerrit
+++ b/group_vars/gerrit
@@ -1,8 +1,8 @@
---
-gerrit_plugin_version: 2.15 # Adjust only major version, so 2.12, 2.13 etc.
+gerrit_plugin_version: 3.8 # Adjust only major version, so 2.12, 2.13 etc.
gerrit_managed: no
-gerrit_version: 2.15.6
-gerrit_checksum: md5:f39130e7e335de76c76cd5b13caaab50
+gerrit_version: 3.8.1
+gerrit_checksum: md5:79a1831604ae601ed310ca6a9c66899e
gerrit_download_link: https://gerrit-releases.storage.googleapis.com/gerrit-{{gerrit_version}}.war
gerrit_root: /srv/gerrit
gerrit_config_server_id: "{{ansible_machine_id| default(ansible_date_time.iso8601_micro|to_uuid)}}"
@@ -15,7 +15,11 @@ gerrit_included_plugins:
- reviewnotes
- singleusergroup
+apache_modules:
+ - proxy
+ - proxy_http
+
tools_checkout_dir: /srv
-db_name: reviewdb
www_host: "{{inventory_hostname}}"
repo_root: /srv/repositories
+postfix_allow_inbound: true
diff --git a/group_vars/gerrit_mirror b/group_vars/gerrit_mirror
new file mode 100644
index 00000000..8978deae
--- /dev/null
+++ b/group_vars/gerrit_mirror
@@ -0,0 +1,4 @@
+---
+mirror_clone_cronspec: "0 10,22 * * *"
+mirror_fetch_cronspec: "0 2,14 * * *"
+mirror_push_cronspec: "0 6,18 * * *"
diff --git a/group_vars/git b/group_vars/git
index e5c3284f..1c862fb7 100644
--- a/group_vars/git
+++ b/group_vars/git
@@ -3,14 +3,28 @@ host_site_name: Linaro Git Hosting
host_site_desc: Git repositories hosted by Linaro
has_gerrit: true
repo_root: "{{install_base}}/repositories"
+docker_compose_host: true
+
+login_groups:
+ - systems
+ - git
+ - its
+ - it-support-bot
+
+local_user_group: "ubuntu ctt-debug"
+
+sudo_groups:
+ - systems
+ - its
+ - ctt-debug
git_host: git.linaro.org
gerrit_root: /srv/gerrit
-gitolite_help_url: https://wiki.linaro.org/Platform/Systems/Git
+gitolite_help_url: https://linaro.atlassian.net/wiki/spaces/SYS/pages/22529841469/Public+Git+Server
gitolite_rev: 731d5521bb9d5294cf75aa6b8e4e18b135a49f3f
-gitolite_admin_name: paul.sokolovsky
+gitolite_admin_name: systems-bot
# grokmirror options
grokmirror_slave: false
diff --git a/group_vars/gitlab b/group_vars/gitlab
new file mode 100644
index 00000000..f90ac172
--- /dev/null
+++ b/group_vars/gitlab
@@ -0,0 +1,2 @@
+---
+docker_host: true
diff --git a/group_vars/gitlab_runner b/group_vars/gitlab_runner
new file mode 100644
index 00000000..f90ac172
--- /dev/null
+++ b/group_vars/gitlab_runner
@@ -0,0 +1,2 @@
+---
+docker_host: true
diff --git a/group_vars/grafana b/group_vars/grafana
new file mode 100644
index 00000000..8fc30f18
--- /dev/null
+++ b/group_vars/grafana
@@ -0,0 +1,6 @@
+---
+grafana_image_name: grafana/grafana
+grafana_container_name: grafana
+grafana_port: 3000
+
+docker_compose_host: true
diff --git a/group_vars/jenkins_master b/group_vars/jenkins_master
index 171b7582..f4195183 100644
--- a/group_vars/jenkins_master
+++ b/group_vars/jenkins_master
@@ -2,12 +2,20 @@
hostname: "{{inventory_hostname}}"
apache_user: www-data
apache_modules:
- - ssl
- proxy
- proxy_http
- rewrite
-ssl_cert: /etc/letsencrypt/live/{{hostname}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{hostname}}/privkey.pem
+
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+dehydrated_http_domains:
+ - "{{inventory_hostname}}"
+dehydrated_dns_domains: []
+dehydrated_domains_txt: |
+ {{inventory_hostname}}
+
# Firewall
@@ -16,11 +24,18 @@ ufw_open_ports:
- 80
- 443
- 3128
- - 2222
- - 2020 # tcwg-ssh-proxy
- - 50000
+
+ufw_open_docker_ports:
+ - "0.0.0.0/0:2020"# tcwg-ssh-proxy
+ - "0.0.0.0/0:2222"
+ - "0.0.0.0/0:2223"
+ - "0.0.0.0/0:2376"
+ - "0.0.0.0/0:8080"
+ - "0.0.0.0/0:50000"
# Docker
+docker_host: true
+
jenkins_master_image: 'linaro/ci-x86_64-jenkins-master-debian:lts'
jenkins_master_container_name: 'jenkins'
jenkins_master_data_container_name: 'jenkins_data'
@@ -31,6 +46,8 @@ jenkins_master_slaves_port: '2233'
jenkins_master_sshd_port: '2222'
jenkins_jnlp_port: '50000'
+jenkins_java_opts: "-server -Xmx8192m -XX:+AlwaysPreTouch -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/jenkins/heapdump.log -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -XX:MaxMetaspaceExpansion=64M -Djenkins.model.Jenkins.logStartupPerformance=true -Djava.awt.headless=true -Dhudson.slaves.WorkspaceList='_' -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=30 -Dorg.eclipse.jetty.server.Request.maxFormContentSize=1000000"
+
login_groups:
- systems
- team-builds-and-baselines
@@ -39,7 +56,9 @@ sudo_groups:
- systems
- users
+nfs_client_group: "jenkins_slaves_hetzner"
nfs_exports:
- name: "buildslave"
path: "/var/data/nfs"
options: "(rw,sync,no_subtree_check,no_root_squash)"
+ cleanup: "find /var/data/nfs/oe -not -path /var/data/nfs/oe/downloads -atime +40 -delete"
diff --git a/group_vars/jenkins_slaves b/group_vars/jenkins_slaves
index eb4fb5c5..a17b792f 100644
--- a/group_vars/jenkins_slaves
+++ b/group_vars/jenkins_slaves
@@ -3,6 +3,7 @@ login_groups:
- team-builds-and-baselines
- buildslave
- ssh_access_jenkins_slaves
+ - ubuntu
sudo_groups:
- systems
@@ -12,9 +13,10 @@ docker_group_user:
- ben.copeland
- fathi.boudra
- kelley.spoon
- - riku.voipio
- buildslave
+docker_host: yes
+
docker_engine_opts:
- "-H tcp://0.0.0.0:2375"
- "-H unix:///var/run/docker.sock"
@@ -27,3 +29,9 @@ docker_engine_opts:
ufw_open_ports:
- 22
+
+ufw_open_docker_ports:
+ - "any:22" # allow jenkins to ssh into docker containers
+
+jenkins_ip: 88.99.136.175
+jenkins_ip_staging: 127.0.0.1 # blank
diff --git a/group_vars/jenkins_slaves_hetzner b/group_vars/jenkins_slaves_hetzner
index 50a7e59b..1d270553 100644
--- a/group_vars/jenkins_slaves_hetzner
+++ b/group_vars/jenkins_slaves_hetzner
@@ -1,5 +1,7 @@
nfs_client_mount:
- path: /home/buildslave/srv/oe
src: 88.99.136.175:/var/data/nfs/oe
+ fstype: nfs
opts: rw,noatime,vers=4.2,hard,intr
state: mounted
+docker_host: true
diff --git a/group_vars/jenkins_slaves_online b/group_vars/jenkins_slaves_online
new file mode 100644
index 00000000..f90ac172
--- /dev/null
+++ b/group_vars/jenkins_slaves_online
@@ -0,0 +1,2 @@
+---
+docker_host: true
diff --git a/group_vars/jenkins_slaves_simple b/group_vars/jenkins_slaves_simple
index ce73c756..49187be8 100644
--- a/group_vars/jenkins_slaves_simple
+++ b/group_vars/jenkins_slaves_simple
@@ -1,6 +1,8 @@
docker_group_user:
- ci-admin
+docker_compose_host: true
+
docker_engine_opts:
- "-H tcp://0.0.0.0:2375"
- "-H unix:///var/run/docker.sock"
diff --git a/group_vars/jenkins_tf_master b/group_vars/jenkins_tf_master
deleted file mode 100644
index ab052705..00000000
--- a/group_vars/jenkins_tf_master
+++ /dev/null
@@ -1,31 +0,0 @@
-# Apache
-hostname: "{{inventory_hostname}}"
-apache_user: www-data
-apache_modules:
- - ssl
- - proxy
- - proxy_http
- - rewrite
-ssl_cert: /etc/dehydrated/certs/{{hostname}}/fullchain.pem
-ssl_key: /etc/dehydrated/certs/{{hostname}}/privkey.pem
-ssl_ca: "{{ssl_cert}}"
-
-# Docker
-jenkins_master_image: 'trustedfirmware/jenkins-master:latest'
-jenkins_master_container_name: 'jenkins'
-jenkins_master_data_container_name: 'jenkins_data'
-jenkins_master_data_volume: '/srv/jenkins'
-
-jenkins_master_port: '8080'
-jenkins_master_slaves_port: '2233'
-jenkins_master_sshd_port: '2222'
-jenkins_jnlp_port: '50000'
-
-login_groups:
- - systems
- - team-builds-and-baselines
-
-sudo_groups:
- - systems
- - users
-
diff --git a/group_vars/patchwork b/group_vars/patchwork
index 79cf2086..bba82b80 100644
--- a/group_vars/patchwork
+++ b/group_vars/patchwork
@@ -4,14 +4,20 @@ db_password: patchwork
hostname: "{{inventory_hostname}}"
apache_user: www-data
apache_modules:
- - ssl
- wsgi
- rewrite
django_project_repo: "https://github.com/getpatchwork/patchwork.git"
-django_project_version: v2.0.1
+django_project_version: v2.2.4
django_settings: local_settings
django_local_settings: patchwork/{{inventory_hostname}}_local_settings.py
install_base: /srv
-ssl_cert: /etc/letsencrypt/live/{{inventory_hostname}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{inventory_hostname}}/privkey.pem
-ssl_ca_cert: /etc/letsencrypt/live/{{inventory_hostname}}/fullchain.pem
+
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+dehydrated_http_domains:
+ - "{{inventory_hostname}}"
+dehydrated_dns_domains: []
+dehydrated_domains_txt: |
+ {{inventory_hostname}}
diff --git a/group_vars/publishing b/group_vars/publishing
index e031beef..bbb696a5 100644
--- a/group_vars/publishing
+++ b/group_vars/publishing
@@ -1,28 +1,25 @@
-apache_user: www-data
-django_project_repo: http://git.linaro.org/git/infrastructure/linaro-license-protection.git
-django_project_version: HEAD
-django_settings: settings_production
+---
+# Apache
hostname: "{{inventory_hostname}}"
sitename: "{{hostname}}"
+apache_user: www-data
+apache_modules:
+ - ssl
+ - proxy
+ - proxy_http
+ - rewrite
+
+login_groups:
+ - systems
+ - team-builds-and-baselines
+
+sudo_groups:
+ - systems
+ - users
process_report: false
s3_sanity: false
s3_purge: false
-# Permanently deletes S3 files
-s3_purge_delete: false
-s3_purge_delete_releases: false
-
-
-ssl_cert: /etc/ssl/certs/wildcard.linaro.org.crt
-ssl_key: /etc/ssl/private/wildcard.linaro.org.key
-ssl_ca_cert: /etc/ssl/certs/gd_bundle-g2-g1.pem
-
-apache_modules_disable:
- - mpm_prefork
-
-apache_modules:
- - ssl
- - wsgi
- - xsendfile
- - rewrite
- - mpm_worker
+s3_purge_releases: false
+# Cleans up expired tokens in the DB
+token_cleanup: false
diff --git a/group_vars/publishing-docker b/group_vars/publishing_docker
index 7c0ac3c0..2654d78d 100644
--- a/group_vars/publishing-docker
+++ b/group_vars/publishing_docker
@@ -8,13 +8,10 @@ apache_modules:
- rewrite
# Docker
+docker_host: yes
llp_docker_image: 'linaro/ci-amd64-llp-alpine'
llp_port: '8080'
-ssl_cert: /etc/letsencrypt/live/{{inventory_hostname}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{inventory_hostname}}/privkey.pem
-ssl_ca_cert: /etc/letsencrypt/live/{{inventory_hostname}}/fullchain.pem
-
login_groups:
- systems
- team-builds-and-baselines
diff --git a/group_vars/publishing_docker_site b/group_vars/publishing_docker_site
new file mode 100644
index 00000000..0cbcfb19
--- /dev/null
+++ b/group_vars/publishing_docker_site
@@ -0,0 +1,14 @@
+---
+hostname: "{{inventory_hostname}}"
+sitename: "{{hostname}}"
+
+process_report: false
+s3_sanity: false
+s3_purge: false
+s3_purge_releases: false
+# Cleans up expired tokens in the DB
+token_cleanup: false
+
+llp_port: 8080
+llp_docker_image: 'linaro/ci-amd64-llp-alpine'
+no_atom: yes
diff --git a/group_vars/weblogs b/group_vars/weblogs
deleted file mode 100644
index 46abb112..00000000
--- a/group_vars/weblogs
+++ /dev/null
@@ -1,2 +0,0 @@
-django_project_repo: http://git.linaro.org/git/infrastructure/linaro-license-protection.git
-django_project_version: HEAD
diff --git a/host_vars/aarch64-09 b/host_vars/aarch64-09
new file mode 100644
index 00000000..0c6753f8
--- /dev/null
+++ b/host_vars/aarch64-09
@@ -0,0 +1,38 @@
+---
+gitlab_runner_url:
+ linaro: https://gitlab.com/
+ linaroltd: https://gitlab.com/
+ lava: https://gitlab.com/
+
+gitlab_executor: docker
+
+gitlab_runners:
+ - linaro
+ - linaroltd
+ - lava
+
+docker_compose_host: true
+
+login_groups:
+ - systems
+ - team-builds-and-baselines
+ - buildslave
+ - ssh_access_jenkins_slaves
+ - ubuntu
+ - lava-lab
+ - tuxsuite
+
+sudo_groups:
+ - systems
+ - team-builds-and-baselines
+ - ubuntu
+ - lava-lab
+ - tuxsuite
+
+lava_dispatcher_hostname: lkft-remote-qemu-arm01
+lava_server_hostname: lkft.validation.linaro.org
+
+docker_machine_url: https://gitlab-docker-machine-downloads.s3.amazonaws.com/v0.16.2-gitlab.19/docker-machine-Linux-aarch64
+docker_machine_sha: sha256:570856722b9bd0f69317e8cbfc906d04b40658857ed65a152ab23abb3e9bcaea
+
+
diff --git a/host_vars/aarch64-10 b/host_vars/aarch64-10
new file mode 100644
index 00000000..d3996088
--- /dev/null
+++ b/host_vars/aarch64-10
@@ -0,0 +1,24 @@
+gitlab_runner_url:
+ lkft: https://gitlab.com/
+ qcom: https://gitlab.com/
+ tuxmake: https://gitlab.com/
+ kir: https://gitlab.com/
+ lava-test-plans: https://gitlab.com/
+ tuxsuite: https://gitlab.com/
+ lavasoftware: https://git.lavasoftware.org/
+
+gitlab_executor: docker
+
+gitlab_runners:
+ - lkft
+ - qcom
+ - tuxmake
+ - kir
+ - lava-test-plans
+ - tuxsuite
+ - lavasoftware
+
+docker_compose_host: true
+
+lava_dispatcher_hostname: lkft-snow-qemu01
+lava_server_hostname: lkft.validation.linaro.org
diff --git a/host_vars/aarch64_08 b/host_vars/aarch64_08
deleted file mode 100644
index e8eab2c0..00000000
--- a/host_vars/aarch64_08
+++ /dev/null
@@ -1,5 +0,0 @@
-OBS_IP: 64.28.99.162
-OBS_JOBS: 64
-OBS_PORT: 5454
-OBS_TMPFS: 80000
-
diff --git a/host_vars/android-git-ap.linaro.org b/host_vars/android-git-ap.linaro.org
index c2f6f83b..6e9a16ef 100644
--- a/host_vars/android-git-ap.linaro.org
+++ b/host_vars/android-git-ap.linaro.org
@@ -12,3 +12,4 @@ dehydrated_dns_domains:
dehydrated_domains_txt: |
android-git.linaro.org
android-git-ap.linaro.org android-git.linaro.org
+ssh_ldap_uri: ldap://login.linaro.org
diff --git a/host_vars/android-git-ie.linaro.org b/host_vars/android-git-ie.linaro.org
index 776a54c8..5e275792 100644
--- a/host_vars/android-git-ie.linaro.org
+++ b/host_vars/android-git-ie.linaro.org
@@ -12,3 +12,5 @@ dehydrated_dns_domains:
dehydrated_domains_txt: |
android-git.linaro.org
android-git-ie.linaro.org android-git.linaro.org
+
+ssh_ldap_uri: ldap://login.linaro.org
diff --git a/host_vars/android-git-us.linaro.org b/host_vars/android-git-us.linaro.org
index 236917cf..f5688bce 100644
--- a/host_vars/android-git-us.linaro.org
+++ b/host_vars/android-git-us.linaro.org
@@ -11,6 +11,7 @@ dehydrated_http_domains:
- android.git.linaro.org
- android-us.linaro.org
- android-review.linaro.org
+ - android-git-us.ctt.linaro.org
dehydrated_dns_domains:
- android-git.linaro.org
@@ -18,4 +19,6 @@ dehydrated_dns_domains:
dehydrated_domains_txt: |
android-git.linaro.org
android-review.linaro.org
- android-git-us.linaro.org android.git.linaro.org android-us.linaro.org android-git.linaro.org
+ android-git-us.linaro.org android.git.linaro.org android-us.linaro.org android-git.linaro.org android-git-us.ctt.linaro.org
+
+ssh_ldap_uri: ldaps://login.linaro.org
diff --git a/host_vars/android-review.linaro.org b/host_vars/android-review.linaro.org
index a9bb0c3b..fa123f9e 100644
--- a/host_vars/android-review.linaro.org
+++ b/host_vars/android-review.linaro.org
@@ -1,3 +1,4 @@
+---
hosttype: git-review
server_role: git-review
db_user: gerrit2
@@ -5,8 +6,18 @@ gerrit_host: android-review.linaro.org
host_site_name: Linaro Android Code Review
grokmirror_master: true
gerrit_managed: yes
+gerrit_mem: 17000m
+gerrit_config_server_id: a4163a8149697d974147442c0000013a
dovecot_user: "{{gerrit_config_dovecot_user}}"
dovecot_password: "{{gerrit_config_dovecot_password}}"
ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
ssl_ca: "{{ssl_cert}}"
+
+apache_ldap_uri: ldaps://login.linaro.org
+ssh_ldap_uri: ldaps://login.linaro.org
+
+postfix_destinations: ["android-review.linaro.org","android-git-us.linaro.org"]
+postfix_hostname: "android-review.linaro.org"
+
+no_atom: yes
diff --git a/host_vars/android.linaro.org b/host_vars/android.linaro.org
index 72730f53..d0e9aaaf 100644
--- a/host_vars/android.linaro.org
+++ b/host_vars/android.linaro.org
@@ -1,3 +1,16 @@
+---
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+dehydrated_http_domains:
+ - android.linaro.org
+
+dehydrated_dns_domains: []
+
+dehydrated_domains_txt: |
+ android.linaro.org
+
login_groups:
- systems
- android-internal
diff --git a/host_vars/armhf-01 b/host_vars/armhf-01
deleted file mode 100644
index 69ed5619..00000000
--- a/host_vars/armhf-01
+++ /dev/null
@@ -1,5 +0,0 @@
-OBS_IP: 64.28.99.162
-OBS_JOBS: 4
-OBS_PORT: 5454
-OBS_TMPFS: 0
-scaleway: yes
diff --git a/host_vars/bugs.96boards.org b/host_vars/bugs.96boards.org
new file mode 100644
index 00000000..2cb9bab6
--- /dev/null
+++ b/host_vars/bugs.96boards.org
@@ -0,0 +1,3 @@
+---
+postfix_allow_inbound: true
+mailbox_command: procmail -a "$EXTENSION"
diff --git a/host_vars/bugs.linaro.org b/host_vars/bugs.linaro.org
new file mode 100644
index 00000000..67b1708e
--- /dev/null
+++ b/host_vars/bugs.linaro.org
@@ -0,0 +1,12 @@
+---
+postfix_allow_inbound: true
+mailbox_command: procmail -a "$EXTENSION"
+
+dehydrated_http_domains:
+ - bugs.linaro.org
+ - bugs.ctt.linaro.org
+
+dehydrated_dns_domains: []
+
+dehydrated_domains_txt: |
+ bugs.linaro.org bugs.ctt.linaro.org
diff --git a/host_vars/buildkite.ctt.linaro.org b/host_vars/buildkite.ctt.linaro.org
new file mode 100644
index 00000000..8123a7ac
--- /dev/null
+++ b/host_vars/buildkite.ctt.linaro.org
@@ -0,0 +1,15 @@
+---
+login_groups:
+ - systems
+ - its
+ - linaro-engineering
+ - ubuntu
+
+sudo_groups:
+ - systems
+ - its
+
+sudoers:
+ - mathieu.poirier
+
+docker_host: true
diff --git a/host_vars/builds.96boards.org b/host_vars/builds.96boards.org
index adaeb385..c2ee236b 100644
--- a/host_vars/builds.96boards.org
+++ b/host_vars/builds.96boards.org
@@ -2,10 +2,7 @@ sitename: 96 Boards Builds
secrets_file: 96boards-secrets.py
header_override: 96boards_header.html
-ssl_cert: /etc/ssl/certs/wildcard.96boards.org.crt
-ssl_key: /etc/ssl/private/wildcard.96boards.org.key
-ssl_ca_cert: /etc/ssl/certs/gd_bundle-g2-g1.pem
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
-process_report: true
-s3_purge: true
-s3_purge_options: "--prefix=production/snapshots" \ No newline at end of file
diff --git a/host_vars/ci.linaro.org b/host_vars/ci.linaro.org
new file mode 100644
index 00000000..567d9c5d
--- /dev/null
+++ b/host_vars/ci.linaro.org
@@ -0,0 +1,72 @@
+
+jenkins_ssh_known_hosts: "ssh/known_hosts"
+jenkins_etc_hosts:
+ {
+ "bkp-01.tcwglab":"192.168.17.22",
+ "bkp-01.tcwglab.linaro.org":"51.148.40.55",
+ "build-01.tcwglab tcwg-x86_64-build-01.tcwglab":"192.168.16.5",
+ "build-02.tcwglab tcwg-x86_64-build-02.tcwglab":"192.168.16.6",
+ "build-03.tcwglab tcwg-x86_64-build-03.tcwglab":"192.168.16.7",
+ "build-04.tcwglab tcwg-x86_64-build-04.tcwglab":"192.168.16.8",
+ "build-05.tcwglab tcwg-x86_64-build-05.tcwglab":"192.168.16.9",
+ "build-06.tcwglab tcwg-x86_64-build-06.tcwglab":"192.168.16.10",
+ "build-07.tcwglab tcwg-x86_64-build-07.tcwglab":"192.168.16.11",
+ "build-08.tcwglab tcwg-x86_64-build-08.tcwglab":"192.168.16.12",
+ "build-09.tcwglab tcwg-x86_64-build-09.tcwglab":"192.168.16.13",
+ "build-10.tcwglab tcwg-x86_64-build-10.tcwglab":"192.168.16.14",
+ "dev-01.tcwglab tcwg-x86_64-dev-01.tcwglab":"192.168.17.10",
+ "dev-02.tcwglab tcwg-x86_64-dev-02.tcwglab":"192.168.17.15",
+ "linaro-armv8-01.tcwglab tcwg-llvmbot_d05-01.tcwglab":"147.75.199.202",
+ "linaro-thx1-01.tcwglab tcwg-llvmbot_thx1-01.tcwglab":"147.75.195.254",
+ "llvm-apm-test-01.tcwglab tcwg-llvm_apm-01.tcwglab":"192.168.16.70",
+ "llvm-tk1-01.tcwglab tcwg-llvmbot_tk1-01.tcwglab":"192.168.18.1",
+ "llvm-tk1-02.tcwglab tcwg-llvmbot_tk1-02.tcwglab":"192.168.18.2",
+ "llvm-tk1-03.tcwglab tcwg-llvmbot_tk1-03.tcwglab":"192.168.18.3",
+ "llvm-tk1-04.tcwglab tcwg-llvmbot_tk1-04.tcwglab":"192.168.18.4",
+ "llvm-tk1-05.tcwglab tcwg-llvmbot_tk1-05.tcwglab":"192.168.18.5",
+ "llvm-tk1-06.tcwglab tcwg-llvmbot_tk1-06.tcwglab":"192.168.18.6",
+ "llvm-tk1-07.tcwglab tcwg-llvmbot_tk1-07.tcwglab":"192.168.18.7",
+ "llvm-tk1-08.tcwglab tcwg-llvmbot_tk1-08.tcwglab":"192.168.18.8",
+ "llvm-tk1-09.tcwglab tcwg-llvmbot_tk1-09.tcwglab":"192.168.18.9",
+ "llvm-tk1-test-01.tcwglab tcwg-llvm_tk1-01.tcwglab":"192.168.18.51",
+ "tcwg-amp-01.tcwglab":"139.178.82.90",
+ "tcwg-amp-02.tcwglab":"139.178.83.86",
+ "tcwg-apm-01.tcwglab":"192.168.16.20",
+ "tcwg-apm-02.tcwglab":"192.168.16.21",
+ "tcwg-apm-03.tcwglab":"192.168.16.24",
+ "tcwg-apm-04.tcwglab":"192.168.16.25",
+ "tcwg-d05-01.tcwglab":"147.75.106.138",
+ "tcwg-ex40-01.tcwglab":"148.251.136.42",
+ "tcwg-ex42-01.tcwglab":"95.216.72.225",
+ "tcwg-juno-01.tcwglab":"192.168.16.51",
+ "tcwg-m1-01.tcwglab":"213.146.141.80",
+ "tcwg-m1-02.tcwglab":"213.146.141.115",
+ "tcwg-m1-03.tcwglab":"213.146.141.96",
+ "tcwg-m1-04.tcwglab":"213.146.141.34",
+ "tcwg-sq-01.tcwglab":"192.168.16.41",
+ "tcwg-sq-02.tcwglab":"192.168.16.42",
+ "tcwg-thx1-01.tcwglab":"147.75.77.198",
+ "tcwg-tk1-01.tcwglab":"192.168.18.151",
+ "tcwg-tk1-02.tcwglab":"192.168.18.152",
+ "tcwg-tk1-03.tcwglab":"192.168.18.153",
+ "tcwg-tk1-04.tcwglab":"192.168.18.154",
+ "tcwg-tk1-05.tcwglab":"192.168.18.155",
+ "tcwg-tk1-06.tcwglab":"192.168.18.156",
+ "tcwg-tk1-07.tcwglab":"192.168.18.157",
+ "tcwg-tk1-08.tcwglab":"192.168.18.158",
+ "tcwg-tk1-09.tcwglab":"192.168.18.159",
+ "tcwg-tk1-10.tcwglab":"192.168.18.199",
+ "tcwg-tx1-01.tcwglab":"192.168.18.101",
+ "tcwg-tx1-02.tcwglab":"192.168.18.102",
+ "tcwg-tx1-03.tcwglab":"192.168.18.103",
+ "tcwg-tx1-04.tcwglab":"192.168.18.104",
+ "tcwg-tx1-05.tcwglab":"192.168.18.105",
+ "tcwg-tx1-06.tcwglab":"192.168.18.106",
+ "tcwg-tx1-07.tcwglab":"192.168.18.107",
+ "tcwg-tx1-08.tcwglab":"192.168.18.108",
+ "tcwg-tx1-09.tcwglab":"192.168.18.198",
+ "git.kernel.org":"139.178.84.217",
+ "gitlab.com":"172.65.251.78",
+ "staging-git.codelinaro.org":"13.248.132.111",
+ }
+
diff --git a/host_vars/ci.staging.trustedfirmware.org b/host_vars/ci.staging.trustedfirmware.org
new file mode 100644
index 00000000..44a62389
--- /dev/null
+++ b/host_vars/ci.staging.trustedfirmware.org
@@ -0,0 +1,41 @@
+---
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+dehydrated_http_domains:
+ - "{{inventory_hostname}}"
+ - ci-builds.staging.trustedfirmware.org
+ - docs.staging.trustedfirmware.org
+dehydrated_dns_domains: []
+dehydrated_domains_txt: |
+ {{inventory_hostname}} ci-builds.staging.trustedfirmware.org docs.staging.trustedfirmware.org
+
+# Docker
+jenkins_master_image: 'trustedfirmware/ci-x86_64-jenkins-master-debian:lts'
+jenkins_master_container_name: 'jenkins'
+jenkins_master_data_container_name: 'jenkins_data'
+jenkins_master_data_volume: '/srv/jenkins'
+
+jenkins_master_port: '8080'
+jenkins_master_slaves_port: '2233'
+jenkins_master_sshd_port: '2222'
+jenkins_jnlp_port: '50000'
+jenkins_ssh_known_hosts: "ssh/known_hosts_tf"
+
+jenkins_java_opts: "-server -Xmx8192m -XX:+AlwaysPreTouch -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/jenkins/heapdump.log -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -XX:MaxMetaspaceExpansion=64M -Djenkins.model.Jenkins.logStartupPerformance=true -Djava.awt.headless=true -Dhudson.slaves.WorkspaceList='_' -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=30 -Dorg.eclipse.jetty.server.Request.maxFormContentSize=1000000"
+
+login_groups:
+ - systems
+ - ubuntu
+ - trustedfirmware-infrastructure
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
+
+jenkins_ports:
+ - "{{ jenkins_master_port }}"
+ - "{{ jenkins_master_sshd_port }}"
+ - "{{ jenkins_master_slaves_port }}"
+ - "{{ jenkins_jnlp_port }}"
diff --git a/host_vars/ci.trustedfirmware.org b/host_vars/ci.trustedfirmware.org
index 6f3a7ce2..205cdccc 100644
--- a/host_vars/ci.trustedfirmware.org
+++ b/host_vars/ci.trustedfirmware.org
@@ -1,10 +1,47 @@
---
+ansible_python_interpreter: /usr/bin/python3
+docker_host: true
+
ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
-ssl_ca_cert: "{{ssl_cert}}"
+ssl_ca: "{{ssl_cert}}"
dehydrated_http_domains:
- "{{inventory_hostname}}"
+ - ci-builds.trustedfirmware.org
+ - tf-m-reference.trustedfirmware.org
+ - tf-m-user-guide.trustedfirmware.org
dehydrated_dns_domains: []
dehydrated_domains_txt: |
- {{inventory_hostname}}
+ {{inventory_hostname}} ci-builds.trustedfirmware.org tf-m-reference.trustedfirmware.org tf-m-user-guide.trustedfirmware.org
+
+# Docker
+jenkins_master_image: 'trustedfirmware/ci-x86_64-jenkins-master-debian:lts'
+jenkins_master_container_name: 'jenkins'
+jenkins_master_data_container_name: 'jenkins_data'
+jenkins_master_data_volume: '/srv/jenkins'
+
+jenkins_master_port: '8080'
+jenkins_master_slaves_port: '2233'
+jenkins_master_sshd_port: '2222'
+jenkins_jnlp_port: '50000'
+jenkins_ssh_known_hosts: "ssh/known_hosts_tf"
+
+jenkins_java_opts: "-server -Xmx8192m -XX:+AlwaysPreTouch -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/jenkins/heapdump.log -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -XX:MaxMetaspaceExpansion=64M -Djenkins.model.Jenkins.logStartupPerformance=true -Djava.awt.headless=true -Dhudson.slaves.WorkspaceList='_' -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=30 -Dorg.eclipse.jetty.server.Request.maxFormContentSize=1000000 -Dhudson.util.AtomicFileWriter.DISABLE_FORCED_FLUSH=true"
+
+login_groups:
+ - systems
+ - ubuntu
+ - trustedfirmware-flexnet
+ - trustedfirmware-infrastructure
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
+
+jenkins_ports:
+ - "{{ jenkins_master_port }}"
+ - "{{ jenkins_master_sshd_port }}"
+ - "{{ jenkins_master_slaves_port }}"
+ - "{{ jenkins_jnlp_port }}"
+
diff --git a/host_vars/deployments.ctt.linaro.org b/host_vars/deployments.ctt.linaro.org
new file mode 100644
index 00000000..77930767
--- /dev/null
+++ b/host_vars/deployments.ctt.linaro.org
@@ -0,0 +1,17 @@
+---
+# copied from /admin/runners
+gitlab_runner_url:
+ original: https://gitlab.com/
+gitlab_executor: docker
+
+gitlab_runners:
+ - original
+
+login_groups:
+ - systems
+ - its
+ - ubuntu
+
+sudo_groups:
+ - systems
+ - its
diff --git a/host_vars/dev-private-git.linaro.org b/host_vars/dev-private-git.linaro.org
index 6378eaf4..ae5a9645 100644
--- a/host_vars/dev-private-git.linaro.org
+++ b/host_vars/dev-private-git.linaro.org
@@ -3,7 +3,7 @@ hosttype: git-main
git_host: dev-private-git.linaro.org
host_site_name: Linaro Private Git Hosting
security_groups: linaro-login-users
-gitolite_help_url: https://wiki.linaro.org/Internal/Platform/Systems/GitPrivate
+gitolite_help_url: https://linaro.atlassian.net/wiki/spaces/SYS/pages/22526329597/Private+Git+and+Gerrit
mirror_fetch_cronspec: "0 0,6,12,18 * * *"
mirror_push_cronspec: "0 2,8,14,20 * * *"
@@ -32,9 +32,34 @@ dehydrated_http_domains:
- northstar-git.linaro.org
- socionext-customer-git.linaro.org
- acadine-git.linaro.org
+ - dev-private-git.ctt.linaro.org
dehydrated_dns_domains: []
dehydrated_domains_txt: |
- dev-private-git.linaro.org zte.git.linaro.org zte-git.linaro.org northstar-git.linaro.org socionext-customer-git.linaro.org acadine-git.linaro.org
- dev-private-review.linaro.org
+ dev-private-git.linaro.org zte.git.linaro.org zte-git.linaro.org northstar-git.linaro.org socionext-customer-git.linaro.org acadine-git.linaro.org dev-private-git.ctt.linaro.org
+ dev-private-review.linaro.org dev-private-git.ctt.linaro.org
+
+cgit_hide_repos:
+ - All-Users.git
+ - All-Projects.git
+ - Aes-Projects.git
+ - All-Users-Projects.git
+ - Android-Internal-Projects.git
+ - Android-Projects.git
+ - AndroidPdk-Projects.git
+ - DevOps-Projects.git
+ - EAS-Projects.git
+ - GitPM-Projects.git
+ - LinaroArt-Projects.git
+ - Northstar-Projects.git
+ - Qualcomm-Landing-Team-Project.git
+ - Restricted-Benchmarks-Projects.git
+ - Schneider-Projects.git
+ - Systems-Projects.git
+ - TCWG-Projects.git
+ - Titan-Projects.git
+ - Widevine-Projects.git
+ - ZTE-Projects.git
+ - gitolite-admin.git
+ - systems-projects.git
diff --git a/host_vars/dev-private-review.linaro.org b/host_vars/dev-private-review.linaro.org
index f6d7a013..f832e414 100644
--- a/host_vars/dev-private-review.linaro.org
+++ b/host_vars/dev-private-review.linaro.org
@@ -1,3 +1,4 @@
+---
apache_ldap_bind: cn=git-private,ou=binders,dc=linaro,dc=org
hosttype: git-review
server_role: git-review
@@ -6,8 +7,15 @@ gerrit_host: dev-private-review.linaro.org
host_site_name: Linaro Private Git Hosting
server_access: private
gerrit_managed: yes
+gerrit_mem: 7500m
+gerrit_config_server_id: de1a279aa3260ca21c75df8e534ecb4d
dovecot_user: "{{gerrit_config_dovecot_user}}"
dovecot_password: "{{gerrit_config_dovecot_password}}"
ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
ssl_ca: "{{ssl_cert}}"
ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+
+postfix_destinations: ["dev-private-review.linaro.org","dev-private-git-us.linaro.org"]
+postfix_hostname: "dev-private-review.linaro.org"
+
+no_atom: yes
diff --git a/host_vars/developer.trustedfirmware.org b/host_vars/developer.trustedfirmware.org
index 7848a965..71f1e24a 100644
--- a/host_vars/developer.trustedfirmware.org
+++ b/host_vars/developer.trustedfirmware.org
@@ -1,12 +1,25 @@
---
-ssl_cert: /etc/letsencrypt/live/{{inventory_hostname}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{inventory_hostname}}/privkey.pem
-ssl_ca: /etc/letsencrypt/live/{{inventory_hostname}}/fullchain.pem
-certbot_domains: ["developer.trustedfirmware.org","issues.trustedfirmware.org"]
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+dehydrated_http_domains:
+ - developer.trustedfirmware.org
+ - issues.trustedfirmware.org
+
+dehydrated_dns_domains: []
+
+dehydrated_domains_txt: |
+ developer.trustedfirmware.org issues.trustedfirmware.org
login_groups:
- - systems
- its
+ - systems
+ - trustedfirmware-infrastructure
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
postfix_hostname: developer.trustedfirmware.org
postfix_destinations: ["developer.trustedfirmware.org","issues.trustedfirmware.org"]
diff --git a/host_vars/eclair.trustedfirmware.org b/host_vars/eclair.trustedfirmware.org
new file mode 100644
index 00000000..a1e08533
--- /dev/null
+++ b/host_vars/eclair.trustedfirmware.org
@@ -0,0 +1,59 @@
+---
+login_groups:
+ - systems
+ - ubuntu
+ - trustedfirmware-flexnet
+ - trustedfirmware-infrastructure
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
+
+docker_host: true
+
+flexnet_access:
+ - 51.159.20.54
+ - 51.159.1.37
+ - 51.148.40.7
+ - 51.159.22.224
+ - 51.159.20.12
+
+ufw_open_ports:
+ - 22
+
+ufw_open_docker_ports:
+# x86-TF-01
+ - "51.159.1.37:1947"
+ - "51.159.1.37:2080"
+ - "51.159.1.37:27000"
+ - "51.159.1.37:27020"
+# x86-TF-02
+ - "51.159.20.54:1947"
+ - "51.159.20.54:2080"
+ - "51.159.20.54:27000"
+ - "51.159.20.54:27020"
+# x86-TF-03
+ - "51.159.22.224:1947"
+ - "51.159.22.224:2080"
+ - "51.159.22.224:27000"
+ - "51.159.22.224:27020"
+# x86-TF-04
+ - "51.159.20.12:1947"
+ - "51.159.20.12:2080"
+ - "51.159.20.12:27000"
+ - "51.159.20.12:27020"
+# Lab
+ - "51.148.40.7:1947"
+ - "51.148.40.7:2080"
+ - "51.148.40.7:27000"
+ - "51.148.40.7:27020"
+# ci.staging.trustedfirmware.org
+ - "3.225.239.230:1947"
+ - "3.225.239.230:2080"
+ - "3.225.239.230:27000"
+ - "3.225.239.230:27020"
+# ci.trustedfirmware.org
+ - "195.154.87.69:1947"
+ - "195.154.87.69:2080"
+ - "195.154.87.69:27000"
+ - "195.154.87.69:27020"
diff --git a/host_vars/elk.linaro.org b/host_vars/elk.linaro.org
index 2831641c..730c9d42 100644
--- a/host_vars/elk.linaro.org
+++ b/host_vars/elk.linaro.org
@@ -1,4 +1,5 @@
---
+ansible_python_interpreter: /usr/bin/python
# Apache LDAP
apache_ldap_uri: "ldaps://login.linaro.org"
apache_ldap_bind: cn=git-private,ou=binders,dc=linaro,dc=org
@@ -11,21 +12,82 @@ login_groups:
ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
-ssl_ca_cert: "{{ssl_cert}}"
+ssl_ca: "{{ssl_cert}}"
dehydrated_http_domains:
- "{{inventory_hostname}}"
- lava-monitoring.linaro.org
+ - elasticsearch.linaro.org
+ - systems-monitoring.linaro.org
dehydrated_dns_domains: []
dehydrated_domains_txt: |
- {{inventory_hostname}} lava-monitoring.linaro.org
+ lava-monitoring.linaro.org
+ elasticsearch.linaro.org
+ systems-monitoring.linaro.org
+ elk.linaro.org lava-monitoring.linaro.org elasticsearch.linaro.org systems-monitoring.linaro.org
ufw_open_ports:
- 22
- 80
- 443
+docker_compose_host: true
+
+# would be ideal to get this from the running config
+postfix_networks: 172.17.0.0/16
+# we need to allow inbound mail because elk is running elastalert in
+# docker. From postfix's point of view, the docker container is an
+# external server, so we have to let it relay.
+# Note: a firewall rule to allow traffic on port 25 from docker net is
+# also required.
+postfix_allow_inbound: true
+
+# Elasticsearch
docker_container_elasticsearch_name: elasticsearch-production
docker_container_elk_name: lk-production
+elk_root: /srv/elk-production
+es_network_name: elasticsearch
+
+# Kibiter
+kibiter_root: "{{ elk_root }}/kibiter"
+docker_image_kibiter_local: linaro/kibiter-linaro
+docker_container_name_kibiter: "monitoring-{{ monitoring_team }}"
+docker_port_kibiter: 5605 # monitoring-systems port
+kibana_index: ".kibiter{{ monitoring_team }}"
+
+docker_elasticsearch_ufw_whitelist:
+ - 82.45.78.181
+ - 51.148.40.0/24
+ - 82.71.243.0/24
+ - 81.128.185.0/24
+ - 144.76.6.139
+ - 213.133.116.86
+ - 78.46.190.194
+ - 148.251.140.195
+ - 148.251.184.94
+ - 188.40.51.209
+ - 188.40.92.0/24
+ - 138.201.52.83
+ - 88.99.28.0/24
+ - 88.99.59.232
+ - 88.99.149.141
+ - 51.15.185.142
+ - 62.210.248.0/24
+ - 217.140.96.140
+ - 217.140.106.0/24
+ - 73.14.250.0/24
+ - 3.80.150.227
+
+docker_container_name_ea: elastalert
+
+# should be docker gateway
+ea_smtp_host: 172.17.0.1
+ea_from_addr: elastalert@elk.linaro.org
+ea_mailto_address: "{{ mailto_address }}"
+
+metricbeat_enabled_modules:
+ - docker
+ - elasticsearch
-docker_elk_vol: /srv/elk-production
+# phased in launch of this service. Eventually will move to 'all'.
+install_node_exporter: true
diff --git a/host_vars/flexnet-aws.trustedfirmware.org b/host_vars/flexnet-aws.trustedfirmware.org
new file mode 100644
index 00000000..9656f4ad
--- /dev/null
+++ b/host_vars/flexnet-aws.trustedfirmware.org
@@ -0,0 +1,70 @@
+---
+login_groups:
+ - systems
+ - ubuntu
+ - trustedfirmware-flexnet
+ - trustedfirmware-infrastructure
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
+
+docker_host: true
+
+docker_image_flexnet: trustedfirmware/flexnet:backup-20230110
+
+flexnet_access:
+ - 51.159.20.54
+ - 51.159.1.37
+ - 51.148.40.7
+ - 51.159.22.224
+ - 51.159.20.12
+ - 51.159.20.18
+
+ufw_open_ports:
+ - 22
+ - 2080
+ - 27000
+ - 27020
+
+ufw_open_docker_ports:
+# x86-TF-01
+ - "51.159.1.37:1947"
+ - "51.159.1.37:2080"
+ - "51.159.1.37:27000"
+ - "51.159.1.37:27020"
+# x86-TF-02
+ - "51.159.20.54:1947"
+ - "51.159.20.54:2080"
+ - "51.159.20.54:27000"
+ - "51.159.20.54:27020"
+# x86-TF-03
+ - "51.159.22.224:1947"
+ - "51.159.22.224:2080"
+ - "51.159.22.224:27000"
+ - "51.159.22.224:27020"
+# x86-TF-04
+ - "51.159.20.12:1947"
+ - "51.159.20.12:2080"
+ - "51.159.20.12:27000"
+ - "51.159.20.12:27020"
+# x86-TF-05
+ - "51.159.20.18:1947"
+ - "51.159.20.18:2080"
+ - "51.159.20.18:27000"
+ - "51.159.20.18:27020"
+# Lab
+ - "51.148.40.7:1947"
+ - "51.148.40.7:2080"
+ - "51.148.40.7:27000"
+ - "51.148.40.7:27020"
+# ci.staging.trustedfirmware.org
+ - "3.225.239.230:1947"
+ - "3.225.239.230:2080"
+ - "3.225.239.230:27000"
+ - "3.225.239.230:27020"
+# ci.trustedfirmware.org
+ - "51.15.160.227:1947"
+ - "51.15.160.227:2080"
+ - "51.15.160.227:27000"
+ - "51.15.160.227:27020"
diff --git a/host_vars/flexnet.trustedfirmware.org b/host_vars/flexnet.trustedfirmware.org
new file mode 100644
index 00000000..a87ab75d
--- /dev/null
+++ b/host_vars/flexnet.trustedfirmware.org
@@ -0,0 +1,60 @@
+---
+login_groups:
+ - systems
+ - ubuntu
+ - trustedfirmware-flexnet
+ - trustedfirmware-infrastructure
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
+
+docker_host: true
+docker_image_flexnet: trustedfirmware/flexnet
+
+flexnet_access:
+ - 51.159.20.54
+ - 51.159.1.37
+ - 51.148.40.7
+ - 51.159.22.224
+ - 51.159.20.12
+
+ufw_open_ports:
+ - 22
+
+ufw_open_docker_ports:
+# x86-TF-01
+ - "51.159.1.37:1947"
+ - "51.159.1.37:2080"
+ - "51.159.1.37:27000"
+ - "51.159.1.37:27020"
+# x86-TF-02
+ - "51.159.20.54:1947"
+ - "51.159.20.54:2080"
+ - "51.159.20.54:27000"
+ - "51.159.20.54:27020"
+# x86-TF-03
+ - "51.159.22.224:1947"
+ - "51.159.22.224:2080"
+ - "51.159.22.224:27000"
+ - "51.159.22.224:27020"
+# x86-TF-04
+ - "51.159.20.12:1947"
+ - "51.159.20.12:2080"
+ - "51.159.20.12:27000"
+ - "51.159.20.12:27020"
+# Lab
+ - "51.148.40.7:1947"
+ - "51.148.40.7:2080"
+ - "51.148.40.7:27000"
+ - "51.148.40.7:27020"
+# ci.staging.trustedfirmware.org
+ - "3.225.239.230:1947"
+ - "3.225.239.230:2080"
+ - "3.225.239.230:27000"
+ - "3.225.239.230:27020"
+# ci.trustedfirmware.org
+ - "51.159.57.81:1947"
+ - "51.159.57.81:2080"
+ - "51.159.57.81:27000"
+ - "51.159.57.81:27020"
diff --git a/host_vars/gerrit.devboardsforandroid.linaro.org b/host_vars/gerrit.devboardsforandroid.linaro.org
new file mode 100644
index 00000000..1f290203
--- /dev/null
+++ b/host_vars/gerrit.devboardsforandroid.linaro.org
@@ -0,0 +1,52 @@
+---
+hosttype: git-review
+server_role: git-review
+#db_user: gerrit2
+gerrit_host: gerrit.devboardsforandroid.linaro.org
+host_site_name: Linaro Dev Boards for Android Code Review
+grokmirror_master: false
+
+gerrit_managed: yes
+gerrit_http_username: git
+gerrit_http_base: http://localhost:8080
+gerrit_mem: 4000m
+gerrit_config_server_id: 8f6f209b-eb1a-4cbf-aa44-c8bc30e9bfda
+gerrit_oauth: yes
+gerrit_github_oauth_id: bfe5b324c057fe64896c
+gerrit_gitiles: yes
+gerrit_no_update_keys: yes
+gerrit_autosubmitter: yes
+
+dovecot_user: "{{gerrit_config_dovecot_user}}"
+dovecot_password: "{{gerrit_config_dovecot_password}}"
+
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+
+# Note: this also sets up config for android-review.linaro.org cert
+dehydrated_http_domains:
+ - gerrit.devboardsforandroid.linaro.org
+ - source.devboardsforandroid.linaro.org
+
+dehydrated_dns_domains: []
+
+dehydrated_domains_txt: |
+ gerrit.devboardsforandroid.linaro.org
+ source.devboardsforandroid.linaro.org
+
+apache_ldap_uri: ldaps://login.linaro.org
+ssh_ldap_uri: ldaps://login.linaro.org
+
+postfix_destinations: ["gerrit.devboardsforandroid.linaro.org"]
+postfix_hostname: "gerrit.devboardsforandroid.linaro.org"
+
+login_groups:
+ - systems
+ - ubuntu
+ - team-android-engineering
+
+sudo_groups:
+ - systems
+ - team-android-engineering
diff --git a/host_vars/gerrit.forge.aws.linaro.com b/host_vars/gerrit.forge.aws.linaro.com
new file mode 100644
index 00000000..12c03602
--- /dev/null
+++ b/host_vars/gerrit.forge.aws.linaro.com
@@ -0,0 +1,38 @@
+---
+hosttype: git-review
+server_role: git-review
+db_user: git
+gerrit_host: gerrit.forge.aws.linaro.com
+grokmirror_master: true
+host_site_name: Linaro Forge Code Review
+gerrit_managed: yes
+gerrit_mem: 8192m
+gerrit_config_server_id: e33910f19b7abb192b83adbd000000bf
+ssl_cert: /etc/ssl/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/ssl/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+gerrit_checksum: md5:79a1831604ae601ed310ca6a9c66899e
+gerrit_version: 3.8.1
+gerrit_plugin_version: 3.3
+
+postfix_destinations: ["gerrit.forge.aws.linaro.com"]
+postfix_hostname: "gerrit.forge.aws.linaro.com"
+
+apache_ldap_uri: ldaps://login.linaro.org
+ssh_ldap_uri: ldaps://login.linaro.org
+
+skip_dovecot: true
+
+prometheus_scrape_user: null
+prometheus_scrape_password: null
+
+login_groups:
+ - systems
+ - its
+ - forge-gerrit-admins
+
+sudo_groups:
+ - systems
+ - its
+ - forge-gerrit-admins
diff --git a/host_vars/git-ap.linaro.org b/host_vars/git-ap.linaro.org
deleted file mode 100644
index 7c991c7a..00000000
--- a/host_vars/git-ap.linaro.org
+++ /dev/null
@@ -1,22 +0,0 @@
-server_role: git-main
-git_master: git-us.linaro.org
-git_host: git.linaro.org
-host_site_name: Linaro Git Hosting
-server_access: public
-hosttype: git-slave
-grokmirror_slave: true
-git_bundle_whitelist: git-main-bundle-include.txt
-google_analytics: True
-ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
-ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
-ssl_ca: "{{ssl_cert}}"
-dehydrated_http_domains:
- - git-ap.linaro.org
-
-dehydrated_dns_domains:
- - git.linaro.org
-
-dehydrated_domains_txt: |
- git.linaro.org
- git-ap.linaro.org git.linaro.org
-
diff --git a/host_vars/git-ie.linaro.org b/host_vars/git-ie.linaro.org
deleted file mode 100644
index 7e135087..00000000
--- a/host_vars/git-ie.linaro.org
+++ /dev/null
@@ -1,22 +0,0 @@
-server_role: git-main
-git_master: git-us.linaro.org
-git_host: git.linaro.org
-host_site_name: Linaro Git Hosting
-server_access: public
-hosttype: git-slave
-grokmirror_slave: true
-git_bundle_whitelist: git-main-bundle-include.txt
-google_analytics: True
-ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
-ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
-ssl_ca: "{{ssl_cert}}"
-dehydrated_http_domains:
- - git-ie.linaro.org
-
-dehydrated_dns_domains:
- - git.linaro.org
-
-dehydrated_domains_txt: |
- git.linaro.org
- git-ie.linaro.org git.linaro.org
-
diff --git a/host_vars/git-us.linaro.org b/host_vars/git-us.linaro.org
index f5d470b4..d24b5b34 100644
--- a/host_vars/git-us.linaro.org
+++ b/host_vars/git-us.linaro.org
@@ -12,19 +12,34 @@ google_analytics: True
mirror_fetch_cronspec: "*/10 * * * *"
mirror_push_cronspec: "5-55/10 * * * *"
-ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
-ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_cert: /etc/dehydrated/certs/git.linaro.org/fullchain.pem
+ssl_key: /etc/dehydrated/certs/git.linaro.org/privkey.pem
ssl_ca: "{{ssl_cert}}"
# Note: this also sets up config for android-review.linaro.org cert
dehydrated_http_domains:
- git-us.linaro.org
- review.linaro.org
+ - git-us.ctt.linaro.org
dehydrated_dns_domains:
- git.linaro.org
dehydrated_domains_txt: |
- git.linaro.org
- review.linaro.org
- git-us.linaro.org git.linaro.org
+ git-us.linaro.org
+ review.linaro.org git-us.ctt.linaro.org
+ git-us.ctt.linaro.org git.linaro.org git-us.linaro.org
+
+ssh_ldap_uri: ldap://login.linaro.org
+
+cgit_hide_repos:
+ - All-Users.git
+ - All-Projects.git
+ - ArmML-Projects.git
+ - Schneider-Projects.git
+ - leg/ccix
+ - AES-Projects.git
+ - LT-Qualcomm-Projects.git
+ - QA-Projects.git
+ - Toolchain-Projects.git
+ - Toolchain-Upstream-Mirrors.git
diff --git a/host_vars/git.mlplatform.org b/host_vars/git.mlplatform.org
index 65a8388a..ce467f2d 100644
--- a/host_vars/git.mlplatform.org
+++ b/host_vars/git.mlplatform.org
@@ -2,13 +2,28 @@ server_role: git-review
hosttype: git-nonlinaro
git_host: git.mlplatform.org
-certbot_host_domain: git.mlplatform.org
-ssl_cert: /etc/letsencrypt/live/{{certbot_host_domain}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{certbot_host_domain}}/privkey.pem
-ssl_ca: /etc/letsencrypt/live/{{certbot_host_domain}}/fullchain.pem
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+dehydrated_http_domains:
+ - "{{inventory_hostname}}"
+ - review.mlplatform.org
+dehydrated_dns_domains: []
+dehydrated_domains_txt: |
+ review.mlplatform.org
+ {{inventory_hostname}}
host_site_name: ARM ML Code Review
host_site_desc: Git Repositories hosted by Linaro
clone_urls:
- https://{{inventory_hostname}}
cgit_strict_export: false
+
+cgit_hide_repos:
+ - All-Users.git
+ - All-Projects.git
+ - ArmML-Projects.git
+ - ml/ethos-u.git
+ - armnn.git
+
diff --git a/host_vars/git.morello-project.org b/host_vars/git.morello-project.org
new file mode 100644
index 00000000..13b31907
--- /dev/null
+++ b/host_vars/git.morello-project.org
@@ -0,0 +1,101 @@
+---
+sshd_port: 2222
+docker_host: yes
+docker_image_name: "gitlab/gitlab-ee:16.0.5-ee.0"
+dovecot_user: gitlab
+dovecot_allow_plaintext_auth: true
+postfix_allow_inbound: true
+postfix_networks: 172.17.0.0/16
+gitlab_mail_server: smtp
+
+#Leaving this in as an example of how to get oauth working
+#oauth_github_app_id: 5cfb58f2db190e0eedca
+
+gitlab_config: |
+ external_url 'https://{{ inventory_hostname }}/'
+ nginx['custom_nginx_config'] = "include /etc/gitlab/nginx.d/*.conf;"
+ gitlab_rails['lfs_enabled'] = true
+ gitlab_rails['monitoring_whitelist'] = ['44.202.41.10']
+ letsencrypt['alt_names'] = ['git.morelloproject.org']
+ {{ gitlab_config_outbound_mail }}
+ {{ gitlab_config_inbound_mail }}
+ {{ gitlab_config_object_storage }}
+ {{ gitlab_config_limits }}
+#Leaving this in as an example of how to get oauth working
+# {{ gitlab_config_oauth }}
+
+gitlab_config_object_storage: |
+ gitlab_rails['object_store']['enabled'] = true
+ gitlab_rails['object_store']['proxy_download'] = true
+ gitlab_rails['object_store']['connection'] = {
+ 'provider' => 'AWS',
+ 'region' => 'us-east-1',
+ 'use_iam_profile' => true,
+ }
+ gitlab_rails['object_store']['objects']['artifacts']['bucket'] = 'morello-gl-artifacts'
+ gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = 'morello-gl-external-diffs'
+ gitlab_rails['object_store']['objects']['lfs']['bucket'] = 'morello-gl-lfs-objects'
+ gitlab_rails['object_store']['objects']['uploads']['bucket'] = 'morello-gl-uploads'
+ gitlab_rails['object_store']['objects']['packages']['bucket'] = 'morello-gl-packages'
+ gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = 'morello-gl-dependency-proxy'
+ gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = 'morello-gl-terraform-state'
+
+gitlab_config_limits: |
+ gitaly['configuration'] = {
+ concurrency: [
+ {
+ rpc: '/gitaly.SmartHTTPService/PostUploadPackWithSidechannel',
+ max_per_repo: 100
+ },
+ {
+ rpc: '/gitaly.SSHService/SSHUploadPackWithSidechannel',
+ max_per_repo: 100
+ },
+ ],
+ }
+
+gitlab_config_outbound_mail: |
+ gitlab_rails['gitlab_email_enabled'] = true
+ gitlab_rails['gitlab_email_from'] = 'gitlab@{{ inventory_hostname }}'
+ gitlab_rails['gitlab_email_display_name'] = 'Morello Project Gitlab'
+ gitlab_rails['gitlab_email_reply_to'] = 'noreply@{{ inventory_hostname }}'
+ gitlab_rails['gitlab_email_subject_suffix'] = ''
+ gitlab_rails['gitlab_email_smime_enabled'] = false
+ gitlab_rails['smtp_enable'] = true
+ gitlab_rails['smtp_address'] = "{{ gitlab_mail_server }}"
+ gitlab_rails['smtp_port'] = 25
+ gitlab_rails['smtp_domain'] = "{{ gitlab_mail_server }}"
+ gitlab_rails['smtp_tls'] = false
+ gitlab_rails['smtp_openssl_verify_mode'] = 'none'
+ gitlab_rails['smtp_enable_starttls_auto'] = false
+ gitlab_rails['smtp_tls'] = false
+ gitlab_rails['smtp_force_tls'] = false
+
+gitlab_config_inbound_mail: |
+ gitlab_rails['incoming_email_enabled'] = true
+ gitlab_rails['incoming_email_address'] = "gitlab@git.morello-project.org"
+ gitlab_rails['incoming_email_email'] = "{{ dovecot_user }}"
+ gitlab_rails['incoming_email_password'] = "{{ dovecot_password }}"
+ gitlab_rails['incoming_email_host'] = "{{ gitlab_mail_server }}"
+ gitlab_rails['incoming_email_port'] = 143
+ gitlab_rails['incoming_email_ssl'] = false
+ gitlab_rails['incoming_email_start_tls'] = false
+ gitlab_rails['incoming_email_mailbox_name'] = "inbox"
+ gitlab_rails['incoming_email_idle_timeout'] = 60
+ gitlab_rails['incoming_email_log_file'] = "/var/log/gitlab/mailroom/mail_room_json.log"
+ gitlab_rails['incoming_email_expunge_deleted'] = true
+
+#Leaving this in as an example of how to get oauth working
+#gitlab_config_oauth: |
+# gitlab_rails['omniauth_providers'] = [
+# {
+# "name" => "github",
+# "app_id" => "{{ oauth_github_app_id }}",
+# "app_secret" => "{{ oauth_github_secret }}",
+# "args" => { "scope" => "user:email" }
+# }
+# ]
+# gitlab_rails['omniauth_allow_single_sign_on'] = ['github']
+# gitlab_rails['omniauth_block_auto_created_users'] = false
+# gitlab_rails['omniauth_sync_profile_from_provider'] = ['github']
+# gitlab_rails['omniauth_sync_profile_attributes'] = ['name', 'email', 'location']
diff --git a/host_vars/git.trustedfirmware.org b/host_vars/git.trustedfirmware.org
index cbc4fb82..e81ad82f 100644
--- a/host_vars/git.trustedfirmware.org
+++ b/host_vars/git.trustedfirmware.org
@@ -8,9 +8,49 @@ clone_urls:
- https://{{inventory_hostname}}
cgit_strict_export: false
-ssl_cert: /etc/letsencrypt/live/review.trustedfirmware.org/fullchain.pem
-ssl_key: /etc/letsencrypt/live/review.trustedfirmware.org/privkey.pem
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
ssl_ca: "{{ssl_cert}}"
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+
+dehydrated_http_domains:
+ - "{{inventory_hostname}}"
+ - review.trustedfirmware.org
+
+dehydrated_dns_domains: []
+
+dehydrated_domains_txt: |
+ review.trustedfirmware.org
+ {{inventory_hostname}}
+
+login_groups:
+ - git
+ - its
+ - ubuntu
+ - systems
+ - trustedfirmware-infrastructure
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
postfix_relay_hostname: smtp.mailgun.org
postfix_destinations: ["git.trustedfirmware.org","review.trustedfirmware.org"]
+
+collapsible_sections:
+ - ci
+ - next
+ - mirror
+
+cgit_hide_repos:
+ - All-Users.git
+ - All-Projects.git
+ - OP-TEE-Projects.git
+ - acces-right-test-tfm.git
+ - tls.git
+ - TF-A.git
+ - ci.git
+ - TF-M.git
+ - hafnium.git
+ - next.git
+ - TS.git
+ - tf-binaries.git
diff --git a/host_vars/gitlab-runner-manager-tuxtest.ctt.linaro.org b/host_vars/gitlab-runner-manager-tuxtest.ctt.linaro.org
new file mode 100644
index 00000000..95492ad7
--- /dev/null
+++ b/host_vars/gitlab-runner-manager-tuxtest.ctt.linaro.org
@@ -0,0 +1,9 @@
+---
+gitlab_runner_url:
+ original: https://gitlab.com/
+gitlab_executor: docker+machine
+docker_machine_url: https://gitlab-docker-machine-downloads.s3.amazonaws.com/v0.16.2-gitlab.19/docker-machine-Linux-aarch64
+docker_machine_sha: sha256:71b5f6f58de70718a619150aa06f7e0520c1de9ac1aaed6c43c4935e95ad081b
+
+gitlab_runners:
+ - original
diff --git a/host_vars/gitlab-runner-manager.lkft.org b/host_vars/gitlab-runner-manager.lkft.org
new file mode 100644
index 00000000..beaff9db
--- /dev/null
+++ b/host_vars/gitlab-runner-manager.lkft.org
@@ -0,0 +1,24 @@
+---
+# copied from /admin/runners
+# each runner_url needs to match a gitlab_runners entry, else playbook breaks
+gitlab_runner_url:
+ original: https://gitlab.com/
+ large: https://gitlab.com/
+ codelinaro: https://git.codelinaro.org/
+ codelinaro-staging: https://staging-git.codelinaro.org/
+
+gitlab_executor: docker+machine
+docker_machine_url: https://gitlab-docker-machine-downloads.s3.amazonaws.com/v0.16.2-gitlab.19/docker-machine-Linux-aarch64
+docker_machine_sha: sha256:570856722b9bd0f69317e8cbfc906d04b40658857ed65a152ab23abb3e9bcaea
+
+gitlab_runners:
+ - original
+ - large
+ - codelinaro
+ - codelinaro-staging
+
+login_groups:
+ - systems
+
+sudo_groups:
+ - systems
diff --git a/host_vars/gitlab-runner-manager.morello-project.org b/host_vars/gitlab-runner-manager.morello-project.org
new file mode 100644
index 00000000..ab58ef82
--- /dev/null
+++ b/host_vars/gitlab-runner-manager.morello-project.org
@@ -0,0 +1,20 @@
+---
+# copied from /admin/runners
+gitlab_runner_url:
+ original: https://git.morello-project.org/
+ arm64: https://git.morello-project.org/
+gitlab_executor: docker+machine
+docker_machine_url: https://gitlab-docker-machine-downloads.s3.amazonaws.com/v0.16.2-gitlab.19/docker-machine-Linux-aarch64
+docker_machine_sha: sha256:570856722b9bd0f69317e8cbfc906d04b40658857ed65a152ab23abb3e9bcaea
+
+login_groups:
+ - systems
+ - morello-infrastructure
+
+sudo_groups:
+ - systems
+ - morello-infrastructure
+
+gitlab_runners:
+ - original
+ - arm64
diff --git a/host_vars/gitlab-runner-manager.ovss.linaro.org b/host_vars/gitlab-runner-manager.ovss.linaro.org
new file mode 100644
index 00000000..6d61f503
--- /dev/null
+++ b/host_vars/gitlab-runner-manager.ovss.linaro.org
@@ -0,0 +1,17 @@
+---
+# copied from /admin/runners
+gitlab_runner_url:
+ original: https://gitlab.com/
+gitlab_executor: docker+machine
+docker_machine_url: https://gitlab-docker-machine-downloads.s3.amazonaws.com/main/docker-machine-Linux-x86_64
+docker_machine_sha: sha256:261af603f04009780061a4d46eb00f289d99971d34ba9a1ac1ebafcf99eaa98c
+ansible_python_interpreter: /usr/bin/python3
+
+gitlab_runners:
+ - original
+
+login_groups:
+ - systems
+
+sudo_groups:
+ - systems
diff --git a/host_vars/gitlab-runner.morello-project.org b/host_vars/gitlab-runner.morello-project.org
new file mode 100644
index 00000000..53ca05f7
--- /dev/null
+++ b/host_vars/gitlab-runner.morello-project.org
@@ -0,0 +1,16 @@
+---
+# copied from /admin/runners
+gitlab_runner_url:
+ original: https://git.morello-project.org/
+gitlab_executor: docker
+
+gitlab_runners:
+ - original
+
+login_groups:
+ - systems
+ - morello-infrastructure
+
+sudo_groups:
+ - systems
+ - morello-infrastructure
diff --git a/host_vars/grafana.linaro.org b/host_vars/grafana.linaro.org
new file mode 100644
index 00000000..416cd580
--- /dev/null
+++ b/host_vars/grafana.linaro.org
@@ -0,0 +1,38 @@
+---
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+dehydrated_http_domains:
+ - grafana.linaro.org
+
+dehydrated_dns_domains: []
+
+dehydrated_domains_txt: |
+ grafana.linaro.org
+
+login_groups:
+ - systems
+ - lava-team
+
+sudo_groups:
+ - systems
+ - lava-team
+
+db_username: grafana
+db_hostname: dbhost
+db_database: grafana
+
+grafana_ldap_host: login.linaro.org
+grafana_ldap_bind: cn=systems-bind,ou=binders,dc=linaro,dc=org
+grafana_ldap_base: ou=accounts,dc=linaro,dc=org
+
+apache_modules:
+ - proxy
+ - proxy_http
+
+grafana_network_name: grafana
+docker_network_prometheus: "{{ grafana_network_name }}"
+docker_apache: true
+docker_bridgenet: "{{ grafana_network_name }}"
+apache_network: "{{ grafana_network_name }}"
diff --git a/host_vars/j12-qrep-01 b/host_vars/j12-qrep-01
index 93fc018a..54f8ae98 100644
--- a/host_vars/j12-qrep-01
+++ b/host_vars/j12-qrep-01
@@ -9,4 +9,5 @@ login_groups:
- buildslave
- ssh_access_jenkins_slaves
+no_ldap: yes
diff --git a/host_vars/lava-monitoring.linaro.org b/host_vars/lava-monitoring.linaro.org
new file mode 100644
index 00000000..aaa15633
--- /dev/null
+++ b/host_vars/lava-monitoring.linaro.org
@@ -0,0 +1,41 @@
+
+docker_host: yes
+docker_apache: yes
+apache_network: "{{es_network_name}}"
+ansible_python_interpreter: /usr/bin/python
+no_atom: yes
+
+# Kibiter
+kibiter_root: "/srv/kibiter/{{inventory_hostname}}"
+docker_image_kibiter_local: linaro/kibiter-linaro
+docker_container_name_kibiter: "monitoring-{{ monitoring_team }}"
+docker_port_kibiter: 5604
+kibana_index: ".kibiter{{ monitoring_team }}"
+docker_container_elasticsearch_name: elasticsearch-production
+kibiter_project_name: "Cambridge Lab Systems"
+
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+# Elastalert
+# change this to lava errors email
+monitoring_team: lavalab
+ea_mailto_address: lava-lab-team@linaro.org
+es_network_name: elasticsearch
+
+hb_external_monitors:
+ icmp:
+ # lite, lng, and pmwg have same IP
+ # as validation.l.o
+ - validation.linaro.org
+ - lkft.validation.linaro.org
+ - tf.validation.linaro.org
+ https:
+ - validation.linaro.org
+ - ledge.validation.linaro.org
+ - lkft.validation.linaro.org
+ - lkft-staging.validation.linaro.org
+ - lite.validation.linaro.org
+ - pmwg.validation.linaro.org
+ - tf.validation.linaro.org
diff --git a/host_vars/lava.morello-project.org b/host_vars/lava.morello-project.org
new file mode 100644
index 00000000..7f837c9f
--- /dev/null
+++ b/host_vars/lava.morello-project.org
@@ -0,0 +1,12 @@
+---
+ansible_python_interpreter: /usr/bin/python3
+
+docker_host: true
+
+login_groups:
+ - systems
+ - morello-infrastructure
+
+sudo_groups:
+ - systems
+ - morello-infrastructure
diff --git a/host_vars/leg-aarch64-01 b/host_vars/leg-aarch64-01
new file mode 100644
index 00000000..a2c5cbab
--- /dev/null
+++ b/host_vars/leg-aarch64-01
@@ -0,0 +1,2 @@
+jenkins_ip: 172.16.101.15
+no_ldap: yes
diff --git a/host_vars/lhg-review.linaro.org b/host_vars/lhg-review.linaro.org
deleted file mode 100644
index f7a28ec6..00000000
--- a/host_vars/lhg-review.linaro.org
+++ /dev/null
@@ -1,23 +0,0 @@
-hosttype: git-review
-server_role: git-review
-db_user: lhg
-gerrit_host: lhg-review.linaro.org
-host_site_name: Linaro Home Group Code Review
-server_access: private
-gerrit_managed: yes
-dovecot_user: "{{gerrit_config_dovecot_user}}"
-dovecot_password: "{{gerrit_config_dovecot_password}}"
-ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
-ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
-ssl_ca: "{{ssl_cert}}"
-
-security_groups: linaro-lhg-dev infrastructure its
-gitolite_help_url: https://wiki.linaro.org/Platform/Systems/GitLHG
-
-dehydrated_http_domains:
- - lhg-review.linaro.org
-
-dehydrated_dns_domains: []
-
-dehydrated_domains_txt: |
- lhg-review.linaro.org
diff --git a/host_vars/mmwg-hackbox.linaro.org b/host_vars/lite-cloud.ctt.linaro.org
index dac4adfd..33fd10f0 100644
--- a/host_vars/mmwg-hackbox.linaro.org
+++ b/host_vars/lite-cloud.ctt.linaro.org
@@ -1,7 +1,7 @@
login_groups:
- systems
- - mmwg-team
+ - lava-lab-team
sudo_groups:
- systems
- - mmwg-team
+ - lava-lab-team
diff --git a/host_vars/mbedtls.trustedfirmware.org b/host_vars/mbedtls.trustedfirmware.org
new file mode 100644
index 00000000..822c50a1
--- /dev/null
+++ b/host_vars/mbedtls.trustedfirmware.org
@@ -0,0 +1,42 @@
+---
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+dehydrated_http_domains:
+ - "{{inventory_hostname}}"
+ - mbedtls-builds.trustedfirmware.org
+dehydrated_dns_domains: []
+dehydrated_domains_txt: |
+ {{inventory_hostname}} mbedtls-builds.trustedfirmware.org
+
+# Docker
+jenkins_master_image: 'trustedfirmware/ci-x86_64-jenkins-master-debian:lts'
+jenkins_master_container_name: 'jenkins'
+jenkins_master_data_container_name: 'jenkins_data'
+jenkins_master_data_volume: '/srv/jenkins'
+
+jenkins_master_port: '8080'
+jenkins_master_slaves_port: '2233'
+jenkins_master_sshd_port: '2222'
+jenkins_jnlp_port: '50000'
+jenkins_ssh_known_hosts: "ssh/known_hosts_tf"
+
+jenkins_java_opts: "-server -Xmx8192m -XX:+AlwaysPreTouch -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/jenkins/heapdump.log -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -XX:MaxMetaspaceExpansion=64M -Djenkins.model.Jenkins.logStartupPerformance=true -Djava.awt.headless=true -Dhudson.slaves.WorkspaceList='_' -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=30 -Dorg.eclipse.jetty.server.Request.maxFormContentSize=1000000"
+
+login_groups:
+ - systems
+ - ubuntu
+ - trustedfirmware-infrastructure
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
+
+jenkins_ports:
+ - "{{ jenkins_master_port }}"
+ - "{{ jenkins_master_sshd_port }}"
+ - "{{ jenkins_master_slaves_port }}"
+ - "{{ jenkins_jnlp_port }}"
+
+docker_host: true
diff --git a/host_vars/obs-bastion-cn1.linaro.cloud b/host_vars/obs-bastion-cn1.linaro.cloud
deleted file mode 100644
index fdd1d55d..00000000
--- a/host_vars/obs-bastion-cn1.linaro.cloud
+++ /dev/null
@@ -1,8 +0,0 @@
-obsdata_fstype: ext4
-obsdata_dev: /dev/sdb
-obsbackup_fstype: ext4
-obsbackup_dev: /dev/sdc
-debian_mirror: http://mirrors.ustc.edu.cn/debian/
-login_groups:
- - systems
- - ssh_access_backup
diff --git a/host_vars/obs-bastion-us1.linaro.cloud b/host_vars/obs-bastion-us1.linaro.cloud
deleted file mode 100644
index a80a7d4d..00000000
--- a/host_vars/obs-bastion-us1.linaro.cloud
+++ /dev/null
@@ -1,5 +0,0 @@
-obsdata_fstype: ext4
-obsdata_dev: /dev/sdb
-obsbackup_fstype: ext4
-obsbackup_dev: /dev/sdc
-debian_mirror: http://deb.debian.org/debian
diff --git a/host_vars/obs-server-cn1.linaro.cloud b/host_vars/obs-server-cn1.linaro.cloud
deleted file mode 100644
index 40cd3e98..00000000
--- a/host_vars/obs-server-cn1.linaro.cloud
+++ /dev/null
@@ -1 +0,0 @@
-hostname: obs-dev.linaro.org
diff --git a/host_vars/obs-server-us1.linaro.cloud b/host_vars/obs-server-us1.linaro.cloud
deleted file mode 100644
index 689ce4dc..00000000
--- a/host_vars/obs-server-us1.linaro.cloud
+++ /dev/null
@@ -1 +0,0 @@
-hostname: obs.linaro.org
diff --git a/host_vars/obs.linaro.org b/host_vars/obs.linaro.org
new file mode 100644
index 00000000..4ae741b5
--- /dev/null
+++ b/host_vars/obs.linaro.org
@@ -0,0 +1,23 @@
+---
+apache_modules:
+ - rewrite
+
+dehydrated_dns_domains: []
+dehydrated_http_domains:
+ - obs.linaro.org
+
+dehydrated_domains_txt: |
+ obs.linaro.org
+
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+login_users:
+ - systems
+ - its
+ - ubuntu
+
+sudo_users:
+ - systems
+ - its
diff --git a/host_vars/patches-gcc.linaro.org b/host_vars/patches-gcc.linaro.org
deleted file mode 100644
index 2384992c..00000000
--- a/host_vars/patches-gcc.linaro.org
+++ /dev/null
@@ -1,8 +0,0 @@
-ssl_cert: /etc/letsencrypt/live/{{inventory_hostname}}/cert.pem
-ssl_key: /etc/letsencrypt/live/{{inventory_hostname}}/privkey.pem
-ssl_ca_cert: /etc/letsencrypt/live/{{inventory_hostname}}/chain.pem
-
-login_groups:
- - systems
-
-django_email_cron: True
diff --git a/host_vars/patches.linaro.org b/host_vars/patches.linaro.org
index 26c8861a..5a926ca2 100644
--- a/host_vars/patches.linaro.org
+++ b/host_vars/patches.linaro.org
@@ -1 +1,12 @@
-django_version: 1.8.18
+---
+dehydrated_http_domains:
+ - patches.linaro.org
+ - patches.ctt.linaro.org
+dehydrated_dns_domains: []
+dehydrated_domains_txt: |
+ patches.linaro.org patches.ctt.linaro.org
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+postfix_allow_inbound: true
+ansible_python_interpreter: /usr/bin/python3
diff --git a/host_vars/patches.opendataplane.org b/host_vars/patches.opendataplane.org
deleted file mode 100644
index 84160cca..00000000
--- a/host_vars/patches.opendataplane.org
+++ /dev/null
@@ -1,4 +0,0 @@
----
-django_email_cron: True
-
-postfix_destinations: ["patches.opendataplane.org"]
diff --git a/host_vars/publishing-ap.linaro.org b/host_vars/publishing-ap.linaro.org
deleted file mode 100644
index 55b4bd48..00000000
--- a/host_vars/publishing-ap.linaro.org
+++ /dev/null
@@ -1,32 +0,0 @@
-sites:
- - releases-ap.linaro.org:
- secrets_file: "secrets/publishing-servers/releases-ap.linaro.org"
- apache_aliases:
- - releases.linaro.org
- apache_redirects: |
- RedirectMatch "/components/toolchain/binaries/gcc-8" "https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/"
- RedirectMatch "/components/toolchain/gcc-linaro/gcc-8" "https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/"
- ProxyPass /components/toolchain/binaries/gcc-8 !
- ProxyPass /components/toolchain/gcc-linaro/gcc-8 !
- ssl_cert: /etc/dehydrated/certs/releases-ap.linaro.org/fullchain.pem
- ssl_ca: /etc/dehydrated/certs/releases-ap.linaro.org/fullchain.pem
- ssl_key: /etc/dehydrated/certs/releases-ap.linaro.org/privkey.pem
- process_report: true
-
-login_groups:
- - systems
- - team-builds-and-baselines
- - its
-
-sudo_groups:
- - systems
- - its
-
-dehydrated_http_domains:
- - releases-ap.linaro.org
-dehydrated_dns_domains:
- - releases.linaro.org
-
-dehydrated_domains_txt: |
- releases.linaro.org
- releases-ap.linaro.org releases.linaro.org
diff --git a/host_vars/publishing-ie.linaro.org b/host_vars/publishing-ie.linaro.org
new file mode 100644
index 00000000..0e17b51e
--- /dev/null
+++ b/host_vars/publishing-ie.linaro.org
@@ -0,0 +1,43 @@
+---
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+sites:
+ - releases-ie.linaro.org:
+ secrets_file: "secrets/publishing-servers/releases-ie.linaro.org"
+ apache_aliases:
+ - releases.linaro.org
+ apache_redirects: |
+ RedirectMatch "/components/toolchain/binaries/gcc-8" "https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/"
+ RedirectMatch "/components/toolchain/gcc-linaro/gcc-8" "https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/"
+ ProxyPass /components/toolchain/binaries/gcc-8 !
+ ProxyPass /components/toolchain/gcc-linaro/gcc-8 !
+ ssl_cert: /etc/dehydrated/certs/releases-ie.linaro.org/fullchain.pem
+ ssl_ca: /etc/dehydrated/certs/releases-ie.linaro.org/fullchain.pem
+ ssl_key: /etc/dehydrated/certs/releases-ie.linaro.org/privkey.pem
+
+login_groups:
+ - systems
+ - team-builds-and-baselines
+ - its
+
+sudo_groups:
+ - systems
+ - its
+
+dehydrated_http_domains:
+ - releases-ie.linaro.org
+ - testdata.validation.linaro.org
+ - builds.96boards.org
+ - testdata.linaro.org
+ - publishing-ie.ctt.linaro.org
+dehydrated_dns_domains:
+ - releases.linaro.org
+
+dehydrated_domains_txt: |
+ releases.linaro.org
+ releases-ie.linaro.org releases.linaro.org publishing-ie.ctt.linaro.org
+ testdata.linaro.org testdata.validation.linaro.org publishing-ie.ctt.linaro.org
+ builds.96boards.org publishing-ie.ctt.linaro.org
+ publishing-ie.ctt.linaro.org
diff --git a/host_vars/qcom-hackbox.linaro.org b/host_vars/qcom-hackbox.linaro.org
index e74f6395..b615b743 100644
--- a/host_vars/qcom-hackbox.linaro.org
+++ b/host_vars/qcom-hackbox.linaro.org
@@ -1,8 +1,10 @@
---
login_groups:
- systems
- - linaro-landing-team-qualcomm-personnel
+ - qcom-hackbox
sudo_groups:
- systems
- - linaro-landing-team-qualcomm-personnel
+ - qcom-hackbox
+
+ansible_python_interpreter: /usr/bin/python3
diff --git a/host_vars/qcom-hackbox2.linaro.org b/host_vars/qcom-hackbox2.linaro.org
deleted file mode 120000
index 358a84ad..00000000
--- a/host_vars/qcom-hackbox2.linaro.org
+++ /dev/null
@@ -1 +0,0 @@
-qcom-hackbox.linaro.org \ No newline at end of file
diff --git a/host_vars/qcom-proxy.linaro.org b/host_vars/qcom-proxy.linaro.org
index 48769eca..4d239241 100644
--- a/host_vars/qcom-proxy.linaro.org
+++ b/host_vars/qcom-proxy.linaro.org
@@ -1,3 +1,12 @@
login_groups:
- systems
- - linaro-landing-team-qualcomm-personnel
+ - linaro-landing-team-qualcomm-lab
+ - lava
+
+sudo_groups:
+ - systems
+
+sudoers:
+ - anibal.limon
+ - nicolas.dechesne
+ - bjorn.andersson
diff --git a/host_vars/r1-x86-1.aus-colo.linaro.org b/host_vars/r1-x86-1.aus-colo.linaro.org
deleted file mode 100644
index 61ad3d27..00000000
--- a/host_vars/r1-x86-1.aus-colo.linaro.org
+++ /dev/null
@@ -1,70 +0,0 @@
-serial_console_script: serial-connect-dl320
-
-serial_console_mappings:
- - host: r1-s1
- port: t1-p16
- - host: r1-s2
- port: t1-p15
-
- - host: r1-a1
- port: t1-p1
- - host: r1-a2
- port: t1-p2
- - host: r1-a3
- port: t2-p7
- - host: r1-a4
- port: t1-p4
- - host: r1-a5
- port: t1-p5
- - host: r1-a6
- port: t1-p6
- - host: r1-a7
- port: t1-p7
- - host: r1-a8
- port: t1-p8
- - host: r1-a9
- port: t1-p9
- - host: r1-a10
- port: t1-p10
- - host: r1-a11
- port: t1-p11
- - host: r1-a12
- port: t1-p12
- - host: r1-a13
- port: t1-p13
- - host: r1-a14
- port: t1-p14
- - host: r1-a15
- port: t2-p1
- - host: r1-a16
- port: t2-p2
- - host: r1-a17
- port: t2-p3
- - host: r1-a18
- port: t2-p4
- - host: r1-a19
- port: t2-p5
- - host: r1-a20
- port: t2-p6
- - host: r1-a21
- port: t2-p13
- - host: r1-a22
- port: t2-p14
-
- - host: r1-a30
- port: t2-p8
- - host: r1-a32
- port: t2-p9
- - host: r1-a34
- port: t2-p10
- - host: r1-a35
- port: t2-p11
- - host: r1-a36
- port: t2-p12
- - host: r1-a37
- port: t2-p15
-
-serial_console_admins:
- - name: ben.copeland
- - name: kelley.spoon
- - name: riku.voipio
diff --git a/host_vars/r2-a19.aus-colo.linaro.org b/host_vars/r2-a19.aus-colo.linaro.org
deleted file mode 100644
index 8102d436..00000000
--- a/host_vars/r2-a19.aus-colo.linaro.org
+++ /dev/null
@@ -1,5 +0,0 @@
-OBS_IP: 10.20.0.1
-OBS_JOBS: 8
-OBS_PORT: 5454
-OBS_TMPFS: 50000
-
diff --git a/host_vars/r2-x86-1.aus-colo.linaro.org b/host_vars/r2-x86-1.aus-colo.linaro.org
deleted file mode 100644
index 704be331..00000000
--- a/host_vars/r2-x86-1.aus-colo.linaro.org
+++ /dev/null
@@ -1,76 +0,0 @@
-serial_console_script: serial-connect-dl320
-
-serial_console_mappings:
- - host: r2-s1
- port: t1-p16
- - host: r2-s2
- port: t1-p15
-
- - host: r2-a1
- port: t1-p1
- - host: r2-a2
- port: t1-p2
- - host: r2-a3
- port: t1-p3
- - host: r2-a4
- port: t1-p4
- - host: r2-a5
- port: t1-p5
- - host: r2-a6
- port: t1-p6
- - host: r2-a7
- port: t1-p7
- - host: r2-a8
- port: t1-p8
- - host: r2-a9
- port: t1-p9
- - host: r2-a10
- port: t1-p10
- - host: r2-a11
- port: t1-p11
- - host: r2-a12
- port: t1-p12
- - host: r2-a13
- port: t1-p13
- - host: r2-a14
- port: t1-p14
- - host: r2-a15
- port: t2-p1
- - host: r2-a16
- port: t2-p2
- - host: r2-a17
- port: t2-p3
- - host: r2-a18
- port: t2-p4
- - host: r2-a19
- port: t2-p5
- - host: r2-a20
- port: t2-p6
- - host: r2-a21
- port: t2-p10
- - host: r2-a22
- port: t2-p11
- - host: r2-a23
- port: t2-p13
- - host: r2-a24
- port: t2-p14
- - host: r2-a25
- port: t2-p16
- - host: r2-a26
- port: t3-p1
- - host: r2-a27
- port: t3-p2
- - host: r2-a28
- port: t3-p3
-
- - host: r2-a30
- port: t2-p7
- - host: r2-a32
- port: t2-p8
- - host: r2-a34
- port: t2-p9
-
-serial_console_admins:
- - name: ben.copeland
- - name: kelley.spoon
- - name: riku.voipio
diff --git a/host_vars/r3-x86-1.aus-colo.linaro.org b/host_vars/r3-x86-1.aus-colo.linaro.org
deleted file mode 100644
index 2ceb96b2..00000000
--- a/host_vars/r3-x86-1.aus-colo.linaro.org
+++ /dev/null
@@ -1,16 +0,0 @@
-serial_console_script: serial-connect-dl120
-
-serial_console_mappings:
- - host: r3-s1
- port: t1-p16
- - host: r3-s3
- port: t1-p5
- baud: 9600
-
- - host: r3-m1
- port: t1-p4
-
-serial_console_admins:
- - name: ben.copeland
- - name: kelley.spoon
- - name: riku.voipio
diff --git a/host_vars/releases-ap.linaro.org b/host_vars/releases-ap.linaro.org
deleted file mode 100644
index d704fdfd..00000000
--- a/host_vars/releases-ap.linaro.org
+++ /dev/null
@@ -1,5 +0,0 @@
-sitename: Linaro Releases
-secrets_file: releases-ap.linaro.org
-publishing_host: releases-ap.linaro.org
-
-process_report: true
diff --git a/host_vars/releases-ara-mdk.linaro.org b/host_vars/releases-ara-mdk.linaro.org
deleted file mode 100644
index dbe6d4c7..00000000
--- a/host_vars/releases-ara-mdk.linaro.org
+++ /dev/null
@@ -1 +0,0 @@
-sitename: Project Ara MDK Releases
diff --git a/host_vars/releases-ie.linaro.org b/host_vars/releases-ie.linaro.org
new file mode 100644
index 00000000..f175bf75
--- /dev/null
+++ b/host_vars/releases-ie.linaro.org
@@ -0,0 +1,22 @@
+---
+sitename: Linaro Releases
+secrets_file: "{{inventory_hostname}}"
+publishing_host: "{{inventory_hostname}}"
+llp_port: '8080'
+
+process_report: true
+
+# dehydrated config removed to publishing host's config
+
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+apache_aliases:
+ - releases.linaro.org
+
+apache_redirects: |
+ RedirectMatch "/components/toolchain/binaries/gcc-8" "https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/"
+ RedirectMatch "/components/toolchain/gcc-linaro/gcc-8" "https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/"
+ ProxyPass /components/toolchain/binaries/gcc-8 !
+ ProxyPass /components/toolchain/gcc-linaro/gcc-8 !
diff --git a/host_vars/releases-us.linaro.org b/host_vars/releases-us.linaro.org
deleted file mode 100644
index 589ddf4c..00000000
--- a/host_vars/releases-us.linaro.org
+++ /dev/null
@@ -1,11 +0,0 @@
-sitename: Linaro Releases
-secrets_file: releases-us.linaro.org
-publishing_host: releases.linaro.org
-
-certbot_domains: ["releases-us.linaro.org","builds.96boards.org","releases.linaro.org"]
-ssl_cert: /etc/letsencrypt/live/{{inventory_hostname}}/cert.pem
-ssl_key: /etc/letsencrypt/live/{{inventory_hostname}}/privkey.pem
-ssl_ca_cert: /etc/letsencrypt/live/{{inventory_hostname}}/chain.pem
-
-process_report: true
-s3_sanity: true
diff --git a/host_vars/review.linaro.org b/host_vars/review.linaro.org
index df3d36ac..e0f7b313 100644
--- a/host_vars/review.linaro.org
+++ b/host_vars/review.linaro.org
@@ -1,3 +1,4 @@
+---
hosttype: git-review
server_role: git-review
db_user: git
@@ -5,8 +6,19 @@ gerrit_host: review.linaro.org
grokmirror_master: true
host_site_name: Linaro Code Review
gerrit_managed: yes
+gerrit_mem: 18000m
+gerrit_config_server_id: f33910f19b7abb192b83adbd000000bf
dovecot_user: "{{gerrit_config_dovecot_user}}"
dovecot_password: "{{gerrit_config_dovecot_password}}"
ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
ssl_ca: "{{ssl_cert}}"
+
+# temporarily use LDAP on Ubuntu 14.04
+apache_ldap_uri: ldap://login.linaro.org
+ssh_ldap_uri: ldap://login.linaro.org
+
+postfix_destinations: ["review.linaro.org","git-us.linaro.org"]
+postfix_hostname: "review.linaro.org"
+
+no_atom: yes
diff --git a/host_vars/review.mlplatform.org b/host_vars/review.mlplatform.org
index a604ffee..6d8f7136 100644
--- a/host_vars/review.mlplatform.org
+++ b/host_vars/review.mlplatform.org
@@ -1,3 +1,4 @@
+---
hosttype: foo # Using git-review tags causes a bunch of "Linaro" stuff to get deployed which we don't want
server_role: git-review
git_host: git.mlplatform.org
@@ -8,17 +9,22 @@ host_site_name: ARM ML Code Review
gerrit_managed: yes
gerrit_oauth: yes
gerrit_avatars: yes
+gerrit_verify: yes
+gerrit_mem: 8000m
+gerrit_github_oauth_id: c9573d41459955d81f3a
+gerrit_config_server_id: e7c18949-9f1d-4125-8f68-54b4bb1f6e6e
-certbot_domains: ["review.mlplatform.org","git.mlplatform.org"]
-certbot_host_domain: review.mlplatform.org
+gerrit_version: 3.3.1
+gerrit_checksum: md5:79e58a145e92fc712b76ed3aa1989f60
-ssl_cert: /etc/letsencrypt/live/{{certbot_host_domain}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{certbot_host_domain}}/privkey.pem
-ssl_ca: /etc/letsencrypt/live/{{certbot_host_domain}}/fullchain.pem
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
-postfix_relay_hostname: smtp.mailgun.org
postfix_destinations: ["review.mlplatform.org"]
postfix_hostname: "review.mlplatform.org"
dovecot_user: "{{gerrit_config_dovecot_user}}"
dovecot_password: "{{gerrit_config_dovecot_password}}"
+
+no_atom: yes
diff --git a/host_vars/review.trustedfirmware.org b/host_vars/review.trustedfirmware.org
index 1417b2fe..34f49ca3 100644
--- a/host_vars/review.trustedfirmware.org
+++ b/host_vars/review.trustedfirmware.org
@@ -1,3 +1,4 @@
+---
hosttype: foo # Using git-review tags causes a bunch of "Linaro" stuff to get deployed which we don't want
server_role: git-review
git_host: git.trustedfirmware.org
@@ -7,16 +8,17 @@ host_site_name: Trusted Firmware Code Review
gerrit_managed: yes
gerrit_oauth: yes
+gerrit_verify: yes
+gerrit_mem: 15000m
+gerrit_config_server_id: 8f6f209b-db1a-4cbf-aa44-c8bc30e9bfda
-certbot_domains: ["git.trustedfirmware.org","review.trustedfirmware.org"]
-certbot_host_domain: review.trustedfirmware.org
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_ca: "{{ssl_cert}}"
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
-ssl_cert: /etc/letsencrypt/live/{{certbot_host_domain}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{certbot_host_domain}}/privkey.pem
-ssl_ca: /etc/letsencrypt/live/{{certbot_host_domain}}/fullchain.pem
-
-postfix_relay_hostname: smtp.mailgun.org
postfix_destinations: ["git.trustedfirmware.org","review.trustedfirmware.org"]
dovecot_user: "{{gerrit_config_dovecot_user}}"
dovecot_password: "{{gerrit_config_dovecot_password}}"
+
+no_atom: yes
diff --git a/host_vars/router.aus-colo.linaro.org b/host_vars/router.aus-colo.linaro.org
deleted file mode 100644
index f95bcf5f..00000000
--- a/host_vars/router.aus-colo.linaro.org
+++ /dev/null
@@ -1,724 +0,0 @@
-configure_vpn: true
-
-login_groups:
- - aus-colo
- - aus-colo-users
- - users
-
-vlans:
- - ifname: em1.10
- address: 10.10.0.1/16
- device: em1
- - ifname: em1.20
- address: 10.20.0.1/16
- device: em1
- - ifname: em1.30
- address: 10.30.0.1/16
- device: em1
- - ifname: em1.33
- address: 10.33.0.1/16
- device: em1
- - ifname: em1.64
- address: 10.64.0.1/16
- device: em1
- masquerade: false
-
-racks:
- - name: r1
- hosts:
- # Infrastructure machines
- - mac: "28:80:23:90:58:c0"
- name: r1-x86-1
- ip: 10.10.0.10
- pxe: false
- - mac: "00:02:99:12:25:96"
- name: r1-pm-123
- ip: 10.10.0.11
- pxe: false
- - mac: "00:02:99:12:25:6c"
- name: r1-pm-456
- ip: 10.10.0.12
- pxe: false
- - mac: "00:0c:15:01:35:75"
- name: r1-pm-ha
- ip: 10.10.0.13
- pxe: false
-
- # containers
- - mac: "00:16:3e:b7:02:4e"
- name: releases-us
- alias: releases.linaro.org
- ip: 10.10.0.201
- pxe: false
- - name: aus-colo-bastion # on r1-x86-1
- mac: 00:16:3e:e8:17:3a
- ip: 10.10.0.202
- pxe: false
- - mac: "00:16:3e:c1:8d:0a"
- name: mongo-bastion
- ip: 10.10.0.203
- pxe: false
- - mac: "00:16:3e:3d:5b:f4"
- name: qa-pxe
- ip: 10.10.0.204
- pxe: false
- - mac: "00:16:3e:ba:0d:52"
- name: publishing-us
- ip: 10.10.0.205
- pxe: false
-
- # MUSTANGS
- - mac: "00:01:73:02:02:88"
- name: r1-a1
- ip: 10.64.0.101
- - mac: "00:01:73:02:0f:90"
- name: r1-a2
- ip: 10.64.0.102
- - mac: "00:01:73:02:0d:35"
- name: r1-a3
- ip: 10.64.0.103
- - mac: "00:01:73:02:01:7c"
- name: r1-a4
- ip: 10.10.0.104
- - mac: "00:01:73:02:0a:f1"
- name: r1-a5
- ip: 10.10.0.105
- - mac: "00:01:73:02:10:40"
- name: r1-a6
- ip: 10.10.0.106
- - mac: "00:01:73:02:00:8c"
- name: r1-a7
- ip: 10.10.0.107
- - mac: "00:01:73:02:11:04"
- name: r1-a8
- ip: 10.10.0.108
- - mac: "00:01:73:02:0b:b5"
- name: r1-a9
- ip: 10.10.0.109
- - mac: "00:01:73:02:0a:1d"
- name: r1-a10
- ip: 10.10.0.110
- - mac: "00:01:73:02:1c:bc"
- name: r1-a11
- ip: 10.10.0.111
- - mac: "00:01:73:02:10:24"
- name: r1-a12
- ip: 10.10.0.112
- - mac: "00:01:73:02:10:fc"
- name: r1-a13
- ip: 10.10.0.113
- - mac: "00:01:73:02:1a:1c"
- name: r1-a14
- ip: 10.10.0.114
- tag: hpc
- - mac: "00:01:73:02:1e:d4"
- name: r1-a15
- ip: 10.10.0.115
- - mac: "00:01:73:02:1d:6c"
- name: r1-a16
- ip: 10.10.0.116
- - mac: "00:01:73:02:1d:4c"
- name: r1-a17
- ip: 10.10.0.117
- tag: hpc
- - mac: "00:01:73:02:20:ac"
- name: r1-a18
- ip: 10.10.0.118
- - mac: "00:01:73:02:1a:80"
- name: r1-a19
- ip: 10.10.0.119
- - mac: "00:01:73:02:1d:30"
- name: r1-a20
- ip: 10.10.0.120
- - mac: "00:01:73:02:38:18"
- name: r1-a21
- ip: 10.10.0.121
- - mac: "00:01:73:02:3a:88"
- name: r1-a22
- ip: 10.10.0.122
-
- # the r1-a30 -> r1-a37 are in the DeveloperCloud and must be on vlan 33
- # leaving the bmc's on vlan 20, but it doesn't matter where they sit
- - name: r1-a30-pxe
- ip: 10.10.0.130
- mac: "00:00:1a:1b:9f:55"
- - name: r1-a30
- ip: 10.33.101.30
- mac: "90:e2:ba:33:bb:e4"
- pxe: false
- - name: r1-a32-pxe
- ip: 10.20.200.5
- mac: "00:00:1a:1b:9f:51"
- - name: r1-a32
- ip: 10.33.101.32
- mac: "90:e2:ba:33:b7:64"
- pxe: false
- - name: r1-a34-pxe
- ip: 10.20.200.6
- mac: "00:00:1a:1b:9f:89"
- - name: r1-a34
- ip: 10.33.101.34
- pxe: false
- mac: "00:1b:21:bc:06:c4"
- - name: r1-a35
- ip: 10.33.100.135
- mac: e0:ff:f7:00:06:80
- - mac: "e0:ff:f7:00:04:11"
- name: r1-a35-bmc
- ip: 10.20.200.70
- pxe: false
- - name: r1-a36
- ip: 10.33.100.136
- mac: e0:ff:f7:00:06:83
- - mac: "e0:ff:f7:00:03:f9"
- name: r1-a36-bmc
- ip: 10.20.200.80
- pxe: false
- - name: r1-a37
- ip: 10.33.100.137
- mac: e0:ff:f7:00:06:89
- - mac: "e0:ff:f7:00:03:f7"
- name: r1-a37-bmc
- ip: 10.20.200.90
- pxe: false
-
- - name: r2
- hosts:
- - mac: "28:80:23:90:58:bc"
- name: r2-x86-1
- ip: 10.20.0.20
- pxe: false
- - mac: "00:02:99:12:24:da"
- name: r2-pm-123
- ip: 10.20.0.21
- pxe: false
- - mac: "00:02:99:12:25:b4"
- name: r2-pm-456
- ip: 10.20.0.22
- pxe: false
- - mac: "00:0c:15:01:42:f4"
- name: r2-pm-ha
- ip: 10.20.0.23
- pxe: false
-
- - name: r2-a1
- alias: us-cloud-network
- ip: 10.20.100.1
- mac: 00:01:73:02:18:c8
- - name: r2-a2
- ip: 10.20.100.2
- mac: 00:01:73:02:07:fd
- - name: r2-a3
- ip: 10.20.100.3
- mac: 00:01:73:02:19:d4
- - name: r2-a4
- ip: 10.20.100.4
- mac: 00:01:73:02:20:fc
- - name: r2-a5
- ip: 10.20.100.5
- mac: 00:01:73:02:1c:e0
- - name: r2-a6
- ip: 10.20.100.6
- mac: 00:01:73:02:20:9d
- - name: r2-a7
- ip: 10.20.100.7
- mac: 00:01:73:02:17:0c
- tag: qa-net
- - name: r2-a8
- ip: 10.20.100.8
- mac: 00:01:73:02:1e:0c
- - name: r2-a9
- ip: 10.20.100.9
- mac: 00:01:73:02:1f:0c
- - name: r2-a10
- ip: 10.20.100.10
- mac: 00:01:73:02:0f:d0
- - name: r2-a11
- ip: 10.20.100.11
- mac: 00:01:73:02:1e:f0
- - name: r2-a12
- ip: 10.20.100.12
- mac: 00:01:73:02:18:30
- - name: r2-a13
- ip: 10.20.100.13
- mac: 00:01:73:02:1f:48
- - name: r2-a14
- ip: 10.20.100.14
- mac: 00:01:73:02:1e:08
- - name: r2-a15
- ip: 10.10.0.215
- mac: 00:01:73:02:1d:cc
- - name: r2-a16
- ip: 10.10.0.216
- mac: 00:01:73:02:20:3c
- - name: r2-a17
- ip: 10.10.0.217
- mac: 00:01:73:02:1e:1c
- - name: r2-a18
- ip: 10.10.0.218
- mac: 00:01:73:02:19:ac
- - name: r2-a19
- ip: 10.10.0.219
- mac: 00:01:73:02:1a:a4
- - name: r2-a20
- ip: 10.10.0.220
- mac: 00:01:73:02:1f:e4
-
- - name: r2-a21
- ip: 10.20.100.21
- mac: 00:01:73:02:34:90
- - name: r2-a22
- ip: 10.20.100.22
- mac: 00:01:73:02:3a:30
- - name: r2-a23
- ip: 10.20.100.23
- mac: 00:01:73:02:3a:34
- - name: r2-a24
- ip: 10.20.100.24
- mac: 00:01:73:02:3b:a8
- tag: qa-net
- - name: r2-a25
- ip: 10.20.100.25
- mac: 00:01:73:02:39:7c
- - name: r2-a26
- ip: 10.20.100.26
- mac: 00:01:73:02:38:20
- - name: r2-a27
- ip: 10.20.100.27
- mac: 00:01:73:02:37:48
- - name: r2-a28
- ip: 10.20.100.28
- mac: 00:01:73:02:39:08
-
- # the r2-a30 -> r2-a34 are in the DeveloperCloud and must be on vlan 33
- - name: r2-a30
- alias: us-cloud-network2
- ip: 10.33.200.1
- mac: 00:00:1a:1b:9f:75
- - name: r2-a32
- ip: 10.33.200.2
- mac: 00:00:1a:1b:9f:85
- - name: r2-a34
- ip: 10.33.200.3
- mac: 00:00:1a:1b:9f:7d
-
- - name: r3
- hosts:
- # Infrastructure machines
- - mac: "94:57:a5:c4:84:df"
- name: r3-x86-1
- ip: 10.30.0.10
- pxe: false
- - mac: "00:02:99:12:24:dc"
- name: r3-pm-123
- ip: 10.30.0.11
- pxe: false
- - mac: "00:00:68:1d:5d:ea"
- name: r3-pm-456
- ip: 10.30.0.12
- pxe: false
- - mac: "2c:30:33:a5:82:cc"
- name: r3-s3
- ip: 10.30.0.13
- pxe: false
- - mac: "00:0c:15:01:35:94"
- name: r3-pm-ha
- ip: 10.30.0.14
- pxe: false
-
- # Moonshot
- - mac: "74:46:a0:65:a9:90"
- name: r3-m1-bmc
- ip: 10.33.0.2
- pxe: false
-
- - mac: "f0:92:1c:b4:a5:1c"
- name: r3-m1-c1
- ip: 10.33.100.1
- tag: rack3x
- - mac: "f0:92:1c:b4:a2:d8"
- name: r3-m1-c2
- ip: 10.33.100.2
- tag: rack3x
- - mac: "f0:92:1c:b4:8e:e8"
- name: r3-m1-c3
- ip: 10.33.100.3
- tag: rack3x
- - mac: "14:58:d0:58:c2:22"
- name: r3-m1-c4
- alias: controller
- ip: 10.33.100.4
- - mac: "14:58:d0:58:a2:12"
- name: r3-m1-c5
- ip: 10.33.100.5
- - mac: "14:58:d0:58:52:d2"
- name: r3-m1-c6
- ip: 10.33.100.6
- - mac: "14:58:d0:58:b2:82"
- name: r3-m1-c7
- ip: 10.33.100.7
- - mac: "14:58:d0:58:72:52"
- name: r3-m1-c8
- ip: 10.33.100.8
- - mac: "14:58:d0:58:62:02"
- name: r3-m1-c9
- ip: 10.33.100.9
- - mac: "14:58:d0:58:23:42"
- name: r3-m1-c10
- ip: 10.33.100.10
- - mac: "14:58:d0:58:62:42"
- name: r3-m1-c11
- ip: 10.33.100.11
- - mac: "14:58:d0:58:42:a2"
- name: r3-m1-c12
- ip: 10.33.100.12
- - mac: "14:58:d0:58:92:42"
- name: r3-m1-c13
- ip: 10.33.100.13
- - mac: "14:58:d0:58:62:72"
- name: r3-m1-c14
- ip: 10.33.100.14
- - mac: "14:58:d0:58:42:c2"
- name: r3-m1-c15
- ip: 10.33.100.15
- - mac: "14:58:d0:58:c2:92"
- name: r3-m1-c16
- ip: 10.33.100.16
- - mac: "14:58:d0:58:43:12"
- name: r3-m1-c17
- ip: 10.33.100.17
- - mac: "14:58:d0:58:23:b2"
- name: r3-m1-c18
- ip: 10.33.100.18
- - mac: "14:58:d0:58:73:22"
- name: r3-m1-c19
- ip: 10.33.100.19
- - mac: "14:58:d0:58:13:f2"
- name: r3-m1-c20
- ip: 10.33.100.20
- - mac: "14:58:d0:58:33:82"
- name: r3-m1-c21
- ip: 10.33.100.21
- - mac: "14:58:d0:58:13:82"
- name: r3-m1-c22
- ip: 10.33.100.22
- - mac: "14:58:d0:58:62:b2"
- name: r3-m1-c23
- ip: 10.33.100.23
- - mac: 14:58:d0:58:c2:b2
- name: r3-m1-c24
- ip: 10.33.100.24
- - mac: 14:58:d0:58:53:12
- name: r3-m1-c25
- ip: 10.33.100.25
- - mac: 14:58:d0:58:a2:72
- name: r3-m1-c26
- ip: 10.33.100.26
- - mac: 14:58:d0:58:33:42
- name: r3-m1-c27
- ip: 10.33.100.27
- - mac: 14:58:d0:58:33:e2
- name: r3-m1-c28
- ip: 10.33.100.28
- - mac: 14:58:d0:58:43:52
- alias: us-cloud-data
- name: r3-m1-c29
- ip: 10.33.100.29
- - mac: 14:58:d0:58:11:02
- name: r3-m1-c30
- alias: us-cloud-controller
- ip: 10.33.100.30
- - mac: 14:58:d0:58:03:a2
- name: r3-m1-c31
- ip: 10.33.100.31
- - mac: 14:58:d0:58:42:b2
- name: r3-m1-c32
- ip: 10.33.100.32
- - mac: fc:15:b4:15:7b:f2
- name: r3-m1-c33
- ip: 10.33.100.33
- - mac: fc:15:b4:15:1a:f1
- name: r3-m1-c34
- ip: 10.33.100.34
-
-public_ips:
- - iface: em2:0
- address: 64.28.108.83/24
- - iface: em2:1
- address: 64.28.108.84/24
- - iface: em2:2
- address: 64.28.108.85/24
-
- - iface: em2:3
- address: 64.28.108.189/24
- - iface: em2:4
- address: 64.28.99.27/24
- - iface: em2:5
- address: 64.28.99.28/24
- - iface: em2:6
- address: 64.28.99.29/24
- - iface: em2:7
- address: 64.28.99.30/24
- - iface: em2:8
- address: 64.28.99.31/24
- - iface: em2:9
- address: 64.28.99.32/24
- - iface: em2:10
- address: 64.28.99.33/24
- - iface: em2:11
- address: 64.28.99.34/24
- - iface: em2:12
- address: 64.28.99.40/24
- - iface: em2:13
- address: 64.28.99.41/24
- - iface: em2:14
- address: 64.28.99.42/24
- - iface: em2:15
- address: 64.28.99.43/24
- - iface: em2:16
- address: 64.28.99.44/24
- - iface: em2:17
- address: 64.28.99.45/24
- - iface: em2:18
- address: 64.28.99.46/24
- - iface: em2:19
- address: 64.28.99.47/24
- - iface: em2:20
- address: 64.28.99.48/24
- - iface: em2:21
- address: 64.28.99.49/24
- - iface: em2:22
- address: 64.28.99.50/24
- - iface: em2:23
- address: 64.28.99.51/24
- - iface: em2:24
- address: 64.28.99.52/24
- - iface: em2:25
- address: 64.28.99.53/24
- - iface: em2:26
- address: 64.28.99.54/24
- - iface: em2:27
- address: 64.28.99.55/24
- - iface: em2:28
- address: 64.28.99.56/24
- - iface: em2:29
- address: 64.28.99.57/24
- - iface: em2:30
- address: 64.28.99.58/24
- - iface: em2:31
- address: 64.28.99.59/24
- - iface: em2:32
- address: 64.28.99.60/24
- - iface: em2:33
- address: 64.28.99.61/24
- - iface: em2:34
- address: 64.28.99.62/24
- - iface: em2:35
- address: 64.28.99.63/24
- - iface: em2:36
- address: 64.28.99.64/24
- - iface: em2:37
- address: 64.28.99.65/24
- - iface: em2:38
- address: 64.28.99.66/24
- - iface: em2:39
- address: 64.28.99.67/24
- - iface: em2:40
- address: 64.28.99.68/24
- - iface: em2:41
- address: 64.28.99.69/24
- - iface: em2:42
- address: 64.28.99.70/24
- - iface: em2:43
- address: 64.28.99.71/24
- - iface: em2:44
- address: 64.28.99.72/24
- - iface: em2:45
- address: 64.28.99.73/24
- - iface: em2:46
- address: 64.28.99.74/24
- - iface: em2:47
- address: 64.28.99.75/24
- - iface: em2:48
- address: 64.28.99.76/24
- - iface: em2:49
- address: 64.28.99.77/24
- - iface: em2:50
- address: 64.28.99.78/24
- - iface: em2:51
- address: 64.28.99.79/24
- - iface: em2:52
- address: 64.28.99.80/24
- - iface: em2:53
- address: 64.28.99.81/24
- - iface: em2:54
- address: 64.28.99.82/24
- - iface: em2:55
- address: 64.28.99.83/24
- - iface: em2:56
- address: 64.28.99.84/24
- - iface: em2:57
- address: 64.28.99.85/24
- - iface: em2:58
- address: 64.28.99.86/24
- - iface: em2:59
- address: 64.28.99.87/24
- - iface: em2:60
- address: 64.28.99.88/24
- - iface: em2:61
- address: 64.28.99.89/24
- - iface: em2:62
- address: 64.28.99.90/24
- - iface: em2:63
- address: 64.28.99.91/24
-# - iface: em2:64
-# address: 64.28.99.92/24
-# - iface: em2:65
-# address: 64.28.99.93/24
-# address: 64.28.99.94/24
-# - iface: em2:67
-# address: 64.28.99.95/24
-# - iface: em2:68
-# address: 64.28.99.96/24
-# - iface: em2:69
-# address: 64.28.99.97/24
-# - iface: em2:70
-# address: 64.28.99.98/24
-# - iface: em2:71
-# address: 64.28.99.99/24
-# - iface: em2:72
-# address: 64.28.99.100/24
-# - iface: em2:73
-# address: 64.28.99.101/24
-# - iface: em2:74
-# address: 64.28.99.102/24
-# - iface: em2:75
-# address: 64.28.99.103/24
-# - iface: em2:76
-# address: 64.28.99.112/24
-# - iface: em2:77
-# address: 64.28.99.113/24
-# - iface: em2:78
-# address: 64.28.99.114/24
-# - iface: em2:79
-# address: 64.28.99.115/24
-# - iface: em2:80
-# address: 64.28.99.116/24
-# - iface: em2:81
-# address: 64.28.99.117/24
-# - iface: em2:82
-# address: 64.28.99.118/24
-# - iface: em2:83
-# address: 64.28.99.119/24
-# - iface: em2:84
-# address: 64.28.99.120/24
-# - iface: em2:85
-# address: 64.28.99.121/24
-# - iface: em2:86
-# address: 64.28.99.122/24
-# - iface: em2:87
-# address: 64.28.99.123/24
-# - iface: em2:88
-# address: 64.28.99.124/24
-# - iface: em2:89
-# address: 64.28.99.125/24
-# - iface: em2:90
-# address: 64.28.99.126/24
-# - iface: em2:91
-# address: 64.28.99.127/24
-# - iface: em2:92
-# address: 64.28.99.128/24
-# - iface: em2:93
-# address: 64.28.99.129/24
-# - iface: em2:94
-# address: 64.28.99.130/24
-# - iface: em2:95
-# address: 64.28.99.131/24
-# - iface: em2:96
-# address: 64.28.99.132/24
-# - iface: em2:97
-# address: 64.28.99.133/24
-# - iface: em2:98
-# address: 64.28.99.134/24
-# - iface: em2:99
-# address: 64.28.99.135/24
-# - iface: em2:100
-# address: 64.28.99.136/24
-# - iface: em2:101
-# address: 64.28.99.137/24
-# - iface: em2:102
-# address: 64.28.99.138/24
-# - iface: em2:103
-# address: 64.28.99.139/24
-# - iface: em2:104
-# address: 64.28.99.140/24
-# - iface: em2:105
-# address: 64.28.99.141/24
-# - iface: em2:106
-# address: 64.28.99.142/24
-# - iface: em2:107
-# address: 64.28.99.143/24
-# - iface: em2:108
-# address: 64.28.99.144/24
-# - iface: em2:109
-# address: 64.28.99.145/24
-# - iface: em2:110
-# address: 64.28.99.146/24
-# - iface: em2:111
-# address: 64.28.99.147/24
-# - iface: em2:112
-# address: 64.28.99.148/24
-# - iface: em2:113
-# address: 64.28.99.149/24
-# - iface: em2:114
-# address: 64.28.99.150/24
-# - iface: em2:115
-# address: 64.28.99.151/24
-# - iface: em2:116
-# address: 64.28.99.152/24
-# - iface: em2:117
-# address: 64.28.99.153/24
-# - iface: em2:118
-# address: 64.28.99.154/24
-# - iface: em2:119
-# address: 64.28.99.155/24
-# - iface: em2:120
-# address: 64.28.99.156/24
-# - iface: em2:121
-# address: 64.28.99.157/24
-# - iface: em2:122
-# address: 64.28.99.158/24
-# - iface: em2:123
-# address: 64.28.99.159/24
-# - iface: em2:124
-# address: 64.28.99.160/24
-# - iface: em2:125
-# address: 64.28.99.161/24
-# - iface: em2:126
-# address: 64.28.99.162/24
-# - iface: em2:127
-# address: 64.28.99.163/24
-# - iface: em2:128
-# address: 64.28.99.164/24
-# - iface: em2:129
-# address: 64.28.99.165/24
-# - iface: em2:130
-# address: 64.28.99.166/24
-# - iface: em2:131
-# address: 64.28.99.167/24
-# - iface: em2:132
-# address: 64.28.99.168/24
-# - iface: em2:133
-# address: 64.28.99.169/24
-# - iface: em2:134
-# address: 64.28.99.170/24
-# - iface: em2:135
-# address: 64.28.99.171/24
-# - iface: em2:136
-# address: 64.28.99.172/24
-# - iface: em2:137
-# address: 64.28.99.173/24
-# - iface: em2:138
-# address: 64.28.99.174/24
-# - iface: em2:139
-# address: 64.28.99.175/24
diff --git a/host_vars/ses-proxy.ctt.linaro.org b/host_vars/ses-proxy.ctt.linaro.org
new file mode 100644
index 00000000..6bb9cd1d
--- /dev/null
+++ b/host_vars/ses-proxy.ctt.linaro.org
@@ -0,0 +1 @@
+docker_host: yes
diff --git a/host_vars/snapshots.linaro.org b/host_vars/snapshots.linaro.org
index f58403e5..2a2326d8 100644
--- a/host_vars/snapshots.linaro.org
+++ b/host_vars/snapshots.linaro.org
@@ -1,14 +1,34 @@
+---
sitename: Linaro Snapshots
-secrets_file: snapshots-us.linaro.org
-publishing_host: snapshots-us.linaro.org
+secrets_file: snapshots.linaro.org
+publishing_host: snapshots.linaro.org
+llp_port: '8081'
-s3_purge: true
-s3_purge_delete: true
-s3_purge_delete_releases: true
+s3_purge: false
+s3_purge_releases: true
+token_cleanup: true
-certbot_domains: ["snapshots.linaro.org","snapshots-us.linaro.org"]
-ssl_cert: /etc/letsencrypt/live/{{inventory_hostname}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{inventory_hostname}}/privkey.pem
-ssl_ca_cert: /etc/letsencrypt/live/{{inventory_hostname}}/fullchain.pem
+dehydrated_http_domains:
+ - snapshots.linaro.org
+ - snapshots.ctt.linaro.org
+dehydrated_dns_domains: []
+dehydrated_domains_txt: |
+ snapshots.linaro.org snapshots.ctt.linaro.org
-process_report: true
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+apache_redirects: |
+ RedirectMatch "/96boards/hikey/linaro/aosp-master" "https://snapshots.linaro.org/android/lkft/lkft-aosp-master/"
+ ProxyPass /96boards/hikey/linaro/aosp-master !
+
+repo_name: project
+
+login_groups:
+ - systems
+ - team-builds-and-baselines
+
+sudo_groups:
+ - systems
+ - users
diff --git a/host_vars/staging-bugs.linaro.org b/host_vars/staging-bugs.linaro.org
index 98b76915..f3e281ef 100644
--- a/host_vars/staging-bugs.linaro.org
+++ b/host_vars/staging-bugs.linaro.org
@@ -1,5 +1,13 @@
---
-ssl_cert: /etc/letsencrypt/live/{{inventory_hostname}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{inventory_hostname}}/privkey.pem
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+
+dehydrated_http_domains:
+ - staging-bugs.linaro.org
+
+dehydrated_dns_domains: []
+
+dehydrated_domains_txt: |
+ staging-bugs.linaro.org
phabricator_hostname: staging-bugs.linaro.org
diff --git a/host_vars/staging-git.morello-project.org b/host_vars/staging-git.morello-project.org
new file mode 100644
index 00000000..2ef62c79
--- /dev/null
+++ b/host_vars/staging-git.morello-project.org
@@ -0,0 +1,98 @@
+---
+sshd_port: 2222
+docker_host: yes
+docker_image_name: "gitlab/gitlab-ee:13.5.1-ee.0"
+dovecot_user: gitlab
+dovecot_allow_plaintext_auth: true
+postfix_allow_inbound: true
+postfix_networks: 172.17.0.0/16
+gitlab_mail_server: smtp
+
+#Leaving this in as an example of how to get oauth working
+#oauth_github_app_id: 5cfb58f2db190e0eedca
+
+gitlab_config: |
+ external_url 'https://{{ inventory_hostname }}/'
+ gitlab_rails['lfs_enabled'] = true
+ gitlab_rails['monitoring_whitelist'] = ['95.217.117.19']
+
+ {{ gitlab_config_outbound_mail }}
+ {{ gitlab_config_inbound_mail }}
+ {{ gitlab_config_object_storage }}
+ {{ gitlab_config_limits }}
+#Leaving this in as an example of how to get oauth working
+# {{ gitlab_config_oauth }}
+
+gitlab_config_object_storage: |
+ gitlab_rails['object_store']['enabled'] = true
+ gitlab_rails['object_store']['proxy_download'] = true
+ gitlab_rails['object_store']['connection'] = {
+ 'provider' => 'AWS',
+ 'region' => 'us-east-1',
+ 'use_iam_profile' => true,
+ }
+ gitlab_rails['object_store']['objects']['artifacts']['bucket'] = 'morello-gl-artifacts'
+ gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = 'morello-gl-external-diffs'
+ gitlab_rails['object_store']['objects']['lfs']['bucket'] = 'morello-gl-lfs-objects'
+ gitlab_rails['object_store']['objects']['uploads']['bucket'] = 'morello-gl-uploads'
+ gitlab_rails['object_store']['objects']['packages']['bucket'] = 'morello-gl-packages'
+ gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = 'morello-gl-dependency-proxy'
+ gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = 'morello-gl-terraform-state'
+
+gitlab_config_limits: |
+ gitaly['concurrency'] = [
+ {
+ 'rpc' => "/gitaly.SmartHTTPService/PostUploadPack",
+ 'max_per_repo' => 10
+ },
+ {
+ 'rpc' => "/gitaly.SSHService/SSHUploadPack",
+ 'max_per_repo' => 10
+ }
+ ]
+
+gitlab_config_outbound_mail: |
+ gitlab_rails['gitlab_email_enabled'] = true
+ gitlab_rails['gitlab_email_from'] = 'gitlab@{{ inventory_hostname }}'
+ gitlab_rails['gitlab_email_display_name'] = 'Morello Project Gitlab'
+ gitlab_rails['gitlab_email_reply_to'] = 'noreply@{{ inventory_hostname }}'
+ gitlab_rails['gitlab_email_subject_suffix'] = ''
+ gitlab_rails['gitlab_email_smime_enabled'] = false
+ gitlab_rails['smtp_enable'] = true
+ gitlab_rails['smtp_address'] = "{{ gitlab_mail_server }}"
+ gitlab_rails['smtp_port'] = 25
+ gitlab_rails['smtp_domain'] = "{{ gitlab_mail_server }}"
+ gitlab_rails['smtp_tls'] = false
+ gitlab_rails['smtp_openssl_verify_mode'] = 'none'
+ gitlab_rails['smtp_enable_starttls_auto'] = false
+ gitlab_rails['smtp_tls'] = false
+ gitlab_rails['smtp_force_tls'] = false
+
+gitlab_config_inbound_mail: |
+ gitlab_rails['incoming_email_enabled'] = true
+ gitlab_rails['incoming_email_address'] = "gitlab@git.morello-project.org"
+ gitlab_rails['incoming_email_email'] = "{{ dovecot_user }}"
+ gitlab_rails['incoming_email_password'] = "{{ dovecot_password }}"
+ gitlab_rails['incoming_email_host'] = "{{ gitlab_mail_server }}"
+ gitlab_rails['incoming_email_port'] = 143
+ gitlab_rails['incoming_email_ssl'] = false
+ gitlab_rails['incoming_email_start_tls'] = false
+ gitlab_rails['incoming_email_mailbox_name'] = "inbox"
+ gitlab_rails['incoming_email_idle_timeout'] = 60
+ gitlab_rails['incoming_email_log_file'] = "/var/log/gitlab/mailroom/mail_room_json.log"
+ gitlab_rails['incoming_email_expunge_deleted'] = true
+
+#Leaving this in as an example of how to get oauth working
+#gitlab_config_oauth: |
+# gitlab_rails['omniauth_providers'] = [
+# {
+# "name" => "github",
+# "app_id" => "{{ oauth_github_app_id }}",
+# "app_secret" => "{{ oauth_github_secret }}",
+# "args" => { "scope" => "user:email" }
+# }
+# ]
+# gitlab_rails['omniauth_allow_single_sign_on'] = ['github']
+# gitlab_rails['omniauth_block_auto_created_users'] = false
+# gitlab_rails['omniauth_sync_profile_from_provider'] = ['github']
+# gitlab_rails['omniauth_sync_profile_attributes'] = ['name', 'email', 'location']
diff --git a/host_vars/staging-issues.trustedfirmware.org b/host_vars/staging-issues.trustedfirmware.org
index dcdd5487..f0432b5f 100644
--- a/host_vars/staging-issues.trustedfirmware.org
+++ b/host_vars/staging-issues.trustedfirmware.org
@@ -1,10 +1,22 @@
---
-ssl_cert: /etc/letsencrypt/live/{{inventory_hostname}}/fullchain.pem
-ssl_key: /etc/letsencrypt/live/{{inventory_hostname}}/privkey.pem
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+dehydrated_http_domains:
+ - "{{inventory_hostname}}"
+dehydrated_dns_domains: []
+dehydrated_domains_txt: |
+ {{inventory_hostname}}
login_groups:
- systems
- its
+ - trustedfirmware-infrastructure
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
postfix_hostname: staging-issues.trustedfirmware.org
postfix_destinations: ["staging-issues.trustedfirmware.org"]
diff --git a/host_vars/systems-monitoring.linaro.org b/host_vars/systems-monitoring.linaro.org
new file mode 100644
index 00000000..3eea8c8c
--- /dev/null
+++ b/host_vars/systems-monitoring.linaro.org
@@ -0,0 +1,34 @@
+---
+ansible_python_interpreter: /usr/bin/python
+# the cert is managed by dehydrated on the host
+# server (elk.linaro.org)
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+# Elasticsearch
+docker_container_elasticsearch_name: elasticsearch-production
+docker_elk_vol: /srv/elk-production
+es_network_name: elasticsearch
+
+# Kibiter
+kibiter_root: "{{docker_elk_vol}}/kibiter"
+docker_image_kibiter_local: linaro/kibiter-linaro
+docker_container_name_kibiter: "monitoring-{{ monitoring_team }}"
+docker_port_kibiter: 5605 # monitoring-systems port
+kibana_index: ".kibiter{{ monitoring_team }}"
+
+# Elastalert
+ea_mailto_address: "{{ mailto_address }}"
+no_atom: yes
+
+hb_monitors:
+ icmp: "{{ groups['heartbeat_icmp'] }}"
+ https: "{{ groups['heartbeat_https'] }}"
+ smtp: "{{ groups['gerrit'] }}"
+ gerrit: "{{ groups['gerrit'] }}"
+ gitlab: "{{ groups['gitlab'] }}"
+ ses_proxy: "{{ groups['ses_proxy'] }}"
+
+docker_apache: yes
+apache_network: "{{es_network_name}}"
diff --git a/host_vars/testdata.linaro.org b/host_vars/testdata.linaro.org
index 4738d416..4149240a 100644
--- a/host_vars/testdata.linaro.org
+++ b/host_vars/testdata.linaro.org
@@ -1,2 +1,13 @@
+---
sitename: testdata
secrets_file: testdata.linaro.org
+llp_port: '8082'
+
+apache_aliases:
+ - testdata.validation.linaro.org
+
+ssl_cert: /etc/dehydrated/certs/{{inventory_hostname}}/fullchain.pem
+ssl_key: /etc/dehydrated/certs/{{inventory_hostname}}/privkey.pem
+ssl_ca: "{{ssl_cert}}"
+
+publishing_host: testdata.linaro.org
diff --git a/host_vars/weblogs.linaro.org b/host_vars/weblogs.linaro.org
deleted file mode 100644
index f76f574b..00000000
--- a/host_vars/weblogs.linaro.org
+++ /dev/null
@@ -1,12 +0,0 @@
----
-git_repo: "https://git.linaro.org/infrastructure/linaro-license-protection"
-git_tag: HEAD
-django_settings: local_settings
-apache_user: www-data
-
-# apache-auth
-host_site_name: "{{inventory_hostname}}"
-apache_root: "{{install_base}}"
-apache_ldap_bind: cn=git-private,ou=binders,dc=linaro,dc=org
-apache_ldap_url: >
- ldaps://login.linaro.org/ou=accounts,dc=linaro,dc=org?mail,uid?sub
diff --git a/host_vars/x86-15 b/host_vars/x86-15
new file mode 100644
index 00000000..580853e8
--- /dev/null
+++ b/host_vars/x86-15
@@ -0,0 +1,8 @@
+---
+login_groups:
+ - systems
+ - team-builds-and-baselines
+ - buildslave
+ - ssh_access_jenkins_slaves
+ - mbl-ci-users
+ - ubuntu
diff --git a/host_vars/x86-TF-01 b/host_vars/x86-TF-01
new file mode 100644
index 00000000..2618dbb4
--- /dev/null
+++ b/host_vars/x86-TF-01
@@ -0,0 +1,24 @@
+---
+
+login_groups:
+ - systems
+ - trustedfirmware-infrastructure
+ - buildslave
+ - ssh_access_jenkins_slaves
+ - ubuntu
+ - lava-lab-access
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
+ - lava-lab-access
+
+jenkins_ip: 195.154.87.69 #ci.trustedfirmware.org
+docker_host: true
+
+nfs_client_mount:
+ - path: /srv/shared
+ src: 51.159.20.54:/data/shared
+ fstype: nfs
+ opts: rw,noatime,vers=4.2,hard,intr
+ state: mounted
diff --git a/host_vars/x86-TF-02 b/host_vars/x86-TF-02
new file mode 100644
index 00000000..8e12ffa4
--- /dev/null
+++ b/host_vars/x86-TF-02
@@ -0,0 +1,24 @@
+---
+
+login_groups:
+ - systems
+ - trustedfirmware-infrastructure
+ - buildslave
+ - ssh_access_jenkins_slaves
+ - ubuntu
+
+sudo_groups:
+ - systems
+ - trustedfirmware-infrastructure
+
+jenkins_staging_ip: 3.225.239.230 #ci.staging.trustedfirmware.org
+jenkins_ip: 195.154.87.69 #ci.trustedfirmware.org
+
+docker_host: true
+nfs_client_group: "jenkins_slaves_online_tf"
+
+nfs_exports:
+ - name: "shareddata"
+ path: "/data/shared"
+ options: "(rw,sync,no_subtree_check,no_root_squash)"
+ cleanup: "find /data/shared -atime +7 -delete"
diff --git a/host_vars/x86-TF-03 b/host_vars/x86-TF-03
new file mode 120000
index 00000000..c7b73371
--- /dev/null
+++ b/host_vars/x86-TF-03
@@ -0,0 +1 @@
+x86-TF-01 \ No newline at end of file
diff --git a/host_vars/x86-TF-04 b/host_vars/x86-TF-04
new file mode 120000
index 00000000..c7b73371
--- /dev/null
+++ b/host_vars/x86-TF-04
@@ -0,0 +1 @@
+x86-TF-01 \ No newline at end of file
diff --git a/host_vars/x86-TF-05 b/host_vars/x86-TF-05
new file mode 120000
index 00000000..c7b73371
--- /dev/null
+++ b/host_vars/x86-TF-05
@@ -0,0 +1 @@
+x86-TF-01 \ No newline at end of file
diff --git a/host_vars/x86_64-10 b/host_vars/x86_64-10
deleted file mode 100644
index b3e15fbe..00000000
--- a/host_vars/x86_64-10
+++ /dev/null
@@ -1,4 +0,0 @@
-OBS_IP: 64.28.99.162
-OBS_JOBS: 8
-OBS_PORT: 5454
-OBS_TMPFS: 0
diff --git a/hosts b/hosts
index 14a1ef71..a0de06cb 100644
--- a/hosts
+++ b/hosts
@@ -1,154 +1,158 @@
-[aus-colo]
-router.aus-colo.linaro.org
-aus-colo.linaro.org
-r1-x86-1.aus-colo.linaro.org
-r2-x86-1.aus-colo.linaro.org
-r3-x86-1.aus-colo.linaro.org
-
-[uk-devcloud]
-uk1.linaro.cloud
-
-[weblogs]
-weblogs.linaro.org
-
-[publishing]
-snapshots.linaro.org
-releases-us.linaro.org
-testdata.linaro.org
-
[git]
git-us.linaro.org
-git-ap.linaro.org
-git-ie.linaro.org
dev-private-git.linaro.org
git.trustedfirmware.org
git.mlplatform.org
[git:children]
-android-git
+android_git
-[android-git]
+[android_git]
android-git-us.linaro.org
-android-git-ap.linaro.org
-android-git-ie.linaro.org
-[dev-private]
+[dev_private]
dev-private-review.linaro.org
[gerrit]
review.linaro.org
android-review.linaro.org
dev-private-review.linaro.org
-lhg-review.linaro.org
review.trustedfirmware.org
review.mlplatform.org
+# Note: only accessible via Forge's VPN
+gerrit.forge.aws.linaro.com ansible_host=10.252.23.114
+gerrit.devboardsforandroid.linaro.org
-[gerrit-mirror]
+[gerrit_mirror]
git-us.linaro.org
android-git-us.linaro.org
dev-private-git.linaro.org
-lhg-review.linaro.org
+git.trustedfirmware.org
[patchwork]
-patches.opendataplane.org
patches.linaro.org
-patches-gcc.linaro.org
-
-[filebeat]
-elk.linaro.org
-git-ie.linaro.org
-git-us.linaro.org
-git-ap.linaro.org
-android-git-us.linaro.org
-android-git-ap.linaro.org
-android-git-ie.linaro.org
-dev-private-git.linaro.org
-
-[metricbeat:children]
-filebeat
-
-[elk]
-elk.linaro.org
[jenkins_master]
ci.linaro.org
[jenkins_tf_master]
ci.trustedfirmware.org
+ci.staging.trustedfirmware.org
+mbedtls.trustedfirmware.org
[jenkins_slaves_hetzner]
-aosp-x86_64-07 ansible_host=144.76.6.139 # aosp-x86_64-07
-aosp-x86_64-08 ansible_host=188.40.51.209 # aosp-x86_64-08
-aosp-x86_64-09 ansible_host=213.133.116.86 # aosp-x86_64-09 (ART)
-aosp-x86_64-10 ansible_host=78.46.190.194 # aosp-x86_64-10 (ART)
-lhg-build-01 ansible_host=148.251.140.195 # lhg-build-01
-x86_64-07 ansible_host=188.40.92.79 # x86_64-07
-x86_64-08 ansible_host=188.40.49.144 # x86_64-08
-x86_64-09 ansible_host=148.251.184.94 # x86_64-09
-x86_64-10 ansible_host=138.201.52.83 # x86_64-10
-x86_64-11 ansible_host=88.99.28.12 # x86_64-11 (RPB)
-x86_64-12 ansible_host=88.99.28.38 # x86_64-12 (RPB)
-x86_64-13 ansible_host=88.99.59.232 # x86_64-13 (LITE)
-x86_64-14 ansible_host=88.99.149.141 # x86_64-14
+aosp-x86-09 ansible_host=49.12.133.85 # aosp-x86-09
+aosp-x86-10 ansible_host=168.119.145.200 # aosp-x86-10
+aosp-x86-13 ansible_host=95.217.145.175 # aosp-x86-13 (ART)
+x86-11 ansible_host=88.99.28.12 # x86-11 (RPB) # triggers
+x86-12 ansible_host=88.99.28.38 # x86-12 (RPB)
+x86-13 ansible_host=88.99.59.232 # x86-13 (LITE)
+x86-14 ansible_host=88.99.149.141 # x86-14
+x86-15 ansible_host=95.216.16.165 # x86-15
[jenkins_slaves_online]
-lkft-build-01 ansible_host=51.15.185.142 # lkft-build-01
-oe-x86_64-01 ansible_host=62.210.248.69 # oe-x86_64-01
-oe-x86_64-02 ansible_host=62.210.249.170 # oe-x86_64-02
+x86-16 ansible_host=62.210.124.13 # x86-16 triggers, python jobs
-[jenkins_slaves_packet]
-aarch64_08 ansible_host=147.75.32.78 # aarch64_08
+[jenkins_slaves_online_tf]
+x86-TF-01 ansible_host=51.159.1.37 # x86-TF-01 (TF Agent Prod)
+x86-TF-02 ansible_host=51.159.20.54 # x86-TF-02 (TF Agent Prod/Staging and NFS server)
+x86-TF-03 ansible_host=51.159.22.224 # x86-TF-03 (TF Agent Prod / LAVA FVP Worker)
+x86-TF-04 ansible_host=51.159.20.12 # x86-TF-04 (TF Agent Prod / LAVA FVP Worker)
+x86-TF-05 ansible_host=51.159.20.18 # x86-TF-05 (TF Agent Prod)
-[jenkins_slaves_scaleway]
-armhf-01 ansible_host=51.15.128.165
+[jenkins_slaves_packet]
+aarch64-09 ansible_host=147.28.196.111 # aarch64-09
[jenkins_slaves_simple]
-leg-aarch64-01 ansible_host=10.101.96.20 ansible_user=ci-admin
+ldcg-aarch64-02 ansible_host=10.40.88.130 ansible_user=ci-admin
[jenkins_slaves:children]
jenkins_slaves_hetzner
jenkins_slaves_online
+jenkins_slaves_online_tf
jenkins_slaves_packet
-jenkins_slaves_scaleway
-[publishing-docker]
-publishing-ap.linaro.org
+[flexnet]
+flexnet.trustedfirmware.org
+flexnet-aws.trustedfirmware.org
+
+[publishing]
+snapshots.linaro.org
+
+[publishing_docker]
+publishing-ie.linaro.org ansible_host=52.215.200.125
+
+[publishing_docker_site]
+releases-ie.linaro.org
+testdata.linaro.org ansible_host=52.215.200.125
-[ssh-ldap]
+[ssh_ldap]
+buildkite.ctt.linaro.org
qcom-proxy.linaro.org
qcom-hackbox.linaro.org
android.linaro.org
-patches-gcc.linaro.org
git.trustedfirmware.org
testdata.linaro.org
-mmwg-hackbox.linaro.org
-lcg-hackbox.linaro.org
-releases-us.linaro.org
-j12-qrep-01 ansible_host=10.101.16.17 # inside mlab, jumphost via jenkins-master
review.mlplatform.org
-qcom-hackbox2.linaro.org
+lava.morello-project.org ansible_host=54.88.117.5
+obs.linaro.org
-[apache-auth]
+[apache_auth]
dev-private-git.linaro.org
dev-private-review.linaro.org
-lhg-review.linaro.org
+
+[apache_redirects]
+builds.96boards.org ansible_host=52.215.200.125
[phabricator]
developer.trustedfirmware.org
developer.mlplatform.org
staging-issues.trustedfirmware.org
-staging-bugs.linaro.org
-[obs]
-obs-bastion-us1.linaro.cloud ansible_host=64.28.99.162
-obs-server-us1.linaro.cloud
-obs-bastion-cn1.linaro.cloud ansible_host=103.20.251.151
-obs-server-cn1.linaro.cloud
+[lava-remote-workers]
+aarch64-09
+aarch64-10 ansible_host=10.7.0.101 # ssh proxy lab.validation.linaro.org
+
+[ses_proxy]
+ses-proxy.ctt.linaro.org
+
+[gitlab]
+git.morello-project.org ansible_ssh_port=2222
+staging-git.morello-project.org ansible_ssh_port=2222
+
+[gitlab_runner]
+gitlab-runner-manager.morello-project.org
+gitlab-runner.morello-project.org
+gitlab-runner-manager.lkft.org
+aarch64-09
+deployments.ctt.linaro.org
+runner-cassini.ctt.linaro.org
+
+[postfix]
+bugs.linaro.org
+bugs.96boards.org
+patches.linaro.org
+review.trustedfirmware.org
+developer.trustedfirmware.org
+review.mlplatform.org
+dev-private-review.linaro.org
+review.linaro.org
+android-review.linaro.org
+git.morello-project.org
+gerrit.forge.aws.linaro.com
+gerrit.devboardsforandroid.linaro.org
+
+[swarm_nodes]
+x86-11
+x86-12
+x86-14
+x86-15
+
+[swarm_manager]
+ci.linaro.org
-[obs-workers]
-x86_64-10
-armhf-01 ansible_host=51.15.128.165
-aarch64_08 ansible_host=147.75.32.78
+[grafana]
+grafana.linaro.org
-[fossology]
-fossology.linaro.org
+[prometheus]
+grafana.linaro.org
diff --git a/jenkins-master.yml b/jenkins-master.yml
deleted file mode 100644
index 7ae243c9..00000000
--- a/jenkins-master.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-# Deploy jenkins-master
----
-- name: Deploy tcwg proxy
- hosts: ci.linaro.org
- become: yes
- roles:
- - {role: docker-tcwg-proxy, tags: [tcwg,docker]}
-
-- name: Deploy jenkins-master
- hosts: jenkins_master
- become: yes
- vars_files:
- - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
- - "{{secrets_dir}}/group_vars/all"
- roles:
- - {role: ssh-ldap, tags: [ssh-ldap]}
- - {role: nfs-server, tags: [nfs]}
- - {role: docker-deps, tags: [jenkins-master,docker]}
- - {role: jenkins-master-deps, tags: [jenkins-master-deps]}
- - {role: docker-jenkins-master, tags: [jenkins-master,docker]}
- - {role: certbot, tags: [certbot]}
- - {role: apache-site, src: "jenkins/ci.linaro.org.conf", config: "ci.linaro.org", tags: [apache]}
- - {role: openvpn-client, tags: [vpn]}
-
-- name: Deploy trustedfirmware
- hosts: jenkins_tf_master
- become: yes
- vars_files:
- - "{{secrets_dir}}/group_vars/all"
- roles:
- - {role: ssh-ldap, tags: [ssh-ldap]}
- - {role: docker-deps, tags: [jenkins-master,docker]}
- - {role: docker-tf-jenkins-master, tags: [jenkins-master,docker]}
- - {role: apache-site, src: "jenkins/ci.linaro.org.conf", config: "ci.trustedfirmware.org", tags: [apache]}
diff --git a/jenkins-slaves.yml b/jenkins-slaves.yml
deleted file mode 100644
index 71f4f967..00000000
--- a/jenkins-slaves.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-- name: Configure jenkins slaves
- hosts: jenkins_slaves
- become: yes
- vars_files:
- - ["{{secrets_dir}}/group_vars/all", "vars/empty.yml" ]
- roles:
- - {role: ssh-ldap, tags: [ssh-ldap]}
- - {role: docker-deps, tags: [jenkins,docker]}
- - {role: jenkins-slave-deps, tags: [jenkins]}
- - {role: nfs-client, tags: [nfs]}
-# - role: zabbix-agent
-
-- name: Configure non-ldap jenkins slaves
- hosts: jenkins_slaves_simple
- become: yes
- vars_files:
- - ["{{secrets_dir}}/group_vars/all", "vars/empty.yml" ]
- roles:
- - {role: docker-deps, tags: [jenkins,docker]}
- - {role: jenkins-slave-deps, tags: [jenkins]}
diff --git a/jenkins.yml b/jenkins.yml
new file mode 100644
index 00000000..321e66d7
--- /dev/null
+++ b/jenkins.yml
@@ -0,0 +1,104 @@
+# Deploy jenkins-master
+---
+- name: Deploy tcwg containers
+ hosts: ci.linaro.org
+ become: yes
+ roles:
+ - {role: docker-tcwg-proxy, tags: [tcwg,docker]}
+ - {role: docker-llvmmonitor, tags: [tcwg,docker,llvm]}
+
+- name: Deploy nfs server settings
+ hosts: ci.linaro.org, x86-TF-02
+ become: yes
+ roles:
+ - {role: nfs-server, tags: [nfs-server]}
+
+- name: Deploy jenkins-master
+ hosts: jenkins_master
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
+ - ["{{secrets_dir}}/group_vars/swarm", "vars/empty.yml" ]
+ - "{{secrets_dir}}/group_vars/all"
+ roles:
+ - {role: duplicity, tags: [duplicity]}
+ - {role: docker-jenkins-master, tags: [jenkins-master,docker]}
+ - {role: docker-swarm-manager, tags: [swarm, docker]}
+ - {role: apache-site, src: "jenkins/ci.linaro.org.conf", config: "ci.linaro.org", tags: [apache]}
+ - {role: openvpn-client, tags: [vpn]}
+
+- name: Deploy trustedfirmware
+ hosts: jenkins_tf_master
+ become: yes
+ vars_files:
+ - "{{secrets_dir}}/group_vars/all"
+ - "{{secrets_dir}}/host_vars/{{inventory_hostname}}"
+ - "{{secrets_dir}}/group_vars/dehydrated"
+ roles:
+ - {role: dehydrated, tags: [ssl] }
+ - {role: duplicity, tags: [duplicity]}
+ - {role: apache-site, src: "jenkins/ci.linaro.org.conf", config: "{{ inventory_hostname }}", tags: [apache]}
+ - {role: docker-tf-jenkins-master, tags: [jenkins-master,docker]}
+ - {role: apache-site, src: "apache/docs.ci.trustedfirmware.org.conf", tags: [apache],
+ config: "tf-m-user-guide.trustedfirmware.org", doc_path: "user_guide/html",
+ when: inventory_hostname == "ci.trustedfirmware.org"
+ }
+ - {role: apache-site, src: "apache/docs.ci.trustedfirmware.org.conf", tags: [apache],
+ config: "tf-m-reference.trustedfirmware.org", doc_path: "reference_manual/html",
+ when: inventory_hostname == "ci.trustedfirmware.org"
+ }
+
+- name: Deploy flexnet
+ hosts:
+ - flexnet.trustedfirmware.org
+ - flexnet-aws.trustedfirmware.org
+ become: yes
+ vars_files:
+ - "{{secrets_dir}}/group_vars/all"
+ - "{{secrets_dir}}/host_vars/{{inventory_hostname}}"
+ roles:
+ # ufw is included by jenkins_* roles for other servers,
+ # but we need to pull it in manually here
+ - {role: ufw, tags: [ufw],
+ when: inventory_hostname == "flexnet.trustedfirmware.org" }
+ - {role: docker-flexnet, tags: [flexnet]}
+
+# eclair has been deployed and is managed manually, but we
+# need to preserve this install
+- name: Deploy eclair
+ hosts: eclair.trustedfirmware.org
+ become: yes
+ vars_files:
+ - "{{secrets_dir}}/group_vars/all"
+ - "{{secrets_dir}}/host_vars/{{inventory_hostname}}"
+ roles:
+ - {role: ufw, tags: [ufw]}
+
+- name: Configure jenkins agents
+ hosts: jenkins_slaves
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/group_vars/all", "vars/empty.yml" ]
+ - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}", "vars/empty.yml"]
+ roles:
+ - {role: jenkins-slave-deps, tags: [jenkins]}
+ - {role: nfs-client, tags: [nfs],
+ when: nfs_client_mount is defined}
+
+- name: Configure non-ldap jenkins slaves
+ hosts: jenkins_slaves_simple
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/group_vars/all", "vars/empty.yml" ]
+ roles:
+ - {role: jenkins-slave-deps, tags: [jenkins]}
+
+- name: Configure package for triggers agents
+ hosts:
+ - x86-11
+ - x86-16
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/group_vars/all", "vars/empty.yml" ]
+ roles:
+ - {role: jenkins-trigger-agent, tags: [trigger]}
diff --git a/lava-remote-worker.yml b/lava-remote-worker.yml
new file mode 100644
index 00000000..f598ca8e
--- /dev/null
+++ b/lava-remote-worker.yml
@@ -0,0 +1,11 @@
+---
+- hosts:
+ - lava-remote-workers
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/group_vars/all", "vars/empty.yml"]
+ - ["{{secrets_dir}}/host_vars/{{ inventory_hostname }}", "vars/empty.yml"]
+ roles:
+ - {role: docker-deps, tags: [docker]}
+ - {role: lava-remote-worker, tags: [lava-remote-worker]}
+ - {role: lava-docker-worker, tags: [lava-docker-worker]}
diff --git a/metricbeat.yml b/metricbeat.yml
deleted file mode 100644
index 98f4e255..00000000
--- a/metricbeat.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-- name: Configure metricbeat
- hosts: metricbeat
- gather_facts: no
- become: yes
- roles:
- - role: metricbeat
diff --git a/obs-cn1.yml b/obs-cn1.yml
deleted file mode 100644
index 82896156..00000000
--- a/obs-cn1.yml
+++ /dev/null
@@ -1,89 +0,0 @@
-# Deploy staging OBS on devcloud
----
-- name: Create staging machines with OpenStack
- hosts: localhost
- gather_facts: false
- tasks:
- - name: create OBS bastion server
- os_server:
- state: present
- name: obs-bastion-cn1.linaro.cloud
- image: Official Debian Stretch
- key_name: Riku Linaro
- wait: yes
- flavor: m1.small
- auto_floating_ip: yes
- network: obs-net
- meta:
- hostname: obs-bastion-cn1.linaro.cloud
- - name: Create obs_data volume
- os_volume:
- state: present
- size: 400
- display_name: obs_data
- - name: Create obs_backup volume
- os_volume:
- state: present
- size: 400
- display_name: obs_backup
- - name: Attach obs_data volume to obs server
- os_server_volume:
- state: present
- volume: obs_data
- server: obs-bastion-cn1.linaro.cloud
- device: "{{ hostvars['obs-bastion-cn1.linaro.cloud'].obsdata_dev }}"
- - name: Attach obs_backup volume to obs server
- os_server_volume:
- state: present
- volume: obs_backup
- server: obs-bastion-cn1.linaro.cloud
- device: "{{ hostvars['obs-bastion-cn1.linaro.cloud'].obsbackup_dev }}"
- - name: Deploy OBS worker
- os_server:
- state: present
- name: obs-worker-cn1.linaro.cloud
- image: Official Debian Stretch
- key_name: Riku Linaro
- wait: yes
- flavor: m1.small
- auto_floating_ip: yes
- network: obs-net
- meta:
- hostname: obs-worker-cn1.linaro.cloud
-
-- name: Configure firewall and OBS container
- hosts: obs-bastion-cn1.linaro.cloud
- vars_files:
- - "{{secrets_dir}}/group_vars/all"
- - vars/empty.yml
- become: yes
- roles:
- - role: ssh-ldap
- tags: [ssh-ldap]
- - role: obs-bastion
- worker_ip:
- - 192.168.1.1/24
- - role: systemd-container
- container_name: obs
- container_user: obs-admin
- ssh_port: 2201
-
-- name: Install OBS server
- hosts: obs-server-cn1.linaro.cloud
- become: yes
- vars_files:
- - "{{secrets_dir}}/host_vars/{{inventory_hostname}}"
- roles:
- - role: letsencrypt
- email: riku.voipio@linaro.org
- - role: obs
-
-- name: Install staging worker
- hosts: obs-worker-cn1.linaro.cloud
- become: yes
- roles:
- - role: obs-worker
- OBS_IP: 192.168.1.10
- OBS_JOBS: 2
- OBS_PORT: 5454
- OBS_TMPFS: 0
diff --git a/obs-us1.yml b/obs-us1.yml
deleted file mode 100644
index 11041771..00000000
--- a/obs-us1.yml
+++ /dev/null
@@ -1,93 +0,0 @@
-# Deploy OBS on devcloud
----
-- name: Create Production OBS machines in OpenStack
- hosts: localhost
- gather_facts: false
- tasks:
- - name: create OBS bastion server
- os_server:
- state: present
- name: obs-bastion-us1.linaro.cloud
- image: Official Debian Stretch
- key_name: Riku Linaro
- wait: yes
- flavor: m1.large
- auto_floating_ip: yes
- network: obs-net
- meta:
- hostname: obs-bastion-us1.linaro.cloud
- - name: Create obs_data volume
- os_volume:
- state: present
- size: 400
- display_name: obs_data
- - name: Create obs_backup volume
- os_volume:
- state: present
- size: 400
- display_name: obs_backup
- - name: Attach obs_data volume to obs server
- os_server_volume:
- state: present
- volume: obs_data
- server: obs-bastion-us1.linaro.cloud
- device: "{{ hostvars['obs-bastion-us1.linaro.cloud'].obsdata_dev }}"
- - name: Attach obs_backup volume to obs server
- os_server_volume:
- state: present
- volume: obs_backup
- server: obs-bastion-us1.linaro.cloud
- device: "{{ hostvars['obs-bastion-us1.linaro.cloud'].obsbackup_dev }}"
- - name: Deploy OBS worker
- os_server:
- state: present
- name: obs-worker-us1.linaro.cloud
- image: Official Debian Stretch
- key_name: Riku Linaro
- wait: yes
- flavor: m1.tiny
- auto_floating_ip: no
- network: obs-net
- meta:
- hostname: obs-worker-us1.linaro.cloud
-
-- name: Configure firewall and OBS container
- hosts: obs-bastion-us1.linaro.cloud
- vars_files:
- - "{{secrets_dir}}/group_vars/all"
- - vars/empty.yml
- become: yes
- roles:
- - role: ssh-ldap
- tags: [ssh-ldap]
- - role: obs-bastion
- worker_ip:
- - 192.168.1.1/24
- - 10.20.0.1/24
- - 138.201.52.83
- - 147.75.32.78
- - 51.15.128.165
- - role: systemd-container
- container_name: obs
- container_user: obs-admin
- ssh_port: 2201
-
-- name: Install OBS server
- hosts: obs-server-us1.linaro.cloud
- become: yes
- vars_files:
- - "{{secrets_dir}}/host_vars/{{inventory_hostname}}"
- roles:
- - role: restic
- backup_host: 103.20.251.151
- backup_user: backup-bot
- backup_db:
- - obsapi
- backup_dirs:
- - /srv/obs
- - /etc
- tags: [backup]
- - role: letsencrypt
- hostname: obs.linaro.org
- email: riku.voipio@linaro.org
- - role: obs
diff --git a/obs-workers.yml b/obs-workers.yml
deleted file mode 100644
index 935b9b2d..00000000
--- a/obs-workers.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-# OBS workers
----
-- name: Deploy OBS workers
- hosts: obs-workers
- become: yes
- roles:
- - role: obs-worker
-
diff --git a/obs.yml b/obs.yml
new file mode 100644
index 00000000..eb9888eb
--- /dev/null
+++ b/obs.yml
@@ -0,0 +1,13 @@
+---
+- name: Deploy OBS vhost
+ hosts: obs.linaro.org
+ become: yes
+ vars_files:
+ - "{{secrets_dir}}/group_vars/all"
+ - "{{secrets_dir}}/group_vars/dehydrated"
+ - "{{secrets_dir}}/host_vars/{{inventory_hostname}}"
+ - vars/empty.yml
+ roles:
+ - {role: dehydrated, tags: [ssl]}
+ - {role: apache-site, src: apache/vhost-obs.conf, config: "obs.linaro.org", tags: [apache]}
+ - {role: obs_deps, tags: [obs_deps]}
diff --git a/patchwork.yml b/patchwork.yml
index d648a253..b7876735 100644
--- a/patchwork.yml
+++ b/patchwork.yml
@@ -4,10 +4,11 @@
become: yes
vars_files:
- "{{secrets_dir}}/host_vars/{{inventory_hostname}}"
+ - "{{secrets_dir}}/group_vars/dehydrated"
roles:
- - {role: certbot, tags: [ssl]}
- - postgres
- - patchwork-deps
+ - {role: dehydrated, tags: [ssl]}
+ - {role: postgres, tags: [postgres]}
+ - {role: patchwork-deps, tags: [django,patchworks]}
- {role: django, tags: [django]}
- {role: apache-site, src: patchwork/apache.conf, config: "{{inventory_hostname}}", tags: [apache] }
diff --git a/per-service/bugzilla/files/bugzilla-apache.conf b/per-service/bugzilla/files/bugzilla-apache.conf
index 942f2d69..130426c9 100644
--- a/per-service/bugzilla/files/bugzilla-apache.conf
+++ b/per-service/bugzilla/files/bugzilla-apache.conf
@@ -3,17 +3,16 @@
<VirtualHost *:80>
ServerName {{hostname}}
- RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{hostname}}/$1"
+ Include /etc/apache2/linaro/headers-http.conf
- Alias "/.well-known/acme-challenge" "/srv/certbot/.well-known/acme-challenge"
- <Directory /srv/certbot/.well-known/acme-challenge>
- Require all granted
- </Directory>
+ RedirectMatch permanent "^/(?!\.well-known/acme-challenge)(.*)" "https://{{hostname}}/$1"
+ Include /etc/apache2/linaro/letsencrypt.conf
</VirtualHost>
<VirtualHost *:443>
ServerName {{hostname}}
ServerAdmin webmaster@linaro.org
+ RedirectMatch 404 /\.git # block .git being hosted
DocumentRoot {{install_base}}/{{hostname}}
@@ -34,19 +33,13 @@
KeepAliveTimeout 9
MaxKeepAliveRequests 150
- SSLEngine On
- SSLProtocol All -SSLv2 -SSLv3
- SSLCompression Off
- SSLHonorCipherOrder On
- SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:\
- EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:\
- !aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:\
- CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA"
-
+ Include /etc/apache2/linaro/settings-ssl.conf
SSLCertificateFile {{ssl_cert}}
SSLCertificateKeyFile {{ssl_key}}
SSLCertificateChainFile {{ssl_ca}}
+ Include /etc/apache2/linaro/headers-https.conf
+
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
@@ -66,7 +59,6 @@
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
- Header always set Strict-Transport-Security "max-age=63072000"
Header append Cache-Control "no-transform"
{% if inventory_hostname == "bugs.linaro.org" %}
diff --git a/postfix.yml b/postfix.yml
index 7665123e..b05e4ea0 100644
--- a/postfix.yml
+++ b/postfix.yml
@@ -1,13 +1,20 @@
---
- name: Configure postfix on system
hosts:
- - review.trustedfirmware.org
- - developer.trustedfirmware.org
- - patches.opendataplane.org
- - review.mlplatform.org
- gather_facts: no
+ - postfix
become: yes
vars_files:
+ - ["{{secrets_dir}}/group_vars/ses-proxy"]
- ["{{secrets_dir}}/host_vars/{{inventory_hostname}}"]
roles:
- {role: postfix}
+
+- name: deploy SES proxy
+ hosts:
+ - ses_proxy
+ become: yes
+ vars_files:
+ - ["{{secrets_dir}}/group_vars/ses-proxy"]
+ roles:
+ - { role: docker-ses-proxy, tags: [ses-proxy]}
+
diff --git a/publishing-baremetal.yml b/publishing-baremetal.yml
new file mode 100644
index 00000000..98d23ad8
--- /dev/null
+++ b/publishing-baremetal.yml
@@ -0,0 +1,11 @@
+---
+- name: Deploy a bare metal publishing server
+ hosts: publishing
+ become: yes
+ vars_files:
+ - "{{secrets_dir}}/group_vars/all"
+ - "{{secrets_dir}}/group_vars/dehydrated"
+ roles:
+ - {role: dehydrated, tags: [ssl]}
+ - {role: snowflake-publishing, tags: [publishing]}
+ - {role: apache-site, src: "apache/{{ inventory_hostname }}.conf", config: "{{inventory_hostname}}", tags: [apache]}
diff --git a/publishing-docker.yml b/publishing-docker.yml
index faf5c9e0..e92f2320 100644
--- a/publishing-docker.yml
+++ b/publishing-docker.yml
@@ -1,11 +1,33 @@
---
- name: Deploy publishing server
- hosts: publishing-docker
+ hosts: publishing_docker
become: yes
vars_files:
- "{{secrets_dir}}/group_vars/all"
- "{{secrets_dir}}/group_vars/dehydrated"
roles:
- - {role: ssh-ldap, tags: [ssh-ldap]}
- {role: dehydrated, tags: [ssl]}
- - {role: docker-publishing, tags: [docker]}
+ - {role: docker-publishing, tags: [docker,docker-publishing]}
+
+- name: Deploy publishing site
+ hosts: publishing_docker_site
+ become: yes
+ vars_files:
+ - "{{secrets_dir}}/group_vars/all"
+ roles:
+ - {role: docker-publishing-site, tags: [docker-site]}
+ - {role: apache-site, src: "publishing/docker-proxy.conf", config: "{{inventory_hostname}}", tags: [apache]}
+
+- name: Deploy builds.96boards.org redirect
+ hosts: builds.96boards.org
+ gather_facts: no
+ become: yes
+ roles:
+ - {role: apache-site, src: publishing/llp-apache-96boards.conf, config: "builds.96boards.org", tags: [96boards]}
+
+- name: Deploy obs.linaro.org redirect
+ hosts: obs.linaro.org
+ gather_facts: no
+ become: yes
+ roles:
+ - {role: apache-site, src: publishing/llp-apache-obs.conf, config: "obs.linaro.org", tags: [obs]}
diff --git a/publishing.yml b/publishing.yml
deleted file mode 100644
index c7fdbce7..00000000
--- a/publishing.yml
+++ /dev/null
@@ -1,24 +0,0 @@
----
-- hosts: publishing
- gather_facts: yes
- become: yes
- roles:
- - {role: certbot, tags: [ssl]}
- - publishing-deps
- - django
- - {role: apache-site, src: publishing/llp-apache.conf, config: "{{hostname}}", tags: [apache] }
-
-# Used for Apache redirect. builds.96boards.org
-# Define the host here that we want to handle redirects.
-- hosts: releases-us.linaro.org
- gather_facts: no
- become: yes
- roles:
- - {role: apache-site, src: publishing/llp-apache-96boards.conf, config: "builds.96boards.org", tags: [96boards]}
-
-# Used for Apache redirect.
-- hosts: testdata.linaro.org
- gather_facts: no
- become: yes
- roles:
- - {role: apache-site, src: publishing/llp-apache-testdata-validation.conf, config: "000-testdata.validation.linaro.org", tags: [testdata]}
diff --git a/roles/apache-site/defaults/main.yml b/roles/apache-site/defaults/main.yml
index ed97d539..d102071e 100644
--- a/roles/apache-site/defaults/main.yml
+++ b/roles/apache-site/defaults/main.yml
@@ -1 +1,5 @@
---
+apache_modules: []
+apache_modules_default:
+ - ssl
+ - headers
diff --git a/roles/apache-site/files/block-refs.conf b/roles/apache-site/files/block-refs.conf
new file mode 100644
index 00000000..4ae34917
--- /dev/null
+++ b/roles/apache-site/files/block-refs.conf
@@ -0,0 +1,5 @@
+ SetEnvIf User-Agent "Amazon Route 53 Health Check" dontlog
+ SetEnvIf User-Agent "Pingdom.*" dontlog
+
+ RewriteCond %{HTTP_USER_AGENT} ^.*(Applebot|AhrefsBot|amazonbot|bingbot|Baidu|Baiduspider|Bytespider|DotBot|360Spider|360|googlebot|MauiBot|SemrushBot|MegaIndex|PetalBot|Yandex|MJ12bot|TurnItIn|GPTBot).*$ [nocase]
+ RewriteRule ^(.*)$ - [forbidden,last]
diff --git a/roles/apache-site/files/headers-http.conf b/roles/apache-site/files/headers-http.conf
new file mode 100644
index 00000000..614a1448
--- /dev/null
+++ b/roles/apache-site/files/headers-http.conf
@@ -0,0 +1,4 @@
+Header setifempty X-XSS-Protection 1;mode=block
+Header setifempty Content-Security-Policy "default-src 'self';script-src 'self' www.google-analytics.com ajax.googleapis.com;"
+Header setifempty X-Content-Type-Options nosniff
+Header setifempty Cache-Control "max-age=86400, public"
diff --git a/roles/apache-site/files/headers-https.conf b/roles/apache-site/files/headers-https.conf
new file mode 100644
index 00000000..530f1b4a
--- /dev/null
+++ b/roles/apache-site/files/headers-https.conf
@@ -0,0 +1,5 @@
+Header setifempty X-XSS-Protection 1;mode=block
+Header setifempty Content-Security-Policy "script-src 'self' www.google-analytics.com ajax.googleapis.com;"
+Header setifempty X-Content-Type-Options nosniff
+Header setifempty Strict-Transport-Security "max-age=63072000"
+Header setifempty Cache-Control "max-age=86400, public"
diff --git a/roles/apache-site/files/letsencrypt.conf b/roles/apache-site/files/letsencrypt.conf
new file mode 100644
index 00000000..40edb3b8
--- /dev/null
+++ b/roles/apache-site/files/letsencrypt.conf
@@ -0,0 +1,4 @@
+Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
+<Directory "/srv/certbot/">
+ Require all granted
+</Directory>
diff --git a/roles/apache-site/files/logrotate.conf b/roles/apache-site/files/logrotate.conf
new file mode 100644
index 00000000..88e3dc72
--- /dev/null
+++ b/roles/apache-site/files/logrotate.conf
@@ -0,0 +1,19 @@
+/var/log/apache2/*.log {
+ daily
+ missingok
+ rotate 365
+ dateext
+ compress
+ delaycompress
+ sharedscripts
+ postrotate
+ if invoke-rc.d apache2 status > /dev/null 2>&1; then \
+ invoke-rc.d apache2 reload > /dev/null 2>&1; \
+ fi;
+ endscript
+ prerotate
+ if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
+ run-parts /etc/logrotate.d/httpd-prerotate; \
+ fi; \
+ endscript
+}
diff --git a/roles/apache-site/files/settings-ssl.conf b/roles/apache-site/files/settings-ssl.conf
new file mode 100644
index 00000000..4e57cd70
--- /dev/null
+++ b/roles/apache-site/files/settings-ssl.conf
@@ -0,0 +1,3 @@
+SSLEngine On
+SSLCompression Off
+SSLOptions +StdEnvVars
diff --git a/roles/apache-site/files/ssl.conf b/roles/apache-site/files/ssl.conf
new file mode 100644
index 00000000..cbb6b98e
--- /dev/null
+++ b/roles/apache-site/files/ssl.conf
@@ -0,0 +1,85 @@
+<IfModule mod_ssl.c>
+
+ # Pseudo Random Number Generator (PRNG):
+ # Configure one or more sources to seed the PRNG of the SSL library.
+ # The seed data should be of good random quality.
+ # WARNING! On some platforms /dev/random blocks if not enough entropy
+ # is available. This means you then cannot use the /dev/random device
+ # because it would lead to very long connection times (as long as
+ # it requires to make more entropy available). But usually those
+ # platforms additionally provide a /dev/urandom device which doesn't
+ # block. So, if available, use this one instead. Read the mod_ssl User
+ # Manual for more details.
+ #
+ SSLRandomSeed startup builtin
+ SSLRandomSeed startup file:/dev/urandom 512
+ SSLRandomSeed connect builtin
+ SSLRandomSeed connect file:/dev/urandom 512
+
+ ##
+ ## SSL Global Context
+ ##
+ ## All SSL configuration in this context applies both to
+ ## the main server and all SSL-enabled virtual hosts.
+ ##
+
+ #
+ # Some MIME-types for downloading Certificates and CRLs
+ #
+ AddType application/x-x509-ca-cert .crt
+ AddType application/x-pkcs7-crl .crl
+
+ # Pass Phrase Dialog:
+ # Configure the pass phrase gathering process.
+ # The filtering dialog program (`builtin' is a internal
+ # terminal dialog) has to provide the pass phrase on stdout.
+ SSLPassPhraseDialog exec:/usr/share/apache2/ask-for-passphrase
+
+ # Inter-Process Session Cache:
+ # Configure the SSL Session Cache: First the mechanism
+ # to use and second the expiring timeout (in seconds).
+ # (The mechanism dbm has known memory leaks and should not be used).
+ #SSLSessionCache dbm:${APACHE_RUN_DIR}/ssl_scache
+ SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
+ SSLSessionCacheTimeout 300
+
+ # Semaphore:
+ # Configure the path to the mutual exclusion semaphore the
+ # SSL engine uses internally for inter-process synchronization.
+ # (Disabled by default, the global Mutex directive consolidates by default
+ # this)
+ #Mutex file:${APACHE_LOCK_DIR}/ssl_mutex ssl-cache
+
+
+ # SSL Cipher Suite:
+ # List the ciphers that the client is permitted to negotiate. See the
+ # ciphers(1) man page from the openssl package for list of all available
+ # options.
+ # Enable only secure ciphers:
+ SSLCipherSuite HIGH:!aNULL
+
+ # SSL server cipher order preference:
+ # Use server priorities for cipher algorithm choice.
+ # Clients may prefer lower grade encryption. You should enable this
+ # option if you want to enforce stronger encryption, and can afford
+ # the CPU cost, and did not override SSLCipherSuite in a way that puts
+ # insecure ciphers first.
+ # Default: Off
+ SSLHonorCipherOrder on
+
+ # The protocols to enable.
+ # Available values: all, SSLv3, TLSv1, TLSv1.1, TLSv1.2
+ # SSL v2 is no longer supported
+ SSLProtocol -all +TLSv1.2
+
+ # Allow insecure renegotiation with clients which do not yet support the
+ # secure renegotiation protocol. Default: Off
+ #SSLInsecureRenegotiation on
+
+ # Whether to forbid non-SNI clients to access name based virtual hosts.
+ # Default: Off
+ #SSLStrictSNIVHostCheck On
+
+</IfModule>
+
+# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
diff --git a/roles/apache-site/handlers/main.yml b/roles/apache-site/handlers/main.yml
index e0240f7d..630dcb20 100644
--- a/roles/apache-site/handlers/main.yml
+++ b/roles/apache-site/handlers/main.yml
@@ -1,7 +1,3 @@
---
-- name: install-site-apache
- import_tasks: install_site.yml
-
- name: reload-apache
service: name=apache2 state=reloaded
- listen: install-site-apache
diff --git a/roles/apache-site/tasks/docker_apache.yml b/roles/apache-site/tasks/docker_apache.yml
new file mode 100644
index 00000000..050df54b
--- /dev/null
+++ b/roles/apache-site/tasks/docker_apache.yml
@@ -0,0 +1,27 @@
+---
+- name: Disable apache on the host
+ systemd:
+ daemon_reload: yes
+ enabled: no
+ name: apache2
+ state: stopped
+
+- name: Cram apache to a container
+ docker_container:
+ name: apache
+ image: linaro/apache:bionic
+ state: started
+ networks:
+ - name: "{{apache_network}}"
+ log_driver: journald
+ restart_policy: unless-stopped
+ published_ports:
+ - 80:80
+ - 443:443
+ volumes:
+ - /etc/apache2:/etc/apache2:ro
+ - /etc/ssl:/etc/ssl:ro
+ - /etc/dehydrated:/etc/dehydrated:ro
+ - /srv/certbot:/srv/certbot:rw
+ - /var/log/apache:/var/log/apache:rw
+
diff --git a/roles/apache-site/tasks/install_site.yml b/roles/apache-site/tasks/install_site.yml
index 027daa33..5502ebc3 100644
--- a/roles/apache-site/tasks/install_site.yml
+++ b/roles/apache-site/tasks/install_site.yml
@@ -1,10 +1,21 @@
---
+- name: Install Apache site config
+ template: src=files/{{src}} dest=/etc/apache2/sites-available/{{config}} mode=0644 backup=yes
+ owner=root
+ group=root
+ notify:
+ - reload-apache
+
- name: Add Apache 2.4 compatibility symlink
file: state=link force=yes
src={{config}}
dest=/etc/apache2/sites-available/{{config}}.conf
+ notify:
+ - reload-apache
- name: Enable site config
command: a2ensite {{config}}
- register: result
- changed_when: "'already enabled' not in result.stdout"
+ args:
+ creates: /etc/apache2/sites-enabled/{{config}}.conf
+ notify:
+ - reload-apache
diff --git a/roles/apache-site/tasks/main.yml b/roles/apache-site/tasks/main.yml
index 74880fad..565c1d01 100644
--- a/roles/apache-site/tasks/main.yml
+++ b/roles/apache-site/tasks/main.yml
@@ -4,14 +4,41 @@
vars:
packages:
- apache2
+ - ssl-cert
+
+- name: Ensure Linaro Apache config directory exists
+ file: path=/etc/apache2/linaro state=directory
+
+- name: Install Linaro Apache configs
+ copy:
+ src: files/{{item}}
+ dest: /etc/apache2/linaro/{{item}}
+ with_items:
+ - headers-https.conf
+ - headers-http.conf
+ - settings-ssl.conf
+ - letsencrypt.conf
+ - block-refs.conf
+
+- name: Install ssl.conf
+ copy:
+ src: files/ssl.conf
+ dest: /etc/apache2/mods-available/ssl.conf
+
+- name: Enable Apache modules
+ command: a2enmod {{ item }}
+ creates=/etc/apache2/mods-enabled/{{ item }}.load
+ with_items:
+ - "{{apache_modules_default}}"
+ - "{{apache_modules}}"
+ notify:
+ - reload-apache
+ tags:
+ - apache
- name: Install Apache site config
- template: src=files/{{src}} dest=/etc/apache2/sites-available/{{config}} mode=0644 backup=yes
- owner=root
- group=root
when: config is defined
- notify:
- - install-site-apache
+ include_tasks: install_site.yml
tags:
- apache
- apache-conf
@@ -28,3 +55,45 @@
- name: Install Block Bad Bots configurations
include_tasks: block_bad_bots.yml
when: block_bad_bots is defined
+
+- name: Check for SSL certs
+ stat:
+ path: "{{ssl_cert}}"
+ register: ssl_file
+ when: ssl_cert is defined
+
+- name: Ensure directory for ssl cert is created
+ file:
+ path: "{{ssl_cert|dirname}}"
+ state: directory
+ mode: 0700
+ owner: root
+ group: root
+ recurse: yes
+ when: ssl_file.stat.exists != True
+
+- name: Use snakeoil as default SSL cert
+ file:
+ state: link
+ src: /etc/ssl/certs/ssl-cert-snakeoil.pem
+ dest: "{{ssl_cert}}"
+ when: ssl_file.stat.exists != True
+
+- name: Use snakeoil key as default SSL key
+ file:
+ state: link
+ src: /etc/ssl/private/ssl-cert-snakeoil.key
+ dest: "{{ssl_key}}"
+ when: ssl_file.stat.exists != True
+
+- name: Install logrotate.conf to keep 1 year of log files
+ template:
+ dest: /etc/logrotate.d/apache2
+ src: files/logrotate.conf
+
+- name: Containerize apache
+ when: docker_apache is defined
+ include_tasks: docker_apache.yml
+ tags:
+ - apache
+ - apache-conf
diff --git a/roles/atom/meta/main.yml b/roles/atom/meta/main.yml
new file mode 100644
index 00000000..47b5d124
--- /dev/null
+++ b/roles/atom/meta/main.yml
@@ -0,0 +1,12 @@
+---
+dependencies:
+ - {role: defaults, tags: [defaults]}
+ - {role: ufw, tags: [ufw], when: ufw_open_ports is defined}
+ - {role: ssh-admin, tags: [ssh-admin], when: admin_user is defined}
+ - {role: linaro-git-tools, tags: [lgt]}
+ - {role: ssh-ldap, tags: [ssh-ldap], when: no_ldap is undefined}
+ - {role: node_exporter, tags: [node_exporter]}
+ - {role: docker-deps, tags: [docker], when: is_docker_host is true}
+ - {role: rktools, tags: [rktools]}
+ # - {role: filebeat, tags: [filebeat]}
+ # - {role: metricbeat, tags: [metricbeat]}
diff --git a/roles/bugzilla/tasks/main.yml b/roles/bugzilla/tasks/main.yml
index 5480d518..91f96586 100644
--- a/roles/bugzilla/tasks/main.yml
+++ b/roles/bugzilla/tasks/main.yml
@@ -88,3 +88,12 @@
copy: src={{bugzilla_variables}}
dest={{install_base}}/{{hostname}}/template/en/custom/global/variables.none.tmpl
owner=root group=www-data
+
+- name: Install extra utils to manage bugzilla
+ file: path=/srv/linaro-bugzilla-tools
+ state=directory owner=root group=root mode=0770
+
+- name: Copy sortkeys script
+ template: src=templates/renumber_cf_version_sortkeys.py
+ dest=/srv/linaro-bugzilla-tools/renumber_cf_version_sortkeys.py
+ mode=0660 owner=root group=root
diff --git a/roles/bugzilla/templates/renumber_cf_versions_sortkeys.py b/roles/bugzilla/templates/renumber_cf_versions_sortkeys.py
new file mode 100755
index 00000000..5112105f
--- /dev/null
+++ b/roles/bugzilla/templates/renumber_cf_versions_sortkeys.py
@@ -0,0 +1,77 @@
+#!/usr/bin/python
+
+# This script is meant to help renumber the sortkeys
+# for kernel versions in bugzilla. The general
+# algorithm is that we set a new "maximum" sortkey,
+# pull all the current sortkey values out of the
+# db, renumber them to start at the new maximum,
+# and update with the new values.
+#
+# The script should be idempotent and will take
+# moved sortkeys into account.
+
+import psycopg2
+import sys
+
+START=200
+OLD_CAP=100
+LAST_MIGRATED=START+1
+
+
+def update_kv(conn, vid, new_val):
+ print "Updating %s -> %s" % (vid, new_val)
+
+ sql = """update cf_kernel_version set sortkey = %s where id = %s"""
+
+ cur = conn.cursor()
+ cur.execute(sql, (new_val, vid))
+ conn.commit()
+ cur.close()
+
+
+conn = psycopg2.connect(
+ database="bugzilla",
+ user="bugzilla",
+ password="{{ db_password }}",
+ host="localhost"
+ )
+
+cur = conn.cursor()
+
+cur.execute("select * from cf_kernel_version")
+results = cur.fetchall()
+
+old_vers = {}
+
+for r in results:
+ (vid, name, sortkey, enabled, display_val) = r
+
+ # skip Next and Mainline
+ if sortkey < 2:
+ continue
+
+ if sortkey > OLD_CAP:
+ # if it's greater than the old cap, but less than LAST_MIGRATED
+ # then it should be the new LAST_MIGRATED, else ignore it
+ if sortkey < LAST_MIGRATED:
+ LAST_MIGRATED = sortkey
+ else:
+ if not old_vers.has_key(sortkey):
+ old_vers[sortkey] = []
+ old_vers[sortkey].append(vid)
+
+olds = old_vers.keys()
+
+if len(olds) < 1:
+ print "Nothing to do... c'ya!"
+ sys.exit(0)
+
+olds.sort()
+olds.reverse()
+
+pos = LAST_MIGRATED
+for x in olds:
+ pos -= 1
+ for y in old_vers[x]:
+ print " %s %s -> %s" % (y, x, pos)
+ update_kv(conn, y, pos)
diff --git a/roles/certbot/defaults/main.yml b/roles/certbot/defaults/main.yml
deleted file mode 100644
index 93bd5f1d..00000000
--- a/roles/certbot/defaults/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-certbot_domains: [ "{{hostname}}" ]
-certbot_email: systems@linaro.org
diff --git a/roles/certbot/files/acme-challenge.apache2 b/roles/certbot/files/acme-challenge.apache2
deleted file mode 100644
index b585c423..00000000
--- a/roles/certbot/files/acme-challenge.apache2
+++ /dev/null
@@ -1,22 +0,0 @@
-<VirtualHost *:80>
-# This creates a place for us to post acme-challenges for
-# LetsEncrypt certificates. It will be up to the playbook
-# for the service that installs the apache config to exempt
-# the URL from a redirect with something like:
-#
-# RedirectMatch permanent \
-# "^/(?!\.well-known/acme-challenge)(.*)" \
-# "https://{{hostname}}/$1"
-#
-# If the config is using rewrite rules, use:
-#
-# RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.*$
-#
-# If certbot is run manually, you should use the options:
-# --webroot -w /srv/certbot
-#
- Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
- <Directory "/srv/certbot/.well-known/acme-challenge/">
- Require all granted
- </Directory>
-</VirtualHost>
diff --git a/roles/certbot/files/apache.hook.service b/roles/certbot/files/apache.hook.service
deleted file mode 100755
index 3d28c372..00000000
--- a/roles/certbot/files/apache.hook.service
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-service apache2 reload
diff --git a/roles/certbot/handlers/main.yml b/roles/certbot/handlers/main.yml
deleted file mode 100644
index e7acde15..00000000
--- a/roles/certbot/handlers/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-#note: won't make a request if the cert isn't due for renewal or no new domains
-- name: run-certbot
- command: certbot --expand --agree-tos -n certonly -m "{{certbot_email}}" -d "{{item}}" --webroot -w /srv/certbot
- with_items: "{{certbot_domains}}"
diff --git a/roles/certbot/tasks/certbot.yml b/roles/certbot/tasks/certbot.yml
deleted file mode 100644
index f4b4c078..00000000
--- a/roles/certbot/tasks/certbot.yml
+++ /dev/null
@@ -1,43 +0,0 @@
----
-- name: Add certbot PPA
- apt_repository:
- repo: "{{item}}"
- with_items:
- - ppa:certbot/certbot
-
-- name: Install certbot packages
- apt: pkg={{item}} state=present
- with_items:
- - certbot
- - python-certbot-apache
- - python-openssl
-
-- name: Check valid cert for all domains
- command: certbot certificates
- register: certbot_output
- changed_when: not("{{item}}" in certbot_output.stdout)
- with_items: "{{certbot_domains}}"
- notify: run-certbot
-
-- name: Create acme-challenge webroot
- file:
- path: /srv/certbot/.well-known/acme-challenge
- state: directory
- mode: 0755
-
-- name: Ensure renewal hook dir is present
- file:
- path: /etc/letsencrypt/renewal-hooks/deploy
- state: directory
- mode: 0755
-
-- name: Ensure letsencrypt crontab is removed
- file:
- path: /etc/cron.d/letsencrypt-crontab
- state: absent
-
-- name: Install deploy hook for apache
- template:
- dest: /etc/letsencrypt/renewal-hooks/deploy/apache
- src: files/apache.hook.service
- mode: 0755
diff --git a/roles/certbot/tasks/main.yml b/roles/certbot/tasks/main.yml
deleted file mode 100644
index aea52159..00000000
--- a/roles/certbot/tasks/main.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-- name: Include snakeoil cert settings
- include_tasks: snakeoil.yml
- when: (snakeoil is defined) and (snakeoil == True)
-
-- name: Include certbot tasks
- include_tasks: certbot.yml
- when: (snakeoil is undefined) or (snakeoil != True)
diff --git a/roles/certbot/tasks/snakeoil.yml b/roles/certbot/tasks/snakeoil.yml
deleted file mode 100644
index 073ba9e7..00000000
--- a/roles/certbot/tasks/snakeoil.yml
+++ /dev/null
@@ -1,20 +0,0 @@
----
-- name: Ensure certbot directory exists
- file:
- path: /etc/letsencrypt/live/{{item}}
- state: directory
- with_items: "{{certbot_domains}}"
-
-- name: Link LE cert to snakeoil cert
- file:
- src: /etc/ssl/certs/ssl-cert-snakeoil.pem
- dest: /etc/letsencrypt/live/{{item}}/fullchain.pem
- state: link
- with_items: "{{certbot_domains}}"
-
-- name: Link LE key to snakeoil key
- file:
- src: /etc/ssl/private/ssl-cert-snakeoil.key
- dest: /etc/letsencrypt/live/{{item}}/privkey.pem
- state: link
- with_items: "{{certbot_domains}}"
diff --git a/roles/cgit/files/header.html b/roles/cgit/files/header.html
new file mode 100644
index 00000000..fdbfc113
--- /dev/null
+++ b/roles/cgit/files/header.html
@@ -0,0 +1,2 @@
+<link rel='stylesheet' type='text/css' href='/cgit-css/linaro.css' />
+<script src="/cgit-css/linaro.js"> </script>
diff --git a/roles/cgit/handlers/main.yml b/roles/cgit/handlers/main.yml
deleted file mode 100644
index 33dbd396..00000000
--- a/roles/cgit/handlers/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-- name: build-cgit
- command: make
- chdir={{tools_checkout_dir}}/cgit
diff --git a/roles/cgit/tasks/main.yml b/roles/cgit/tasks/main.yml
index 50086936..ceb55dfa 100644
--- a/roles/cgit/tasks/main.yml
+++ b/roles/cgit/tasks/main.yml
@@ -18,12 +18,15 @@
repo: deb http://obs.linaro.org/STG/{{ansible_distribution_release}}/ ./
state: present
+# check https://obs.linaro.org/package/view_file/STG/cgit/INSTRUCTIONS.txt
- name: Install cgit and dependencies
- apt: name={{ item }} state=present update_cache=yes
- with_items:
- - cgit=1.2.1-linaro1
- - python3-markdown
- - python3-docutils
+ apt: name={{ packages }} state=present update_cache=yes
+ vars:
+ packages:
+ - cgit=1.2.3+git2.25-linaro1
+ - python3-markdown
+ - python3-docutils
+ - mime-support
- name: Link cgit css into apache directory
file: src=/usr/share/cgit/cgit.css
@@ -33,8 +36,14 @@
- name: Copy the site logo
copy: src=git-logo.png dest={{ apache_root }}/cgit/cgit-css/ mode=0755
+- name: Install Linaro customizations
+ template: src={{ item }} dest={{ apache_root }}/cgit/cgit-css/ mode=0755
+ with_items:
+ - linaro.css
+ - linaro.js
+
- name: Install header.html
- template: src=header.html dest={{ apache_root }}/cgit/header.html mode=0755
+ copy: src=header.html dest={{ apache_root }}/cgit/header.html mode=0755
- name: Create a wrapper script to the cgit binary
copy: dest={{ apache_root }}/cgit/cgit owner=root group=root mode=0755
@@ -56,3 +65,9 @@
template: src=sudoers dest=/etc/sudoers.d/cgit
owner=root group=root mode=0755
validate='visudo -cf %s'
+
+- name: Install cgitrc to hide repo
+ template: src=cgitrc-repo-hide dest={{ repo_root }}/{{ item }}/cgitrc
+ mode=0755 owner={{ git_user }} group={{ git_user }}
+ with_items: "{{ cgit_hide_repos }}"
+ when: cgit_hide_repos is defined
diff --git a/roles/cgit/templates/cgitrc b/roles/cgit/templates/cgitrc
index 526b3d6d..23090be4 100644
--- a/roles/cgit/templates/cgitrc
+++ b/roles/cgit/templates/cgitrc
@@ -13,12 +13,14 @@ strict-export=git-daemon-export-ok
{% if server_access == "private" %}
auth-filter={{apache_root}}/cgit/allowed-repo.sh
allowed-repos-cmd={{apache_root}}/cgit/allowed-repos.sh
+enable-http-clone=0
{% endif %}
enable-git-config=1
enable-index-owner=0
clone-prefix={%for x in clone_urls%}{{x}} {%endfor%}
-snapshots=tar.gz
+# Comment out to disable GZ downloads
+#snapshots=tar.gz
header={{apache_root}}/cgit/header.html
@@ -57,7 +59,13 @@ readme=:INSTALL
readme=:install
readme=gitolite/readme:README.html
+mimetype-file=/etc/mime.types
+
about-filter=/usr/lib/cgit/filters/about-formatting.sh
section-from-path=1
scan-path={{repo_root}}
+
+render.md=/usr/lib/cgit/filters/html-converters/md2html
+render.rst=/usr/lib/cgit/filters/html-converters/rst2html
+
diff --git a/roles/cgit/templates/cgitrc-repo-hide b/roles/cgit/templates/cgitrc-repo-hide
new file mode 100644
index 00000000..fc0101a2
--- /dev/null
+++ b/roles/cgit/templates/cgitrc-repo-hide
@@ -0,0 +1,4 @@
+# Prefer "hide" over "ignore" so that repo is
+# still available to browse from gerrit, but
+# doesn't show up in indexes of the site.
+hide=1
diff --git a/roles/cgit/templates/linaro.css b/roles/cgit/templates/linaro.css
new file mode 100644
index 00000000..717b7d82
--- /dev/null
+++ b/roles/cgit/templates/linaro.css
@@ -0,0 +1,9 @@
+tr.reposection {
+ cursor: pointer;
+}
+tr.reposection td:before {
+ content: "â–¼ ";
+}
+tr.reposection.collapsed td:before {
+ content: "â–¶ ";
+}
diff --git a/roles/cgit/templates/header.html b/roles/cgit/templates/linaro.js
index 9ba87621..a84ffde5 100644
--- a/roles/cgit/templates/header.html
+++ b/roles/cgit/templates/linaro.js
@@ -1,16 +1,3 @@
-<style>
-tr.reposection {
- cursor: pointer;
-}
-tr.reposection td:before {
- content: "â–¼ ";
-}
-tr.reposection.collapsed td:before {
- content: "â–¶ ";
-}
-</style>
-
-<script>
function toggle(tr) {
var collapsed = tr.classList.contains("collapsed");
if (collapsed)
@@ -49,4 +36,3 @@ document.addEventListener('DOMContentLoaded', function(event) {
ga('send', 'pageview');
{% endif %}
});
-</script>
diff --git a/roles/colo-bastion/files/serial-connect b/roles/colo-bastion/files/serial-connect
deleted file mode 100644
index c83eff47..00000000
--- a/roles/colo-bastion/files/serial-connect
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -e
-
-if [ $# -ne 1 ] ; then
- echo "Usage: $0 <host>"
- exit 1
-fi
-
-if [[ $1 == r1-* ]] ; then
- exec console -e^xx -M r1-x86-1 -p 3109 $1
-fi
-if [[ $1 == r2-* ]] ; then
- exec console -e^xx -M r2-x86-1 -p 3109 $1
-fi
-if [[ $1 == r3-* ]] ; then
- exec console -e^xx -M r3-x86-1 -p 3109 $1
-fi
-
-echo "Invalid host name: $1"
-exit 1
diff --git a/roles/colo-bastion/tasks/main.yml b/roles/colo-bastion/tasks/main.yml
deleted file mode 100644
index 55fea60a..00000000
--- a/roles/colo-bastion/tasks/main.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-- name: Install required packages
- apt:
- pkg: "{{item}}"
- with_items:
- - conserver-client
-
-- name: Install the serial connect script
- copy:
- src: serial-connect
- dest: /usr/local/bin
- mode: 0755
diff --git a/roles/colo-console-server/files/conserver-server.conf b/roles/colo-console-server/files/conserver-server.conf
deleted file mode 100644
index 8ef9ecca..00000000
--- a/roles/colo-console-server/files/conserver-server.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-# DO NOT EDIT! MANAGED BY ANSIBILE
-OPTS='-p 3109 -i '
-ASROOT=1
diff --git a/roles/colo-console-server/files/serial-connect-dl120 b/roles/colo-console-server/files/serial-connect-dl120
deleted file mode 100755
index ce33894b..00000000
--- a/roles/colo-console-server/files/serial-connect-dl120
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/python
-
-# DO NOT EDIT! MANAGED BY ANSIBLE
-
-import argparse
-import os
-import sys
-
-DEVICES = {
- # t1
- 't1-p1': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.2/1-11.2:1.0',
- 't1-p2': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.1/1-11.1:1.0',
- 't1-p3': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.3/1-11.3.2/1-11.3.2:1.0',
- 't1-p4': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.3/1-11.3.1/1-11.3.1:1.0',
- 't1-p5': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.3/1-11.3.4/1-11.3.4:1.0',
- 't1-p6': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.3/1-11.3.3/1-11.3.3:1.0',
- 't1-p7': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.3/1-11.3.6/1-11.3.6:1.0',
- 't1-p8': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.3/1-11.3.5/1-11.3.5:1.0',
- 't1-p9': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.1/1-11.4.1:1.0',
- 't1-p10': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.3/1-11.3.7/1-11.3.7:1.0',
- 't1-p11': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.3/1-11.4.3:1.0',
- 't1-p12': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.2/1-11.4.2:1.0',
- 't1-p13': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.5/1-11.4.5:1.0',
- 't1-p14': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.4/1-11.4.4:1.0',
- 't1-p15': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.7/1-11.4.7:1.0',
- 't1-p16': '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.6/1-11.4.6:1.0',
-}
-
-parser = argparse.ArgumentParser( description='connect to a serial console for: %s' % DEVICES.keys())
-parser.add_argument('-e', '--escape-key', default='a',
- help='picocom escape key. default=a')
-parser.add_argument('-b', '--baud', default='115200',
- help='picocom escape key. default=a')
-parser.add_argument('device', help='Device to connect to')
-
-args = parser.parse_args()
-
-if args.device not in DEVICES:
- sys.exit('Invalid device: ' + args.device)
-
-for p in os.listdir(DEVICES[args.device]):
- if p.startswith('ttyUSB'):
- args = ['/usr/bin/sudo', 'picocom', '-e', args.escape_key,
- '-b', args.baud, '/dev/' + p]
- os.execv(args[0], args)
-
-sys.exit('ERROR: no usb device found?')
diff --git a/roles/colo-console-server/files/serial-connect-dl320 b/roles/colo-console-server/files/serial-connect-dl320
deleted file mode 100755
index 1599cb63..00000000
--- a/roles/colo-console-server/files/serial-connect-dl320
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/python
-
-# DO NOT EDIT! MANAGED BY ANSIBLE
-
-import argparse
-import os
-import sys
-
-DEVICES = {
- # t1
- 't1-p1': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.1/1-1.2.1:1.0',
- 't1-p2': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2:1.0',
- 't1-p3': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.1/1-1.2.3.1:1.0', # discoverable but broke
- 't1-p4': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.2/1-1.2.3.2:1.0',
- 't1-p5': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.3/1-1.2.3.3:1.0',
- 't1-p6': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.4/1-1.2.3.4:1.0',
- 't1-p7': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.5/1-1.2.3.5:1.0',
- 't1-p8': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.6/1-1.2.3.6:1.0',
- 't1-p9': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.7/1-1.2.3.7:1.0',
- 't1-p10': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.1/1-1.2.4.1:1.0',
- 't1-p11': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.2/1-1.2.4.2:1.0',
- 't1-p12': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.3/1-1.2.4.3:1.0',
- 't1-p13': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4:1.0',
- 't1-p14': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.5/1-1.2.4.5:1.0',
- 't1-p15': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.6/1-1.2.4.6:1.0',
- 't1-p16': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.7/1-1.2.4.7:1.0',
-
- # t2
- 't2-p1': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0',
- 't2-p2': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.2/1-1.3.2:1.0',
- 't2-p3': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.3/1-1.3.3.1/1-1.3.3.1:1.0',
- 't2-p4': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.3/1-1.3.3.2/1-1.3.3.2:1.0',
- 't2-p5': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.3/1-1.3.3.3/1-1.3.3.3:1.0',
- 't2-p6': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.3/1-1.3.3.4/1-1.3.3.4:1.0',
- 't2-p7': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.3/1-1.3.3.5/1-1.3.3.5:1.0',
- 't2-p8': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.3/1-1.3.3.6/1-1.3.3.6:1.0',
- 't2-p9': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.3/1-1.3.3.7/1-1.3.3.7:1.0',
- 't2-p10': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.4/1-1.3.4.1/1-1.3.4.1:1.0',
- 't2-p11': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.4/1-1.3.4.2/1-1.3.4.2:1.0',
- 't2-p12': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.4/1-1.3.4.3/1-1.3.4.3:1.0',
- 't2-p13': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.4/1-1.3.4.4/1-1.3.4.4:1.0',
- 't2-p14': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.4/1-1.3.4.5/1-1.3.4.5:1.0',
- 't2-p15': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.4/1-1.3.4.6/1-1.3.4.6:1.0',
- 't2-p16': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3.4/1-1.3.4.7/1-1.3.4.7:1.0',
-
- # t3
- 't3-p1': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.0',
- 't3-p2': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.2/1-1.4.2:1.0',
- 't3-p3': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.1/1-1.4.3.1:1.0',
- 't3-p4': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.2/1-1.4.3.2:1.0',
- 't3-p5': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.3/1-1.4.3.3:1.0',
- 't3-p6': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.4/1-1.4.3.4:1.0',
- 't3-p7': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.5/1-1.4.3.5:1.0',
- 't3-p8': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.6/1-1.4.3.6:1.0',
- 't3-p9': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.7/1-1.4.3.7:1.0',
- 't3-p10': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.4/1-1.4.4.1/1-1.4.4.1:1.0',
- 't3-p11': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.4/1-1.4.4.2/1-1.4.4.2:1.0',
- 't3-p12': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.4/1-1.4.4.5/1-1.4.4.5:1.0', # broke
- 't3-p13': '/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.4/1-1.4.4.6/1-1.4.4.6:1.0', # broke?
-}
-
-parser = argparse.ArgumentParser(
- description='connect to a serial console for: %s' % DEVICES.keys())
-parser.add_argument('-e', '--escape-key', default='a',
- help='picocom escape key. default=a')
-parser.add_argument('-b', '--baud', default='115200',
- help='picocom escape key. default=a')
-parser.add_argument('device', help='Device to connect to')
-
-args = parser.parse_args()
-
-if args.device not in DEVICES:
- sys.exit('Invalid device: ' + args.device)
-
-for p in os.listdir(DEVICES[args.device]):
- if p.startswith('ttyUSB'):
- args = ['/usr/bin/sudo', 'picocom', '-e', args.escape_key,
- '-b', args.baud, '/dev/' + p]
- os.execv(args[0], args)
-
-sys.exit('ERROR: no usb device found?')
diff --git a/roles/colo-console-server/handlers/main.yml b/roles/colo-console-server/handlers/main.yml
deleted file mode 100644
index 8424d1ae..00000000
--- a/roles/colo-console-server/handlers/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-- name: reload conserver
- command: /etc/init.d/conserver-server force-reload
-
diff --git a/roles/colo-console-server/tasks/main.yml b/roles/colo-console-server/tasks/main.yml
deleted file mode 100644
index ee889bc3..00000000
--- a/roles/colo-console-server/tasks/main.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-- name: Install picocom
- action: apt pkg=picocom
-
-- name: Install conserver
- action: apt pkg=conserver-server
-
-- name: Copy serial-connect script that maps usb device tty's to /dev/tty's
- action: copy src={{serial_console_script}}
- dest=/usr/local/bin/serial-connect
- owner=root
- group=root
- mode=0755
-
-- name: Copy conserver daemon settings
- action: copy src=conserver-server.conf
- dest=/etc/conserver/server.conf
- owner=root
- group=root
- mode=0755
- notify:
- - reload conserver
-
-- name: Setup conserver user access
- action: template src=conserver.passwd.j2
- dest=/etc/conserver/conserver.passwd
- owner=root
- group=root
- mode=0755
- notify:
- - reload conserver
- tags:
- - colo_user
-
-- name: Setup conserver mappings
- action: template src=conserver.cf.j2
- dest=/etc/conserver/conserver.cf
- owner=root
- group=root
- mode=0755
- notify:
- - reload conserver
- tags:
- - colo_user
diff --git a/roles/colo-console-server/templates/conserver.cf.j2 b/roles/colo-console-server/templates/conserver.cf.j2
deleted file mode 100644
index 598723e9..00000000
--- a/roles/colo-console-server/templates/conserver.cf.j2
+++ /dev/null
@@ -1,39 +0,0 @@
-# DO NOT EDIT! MANAGED BY ANSIBLE
-
-# The character '&' in logfile names are substituted with the console
-# name.
-#
-default * {
- logfile /var/log/conserver/&.log;
- timestamp "";
- include full;
-}
-access * {
- allowed 127.0.0.1,10.0.0.0/8,64.28.108.189;
-}
-
-# grant access to "serial_console_admins" for everything
-{% for mapping in serial_console_mappings %}
-console {{mapping.host}} {
- master localhost;
- type exec;
- exec /usr/local/bin/serial-connect {% if mapping.baud is defined %}-b {{mapping.baud}} {% endif %}{{mapping.port}};
- rw {% for user in serial_console_admins%}{{user.name}}{% if not loop.last %},{% endif %}{% endfor %};
-}
-{% endfor %}
-
-# now override for reserved systems
-{% for entry in reservations %}
-{% for host in entry.hosts %}
-{% for mapping in serial_console_mappings %}
-{% if mapping.host == host %}
-console {{ host }} {
- master localhost;
- type exec;
- rw {% for user in entry.users %}{{user}}{% if not loop.last %},{% endif %}{% endfor %};
- exec /usr/local/bin/serial-connect {% if mapping.baud is defined %}-b {{mapping.baud}} {% endif %}{{mapping.port}};
-}
-{% endif %}
-{% endfor %}
-{% endfor %}
-{% endfor %}
diff --git a/roles/colo-console-server/templates/conserver.passwd.j2 b/roles/colo-console-server/templates/conserver.passwd.j2
deleted file mode 100644
index 6bd94183..00000000
--- a/roles/colo-console-server/templates/conserver.passwd.j2
+++ /dev/null
@@ -1,10 +0,0 @@
-# DO NOT EDIT! MANAGED BY ANSIBLE
-{% for user in serial_console_admins%}
-{{user.name}}:*passwd*
-{% endfor %}
-
-{% for entry in reservations %}
-{% for user in entry.users %}
-{{user}}:*passwd*
-{% endfor %}
-{% endfor %}
diff --git a/roles/curator/defaults/main.yml b/roles/curator/defaults/main.yml
new file mode 100644
index 00000000..b258752f
--- /dev/null
+++ b/roles/curator/defaults/main.yml
@@ -0,0 +1,8 @@
+---
+curator_config: |
+ client:
+ hosts:
+ - "{{ docker_container_elasticsearch_name }}"
+ port: 9200
+ use_ssl: False
+ timeout: 30
diff --git a/roles/curator/tasks/main.yml b/roles/curator/tasks/main.yml
new file mode 100644
index 00000000..18a9185a
--- /dev/null
+++ b/roles/curator/tasks/main.yml
@@ -0,0 +1,40 @@
+---
+- name: Install curator
+ pip: name=elasticsearch-curator
+
+- name: Ensure curator directory exists
+ file:
+ path: /srv/curator
+ state: directory
+
+- name: Install curator config
+ template:
+ dest: /srv/curator/curator.conf
+ src: templates/curator.conf.j2
+
+- name: Install curator action files
+ template:
+ dest: "/srv/curator/{{ item }}"
+ src: "templates/{{ item }}"
+ with_items:
+ - mb-lava-1m-snapshot.yml
+ - mb-lava-30d-cleanup.yml
+ - mb-systems-cleanup.yml
+ - fb-systems-cleanup.yml
+ - hb-cleanup.yml
+
+- name: Install curator crontabs
+ template:
+ dest: /etc/cron.d/curator
+ src: templates/curator.cron
+ mode: 0755
+
+- name: Get list of repos
+ command: es-repo-mgr --config /srv/curator/curator.conf show
+ register: repos
+
+# this will error out if run against an ES cluster that
+# doesn't have path.repos set
+- name: Create backup repo if it doesn't exist
+ command: es-repo-mgr --config /srv/curator/curator.conf fs create --repository backup --location /usr/share/elasticsearch/backup
+ when: "'backup' not in repos.stdout"
diff --git a/roles/curator/templates/curator.conf.j2 b/roles/curator/templates/curator.conf.j2
new file mode 100644
index 00000000..0db42c09
--- /dev/null
+++ b/roles/curator/templates/curator.conf.j2
@@ -0,0 +1 @@
+{{ curator_config }}
diff --git a/roles/curator/templates/curator.cron b/roles/curator/templates/curator.cron
new file mode 100644
index 00000000..3f21e91b
--- /dev/null
+++ b/roles/curator/templates/curator.cron
@@ -0,0 +1,7 @@
+MAILTO={{ mailto_address }}
+0 1 * * * root /usr/local/bin/curator --config /srv/curator/curator.conf /srv/curator/hb-cleanup.yml > /var/log/curator.log 2>&1 || cat /var/log/curator.log >&2
+0 2 * * * root /usr/local/bin/curator --config /srv/curator/curator.conf /srv/curator/mb-lava-30d-cleanup.yml > /var/log/curator.log 2>&1 || cat /var/log/curator.log >&2
+10 2 * * * root /usr/local/bin/curator --config /srv/curator/curator.conf /srv/curator/mb-systems-cleanup.yml > /var/log/curator.log 2>&1 || cat /var/log/curator.log >&2
+20 2 * * * root /usr/local/bin/curator --config /srv/curator/curator.conf /srv/curator/fb-systems-cleanup.yml > /var/log/curator.log 2>&1 || cat /var/log/curator.log >&2
+0 3 15 * * root /usr/local/bin/curator --config /srv/curator/curator.conf /srv/curator/mb-lava-1m-snapshot.yml > /var/log/curator.log 2>&1 || cat /var/log/curator.log >&2
+30 2 * * * root /usr/local/bin/curator --config /srv/curator/curator.conf /srv/curator/index_backup.yml > /var/log/curator.log 2>&1 || cat /var/log/curator.log >&2
diff --git a/roles/curator/templates/fb-systems-cleanup.yml b/roles/curator/templates/fb-systems-cleanup.yml
new file mode 100644
index 00000000..25a71886
--- /dev/null
+++ b/roles/curator/templates/fb-systems-cleanup.yml
@@ -0,0 +1,18 @@
+---
+actions:
+ 1:
+ action: delete_indices
+ description: delete filebeat-systems-* indices older than 4w
+ options:
+ ignore_empty_list: True
+ disable_action: False
+ filters:
+ - filtertype: pattern
+ kind: prefix
+ value: filebeat-systems-
+ - filtertype: age
+ source: name
+ direction: older
+ timestring: '%Y.%m.%d'
+ unit: weeks
+ unit_count: 4
diff --git a/roles/curator/templates/hb-cleanup.yml b/roles/curator/templates/hb-cleanup.yml
new file mode 100644
index 00000000..0c0cad09
--- /dev/null
+++ b/roles/curator/templates/hb-cleanup.yml
@@ -0,0 +1,18 @@
+---
+actions:
+ 1:
+ action: delete_indices
+ description: delete heartbeat-* indices older than 3 days
+ options:
+ ignore_empty_list: True
+ disable_action: False
+ filters:
+ - filtertype: pattern
+ kind: prefix
+ value: heartbeat-
+ - filtertype: age
+ source: name
+ direction: older
+ timestring: '%Y.%m.%d'
+ unit: days
+ unit_count: 3
diff --git a/roles/curator/templates/index_backup.yml b/roles/curator/templates/index_backup.yml
new file mode 100644
index 00000000..a67b2a84
--- /dev/null
+++ b/roles/curator/templates/index_backup.yml
@@ -0,0 +1,27 @@
+actions:
+ 1:
+ action: snapshot
+ description: "Create snapshot backup"
+ options:
+ repository: "backup"
+ continue_if_exception: False
+ wait_for_completion: True
+ # grab everything except for the beat data
+ filters:
+ - filtertype: pattern
+ kind: prefix
+ value: filebeat-
+ exclude: True
+ - filtertype: pattern
+ kind: prefix
+ value: metricbeat-
+ exclude: True
+ - filtertype: pattern
+ kind: prefix
+ value: heartbeat-
+ exclude: True
+ - filtertype: pattern
+ kind: prefix
+ value: elastalert
+ exclude: True
+
diff --git a/roles/curator/templates/index_restore.yml b/roles/curator/templates/index_restore.yml
new file mode 100644
index 00000000..b8c4b970
--- /dev/null
+++ b/roles/curator/templates/index_restore.yml
@@ -0,0 +1,57 @@
+
+actions:
+ 1:
+ action: close
+ description: "Close indices for restore from snapshot backup"
+ options:
+ continue_if_exception: False
+ ignore_empty_list: True
+ filters:
+ - filtertype: pattern
+ kind: prefix
+ value: filebeat-
+ exclude: True
+ - filtertype: pattern
+ kind: prefix
+ value: metricbeat-
+ exclude: True
+ - filtertype: pattern
+ kind: prefix
+ value: heartbeat-
+ exclude: True
+ - filtertype: pattern
+ kind: prefix
+ value: elastalert
+ exclude: True
+ 2:
+ action: close
+ description: "Restore indices from snapshot backup"
+ options:
+ repository: "backup"
+ name:
+ indices:
+ continue_if_exception: False
+ wait_for_completion: True
+ filters:
+ - filtertype: state
+ state: SUCCESS
+ 3:
+ action: open
+ description: "Reopen indices after snapshot"
+ filters:
+ - filtertype: pattern
+ kind: prefix
+ value: filebeat-
+ exclude: True
+ - filtertype: pattern
+ kind: prefix
+ value: metricbeat-
+ exclude: True
+ - filtertype: pattern
+ kind: prefix
+ value: heartbeat-
+ exclude: True
+ - filtertype: pattern
+ kind: prefix
+ value: elastalert
+ exclude: True
diff --git a/roles/curator/templates/mb-lava-1m-snapshot.yml b/roles/curator/templates/mb-lava-1m-snapshot.yml
new file mode 100644
index 00000000..8f06335f
--- /dev/null
+++ b/roles/curator/templates/mb-lava-1m-snapshot.yml
@@ -0,0 +1,20 @@
+---
+actions:
+ 1:
+ action: snapshot
+ description: Take a monthly snapshot of lavalab's metricbeat index
+ options:
+ ignore_empty_list: True
+ repository: backup
+ name: metricbeat-lavalab
+ disable_action: False
+ filters:
+ - filtertype: pattern
+ kind: prefix
+ value: metricbeat-lavalab-
+ - filtertype: age
+ source: name
+ direction: older
+ timestring: '%Y.%m.01'
+ unit: days
+ unit_count: 30
diff --git a/roles/curator/templates/mb-lava-30d-cleanup.yml b/roles/curator/templates/mb-lava-30d-cleanup.yml
new file mode 100644
index 00000000..e5f9d7a2
--- /dev/null
+++ b/roles/curator/templates/mb-lava-30d-cleanup.yml
@@ -0,0 +1,18 @@
+---
+actions:
+ 1:
+ action: delete_indices
+ description: delete metricbeat-lavalab-* indices older than 2w
+ options:
+ ignore_empty_list: True
+ disable_action: False
+ filters:
+ - filtertype: pattern
+ kind: prefix
+ value: metricbeat-lavalab-
+ - filtertype: age
+ source: name
+ direction: older
+ timestring: '%Y.%m.%d'
+ unit: days
+ unit_count: 30
diff --git a/roles/curator/templates/mb-systems-cleanup.yml b/roles/curator/templates/mb-systems-cleanup.yml
new file mode 100644
index 00000000..168e2fb1
--- /dev/null
+++ b/roles/curator/templates/mb-systems-cleanup.yml
@@ -0,0 +1,18 @@
+---
+actions:
+ 1:
+ action: delete_indices
+ description: delete metricbeat-systems-* indices older than 4w
+ options:
+ ignore_empty_list: True
+ disable_action: False
+ filters:
+ - filtertype: pattern
+ kind: prefix
+ value: metricbeat-systems-
+ - filtertype: age
+ source: name
+ direction: older
+ timestring: '%Y.%m.%d'
+ unit: weeks
+ unit_count: 4
diff --git a/roles/deb-repository/files/.mini-dinstall-linaro-overlay-sid.conf b/roles/deb-repository/files/.mini-dinstall-linaro-overlay-sid.conf
new file mode 100644
index 00000000..7668e532
--- /dev/null
+++ b/roles/deb-repository/files/.mini-dinstall-linaro-overlay-sid.conf
@@ -0,0 +1,130 @@
+
+# Options that apply to all distributions
+[DEFAULT]
+# The root of the archive.
+archivedir = /var/lib/machines/obs/srv/repos/linaro-overlay-sid/
+
+# The default loglevel which is sent to you via email. Valid values
+# are taken from the Python logging module: DEBUG, INFO, WARN, ERROR,
+# and CRITICAL. You may also use NONE, to avoid email altogether.
+mail_log_level = ERROR
+
+# The user to mail logs to
+mail_to = username
+
+# The loglevel upon which to immediately send you queued log messages.
+mail_log_flush_level = ERROR
+
+# The number of log messages upon which an email will be sent to you.
+mail_log_flush_count = 10
+
+# Whether or not to trigger a reindex of Packages/Sources files
+# immediately after every installation (in daemon mode). If you
+# disable this option, you should almost certainly have
+# dynamic_reindex enabled. You may want to disable this if you
+# install a *lot* of packages.
+trigger_reindex = 1
+
+# Whether or not to verify GPG signatures on .changes files
+verify_sigs = 0
+
+# GNUPG keyrings to use for signature verification, separated by
+# commas. This will override the builtin keyrings. Generally you
+# shouldn't specify this option; use extra_keyrings instead.
+#keyrings = /usr/share/keyrings/ubuntu-archive-keyring.gpg, /path/to/other/keyring.gpg
+
+# Additional GNUPG keyrings to use for signature verification, separated by commas
+#extra_keyrings = ~/.gnupg/pubring.gpg, ~/.gnupg/other.gpg
+
+# The permissions for the incoming directory. If you want to use
+# mini-dinstall for a group of people, you might want to make this
+# more permissive.
+# A value of zero ('0' or '0000') will disable the permission setting on every
+# mini-dinstall run. Doing this, you MUST set permission for incoming by hand.
+incoming_permissions = 0750
+
+### The remaining options can also be specified in a per-distribution
+### basis
+
+# Alternative distribution names.
+alias = sid
+
+# What architecture subdirectories to create.
+architectures = all, armhf, arm64
+
+# The style of archive. "flat" is the default; it puts all .debs in
+# the archive directory. The other alternative is "simple-subdir",
+# which puts .debs from each architecture in a separate subdirectory.
+archive_style = flat
+
+# Whether or not to mail you about successful installations
+mail_on_success = 0
+
+# Whether or not to delete old packages
+keep_old = 0
+
+# A script to run before a .changes is installed. It is called with
+# the full path to the .changes as an argument. If it exits with an
+# error, then the .changes is skipped.
+#pre_install_script = ~/bin/pre-inst.sh
+
+# A script to run when a .changes is successfully installed.
+# It is called with the full path to the .changes as an argument.
+#post_install_script = ~/bin/post-inst.sh
+
+# Whether or not to generate Release files
+generate_release = 1
+
+# The default Origin: field in the release file
+release_origin = linaro
+
+# The default Label: field in the release file
+release_label = username
+
+# The default Suite: field in the release file
+release_suite = unstable
+
+# The default Description: field in the release file
+release_description = Linaro packages overlay
+
+# Whether or not to mark the release as experimental.
+experimental_release = 0
+
+# If specified, this script will be called to sign Release files. It
+# will be invoked in the directory containing the Release file, and
+# should accept the filename of the Release file to sign as the first
+# argument (note it is passed a temporary filename, not "Release").
+# It should generate a detached signature in a file named Release.gpg.
+release_signscript = ~/sign-release.sh
+
+# Whether or not to watch directories for changes, and reindex
+# Packages/Sources as needed. Only used in daemon mode.
+dynamic_reindex = 1
+
+# Whether or not to make .changes files unreadable to others by
+# default. This will protect you from other people unexpectedly
+# uploading your packages. Please think carefully about your security
+# before you change this!
+chown_changes_files = 1
+
+# Whether or not to use /usr/bin/dnotify. This doesn't work on some
+# systems, so you might want to disable it. Only used if
+# dynamic_reindex is enabled.
+use_dnotify = 0
+
+# If you use the mtime-polling directory notifier, this is the number
+# of seconds in between polls. Only used if dynamic_reindex is
+# enabled.
+poll_time = 30
+
+# The maximum number of seconds to wait for an incomplete upload
+# before rejecting it. The default is two days.
+max_retry_time = 172800
+
+# The following are just some sample distributions, with a few sample
+# distribution-specific options.
+
+[unstable]
+architectures = all, armhf, arm64, source
+keep_old = 1
+
diff --git a/roles/deb-repository/files/.mini-dinstall-linaro-staging-sid.conf b/roles/deb-repository/files/.mini-dinstall-linaro-staging-sid.conf
new file mode 100644
index 00000000..1277acac
--- /dev/null
+++ b/roles/deb-repository/files/.mini-dinstall-linaro-staging-sid.conf
@@ -0,0 +1,130 @@
+
+# Options that apply to all distributions
+[DEFAULT]
+# The root of the archive.
+archivedir = /var/lib/machines/obs/srv/repos/linaro-staging-sid/
+
+# The default loglevel which is sent to you via email. Valid values
+# are taken from the Python logging module: DEBUG, INFO, WARN, ERROR,
+# and CRITICAL. You may also use NONE, to avoid email altogether.
+mail_log_level = ERROR
+
+# The user to mail logs to
+mail_to = username
+
+# The loglevel upon which to immediately send you queued log messages.
+mail_log_flush_level = ERROR
+
+# The number of log messages upon which an email will be sent to you.
+mail_log_flush_count = 10
+
+# Whether or not to trigger a reindex of Packages/Sources files
+# immediately after every installation (in daemon mode). If you
+# disable this option, you should almost certainly have
+# dynamic_reindex enabled. You may want to disable this if you
+# install a *lot* of packages.
+trigger_reindex = 1
+
+# Whether or not to verify GPG signatures on .changes files
+verify_sigs = 0
+
+# GNUPG keyrings to use for signature verification, separated by
+# commas. This will override the builtin keyrings. Generally you
+# shouldn't specify this option; use extra_keyrings instead.
+#keyrings = /usr/share/keyrings/ubuntu-archive-keyring.gpg, /path/to/other/keyring.gpg
+
+# Additional GNUPG keyrings to use for signature verification, separated by commas
+#extra_keyrings = ~/.gnupg/pubring.gpg, ~/.gnupg/other.gpg
+
+# The permissions for the incoming directory. If you want to use
+# mini-dinstall for a group of people, you might want to make this
+# more permissive.
+# A value of zero ('0' or '0000') will disable the permission setting on every
+# mini-dinstall run. Doing this, you MUST set permission for incoming by hand.
+incoming_permissions = 0750
+
+### The remaining options can also be specified in a per-distribution
+### basis
+
+# Alternative distribution names.
+alias = sid
+
+# What architecture subdirectories to create.
+architectures = all, armhf, arm64
+
+# The style of archive. "flat" is the default; it puts all .debs in
+# the archive directory. The other alternative is "simple-subdir",
+# which puts .debs from each architecture in a separate subdirectory.
+archive_style = flat
+
+# Whether or not to mail you about successful installations
+mail_on_success = 0
+
+# Whether or not to delete old packages
+keep_old = 0
+
+# A script to run before a .changes is installed. It is called with
+# the full path to the .changes as an argument. If it exits with an
+# error, then the .changes is skipped.
+#pre_install_script = ~/bin/pre-inst.sh
+
+# A script to run when a .changes is successfully installed.
+# It is called with the full path to the .changes as an argument.
+#post_install_script = ~/bin/post-inst.sh
+
+# Whether or not to generate Release files
+generate_release = 1
+
+# The default Origin: field in the release file
+release_origin = linaro
+
+# The default Label: field in the release file
+release_label = username
+
+# The default Suite: field in the release file
+release_suite = unstable
+
+# The default Description: field in the release file
+release_description = Linaro packages staging
+
+# Whether or not to mark the release as experimental.
+experimental_release = 0
+
+# If specified, this script will be called to sign Release files. It
+# will be invoked in the directory containing the Release file, and
+# should accept the filename of the Release file to sign as the first
+# argument (note it is passed a temporary filename, not "Release").
+# It should generate a detached signature in a file named Release.gpg.
+release_signscript = ~/sign-release.sh
+
+# Whether or not to watch directories for changes, and reindex
+# Packages/Sources as needed. Only used in daemon mode.
+dynamic_reindex = 1
+
+# Whether or not to make .changes files unreadable to others by
+# default. This will protect you from other people unexpectedly
+# uploading your packages. Please think carefully about your security
+# before you change this!
+chown_changes_files = 1
+
+# Whether or not to use /usr/bin/dnotify. This doesn't work on some
+# systems, so you might want to disable it. Only used if
+# dynamic_reindex is enabled.
+use_dnotify = 0
+
+# If you use the mtime-polling directory notifier, this is the number
+# of seconds in between polls. Only used if dynamic_reindex is
+# enabled.
+poll_time = 30
+
+# The maximum number of seconds to wait for an incomplete upload
+# before rejecting it. The default is two days.
+max_retry_time = 172800
+
+# The following are just some sample distributions, with a few sample
+# distribution-specific options.
+
+[unstable]
+architectures = all, armhf, arm64, source
+keep_old = 1
+
diff --git a/roles/deb-repository/files/install-gpg.sh b/roles/deb-repository/files/install-gpg.sh
new file mode 100755
index 00000000..aa3fa957
--- /dev/null
+++ b/roles/deb-repository/files/install-gpg.sh
@@ -0,0 +1,6 @@
+#!/bin/bash -e
+
+gpg --import /root/private.key
+gpg --import /root/public.key
+cp -a ~/.gnupg ~buildslave/
+chown -R buildslave:primary ~buildslave/.gnupg
diff --git a/roles/deb-repository/files/sign-release.sh b/roles/deb-repository/files/sign-release.sh
new file mode 100755
index 00000000..9aa03515
--- /dev/null
+++ b/roles/deb-repository/files/sign-release.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+set -e
+
+# Initialize GPG
+gpg --help 1>/dev/null 2>&1 || true
+
+rm -f Release.gpg.tmp InRelease.tmp
+gpg --no-tty --batch --detach-sign -o Release.gpg.tmp "$1"
+mv Release.gpg.tmp Release.gpg
+gpg --no-tty --batch --clearsign -o InRelease.tmp "$1"
+mv InRelease.tmp InRelease
+
diff --git a/roles/deb-repository/tasks/main.yml b/roles/deb-repository/tasks/main.yml
new file mode 100644
index 00000000..836297c0
--- /dev/null
+++ b/roles/deb-repository/tasks/main.yml
@@ -0,0 +1,33 @@
+
+- name: Install packages for mini-dinstall
+ apt:
+ pkg:
+ - unzip
+ - openjdk-11-jdk-headless
+ - mini-dinstall
+ - gpg
+ - devscripts
+
+- name: Copy Secret GPG key
+ copy: src="{{secrets_dir}}/files/obs/private.key" dest=/root/private.key
+ mode=0400
+
+- name: Copy public GPG key
+ copy: src="{{secrets_dir}}/files/obs/public.key" dest=/root/public.key
+ mode=0444
+
+- name: Install support scripts
+ copy: src="{{item}}" dest=/home/buildslave/ mode=0755
+ with_fileglob:
+ - "*.sh"
+
+- name: Install mini-dinstall configs
+ copy: src="{{item}}" dest=/home/buildslave/
+ with_fileglob:
+ - ".*.conf"
+
+- name: Set up PGP for buildslave
+ command: /home/buildslave/install-gpg.sh
+ args:
+ creates: /root/.gnupg/pubring.kbx
+
diff --git a/roles/defaults/defaults/main.yml b/roles/defaults/defaults/main.yml
new file mode 100644
index 00000000..6eca20ed
--- /dev/null
+++ b/roles/defaults/defaults/main.yml
@@ -0,0 +1,4 @@
+---
+
+systemd_journal_system_max_use: 500M
+systemd_journal_system_max_file_size: 50M
diff --git a/roles/defaults/files/20auto-upgrades b/roles/defaults/files/20auto-upgrades
new file mode 100644
index 00000000..f936ebeb
--- /dev/null
+++ b/roles/defaults/files/20auto-upgrades
@@ -0,0 +1,3 @@
+APT::Periodic::Update-Package-Lists "1";
+APT::Periodic::Unattended-Upgrade "1";
+
diff --git a/roles/defaults/files/50unattended-upgrades b/roles/defaults/files/50unattended-upgrades
new file mode 100644
index 00000000..1a146e6a
--- /dev/null
+++ b/roles/defaults/files/50unattended-upgrades
@@ -0,0 +1,91 @@
+// Automatically upgrade packages from these (origin:archive) pairs
+//
+// Note that in Ubuntu security updates may pull in new dependencies
+// from non-security sources (e.g. chromium). By allowing the release
+// pocket these get automatically pulled in.
+Unattended-Upgrade::Allowed-Origins {
+ "${distro_id}:${distro_codename}";
+ "${distro_id}:${distro_codename}-security";
+ // Extended Security Maintenance; doesn't necessarily exist for
+ // every release and this system may not have it installed, but if
+ // available, the policy for updates is such that unattended-upgrades
+ // should also install from here by default.
+ "${distro_id}ESM:${distro_codename}";
+// "${distro_id}:${distro_codename}-updates";
+// "${distro_id}:${distro_codename}-proposed";
+// "${distro_id}:${distro_codename}-backports";
+};
+
+// List of packages to not update (regexp are supported)
+Unattended-Upgrade::Package-Blacklist {
+// "vim";
+// "libc6";
+// "libc6-dev";
+// "libc6-i686";
+};
+
+// This option will controls whether the development release of Ubuntu will be
+// upgraded automatically.
+Unattended-Upgrade::DevRelease "false";
+
+// This option allows you to control if on a unclean dpkg exit
+// unattended-upgrades will automatically run
+// dpkg --force-confold --configure -a
+// The default is true, to ensure updates keep getting installed
+//Unattended-Upgrade::AutoFixInterruptedDpkg "false";
+
+// Split the upgrade into the smallest possible chunks so that
+// they can be interrupted with SIGTERM. This makes the upgrade
+// a bit slower but it has the benefit that shutdown while a upgrade
+// is running is possible (with a small delay)
+//Unattended-Upgrade::MinimalSteps "false";
+
+// Install all unattended-upgrades when the machine is shutting down
+// instead of doing it in the background while the machine is running
+// This will (obviously) make shutdown slower
+//Unattended-Upgrade::InstallOnShutdown "true";
+
+// Send email to this address for problems or packages upgrades
+// If empty or unset then no email is sent, make sure that you
+// have a working mail setup on your system. A package that provides
+// 'mailx' must be installed. E.g. "user@example.com"
+//Unattended-Upgrade::Mail "root";
+
+// Set this value to "true" to get emails only on errors. Default
+// is to always send a mail if Unattended-Upgrade::Mail is set
+//Unattended-Upgrade::MailOnlyOnError "true";
+
+// Remove unused automatically installed kernel-related packages
+// (kernel images, kernel headers and kernel version locked tools).
+Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
+
+// Do automatic removal of new unused dependencies after the upgrade
+// (equivalent to apt-get autoremove)
+Unattended-Upgrade::Remove-Unused-Dependencies "true";
+
+// Automatically reboot *WITHOUT CONFIRMATION*
+// if the file /var/run/reboot-required is found after the upgrade
+//Unattended-Upgrade::Automatic-Reboot "false";
+
+// If automatic reboot is enabled and needed, reboot at the specific
+// time instead of immediately
+// Default: "now"
+//Unattended-Upgrade::Automatic-Reboot-Time "02:00";
+
+// Use apt bandwidth limit feature, this example limits the download
+// speed to 70kb/sec
+//Acquire::http::Dl-Limit "70";
+
+// Enable logging to syslog. Default is False
+// Unattended-Upgrade::SyslogEnable "false";
+
+// Specify syslog facility. Default is daemon
+// Unattended-Upgrade::SyslogFacility "daemon";
+
+// Download and install upgrades only on AC power
+// (i.e. skip or gracefully stop updates on battery)
+// Unattended-Upgrade::OnlyOnACPower "true";
+
+// Download and install upgrades only on non-metered connection
+// (i.e. skip or gracefully stop updates on a metered connection)
+// Unattended-Upgrade::Skip-Updates-On-Metered-Connections "true";
diff --git a/roles/defaults/handlers/main.yml b/roles/defaults/handlers/main.yml
new file mode 100644
index 00000000..5f5d225f
--- /dev/null
+++ b/roles/defaults/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+- name: restart-journal
+ service: name=systemd-journald state=restarted enabled=yes
+ listen:
+ - restart-journal
diff --git a/roles/defaults/tasks/main.yml b/roles/defaults/tasks/main.yml
new file mode 100644
index 00000000..ff3ad569
--- /dev/null
+++ b/roles/defaults/tasks/main.yml
@@ -0,0 +1,39 @@
+---
+- name: Set hostname to {{ inventory_hostname }}
+ hostname:
+ name: "{{ inventory_hostname }}"
+
+- name: Ensure hostname is defined in /etc/hosts
+ lineinfile:
+ dest: /etc/hosts
+ line: "127.0.1.1 {{ inventory_hostname }}"
+
+- name: Default set of packages for ubuntu/bionic hosts
+ apt:
+ name: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - curl
+ - git
+ - unattended-upgrades
+ - python3
+ - python3-apt
+ - python3-pip
+
+- name: Ensure automatic upgrades is enabled
+ copy:
+ src: 20auto-upgrades
+ dest: /etc/apt/apt.conf.d/20-auto-upgrades
+
+- name: Configure automatic removal of old kernels
+ copy:
+ src: 50unattended-upgrades
+ dest: /etc/apt/apt.conf.d/50unattended-upgrades
+
+- name: Limit logging to persistent journal
+ template:
+ dest: /etc/systemd/journald.conf
+ src: journald.conf.j2
+ notify:
+ - restart-journal
diff --git a/roles/defaults/templates/journald.conf.j2 b/roles/defaults/templates/journald.conf.j2
new file mode 100644
index 00000000..e42a05e2
--- /dev/null
+++ b/roles/defaults/templates/journald.conf.j2
@@ -0,0 +1,43 @@
+# {{ansible_managed}}
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# Entries in this file show the compile time defaults.
+# You can change settings by editing this file.
+# Defaults can be restored by simply deleting this file.
+#
+# See journald.conf(5) for details.
+
+[Journal]
+Storage=persistent
+#Compress=yes
+#Seal=yes
+#SplitMode=uid
+#SyncIntervalSec=5m
+#RateLimitInterval=30s
+#RateLimitBurst=1000
+#SystemMaxUse=
+#SystemKeepFree=
+#SystemMaxFileSize=
+#SystemMaxFiles=100
+#RuntimeMaxUse=
+#RuntimeKeepFree=
+#RuntimeMaxFileSize=
+#RuntimeMaxFiles=100
+#MaxRetentionSec=
+#MaxFileSec=1month
+ForwardToSyslog=no
+#ForwardToKMsg=no
+#ForwardToConsole=no
+#ForwardToWall=yes
+#TTYPath=/dev/console
+#MaxLevelStore=debug
+#MaxLevelSyslog=debug
+#MaxLevelKMsg=notice
+#MaxLevelConsole=info
+#MaxLevelWall=emerg
+SystemMaxUse={{ systemd_journal_system_max_use }}
+SystemMaxFileSize={{ systemd_journal_system_max_file_size }}
diff --git a/roles/dehydrated/defaults/main.yml b/roles/dehydrated/defaults/main.yml
index d926f733..6e5dc91c 100644
--- a/roles/dehydrated/defaults/main.yml
+++ b/roles/dehydrated/defaults/main.yml
@@ -1,5 +1,5 @@
---
-dehydrated_version: v0.6.2
+dehydrated_version: v0.6.5
dehydrated_boto_version: 2.49.0
dehydrated_wellknown: /srv/certbot/.well-known/acme-challenge
dehydrated_ca_testing: https://acme-staging-v02.api.letsencrypt.org/directory
diff --git a/roles/dehydrated/tasks/dehydrated.yml b/roles/dehydrated/tasks/dehydrated.yml
deleted file mode 100644
index 15310b97..00000000
--- a/roles/dehydrated/tasks/dehydrated.yml
+++ /dev/null
@@ -1,91 +0,0 @@
----
-- name: Clone dehydrated repository
- git: name=https://github.com/lukas2511/dehydrated.git dest={{tools_checkout_dir}}/dehydrated version={{dehydrated_version}}
-
-- name: Link /usr/local/sbin/dehydrated to the repo version
- file:
- src: "{{tools_checkout_dir}}/dehydrated/dehydrated"
- dest: /usr/sbin/dehydrated
- state: link
- force: True
-
-- name: Create acme-challenge webroot
- file:
- path: "{{dehydrated_wellknown}}"
- state: directory
- mode: 0755
-
-- name: Create dehydrated directories
- file:
- path: /etc/dehydrated/{{item}}
- state: directory
- mode: 0755
- with_items:
- - domains.d
- - hooks
- - certs
-
-- name: Create dehydrated protected directories
- file:
- path: /etc/dehydrated/{{item}}
- state: directory
- mode: 0700
- with_items:
- - accounts
-
-- name: Set CA to use LetsEncrypt testing environment
- set_fact:
- dehydrated_ca: "{{dehydrated_ca_testing}}"
- when: testing is defined
-
-- name: Set CA to use LetsEncrypt production environment
- set_fact:
- dehydrated_ca: "{{dehydrated_ca_production}}"
- when: testing is undefined
-
-- name: Install dehydrated main config
- template:
- dest: /etc/dehydrated/config
- src: templates/main.config
-
-- name: Install hook scripts
- template:
- src: templates/{{item}}
- dest: /etc/dehydrated/hooks/{{item}}
- mode: 0755
- with_items:
- - hook-http-01
- - hook-dns-01
- - hook-dns-01-real.py
-
-- name: Install http-01 config for sites
- copy:
- dest: /etc/dehydrated/domains.d/{{item}}
- src: files/http-01.config
- force: yes
- with_items: "{{dehydrated_http_domains}}"
-
-- name: Install dns-01 config for sites
- copy:
- dest: /etc/dehydrated/domains.d/{{item}}
- src: files/dns-01.config
- force: yes
- with_items: "{{dehydrated_dns_domains}}"
-
-- name: Install dehydrated cron job
- template:
- dest: /etc/cron.d/dehydrated
- src: templates/dehydrated.cron
- mode: 0755
-
-- name: Create dehydrated domains.txt file
- template:
- src: templates/domains.txt.template
- dest: /etc/dehydrated/domains.txt
- notify: dehydrated-run
-
-- name: Check for dehydrated account registration
- command: find /etc/dehydrated/accounts -name "registration_info.json"
- register: registered
- changed_when: registered.stdout == ""
- notify: dehydrated-register
diff --git a/roles/dehydrated/tasks/main.yml b/roles/dehydrated/tasks/main.yml
index 083d6fc3..a1933307 100644
--- a/roles/dehydrated/tasks/main.yml
+++ b/roles/dehydrated/tasks/main.yml
@@ -1,10 +1,12 @@
---
-- name: Install git
- apt: pkg={{item}} state=present
- with_items:
- - git
- - python-pip
- - python-virtualenv
+- name: Install dehydrated deps
+ apt: pkg={{ packages }} state=present
+ vars:
+ packages:
+ - curl
+ - git
+ - python3-pip
+ - python3-virtualenv
- name: Install python boto library
pip:
@@ -26,10 +28,93 @@
aws_secret_access_key = {{dehydrated_aws_secret_access_key}}
when: dehydrated_dns_domains is defined
-- name: Include snakeoil cert tasks
- include_tasks: snakeoil.yml
- when: snakeoil is defined
+- name: Clone dehydrated repository
+ git: name=https://github.com/lukas2511/dehydrated.git dest={{tools_checkout_dir}}/dehydrated version={{dehydrated_version}}
+
+- name: Link /usr/local/sbin/dehydrated to the repo version
+ file:
+ src: "{{tools_checkout_dir}}/dehydrated/dehydrated"
+ dest: /usr/sbin/dehydrated
+ state: link
+ force: True
+
+- name: Create acme-challenge webroot
+ file:
+ path: "{{dehydrated_wellknown}}"
+ state: directory
+ mode: 0755
+
+- name: Create dehydrated directories
+ file:
+ path: /etc/dehydrated/{{item}}
+ state: directory
+ mode: 0755
+ with_items:
+ - domains.d
+ - hooks
+ - certs
+
+- name: Create dehydrated protected directories
+ file:
+ path: /etc/dehydrated/{{item}}
+ state: directory
+ mode: 0700
+ with_items:
+ - accounts
+
+- name: Set CA to use LetsEncrypt testing environment
+ set_fact:
+ dehydrated_ca: "{{dehydrated_ca_testing}}"
+ when: testing is defined
+
+- name: Set CA to use LetsEncrypt production environment
+ set_fact:
+ dehydrated_ca: "{{dehydrated_ca_production}}"
+ when: testing is undefined
+
+- name: Install dehydrated main config
+ template:
+ dest: /etc/dehydrated/config
+ src: templates/main.config
+
+- name: Install hook scripts
+ template:
+ src: templates/{{item}}
+ dest: /etc/dehydrated/hooks/{{item}}
+ mode: 0755
+ with_items:
+ - hook-http-01
+ - hook-dns-01
+ - hook-dns-01-real.py
+
+- name: Install http-01 config for sites
+ copy:
+ dest: /etc/dehydrated/domains.d/{{item}}
+ src: files/http-01.config
+ force: yes
+ with_items: "{{dehydrated_http_domains}}"
+
+- name: Install dns-01 config for sites
+ copy:
+ dest: /etc/dehydrated/domains.d/{{item}}
+ src: files/dns-01.config
+ force: yes
+ with_items: "{{dehydrated_dns_domains}}"
+
+- name: Install dehydrated cron job
+ template:
+ dest: /etc/cron.d/dehydrated
+ src: templates/dehydrated.cron
+ mode: 0755
+
+- name: Create dehydrated domains.txt file
+ template:
+ src: templates/domains.txt.template
+ dest: /etc/dehydrated/domains.txt
+ notify: dehydrated-run
-- name: Include dehydrated tasks
- include_tasks: dehydrated.yml
- when: snakeoil is undefined
+- name: Check for dehydrated account registration
+ command: find /etc/dehydrated/accounts -name "registration_info.json"
+ register: registered
+ changed_when: registered.stdout == ""
+ notify: dehydrated-register
diff --git a/roles/dehydrated/tasks/snakeoil.yml b/roles/dehydrated/tasks/snakeoil.yml
deleted file mode 100644
index 597c1829..00000000
--- a/roles/dehydrated/tasks/snakeoil.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-- name: Ensure ssl vars point to snakeoil cert
- set_fact:
- ssl_cert: /etc/ssl/certs/ssl-cert-snakeoil.pem
- ssl_ca: /etc/ssl/certs/ssl-cert-snakeoil.pem
- ssl_ca_cert: /etc/ssl/certs/ssl-cert-snakeoil.pem
- ssl_key: /etc/ssl/private/ssl-cert-snakeoil.key
diff --git a/roles/dehydrated/templates/dehydrated.cron b/roles/dehydrated/templates/dehydrated.cron
index f921bdc9..3dcf0e13 100644
--- a/roles/dehydrated/templates/dehydrated.cron
+++ b/roles/dehydrated/templates/dehydrated.cron
@@ -1,2 +1,2 @@
MAILTO={{mailto_address}}
-0 0/12 * * * root (/usr/sbin/dehydrated -c > /dev/null 2>&1) || echo "Error running dehydrated"
+0 */12 * * * root /usr/sbin/dehydrated -c > /var/log/dehydrated.log 2>&1 || cat /var/log/dehydrated.log >&2
diff --git a/roles/dehydrated/templates/hook-dns-01-real.py b/roles/dehydrated/templates/hook-dns-01-real.py
index e8cca4fb..92343135 100644
--- a/roles/dehydrated/templates/hook-dns-01-real.py
+++ b/roles/dehydrated/templates/hook-dns-01-real.py
@@ -85,7 +85,7 @@ if __name__ == "__main__":
action = 'delete'
elif hook == 'deploy_cert':
print("new cert deployed.. reloading apache")
- rv = subprocess.call(["service","apache2","reload"])
+ rv = subprocess.call(["/usr/sbin/service","apache2","reload"])
sys.exit( rv )
elif hook == 'invalid_challenge':
print("ERROR: invalid challenge: {0}".format(sys.argv[2]) )
diff --git a/roles/dehydrated/templates/hook-http-01 b/roles/dehydrated/templates/hook-http-01
index 25481ff2..b71962f0 100644
--- a/roles/dehydrated/templates/hook-http-01
+++ b/roles/dehydrated/templates/hook-http-01
@@ -62,7 +62,12 @@ deploy_cert() {
# Simple example: Copy file to nginx config
# cp "${KEYFILE}" "${FULLCHAINFILE}" /etc/nginx/ssl/; chown -R nginx: /etc/nginx/ssl
# systemctl reload nginx
- service apache2 reload
+{% if docker_apache is defined %}
+ docker exec apache apache2ctl graceful
+{% else %}
+ systemctl reload apache2
+{% endif %}
+
}
deploy_ocsp() {
diff --git a/roles/dehydrated/templates/main.config b/roles/dehydrated/templates/main.config
index ee4150c1..f77f7680 100644
--- a/roles/dehydrated/templates/main.config
+++ b/roles/dehydrated/templates/main.config
@@ -71,7 +71,7 @@ WELLKNOWN="{{dehydrated_wellknown}}"
#OPENSSL="openssl"
# Extra options passed to the curl binary (default: <unset>)
-#CURL_OPTS=
+CURL_OPTS=--http1.1
# Program or function called in certain situations
#
diff --git a/roles/django/defaults/main.yml b/roles/django/defaults/main.yml
index 9bfcb02c..20a7c2d6 100644
--- a/roles/django/defaults/main.yml
+++ b/roles/django/defaults/main.yml
@@ -1,5 +1,5 @@
django_app_root: "{{install_base}}/{{hostname}}/project"
-django_version: 1.11
+django_version: 1.11.29
apache_modules:
- ssl
- wsgi
diff --git a/roles/django/tasks/main.yml b/roles/django/tasks/main.yml
index 94a44f6e..9282936c 100644
--- a/roles/django/tasks/main.yml
+++ b/roles/django/tasks/main.yml
@@ -1,11 +1,14 @@
---
- name: Install required packages
- apt: pkg={{item}} state=present update-cache=yes
- with_items:
- - apache2
- - git
- - libapache2-mod-wsgi
- - python-pip
+ apt:
+ pkg: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - apache2
+ - git
+ - libapache2-mod-wsgi
+ - python3-pip
tags:
- update
@@ -23,6 +26,7 @@
version={{django_project_version}}
dest={{django_app_root}}
update=yes
+ force=yes
become: true
become_user: "{{apache_user}}"
notify: reload-apache
diff --git a/roles/docker-compose-deps/meta/main.yml b/roles/docker-compose-deps/meta/main.yml
deleted file mode 100644
index ebbbaa8c..00000000
--- a/roles/docker-compose-deps/meta/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-dependencies:
- - { role: docker-deps }
diff --git a/roles/docker-compose-deps/tasks/main.yml b/roles/docker-compose-deps/tasks/main.yml
deleted file mode 100644
index fee5810d..00000000
--- a/roles/docker-compose-deps/tasks/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-- name: Install docker-compose
- pip: name=docker-compose version=1.19.0
diff --git a/roles/docker-deps/tasks/main.yml b/roles/docker-deps/tasks/main.yml
index bfd9d574..cf4769dc 100644
--- a/roles/docker-deps/tasks/main.yml
+++ b/roles/docker-deps/tasks/main.yml
@@ -1,8 +1,8 @@
---
- name: Add Docker apt key
apt_key:
+ url: https://download.docker.com/linux/ubuntu/gpg
id: "9DC858229FC7DD38854AE2D88D81803C0EBFCD88"
- keyserver: "hkp://p80.pool.sks-keyservers.net"
- name: Install apt https packge to add Docker repo
apt: pkg=apt-transport-https state=present
@@ -17,12 +17,23 @@
apt:
name: "{{packages}}"
update_cache: yes
+ force: True
vars:
packages:
- docker-ce
- - python-pip
- - python-setuptools
+ - docker-ce-cli
+ - python3-pip
+ - python3-setuptools
+
+- name: Install haveged for scaleway hosts
+ apt: name=haveged
+ when: scaleway is defined
# required by docker-ce itself
- name: Install docker python
- pip: name=docker version=3.4.1
+ pip: name=docker
+
+# install docker-compose if requested. Provided by docker.com repo
+- name: Install docker-compose
+ apt: name=docker-compose-plugin
+ when: docker_compose_host is defined
diff --git a/roles/docker-elastalert/defaults/main.yml b/roles/docker-elastalert/defaults/main.yml
new file mode 100644
index 00000000..1273486c
--- /dev/null
+++ b/roles/docker-elastalert/defaults/main.yml
@@ -0,0 +1,28 @@
+---
+docker_image_ea: bitsensor/elastalert:1.0.0
+docker_container_name_ea: elastalert
+
+# This is the elastalert REST API only.
+# The dashboard is a separate plugin
+# for kibana. Not sure yet if we can
+# integrate it into our existing dashboards.
+ea_port: 3030
+ea_root: /srv/elastalert
+ea_app_name: Linaro Elastalert
+
+ea_elasticsearch_server: "{{ docker_container_elasticsearch_name }}"
+ea_elasticsearch_port: 9200
+
+ea_elasticsearch_dst_index: elastalert
+
+ea_kibana_plugin_download_url: https://github.com/bitsensor/elastalert-kibana-plugin/releases/download/1.0.1/elastalert-kibana-plugin-1.0.1-6.5.4.zip
+
+# metricbeat is currently set to report every 5 minutes.
+ea_polling_frequency: 3
+ea_polling_frequency_units: minutes
+# This sets how far back our alerts will go.
+ea_buffer_frequency: 6
+ea_buffer_frequency_units: hours
+
+# set this to use its own var so that we can easily override it
+ea_mailto_address: "{{ mailto_address }}"
diff --git a/roles/docker-elastalert/tasks/main.yml b/roles/docker-elastalert/tasks/main.yml
new file mode 100644
index 00000000..e5faa57d
--- /dev/null
+++ b/roles/docker-elastalert/tasks/main.yml
@@ -0,0 +1,66 @@
+---
+- name: Ensure docker bind dir exists
+ file:
+ path: "{{ ea_root }}"
+ state: directory
+
+- name: Install config.yaml in build dir
+ template:
+ src: templates/elastalert.yaml.j2
+ dest: "{{ ea_root }}/config.yaml"
+
+- name: Install config.json in build dir
+ template:
+ src: templates/config.json.j2
+ dest: "{{ ea_root }}/config.json"
+
+- name: Install elastalert-check script
+ template:
+ src: templates/elastalert-check.py
+ dest: "{{ ea_root }}/elastalert-check.py"
+ mode: 0755
+
+- name: Install logstash-check script
+ template:
+ src: templates/logstash-check.py
+ dest: "{{ ea_root }}/logstash-check.py"
+ mode: 0755
+
+- name: Install elastalert-check cron job
+ template:
+ src: templates/elastalert-check.cron
+ dest: "/etc/cron.d/elastalert-check"
+ mode: 0755
+
+- name: Install logstash-check cron job
+ template:
+ src: templates/logstash-check.cron
+ dest: "/etc/cron.d/logstash-check"
+ mode: 0755
+
+- name: Ensure rules directory exists
+ file:
+ path: "{{ ea_root }}/rules"
+ state: directory
+
+- name: Create docker container
+ docker_container:
+ name: "{{ docker_container_name_ea }}"
+ image: "{{ docker_image_ea }}"
+ state: started
+ log_driver: journald
+ restart_policy: unless-stopped
+ recreate: yes
+ networks:
+ - name: "{{ es_network_name }}"
+ volumes:
+ - "{{ ea_root }}/rules:/opt/elastalert/rules"
+ - "{{ ea_root }}/rule_templates:/opt/elastalert/rule_templates"
+ - "{{ ea_root }}/config.json:/opt/elastalert-server/config/config.json"
+ - "{{ ea_root }}/config.yaml:/opt/elastalert/config.yaml"
+
+- name: Wait for docker to start
+ wait_for:
+ host: "{{ ansible_facts.docker_container.NetworkSettings.IPAddress }}"
+ port: "{{ ea_port }}"
+ delay: 10
diff --git a/roles/docker-elastalert/templates/config.json.j2 b/roles/docker-elastalert/templates/config.json.j2
new file mode 100644
index 00000000..6a2b4e87
--- /dev/null
+++ b/roles/docker-elastalert/templates/config.json.j2
@@ -0,0 +1,21 @@
+{
+ "appName": "{{ ea_app_name }}",
+ "es_host": "{{ ea_elasticsearch_server }}",
+ "es_port": "{{ ea_elasticsearch_port }}",
+ "elastalertPath": "/opt/elastalert",
+ "verbose": false,
+ "es_debug": true,
+ "rulesPath": {
+ "relative": true,
+ "path": "/rules"
+ },
+ "templatesPath": {
+ "relative": true,
+ "path": "/rule_templates"
+ },
+ "dataPath": {
+ "relative": true,
+ "path": "/server_data"
+ },
+ "writeback_index": "{{ ea_elasticsearch_dst_index }}"
+}
diff --git a/roles/docker-elastalert/templates/elastalert-check.cron b/roles/docker-elastalert/templates/elastalert-check.cron
new file mode 100644
index 00000000..61398453
--- /dev/null
+++ b/roles/docker-elastalert/templates/elastalert-check.cron
@@ -0,0 +1,2 @@
+MAILTO={{ mailto_address }}
+15 * * * * root {{ ea_root }}/elastalert-check.py
diff --git a/roles/docker-elastalert/templates/elastalert-check.py b/roles/docker-elastalert/templates/elastalert-check.py
new file mode 100755
index 00000000..73e53d37
--- /dev/null
+++ b/roles/docker-elastalert/templates/elastalert-check.py
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+
+import sys
+import urllib2
+import json
+
+EA_SITE="{{ docker_container_name_ea }}"
+EA_PORT="{{ ea_port }}"
+
+
+response = urllib2.urlopen("http://%s:%s/status" % (EA_SITE, EA_PORT))
+
+data = json.loads(response.read())
+
+
+if data.get("status").lower() == "ready":
+ sys.exit(0)
+else:
+ print "Status: %s" % data.get("status").lower()
+
+# if status not ready, then try to get the error and exit
+response = urllib2.urlopen("http://%s:%s/status/errors" % (EA_SITE, EA_PORT))
+print response.read()
+sys.exit(1)
diff --git a/roles/docker-elastalert/templates/elastalert.yaml.j2 b/roles/docker-elastalert/templates/elastalert.yaml.j2
new file mode 100644
index 00000000..387a4c0d
--- /dev/null
+++ b/roles/docker-elastalert/templates/elastalert.yaml.j2
@@ -0,0 +1,13 @@
+es_host: {{ ea_elasticsearch_server }}
+es_port: {{ ea_elasticsearch_port }}
+smtp_host: {{ ea_smtp_host }}
+from_addr: {{ ea_from_addr }}
+writeback_index: "{{ea_elasticsearch_dst_index}}"
+rules_folder: rules
+scan_subdirectories: true
+run_every:
+ {{ ea_polling_frequency_units }}: {{ ea_polling_frequency }}
+buffer_time:
+ {{ ea_buffer_frequency_units }}: {{ ea_buffer_frequency }}
+disable_rules_on_error: true
+notify_email: {{ ea_mailto_address }}
diff --git a/roles/docker-elastalert/templates/logstash-check.cron b/roles/docker-elastalert/templates/logstash-check.cron
new file mode 100644
index 00000000..5c800135
--- /dev/null
+++ b/roles/docker-elastalert/templates/logstash-check.cron
@@ -0,0 +1,2 @@
+MAILTO={{ mailto_address }}
+15 * * * * root {{ ea_root }}/logstash-check.py
diff --git a/roles/docker-elastalert/templates/logstash-check.py b/roles/docker-elastalert/templates/logstash-check.py
new file mode 100755
index 00000000..7a8d9067
--- /dev/null
+++ b/roles/docker-elastalert/templates/logstash-check.py
@@ -0,0 +1,16 @@
+#!/usr/bin/python
+
+import socket
+import sys
+
+LS_SITE="logstash"
+LS_PORT=5044
+
+sock = socket.socket()
+
+try:
+ sock.connect((LS_SITE,LS_PORT))
+ sys.exit(0)
+except Exception as e:
+ print("%s %s:%s" % (e, LS_SITE,LS_PORT))
+ sys.exit(1)
diff --git a/roles/docker-elastalert/templates/rules/alert_email.stub b/roles/docker-elastalert/templates/rules/alert_email.stub
new file mode 100644
index 00000000..be0be0c8
--- /dev/null
+++ b/roles/docker-elastalert/templates/rules/alert_email.stub
@@ -0,0 +1,3 @@
+alert: email
+email:
+ - {{ea_mailto_address}}
diff --git a/roles/docker-elastalert/templates/rules/cpu-load-spike.yaml b/roles/docker-elastalert/templates/rules/cpu-load-spike.yaml
new file mode 100644
index 00000000..6e36ca77
--- /dev/null
+++ b/roles/docker-elastalert/templates/rules/cpu-load-spike.yaml
@@ -0,0 +1,27 @@
+---
+name: CPU Load Spike
+index: {{ ea_elasticsearch_src_index }}
+type: any
+description: Alert for any system with a normalized load gte 1
+
+summary_table_fields:
+ - beat.hostname
+ - system.load.norm.1
+ - system.load.norm.5
+ - system.load.norm.15
+
+owner: Systems
+
+filter:
+- query:
+ query_string:
+ # filter out jenkins master and slaves since those will always be hammered
+ query: "system.load.norm.1: [1.5 TO *] AND NOT host.name: (ci.linaro.org OR *x86_64-*)"
+
+# silence alert if there's been another one in the
+# past hour
+realert:
+ hours: 12
+
+# can only import once per rule
+import: alert_email.stub
diff --git a/roles/docker-elastalert/templates/rules/docker-container-changed.yaml b/roles/docker-elastalert/templates/rules/docker-container-changed.yaml
new file mode 100644
index 00000000..5ee4695e
--- /dev/null
+++ b/roles/docker-elastalert/templates/rules/docker-container-changed.yaml
@@ -0,0 +1,22 @@
+---
+name: Docker Container Changed
+index: {{ ea_elasticsearch_src_index }}
+type: change
+priority: 2
+
+summary_table_fields:
+ - beat.hostname
+
+ignore_null: false
+compare_key: docker.container.id
+query_key: docker.container.name
+
+# filter out anything running on *x86_64* (probably jenkins slave) and
+# any swarm instances
+filter:
+- query:
+ query_string:
+ query: "docker.container.id: * AND NOT host.name: *x86_64* AND NOT docker.container.image: swarm"
+
+# can only import once per rule
+import: alert_email.stub
diff --git a/roles/docker-elastalert/templates/rules/du-gt-70.yaml b/roles/docker-elastalert/templates/rules/du-gt-70.yaml
new file mode 100644
index 00000000..6e19fec6
--- /dev/null
+++ b/roles/docker-elastalert/templates/rules/du-gt-70.yaml
@@ -0,0 +1,24 @@
+---
+name: Disk Usage Above 70%
+index: {{ ea_elasticsearch_src_index }}
+type: any
+description: Alert for any system with 70% disk used
+
+summary_table_fields:
+ - beat.hostname
+ - system.filesystem.used.pct
+ - system.filesystem.type
+ - system.filesystem.mount_point
+ - system.filesystem.used.device_name
+
+owner: systems
+realert:
+ hours: 48
+priority: 1
+
+filter:
+- query:
+ query_string:
+ query: "system.filesystem.type: ext? AND system.filesystem.used.pct: [0.70 TO 0.79]"
+
+import: alert_email.stub
diff --git a/roles/docker-elastalert/templates/rules/du-gt-80.yaml b/roles/docker-elastalert/templates/rules/du-gt-80.yaml
new file mode 100644
index 00000000..9d259383
--- /dev/null
+++ b/roles/docker-elastalert/templates/rules/du-gt-80.yaml
@@ -0,0 +1,27 @@
+---
+name: Disk Full
+index: {{ ea_elasticsearch_src_index }}
+type: any
+description: Alert for any system with more than 80% disk used
+
+summary_table_fields:
+ - beat.hostname
+ - system.filesystem.used.pct
+ - system.filesystem.type
+ - system.filesystem.mount_point
+ - system.filesystem.used.device_name
+
+owner: systems
+# realert every hour as this should be a high priority to fix
+realert:
+ hours: 24
+priority: 0
+
+# filter to 80% or greater as disk is effectively full at this point and
+# we need to address the issue now.
+filter:
+- query:
+ query_string:
+ query: "system.filesystem.type: ext? AND system.filesystem.used.pct: [0.80 TO 1.0]"
+
+import: alert_email.stub
diff --git a/roles/docker-elastalert/templates/rules/heavy-diskio.yaml b/roles/docker-elastalert/templates/rules/heavy-diskio.yaml
new file mode 100644
index 00000000..e21e19e1
--- /dev/null
+++ b/roles/docker-elastalert/templates/rules/heavy-diskio.yaml
@@ -0,0 +1,28 @@
+---
+name: Heavy Disk I/O
+index: {{ ea_elasticsearch_src_index }}
+type: any
+description: Alert for any system with saturated disk io (iostat.busy > 1)
+
+summary_table_fields:
+ - beat.hostname
+ - system.diskio.iostat.busy
+ - system.diskio.iostat.service_time
+ - system.diskio.iostat.await
+
+owner: Systems
+
+filter:
+- query:
+ query_string:
+ # exclude jenkins master and slaves for now... they're always going to be off the charts
+ # during the day
+ query: "system.diskio.iostat.busy: [1.0 TO *] AND NOT host.name: (*x86_64-*)"
+
+# silence alert if there's been another one in the
+# past hour
+realert:
+ hours: 12
+
+# can only import once per rule
+import: alert_email.stub
diff --git a/roles/docker-elastalert/templates/rules/memory-gt-95.yaml b/roles/docker-elastalert/templates/rules/memory-gt-95.yaml
new file mode 100644
index 00000000..2b5400b9
--- /dev/null
+++ b/roles/docker-elastalert/templates/rules/memory-gt-95.yaml
@@ -0,0 +1,24 @@
+---
+name: Memory 95% usage
+index: {{ ea_elasticsearch_src_index }}
+type: any
+description: Alert for any system with 95% mem used
+
+summary_table_fields:
+ - beat.hostname
+ - system.memory.actual.used
+ - system.memory.actual.pct
+ - system.memory.used.pct
+ - system.memory.total
+ - system.memory.free
+
+owner: systems
+realert:
+ hours: 12
+
+filter:
+- query:
+ query_string:
+ query: "system.memory.used.pct: [0.95 TO *]"
+
+import: alert_email.stub
diff --git a/roles/docker-elasticsearch/defaults/main.yml b/roles/docker-elasticsearch/defaults/main.yml
index 127a4065..4a66c7c1 100644
--- a/roles/docker-elasticsearch/defaults/main.yml
+++ b/roles/docker-elasticsearch/defaults/main.yml
@@ -1,8 +1,14 @@
---
-docker_image_elk_local: linaro/elasticsearch
+docker_image_elasticsearch_local: linaro/elasticsearch
docker_image: elasticsearch:6.5.1
docker_container_name: elasticsearch-noname
-docker_port_elasticsearch: 9200
+docker_port_elasticsearch: "9200"
+
+es_network_name: elasticsearch-noname
+es_mem: 30g
+
+openjdk_url: https://download.java.net/java/GA/jdk16.0.2/d4a915d82b4c4fbb9bde534da945d746/7/GPL/openjdk-16.0.2_linux-x64_bin.tar.gz
+openjdk_path: /opt/jdk-16.0.2
elk_root: /srv/elk-production
diff --git a/roles/docker-elasticsearch/tasks/main.yml b/roles/docker-elasticsearch/tasks/main.yml
index 3a411dfc..534ade4a 100644
--- a/roles/docker-elasticsearch/tasks/main.yml
+++ b/roles/docker-elasticsearch/tasks/main.yml
@@ -2,45 +2,118 @@
# This controls images available on the system since
# we don't allow docker_container to do its own pulls
-- name: Ensure docker build dir exists
+- name: Ensure max_map_count is large enough
+ sysctl:
+ name: vm.max_map_count
+ value: "262144"
+ state: present
+ sysctl_file: /etc/sysctl.conf
+
+- name: Ensure required dirs exist
file:
- path: "{{elk_root}}"
+ path: "{{ item }}"
state: directory
-
-- name: Copy docker build files
- copy:
- src: "{{secrets_dir}}/files/elasticsearch/docker"
- dest: "{{elk_root}}/"
+ owner: "1000"
+ group: root
+ mode: "0775"
+ with_items:
+ - "{{ elk_root }}/docker"
+ - "{{elk_root}}/logs"
+ - "{{elk_root}}/backup"
- name: Ensure elk Dockerfile exists
template:
src: templates/Dockerfile.j2
dest: "{{elk_root}}/docker/Dockerfile"
+- name: Ensure jvm.options exists
+ template:
+ src: templates/jvm.options
+ owner: "1000"
+ group: root
+ mode: "0664"
+ dest: "{{elk_root}}/docker/jvm.options"
+
+- name: Ensure elasticsearch.yml exists
+ template:
+ src: templates/elasticsearch.yml.j2
+ owner: "1000"
+ group: root
+ mode: "0664"
+ dest: "{{elk_root}}/docker/elasticsearch.yml"
+
- name: Build ELK image
docker_image:
- name: "{{docker_image_elk_local}}"
- path: "{{elk_root}}/docker"
- force: yes
+ build:
+ path: "{{elk_root}}/docker"
+ name: "{{docker_image_elasticsearch_local}}"
+ source: build
+
+- name: Create docker bridge network
+ docker_network:
+ name: "{{ es_network_name }}"
- name: Create docker container
docker_container:
name: "{{docker_container_elasticsearch_name}}"
- image: "{{docker_image_elk_local}}"
+ image: "{{docker_image_elasticsearch_local}}"
state: started
log_driver: journald
restart_policy: unless-stopped
- published_ports:
- - "{{docker_port_elasticsearch}}:9200"
recreate: yes
- volumes:
- - "{{docker_elk_vol}}/data:/usr/share/elasticsearch/data"
+ # mitigation for CVE-2021-44228
env:
- ES_JAVA_OPTS: "-Xms4g -Xmx4g"
- ES_HEAP_SIZE: "16g"
- LS_HEAP_SIZE: "16g"
+ LOG4J_FORMAT_MSG_NO_LOOKUPS: "true"
+ volumes:
+ - "{{ elk_root }}/docker/jvm.options:/usr/share/elasticsearch/config/jvm.options:ro"
+ - "{{ elk_root }}/docker/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro"
+ - "{{ elk_root }}/data:/usr/share/elasticsearch/data"
+ - "{{ elk_root }}/logs:/usr/share/elasticsearch/logs"
+ - "{{ elk_root }}/backup:/usr/share/elasticsearch/backup"
+ networks:
+ - name: "{{ es_network_name }}"
- name: Wait for docker to start
wait_for:
+ host: "{{docker_container_elasticsearch_name}}"
port: "{{docker_port_elasticsearch}}"
delay: 10
+
+# ES no longer accepts this via elasticsearch.yml, so we have to
+# use the API to set it
+- name: Set default template for single node cluster
+ uri:
+ url: "http://{{ docker_container_elasticsearch_name }}:{{ docker_port_elasticsearch }}/_template/default"
+ method: PUT
+ headers:
+ Content-type: application/json
+ body_format: json
+ body:
+ index_patterns: ["*"]
+ settings:
+ index:
+ number_of_shards: 1
+ number_of_replicas: 0
+
+- name: Ensure iptables DNAT rule in place for ES port
+ iptables:
+ chain: DOCKER
+ destination: "{{ansible_facts.docker_container.NetworkSettings.IPAddress}}"
+ to_destination: "{{ansible_facts.docker_container.NetworkSettings.IPAddress}}"
+ destination_port: "9200"
+ in_interface: ! docker0
+ protocol: tcp
+ jump: DNAT
+ table: nat
+
+- name: Ensure UFW whitelist rules are in place
+ ufw:
+ rule: allow
+ route: true
+ direction: in
+ interface: eth0
+ proto: tcp
+ from_ip: "{{ item }}"
+ to_ip: "{{ansible_facts.docker_container.NetworkSettings.IPAddress}}"
+ to_port: "{{docker_port_elasticsearch}}"
+ with_items: "{{docker_elasticsearch_ufw_whitelist}}"
diff --git a/roles/docker-elasticsearch/templates/Dockerfile.j2 b/roles/docker-elasticsearch/templates/Dockerfile.j2
index a1abe41f..927874ee 100644
--- a/roles/docker-elasticsearch/templates/Dockerfile.j2
+++ b/roles/docker-elasticsearch/templates/Dockerfile.j2
@@ -1,10 +1,6 @@
FROM {{docker_image}}
-#ADD readonlyrest.yml /usr/share/elasticsearch/config/
-#ADD readonlyrest-1.16.32_es6.5.1.zip /tmp
-#ADD keystore.jks /usr/share/elasticsearch/config/
-#ADD elasticsearch.yml /usr/share/elasticsearch/config/elasticsearch.yml
+ENV JAVA_HOME {{ openjdk_path }}
-#RUN /usr/share/elasticsearch/bin/elasticsearch-plugin \
-# install -b file:///tmp/readonlyrest-1.16.32_es6.5.1.zip && \
-# rm -r /tmp/*.zip
+RUN curl --retry 3 -s {{ openjdk_url }} | tar -C /opt -zxf -
+RUN ln -sf /etc/pki/ca-trust/extracted/java/cacerts {{ openjdk_path }}/lib/security/cacerts
diff --git a/roles/docker-elasticsearch/templates/elasticsearch.yml.j2 b/roles/docker-elasticsearch/templates/elasticsearch.yml.j2
new file mode 100644
index 00000000..a7367ba1
--- /dev/null
+++ b/roles/docker-elasticsearch/templates/elasticsearch.yml.j2
@@ -0,0 +1,8 @@
+cluster.name: "docker-cluster"
+network.host: 0.0.0.0
+
+# minimum_master_nodes need to be explicitly set when bound on a public IP
+# set to 1 to allow single node clusters
+# Details: https://github.com/elastic/elasticsearch/pull/17288
+discovery.zen.minimum_master_nodes: 1
+path.repo: ["/usr/share/elasticsearch/backup"]
diff --git a/roles/docker-elasticsearch/templates/jvm.options b/roles/docker-elasticsearch/templates/jvm.options
new file mode 100644
index 00000000..617faebb
--- /dev/null
+++ b/roles/docker-elasticsearch/templates/jvm.options
@@ -0,0 +1,117 @@
+## JVM configuration
+
+################################################################
+## IMPORTANT: JVM heap size
+################################################################
+##
+## You should always set the min and max JVM heap
+## size to the same value. For example, to set
+## the heap to 4 GB, set:
+##
+## -Xms4g
+## -Xmx4g
+##
+## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
+## for more information
+##
+################################################################
+
+# Xms represents the initial size of total heap space
+# Xmx represents the maximum size of total heap space
+
+-Xms{{ es_mem }}
+-Xmx{{ es_mem }}
+
+################################################################
+## Expert settings
+################################################################
+##
+## All settings below this section are considered
+## expert settings. Don't tamper with them unless
+## you understand what you are doing
+##
+################################################################
+
+## GC configuration
+# CMS has been deprecated since Java 9 and it is now using G1 as
+# the default. Let's stick with that since it probably has some
+# sensible settings.
+# More info: https://jaxenter.com/cms-gc-jdk-9-java-161723.html
+#-XX:+UseConcMarkSweepGC
+#-XX:CMSInitiatingOccupancyFraction=75
+#-XX:+UseCMSInitiatingOccupancyOnly
+
+## G1GC Configuration
+# NOTE: G1GC is only supported on JDK version 10 or later.
+# To use G1GC uncomment the lines below.
+# 10-:-XX:-UseConcMarkSweepGC
+# 10-:-XX:-UseCMSInitiatingOccupancyOnly
+-XX:+UseG1GC
+-XX:InitiatingHeapOccupancyPercent=75
+
+## optimizations
+
+# pre-touch memory pages used by the JVM during initialization
+-XX:+AlwaysPreTouch
+
+## basic
+
+# explicitly set the stack size
+-Xss1m
+
+# set to headless, just in case
+-Djava.awt.headless=true
+
+# ensure UTF-8 encoding by default (e.g. filenames)
+-Dfile.encoding=UTF-8
+
+# use our provided JNA always versus the system one
+-Djna.nosys=true
+
+# turn off a JDK optimization that throws away stack traces for common
+# exceptions because stack traces are important for debugging
+-XX:-OmitStackTraceInFastThrow
+
+# flags to configure Netty
+-Dio.netty.noUnsafe=true
+-Dio.netty.noKeySetOptimization=true
+-Dio.netty.recycler.maxCapacityPerThread=0
+
+# log4j 2
+-Dlog4j.shutdownHookEnabled=false
+-Dlog4j2.disable.jmx=true
+
+-Djava.io.tmpdir=/usr/share/elasticsearch/logs
+
+## heap dumps
+
+# generate a heap dump when an allocation from the Java heap fails
+# heap dumps are created in the working directory of the JVM
+-XX:+HeapDumpOnOutOfMemoryError
+
+# specify an alternative path for heap dumps; ensure the directory exists and
+# has sufficient space
+-XX:HeapDumpPath=/usr/share/elasticsearch/logs
+
+# specify an alternative path for JVM fatal error logs
+-XX:ErrorFile=/usr/share/elasticsearch/logs/hs_err_pid%p.log
+
+## JDK 8 GC logging
+
+8:-XX:+PrintGCDetails
+8:-XX:+PrintGCDateStamps
+8:-XX:+PrintTenuringDistribution
+8:-XX:+PrintGCApplicationStoppedTime
+8:-Xloggc:logs/gc.log
+8:-XX:+UseGCLogFileRotation
+8:-XX:NumberOfGCLogFiles=32
+8:-XX:GCLogFileSize=64m
+
+# JDK 9+ GC logging
+9-:-Xlog:gc*,gc+age=trace,safepoint:file=/usr/share/elasticsearch/logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m
+# due to internationalization enhancements in JDK 9 Elasticsearch need to set the provider to COMPAT otherwise
+# time/date parsing will break in an incompatible way for some date patterns and locals
+9-:-Djava.locale.providers=COMPAT
+
+# temporary workaround for C2 bug with JDK 10 on hardware with AVX-512
+10-:-XX:UseAVX=2
diff --git a/roles/docker-elk/defaults/main.yml b/roles/docker-elk/defaults/main.yml
deleted file mode 100644
index d487344e..00000000
--- a/roles/docker-elk/defaults/main.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-docker_image: sebp/elk:651
-docker_image_elk_local: linaro/elk
-docker_container_elk_name: elasticsearch-noname
-
-docker_port_kibana: 5601
-docker_port_logstash: 5044
-
-logstash_cert: "{{secrets_dir}}/files/elk/certs/logstash-beats.crt"
-logstash_cert_private: "{{secrets_dir}}/files/elk/certs/logstash-beats.key"
-
-docker_logstash_cert: "/srv/certs/logstash-beats.crt"
-docker_logstash_cert_private: "/srv/certs/logstash-beats.key"
-
-elk_root: /srv/elk-production/sebp
diff --git a/roles/docker-elk/tasks/main.yml b/roles/docker-elk/tasks/main.yml
deleted file mode 100644
index 5a89a4ba..00000000
--- a/roles/docker-elk/tasks/main.yml
+++ /dev/null
@@ -1,51 +0,0 @@
----
-# This controls images available on the system since
-# we don't allow docker_container to do its own pulls
-
-- name: Ensure certs dir exists
- file: path=/srv/certs state=directory
-- name: Copy logstash certs
- copy:
- src: "{{item}}"
- dest: /srv/certs
- with_items:
- - "{{logstash_cert}}"
- - "{{logstash_cert_private}}"
-
-- name: Ensure elk root dir exists
- file: path="{{elk_root}}" state=directory
-
-- name: Ensure elk Dockerfile exists
- template:
- src: templates/Dockerfile_elk.j2
- dest: "{{elk_root}}/Dockerfile"
-
-- name: Build ELK image
- docker_image:
- name: "{{docker_image_elk_local}}"
- path: "{{elk_root}}"
- force: yes
-
-- name: Create docker container
- docker_container:
- name: "{{docker_container_elk_name}}"
- image: "{{docker_image_elk_local}}"
- state: started
- log_driver: journald
- restart_policy: unless-stopped
- published_ports:
- - "{{docker_port_kibana}}:5601"
- - "{{docker_port_logstash}}:5044"
- recreate: yes
- volumes:
- - "{{docker_logstash_cert}}:/etc/pki/tls/certs/logstash-beats.crt"
- - "{{docker_logstash_cert_private}}:/etc/pki/tls/private/logstash-beats.key"
- env:
- ELASTICSEARCH_START: "0"
- links:
- - "{{docker_container_elasticsearch_name}}:elk"
-
-- name: Wait for docker to start
- wait_for:
- port: "{{docker_port_kibana}}"
- delay: 10
diff --git a/roles/docker-elk/templates/Dockerfile_elk.j2 b/roles/docker-elk/templates/Dockerfile_elk.j2
deleted file mode 100644
index 88cde913..00000000
--- a/roles/docker-elk/templates/Dockerfile_elk.j2
+++ /dev/null
@@ -1,14 +0,0 @@
-FROM {{docker_image}}
-
-RUN echo 'kibana.index: ".kibanaproduction" \n\
-elasticsearch.url: http://elk:9200' >> /opt/kibana/config/kibana.yml
-
-RUN echo '\n\
-output { \n\
- elasticsearch { \n\
- hosts => ["elk"] \n\
- manage_template => false \n\
- index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" \n\
- document_type => "%{[@metadata][type]}" \n\
- } \n\
-}' > /etc/logstash/conf.d/30-output.conf
diff --git a/roles/docker-publishing/files/event-watcher.py b/roles/docker-event-watcher/files/event-watcher.py
index 4158ba28..4158ba28 100644
--- a/roles/docker-publishing/files/event-watcher.py
+++ b/roles/docker-event-watcher/files/event-watcher.py
diff --git a/roles/docker-event-watcher/handlers/main.yml b/roles/docker-event-watcher/handlers/main.yml
new file mode 100644
index 00000000..45ea6332
--- /dev/null
+++ b/roles/docker-event-watcher/handlers/main.yml
@@ -0,0 +1,3 @@
+---
+- name: event-watcher
+ command: "/usr/sbin/event-watcher.py -n -o"
diff --git a/roles/docker-event-watcher/tasks/main.yml b/roles/docker-event-watcher/tasks/main.yml
new file mode 100644
index 00000000..458996ae
--- /dev/null
+++ b/roles/docker-event-watcher/tasks/main.yml
@@ -0,0 +1,12 @@
+---
+- name: Install event-watcher.py script
+ copy:
+ src: event-watcher.py
+ dest: /usr/sbin/event-watcher.py
+ mode: 0775
+ force: yes
+
+- name: Install crontab
+ template:
+ src: crond.j2
+ dest: /etc/cron.d/event-watcher
diff --git a/roles/docker-event-watcher/templates/crond.j2 b/roles/docker-event-watcher/templates/crond.j2
new file mode 100644
index 00000000..b672ef07
--- /dev/null
+++ b/roles/docker-event-watcher/templates/crond.j2
@@ -0,0 +1 @@
+*/10 * * * * root /usr/sbin/event-watcher.py -n -o >/dev/null 2>&1
diff --git a/roles/docker-flexnet/handlers/main.yml b/roles/docker-flexnet/handlers/main.yml
new file mode 100644
index 00000000..056c327a
--- /dev/null
+++ b/roles/docker-flexnet/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+- name: restart-flexnet
+ docker_container:
+ name: flexnet
+ restart: yes
diff --git a/roles/obs-worker/meta/main.yml b/roles/docker-flexnet/meta/main.yml
index 1bc708f2..1bc708f2 100644
--- a/roles/obs-worker/meta/main.yml
+++ b/roles/docker-flexnet/meta/main.yml
diff --git a/roles/docker-flexnet/tasks/main.yml b/roles/docker-flexnet/tasks/main.yml
new file mode 100644
index 00000000..0a41f84c
--- /dev/null
+++ b/roles/docker-flexnet/tasks/main.yml
@@ -0,0 +1,23 @@
+---
+- name: Copy flexnet and licenses
+ copy:
+ src: "{{secrets_dir}}/files/flexnet"
+ dest: "/srv/"
+ notify:
+ - restart-flexnet
+
+- name: create flexnet server
+ docker_container:
+ name: flexnet
+ hostname: "{{flexhost}}"
+ mac_address: "{{flexmac}}"
+ image: "{{docker_image_flexnet}}"
+ state: started
+ restart_policy: unless-stopped
+ # pull: yes
+ volumes:
+ - "/srv/flexnet/:/var/flexnet/:ro"
+ published_ports:
+ - "27000:27000"
+ - "27020:27020"
+ command: "-c /var/flexnet/server.lic"
diff --git a/roles/docker-fossology/defaults/main.yml b/roles/docker-fossology/defaults/main.yml
deleted file mode 100644
index c8f8dc58..00000000
--- a/roles/docker-fossology/defaults/main.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-docker_data_volume: /srv/fossology
-docker_container_name: fossology
-docker_port: 8081
-docker_build_location: /srv/fossology-src
-
-# docker-compose.yml
-
-FOSSOLOGY_DB_HOST: fossology-db
-FOSSOLOGY_DB_NAME: fossology
-FOSSOLOGY_DB_USER: fossy
-FOSSOLOGY_DB_PASSWORD: fossy
-FOSSOLOGY_SCHEDULER_HOST: fossology-scheduler
diff --git a/roles/docker-fossology/tasks/main.yml b/roles/docker-fossology/tasks/main.yml
deleted file mode 100644
index e314c5d2..00000000
--- a/roles/docker-fossology/tasks/main.yml
+++ /dev/null
@@ -1,71 +0,0 @@
----
-- name: Install docker-compose
- pip: name=docker-compose
-
-- name: Install Apache2
- apt: pkg=apache2
-
-- name: Enable Apache modules
- apache2_module: name={{item}}
- with_items: "{{apache_modules}}"
- notify: reload-apache
-
-- name: Ensure data volume is owned by docker user
- file:
- path: "{{docker_data_volume}}"
- state: directory
- owner: 106 #fossy
- group: 106 #fossy
- recurse: yes
- follow: no
-
-- name: Clone fossology repo
- git:
- repo: https://github.com/fossology/fossology
- dest: "{{docker_build_location}}/repo"
- version: 3.3.0
-
-- name: Ensure build location exists
- file:
- path: "{{docker_build_location}}/docker"
- state: directory
-
-- name: Copy docker-compose build files
- synchronize:
- src: "{{docker_build_location}}/repo/"
- dest: "{{docker_build_location}}/docker/"
- rsync_opts:
- - "--exclude=docker-compose.yml"
- - "--exclude=.git"
- delegate_to: "{{inventory_hostname}}"
-
-- name: Ensure docker-compose exists
- template:
- src: "{{item}}.j2"
- dest: "{{docker_build_location}}/docker/install/{{item}}"
- with_items:
- - docker-compose.yml
-
-- name: Ensure entrypoint is executable
- file:
- path: "{{docker_build_location}}/docker/install/docker-compose.docker-entrypoint.sh"
- mode: 0777
-
-- name: Build docker image (can be slow)
- docker_service:
- project_name: "{{docker_container_name}}"
- project_src: "{{docker_build_location}}/docker/install"
-
-- name: Wait for docker starts
- wait_for:
- port: 8081
- delay: 10
-
-- name: Ensure all containers are running
- assert:
- that:
- - ansible_facts['fossology-db']['fossology_fossology-db_1'].state.running
- - ansible_facts['fossology-scheduler']['fossology_fossology-scheduler_1'].state.running
- - ansible_facts['fossology-web']['fossology_fossology-web_1'].state.running
-
-
diff --git a/roles/docker-fossology/templates/docker-compose.yml.j2 b/roles/docker-fossology/templates/docker-compose.yml.j2
deleted file mode 100644
index 6322b711..00000000
--- a/roles/docker-fossology/templates/docker-compose.yml.j2
+++ /dev/null
@@ -1,80 +0,0 @@
-# FOSSology Docker Compose file
-# Copyright Siemens AG 2016, fabio.huser@siemens.com
-# Copyright TNG Technology Consulting GmbH 2016-2017, maximilian.huber@tngtech.com
-#
-# Copying and distribution of this file, with or without modification,
-# are permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved. This file is offered as-is,
-# without any warranty.
-#
-# Description: Recipe for setting up a multi container FOSSology
-# Docker setup with separate Database instance
-version: '2'
-services:
-
-################################################################################
- fossology-base-image:
- build:
- context: ..
- dockerfile: install/docker-compose.Dockerfile
- args:
- - http_proxy
- - https_proxy
- - no_proxy
- image: fossology
- restart: "no"
- environment:
- - FOSSOLOGY_DB_HOST={{FOSSOLOGY_DB_HOST}}
- - FOSSOLOGY_DB_NAME={{FOSSOLOGY_DB_NAME}}
- - FOSSOLOGY_DB_USER={{FOSSOLOGY_DB_USER}}
- user: fossy
- command: "true"
-
-################################################################################
- fossology-scheduler:
- image: fossology
- restart: unless-stopped
- environment:
- - FOSSOLOGY_DB_HOST={{FOSSOLOGY_DB_HOST}}
- - FOSSOLOGY_DB_NAME={{FOSSOLOGY_DB_NAME}}
- - FOSSOLOGY_DB_USER={{FOSSOLOGY_DB_USER}}
- - FOSSOLOGY_DB_PASSWORD={{FOSSOLOGY_DB_PASSWORD}}
- user: fossy
- command: scheduler
- links:
- - fossology-db
- volumes:
- - /srv/fossology/repository:/srv/fossology/repository
-
-################################################################################
- fossology-web:
- image: fossology
- restart: unless-stopped
- environment:
- - FOSSOLOGY_DB_HOST={{FOSSOLOGY_DB_HOST}}
- - FOSSOLOGY_DB_NAME={{FOSSOLOGY_DB_NAME}}
- - FOSSOLOGY_DB_USER={{FOSSOLOGY_DB_USER}}
- - FOSSOLOGY_DB_PASSWORD={{FOSSOLOGY_DB_PASSWORD}}
- - FOSSOLOGY_SCHEDULER_HOST={{FOSSOLOGY_SCHEDULER_HOST}}
- user: fossy
- command: web
- ports:
- - 8081:8081
- links:
- - fossology-db
- - fossology-scheduler
- volumes_from:
- - fossology-scheduler
-
-################################################################################
- fossology-db:
- image: postgres
- restart: unless-stopped
- environment:
- - POSTGRES_DB={{FOSSOLOGY_DB_NAME}}
- - POSTGRES_USER={{FOSSOLOGY_DB_USER}}
- - POSTGRES_PASSWORD={{FOSSOLOGY_DB_PASSWORD}}
- - POSTGRES_INITDB_ARGS='-E SQL_ASCII'
- - PGDATA=/data/postgres
- volumes:
- - /srv/postgres/data:/data/postgres
diff --git a/roles/docker-gitlab/handlers/main.yml b/roles/docker-gitlab/handlers/main.yml
new file mode 100644
index 00000000..443ab666
--- /dev/null
+++ b/roles/docker-gitlab/handlers/main.yml
@@ -0,0 +1,8 @@
+---
+- name: reconfigure-gitlab
+ command: docker exec gitlab gitlab-ctl reconfigure
+
+- name: restart-gitlab
+ command: docker exec gitlab gitlab-ctl restart
+ listen:
+ reconfigure-gitlab
diff --git a/roles/docker-gitlab/tasks/main.yml b/roles/docker-gitlab/tasks/main.yml
new file mode 100644
index 00000000..5ea2475d
--- /dev/null
+++ b/roles/docker-gitlab/tasks/main.yml
@@ -0,0 +1,60 @@
+---
+- name: Pull latest gitlab image
+ docker_image:
+ name: "{{ docker_image_name }}"
+ state: present
+ source: pull
+ force_source: yes
+
+- name: Create gitlab directories
+ file:
+ path: "{{ item }}"
+ state: directory
+ mode: '0755'
+ with_items:
+ - "/srv/gitlab/config"
+ - "/srv/gitlab/logs"
+ - "/srv/gitlab/data"
+ - "/srv/gitlab/config/nginx.d"
+
+- name: Install nginx redirect for alternate hosts
+ template:
+ src: morelloproject.conf.tmp
+ dest: /srv/gitlab/config/nginx.d/morelloproject.conf
+ mode: 0600
+ owner: root
+ group: root
+ force: yes
+ when: inventory_hostname == 'git.morello-project.org'
+
+- name: Create gitlab.rb config
+ template:
+ src: gitlab.rb.j2
+ dest: /srv/gitlab/config/gitlab.rb
+ mode: 0600
+ owner: root
+ group: root
+ force: yes
+ notify:
+ - reconfigure-gitlab
+
+- name: Create gitlab container
+ docker_container:
+ image: "{{ docker_image_name }}"
+ name: "gitlab"
+ hostname: "{{ inventory_hostname }}"
+ state: started
+ volumes:
+ - "/srv/gitlab/config:/etc/gitlab"
+ - "/srv/gitlab/logs:/var/log/gitlab"
+ - "/srv/gitlab/data:/var/opt/gitlab"
+ published_ports:
+ - "22:22"
+ - "80:80"
+ - "443:443"
+ - "5000:5000"
+ - "5050:5050"
+ etc_hosts:
+ smtp: "172.17.0.1"
+ log_driver: journald
+ restart_policy: unless-stopped
diff --git a/roles/filebeat/templates/filebeat.yml.j2 b/roles/docker-gitlab/templates/gitlab.rb.j2
index 222b1b04..0bad049b 100644
--- a/roles/filebeat/templates/filebeat.yml.j2
+++ b/roles/docker-gitlab/templates/gitlab.rb.j2
@@ -1,2 +1,2 @@
# DO NOT EDIT! MANAGED BY ANSIBLE
-{{ filebeat_config|to_yaml }}
+{{ gitlab_config }}
diff --git a/roles/docker-gitlab/templates/morelloproject.conf.tmp b/roles/docker-gitlab/templates/morelloproject.conf.tmp
new file mode 100644
index 00000000..111fa260
--- /dev/null
+++ b/roles/docker-gitlab/templates/morelloproject.conf.tmp
@@ -0,0 +1,21 @@
+server {
+ listen 80;
+ listen 443;
+ server_name .morelloproject.org;
+
+ if ($http_user_agent ~* (semrushbot|petalbot)) {
+ return 403;
+ }
+
+ return 301 $scheme://{{ inventory_hostname }}$request_uri;
+}
+
+server {
+ listen 80;
+ listen 443;
+ server_name .morello-project.org;
+
+ if ($http_user_agent ~* (semrushbot|petalbot)) {
+ return 403;
+ }
+}
diff --git a/roles/docker-grafana/tasks/main.yml b/roles/docker-grafana/tasks/main.yml
new file mode 100644
index 00000000..a943f0ba
--- /dev/null
+++ b/roles/docker-grafana/tasks/main.yml
@@ -0,0 +1,60 @@
+---
+- name: Create install directory
+ file:
+ path: "/srv/grafana"
+ state: directory
+
+- name: Create grafana components subdirectories
+ file:
+ path: "/srv/grafana/{{ item }}"
+ state: directory
+ with_items:
+ - data
+ - plugins
+ - logs
+ - provisioning
+
+- name: Create grafana.ini
+ template:
+ src: templates/grafana.ini
+ dest: /srv/grafana/grafana.ini
+
+- name: Create ldap.toml
+ template:
+ src: templates/ldap.toml
+ dest: /srv/grafana/ldap.toml
+
+- name: Create docker network
+ docker_network:
+ name: "{{ grafana_network_name }}"
+
+
+- name: Pull latest grafana image from upstream
+ docker_image:
+ name: "{{ grafana_image_name }}"
+ state: present
+ source: pull
+ force_source: yes
+ when: grafana_upgrade is defined
+
+- name: Create grafana container
+ docker_container:
+ name: "{{ grafana_container_name }}"
+ image: "{{ grafana_image_name }}"
+ pull: False
+ ignore_image: "{{not(grafana_upgrade is defined)}}"
+ state: started
+ log_driver: journald
+ restart_policy: unless-stopped
+ published_ports:
+ - "3000:{{grafana_port}}"
+ volumes:
+ - "/srv/grafana:/srv"
+ env:
+ GF_PATHS_CONFIG: "/srv/grafana.ini"
+ GF_PATHS_DATA: "/srv/data"
+ GF_PATHS_PLUGINS: "/srv/plugins"
+ GF_PATHS_LOGS: "/srv/logs"
+ GF_PATHS_PROVISIONING: "/srv/provisioning"
+ networks:
+ - name: "{{ grafana_network_name }}"
diff --git a/roles/docker-grafana/templates/grafana.ini b/roles/docker-grafana/templates/grafana.ini
new file mode 100644
index 00000000..24f26915
--- /dev/null
+++ b/roles/docker-grafana/templates/grafana.ini
@@ -0,0 +1,135 @@
+[paths]
+
+[server]
+protocol = http
+http_port = 3000
+domain = {{ inventory_hostname }}
+
+# Redirect to correct domain if host header does not match domain
+# Prevents DNS rebinding attacks
+;enforce_domain = false
+
+# The full public facing url you use in browser, used for redirects and emails
+# If you use reverse proxy and sub path specify full url (with sub path)
+root_url = https://{{ inventory_hostname }}
+
+[database]
+url = postgres://{{ db_username }}:{{ db_password }}@{{ db_hostname }}:5432/{{db_database }}
+log_queries =
+
+[session]
+
+[dataproxy]
+
+[analytics]
+
+[security]
+;admin_user = admin
+;admin_password = admin
+;secret_key = SW2YcwTIb9zpOOhoPsMm
+
+[snapshots]
+
+[dashboards]
+versions_to_keep = 20
+min_refresh_interval = 5s
+
+[users]
+allow_sign_up = true
+auto_assign_org = true
+auto_assign_org_role = Editor
+
+[auth]
+
+[auth.anonymous]
+enabled = true
+org_name = Linaro Ltd.
+
+[auth.github]
+
+[auth.google]
+
+[auth.generic_oauth]
+
+[auth.grafana_com]
+
+[auth.proxy]
+
+[auth.basic]
+
+[auth.ldap]
+enabled = true
+config_file = /srv/ldap.toml
+allow_sign_up = true
+
+[smtp]
+enabled = true
+host = {{ postfix_relay_hostname }}:{{ postfix_relay_port }}
+user = {{ postfix_relay_username }}
+# If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;"""
+password = {{ postfix_relay_password }}
+;cert_file =
+;key_file =
+skip_verify = true
+from_address = grafana@{{ inventory_hostname }}
+from_name = Grafana
+# EHLO identity in SMTP dialog (defaults to instance_name)
+ehlo_identity = {{ inventory_hostname }}
+
+
+[emails]
+
+[log]
+filters = ldap:debug
+
+[log.console]
+
+[log.file]
+
+[log.syslog]
+
+[alerting]
+# Disable alerting engine & UI features
+enabled = true
+# Makes it possible to turn off alert rule execution but alerting UI is visible
+execute_alerts = true
+
+# Default setting for new alert rules. Defaults to categorize error and timeouts as alerting. (alerting, keep_state)
+;error_or_timeout = alerting
+
+# Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
+;nodata_or_nullvalues = no_data
+
+# Alert notifications can include images, but rendering many images at the same time can overload the server
+# This limit will protect the server from render overloading and make sure notifications are sent out quickly
+concurrent_render_limit = 5
+
+
+[explore]
+
+[metrics]
+
+[metrics.graphite]
+
+[tracing.jaeger]
+
+[grafana_com]
+;url = https://grafana.com
+
+[external_image_storage]
+
+[external_image_storage.s3]
+
+[external_image_storage.webdav]
+
+[external_image_storage.gcs]
+
+[external_image_storage.azure_blob]
+
+[external_image_storage.local]
+
+[rendering]
+
+[enterprise]
+
+[panels]
diff --git a/roles/docker-grafana/templates/ldap.toml b/roles/docker-grafana/templates/ldap.toml
new file mode 100644
index 00000000..858a41eb
--- /dev/null
+++ b/roles/docker-grafana/templates/ldap.toml
@@ -0,0 +1,27 @@
+[[servers]]
+host = "{{ grafana_ldap_host }}"
+port = 636
+use_ssl = true
+start_tls = false
+ssl_skip_verify = true
+
+bind_dn = "{{ grafana_ldap_bind }}"
+bind_password = '{{ grafana_ldap_bind_pwd }}'
+search_filter = "(mail=%s)"
+search_base_dns = ["{{ grafana_ldap_base }}"]
+
+[servers.attributes]
+name = "givenName"
+surname = "sn"
+username = "uid"
+member_of = "memberOf"
+email = "mail"
+
+[[servers.group_mappings]]
+group_dn = "cn=systems,ou=mailing,ou=groups,dc=linaro,dc=org"
+org_role = "Admin"
+grafana_admin = true # Available in Grafana v5.3 and above
+
+[[servers.group_mappings]]
+group_dn = "cn=employees,ou=mailing,ou=groups,dc=linaro,dc=org"
+org_role = "Editor"
diff --git a/roles/docker-grimoirelab/defaults/main.yml b/roles/docker-grimoirelab/defaults/main.yml
deleted file mode 100644
index 18e8575d..00000000
--- a/roles/docker-grimoirelab/defaults/main.yml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-# Grimoirelab
-docker_image_grimoirelab: grimoirelab/installed:0.2.3
-docker_container_name_grimoirelab: grimoirelab-production
-
-grimoirelab_root: /srv/grimoirelab
-
-docker_mordred_override: "{{grimoirelab_root}}/override.cfg"
-docker_mordred_infra: "{{grimoirelab_root}}/infra.cfg"
-docker_mordred_projects: "{{grimoirelab_root}}/projects.json"
-docker_grimoirelab_identities: "{{grimoirelab_root}}/identities.yaml"
-docker_grimoirelab_orgs: "{{grimoirelab_root}}/orgs.json"
-docker_grimoirelab_logs: "{{grimoirelab_root}}/logs"
-docker_grimoirelab_user_dir_ssh: "{{grimoirelab_root}}/secrets/grimoirelab/ssh"
-
-docker_grimoirelab_secrets: "{{secrets_dir}}/files/grimoirelab"
-
-# MariaDB
-docker_image_mariadb: mariadb:10.1
-# https://github.com/chaoss/grimoirelab-sortinghat/issues/121
-docker_container_name_mariadb: grimoirelab-db
-docker_mariadb_data: "{{grimoirelab_root}}/mysql"
-
-# Kibiter
-docker_image_kibiter: bitergia/kibiter:community-v6.1.4-2
-docker_container_name_kibiter: grimoirelab-kibiter
-docker_port_kibiter: 5602
diff --git a/roles/docker-grimoirelab/tasks/main.yml b/roles/docker-grimoirelab/tasks/main.yml
deleted file mode 100644
index 6a7d9d54..00000000
--- a/roles/docker-grimoirelab/tasks/main.yml
+++ /dev/null
@@ -1,70 +0,0 @@
----
-- name: Ensure data volume exists
- file:
- path: "{{grimoirelab_root}}"
- state: directory
- owner: 1000
- group: 1000
- recurse: yes
- follow: no
-
-- name: Create docker mariadb container
- docker_container:
- name: "{{docker_container_name_mariadb}}"
- image: "{{docker_image_mariadb}}"
- state: started
- log_driver: journald
- restart_policy: unless-stopped
- recreate: yes
- volumes:
- - "{{docker_mariadb_data}}:/var/lib/mysql"
- env:
- MYSQL_ROOT_PASSWORD: "{{docker_mariadb_password}}"
- MYSQL_ROOT_HOST: "%"
-
-- name: Create docker kibiter container
- docker_container:
- name: "{{docker_container_name_kibiter}}"
- image: "{{docker_image_kibiter}}"
- state: started
- log_driver: journald
- restart_policy: unless-stopped
- published_ports:
- - "{{docker_port_kibiter}}:5601"
- recreate: yes
- env:
- ELASTICSEARCH_URL: "http://elk:9200"
- links:
- - "{{docker_container_elasticsearch_name}}:elk"
-
-- name: Ensure secrets dir exists
- copy:
- src: "{{docker_grimoirelab_secrets}}"
- dest: "{{grimoirelab_root}}/secrets"
- mode: 0600
-
-- name: Create docker grimoirelab container
- docker_container:
- name: "{{docker_container_name_grimoirelab}}"
- image: "{{docker_image_grimoirelab}}"
- state: started
- log_driver: journald
- restart_policy: unless-stopped
- recreate: yes
- links:
- - "{{docker_container_name_kibiter}}:kibiter"
- - "{{docker_container_name_mariadb}}:mysql"
- - "{{docker_container_elasticsearch_name}}:elk"
- volumes:
- - "{{docker_mordred_override}}:/override.cfg"
- - "{{docker_mordred_infra}}:/infra.cfg"
- - "{{docker_mordred_projects}}:/projects.json"
- - "{{docker_grimoirelab_identities}}:/identities.yaml"
- - "{{docker_grimoirelab_orgs}}:/orgs.json"
- - "{{docker_grimoirelab_logs}}:/logs"
- - "{{docker_grimoirelab_user_dir_ssh}}:/home/grimoirelab/.ssh"
-
-- name: Wait for docker to start
- wait_for:
- port: "{{docker_port_kibiter}}"
- delay: 10
diff --git a/roles/docker-hatstall/defaults/main.yml b/roles/docker-hatstall/defaults/main.yml
new file mode 100644
index 00000000..5e2042d7
--- /dev/null
+++ b/roles/docker-hatstall/defaults/main.yml
@@ -0,0 +1,10 @@
+---
+docker_image_hatstall: grimoirelab/hatstall
+docker_container_name_hatstall: grimoirelab-hatstall
+
+hatstall_root: "/srv/hatstall/{{inventory_hostname}}"
+
+docker_port_hatstall_http: 8000
+docker_port_hatstall_https: 8001
+
+docker_hatstall_apache: "{{hatstall_root}}/apache-hatstall.conf"
diff --git a/roles/docker-hatstall/files/apache-hatstall.conf b/roles/docker-hatstall/files/apache-hatstall.conf
new file mode 100644
index 00000000..0f9d9f23
--- /dev/null
+++ b/roles/docker-hatstall/files/apache-hatstall.conf
@@ -0,0 +1,67 @@
+<VirtualHost *:80>
+ # Basic Apache config
+ ServerAdmin webmaster@localhost
+ DocumentRoot /var/www/html
+
+ ErrorLog ${APACHE_LOG_DIR}/hatstall-error.log
+ CustomLog ${APACHE_LOG_DIR}/hatstall-access.log combined
+
+ Alias /static/ /home/grimoirelab/grimoirelab-hatstall/django-hatstall/static/
+
+ <Directory /home/grimoirelab/grimoirelab-hatstall/django-hatstall/static>
+ Require all granted
+ </Directory>
+
+ # WSGI specific config
+ LogLevel info
+
+ WSGIDaemonProcess hatstall python-path=/home/grimoirelab/grimoirelab-hatstall/django-hatstall/
+ WSGIProcessGroup hatstall
+
+ WSGIScriptAlias / /home/grimoirelab/grimoirelab-hatstall/django-hatstall/django_hatstall/wsgi.py process-group=hatstall
+
+ <Directory /home/grimoirelab/grimoirelab-hatstall/django-hatstall/django_hatstall/>
+ <Files wsgi*.py>
+ Require all granted
+ </Files>
+ </Directory>
+
+</VirtualHost>
+
+<VirtualHost *:443>
+ # Basic Apache config
+ # ServerName 127.1.1.1
+ ServerAdmin webmaster@localhost
+ DocumentRoot /var/www/html
+
+ ErrorLog ${APACHE_LOG_DIR}/hatstall-error.log
+ CustomLog ${APACHE_LOG_DIR}/hatstall-access.log combined
+
+ Alias /static/ /home/grimoirelab/grimoirelab-hatstall/django-hatstall/static/
+
+ <Directory /home/grimoirelab/grimoirelab-hatstall/django-hatstall/static>
+ Require all granted
+ </Directory>
+
+ SSLEngine on
+
+ # A self-signed (snakeoil) certificate can be created by installing
+ # the ssl-cert package. See
+ SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
+ SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
+
+ # WSGI specific config
+ LogLevel info
+
+ WSGIDaemonProcess hatstall-ssl python-path=/home/grimoirelab/grimoirelab-hatstall/django-hatstall/
+ WSGIProcessGroup hatstall-ssl
+
+ WSGIScriptAlias / /home/grimoirelab/grimoirelab-hatstall/django-hatstall/django_hatstall/wsgi.py process-group=hatstall-ssl
+
+ <Directory /home/grimoirelab/grimoirelab-hatstall/django-hatstall/django_hatstall/>
+ <Files wsgi*.py>
+ Require all granted
+ </Files>
+ </Directory>
+
+</VirtualHost>
diff --git a/roles/docker-hatstall/tasks/main.yml b/roles/docker-hatstall/tasks/main.yml
new file mode 100644
index 00000000..110d98a6
--- /dev/null
+++ b/roles/docker-hatstall/tasks/main.yml
@@ -0,0 +1,31 @@
+---
+- name: Ensure data volume exists
+ file:
+ path: "{{hatstall_root}}"
+ state: directory
+ recurse: yes
+ follow: no
+
+- name: copy docker files
+ copy:
+ src: apache-hatstall.conf
+ dest: "{{hatstall_root}}"
+
+- name: Create docker hatstall container
+ docker_container:
+ name: "{{docker_container_name_hatstall}}"
+ image: "{{docker_image_hatstall}}"
+ state: started
+ log_driver: journald
+ published_ports:
+ - "{{docker_port_hatstall_http}}:80"
+ - "{{docker_port_hatstall_https}}:443"
+ restart_policy: unless-stopped
+ recreate: yes
+ volumes:
+ - "{{docker_hatstall_apache}}:/home/grimoirelab/apache-hatstall.conf"
+
+- name: Wait for docker to start
+ wait_for:
+ port: "{{docker_port_hatstall_http}}"
+ delay: 10
diff --git a/roles/docker-jenkins-master/tasks/main.yml b/roles/docker-jenkins-master/tasks/main.yml
index 2802602f..f1c1a76a 100644
--- a/roles/docker-jenkins-master/tasks/main.yml
+++ b/roles/docker-jenkins-master/tasks/main.yml
@@ -1,19 +1,62 @@
---
+- name: Install server deps
+ apt: pkg={{item}} state=present
+ with_items:
+ - apache2
+ - cifs-utils
+ - ufw
+ - postfix
+ - smartmontools
+ - linux-generic-hwe-18.04
+
+# Only adds ports does not delete.
+# ufw reset is required for a fresh ufw deploy (-e firewall_reset=y).
+
+- name: Include ufw role
+ include_role:
+ name: ufw
- name: Enable Apache modules
apache2_module: name={{item}}
with_items: "{{apache_modules}}"
notify: reload-apache
+- name: Create docker bridge network
+ docker_network:
+ name: jenkins
+
- name: Ensure data volume is owned by jenkins
file:
path: "{{jenkins_master_data_volume}}"
state: directory
owner: 1000
group: 1000
- recurse: yes
+ recurse: no
follow: no
+- name: Install ssh config for jenkins
+ copy:
+ dest: "{{jenkins_master_data_volume}}/.ssh/config"
+ src: files/jenkins/{{inventory_hostname}}.ssh
+ owner: 1000
+ group: 1000
+ tags: jenkins_ssh
+
+- name: Install ssh known_hosts for jenkins
+ copy:
+ dest: "{{jenkins_master_data_volume}}/.ssh/known_hosts"
+ src: "{{jenkins_ssh_known_hosts}}"
+ owner: 1000
+ group: 1000
+ tags: jenkins_ssh
+
+- name: Install etc hosts file
+ template:
+ src: hosts.j2
+ dest: "{{jenkins_master_data_volume}}/.ssh/hosts"
+ mode: 0777
+ tags: jenkins_ssh
+
# This is a *dead* symlink on the host, that becomes active when attached to the docker image.
# This allows us to have our plugins installed in the docker image instead on the host.
- name: Ensure data volume has plugins symlink
@@ -30,7 +73,8 @@
docker_image:
name: "{{jenkins_master_image}}"
state: present
- force: True
+ source: pull
+ force_source: yes
when: jenkins_upgrade is defined
- name: Create jenkins data volume container
@@ -48,6 +92,8 @@
pull: False
ignore_image: "{{not(jenkins_upgrade is defined)}}"
state: started
+ networks:
+ - name: jenkins
log_driver: journald
restart_policy: unless-stopped
published_ports:
@@ -57,47 +103,11 @@
- "{{jenkins_jnlp_port}}:{{jenkins_jnlp_port}}"
volumes:
- "{{jenkins_master_data_volume}}:/var/jenkins_home"
+ - "{{jenkins_master_data_volume}}/.ssh/hosts:/etc/hosts:ro"
volumes_from:
- "{{jenkins_master_data_container_name}}"
- etc_hosts:
- {
- "bkp-01.tcwglab":"51.148.40.55",
- "build-01.tcwglab build-01.tcwglab.linaro.org":"192.168.16.5",
- "build-02.tcwglab build-02.tcwglab.linaro.org":"192.168.16.6",
- "build-03.tcwglab build-03.tcwglab.linaro.org":"192.168.16.7",
- "build-04.tcwglab build-04.tcwglab.linaro.org":"192.168.16.8",
- "build-05.tcwglab build-05.tcwglab.linaro.org":"192.168.16.9",
- "build-06.tcwglab build-06.tcwglab.linaro.org":"192.168.16.10",
- "build-07.tcwglab build-07.tcwglab.linaro.org":"192.168.16.11",
- "build-08.tcwglab build-08.tcwglab.linaro.org":"192.168.16.12",
- "apm-01.tcwglab apm-01.tcwglab.linaro.org":"192.168.16.20",
- "apm-02.tcwglab apm-02.tcwglab.linaro.org":"192.168.16.21",
- "test-armv8-01.tcwglab test-armv8-01.tcwglab.linaro.org":"192.168.16.24",
- "test-armv8-02.tcwglab test-armv8-02.tcwglab.linaro.org":"192.168.16.25",
- "tcwg-tx1-01.tcwglab tx1-01.tcwglab.linaro.org":"192.168.18.101",
- "tcwg-tx1-02.tcwglab tx1-02.tcwglab.linaro.org":"192.168.18.102",
- "tcwg-tx1-03.tcwglab tx1-03.tcwglab.linaro.org":"192.168.18.103",
- "tcwg-tx1-04.tcwglab tx1-04.tcwglab.linaro.org":"192.168.18.104",
- "tcwg-tx1-05.tcwglab tx1-05.tcwglab.linaro.org":"192.168.18.105",
- "tcwg-tx1-06.tcwglab bmk-tx1-06.tcwglab.linaro.org":"192.168.18.106",
- "tcwg-tx1-07.tcwglab bmk-tx1-07.tcwglab.linaro.org":"192.168.18.107",
- "tcwg-tx1-08.tcwglab bmk-tx1-08.tcwglab.linaro.org":"192.168.18.108",
- "tcwg-tk1-01.tcwglab tk1-01.tcwglab.linaro.org":"192.168.18.151",
- "tcwg-tk1-02.tcwglab tk1-02.tcwglab.linaro.org":"192.168.18.152",
- "tcwg-tk1-03.tcwglab tk1-03.tcwglab.linaro.org":"192.168.18.153",
- "tcwg-tk1-04.tcwglab tk1-04.tcwglab.linaro.org":"192.168.18.154",
- "tcwg-tk1-05.tcwglab tk1-05.tcwglab.linaro.org":"192.168.18.155",
- "tcwg-tk1-06.tcwglab bmk-tk1-06.tcwglab.linaro.org":"192.168.18.156",
- "tcwg-tk1-07.tcwglab bmk-tk1-07.tcwglab.linaro.org":"192.168.18.157",
- "tcwg-tk1-08.tcwglab bmk-tk1-08.tcwglab.linaro.org":"192.168.18.158",
- "tcwg-tk1-09.tcwglab tk1-09.tcwglab.linaro.org":"192.168.18.159",
- "tcwg-sq-01.tcwglab tcwg-sq-01.tcwglab.linaro.org":"192.168.16.41",
- "tcwg-sq-02.tcwglab tcwg-sq-02.tcwglab.linaro.org":"192.168.16.42",
- "tcwg-d05_llvmbot-01.tcwglab tcwg-d05_llvmbot-01.tcwglab.linaro.org":"147.75.199.202",
- "tcwg-thx1_llvmbot-01.tcwglab tcwg-thx1_llvmbot-01.tcwglab.linaro.org":"147.75.195.254",
- "dev-01.tcwglab dev-01.tcwglab.linaro.org":"192.168.17.10",
- "dev-02.tcwglab dev-02.tcwglab.linaro.org":"192.168.17.15",
- }
+ env:
+ JAVA_OPTS: "{{ jenkins_java_opts }}"
- name: Wait for Jenkins starts
wait_for:
diff --git a/roles/docker-jenkins-master/templates/hosts.j2 b/roles/docker-jenkins-master/templates/hosts.j2
new file mode 100644
index 00000000..687d044b
--- /dev/null
+++ b/roles/docker-jenkins-master/templates/hosts.j2
@@ -0,0 +1,12 @@
+# {{ ansible_managed }}
+127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
+::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ip6-localhost ip6-loopback
+fe00::0 ip6-localnet
+ff00::0 ip6-mcastprefix
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
+ff02::3 ip6-allhosts
+
+{% for (key,value) in jenkins_etc_hosts.items() %}
+{{value}} {{key}}
+{% endfor %}
diff --git a/roles/docker-kibiter/defaults/main.yml b/roles/docker-kibiter/defaults/main.yml
new file mode 100644
index 00000000..387f4dce
--- /dev/null
+++ b/roles/docker-kibiter/defaults/main.yml
@@ -0,0 +1,10 @@
+---
+kibiter_root: "/srv/kibiter/{{inventory_hostname}}"
+docker_image_kibiter: bitergia/kibiter:community-v6.1.4-2
+docker_image_kibiter_local: linaro/kibiter
+docker_container_name_kibiter: kibiter-noname
+docker_port_kibiter: 5602
+
+kibana_index: ".kibiter-noname"
+kibiter_project_name: "Linaro Dashboard"
+kibiter_default_dashboard: "dashboard/Overview"
diff --git a/roles/docker-kibiter/handlers/main.yml b/roles/docker-kibiter/handlers/main.yml
new file mode 100644
index 00000000..e30940ac
--- /dev/null
+++ b/roles/docker-kibiter/handlers/main.yml
@@ -0,0 +1,13 @@
+---
+
+- name: dashboard-readonly
+ uri:
+ url: http://{{docker_container_elasticsearch_name}}:9200/{{kibana_index}}/_settings
+ method: PUT
+ body_format: json
+ body:
+ index.blocks.read_only: true
+ return_content: yes
+ register: this
+ failed_when: "'true' not in this.content"
+
diff --git a/roles/docker-kibiter/tasks/main.yml b/roles/docker-kibiter/tasks/main.yml
new file mode 100644
index 00000000..9486089c
--- /dev/null
+++ b/roles/docker-kibiter/tasks/main.yml
@@ -0,0 +1,42 @@
+---
+- name: Ensure docker build dir exists
+ file:
+ path: "{{kibiter_root}}"
+ state: directory
+
+- name: Ensure kibiter Dockerfile exists
+ template:
+ src: templates/Dockerfile.j2
+ dest: "{{kibiter_root}}/Dockerfile"
+
+- name: Build kibiter image
+ docker_image:
+ source: build
+ state: present
+ name: "{{docker_image_kibiter_local}}"
+ force_source: yes
+ build:
+ path: "{{kibiter_root}}"
+ network: "{{ es_network_name }}"
+
+- name: Create docker kibiter container
+ docker_container:
+ name: "{{docker_container_name_kibiter}}"
+ image: "{{docker_image_kibiter_local}}"
+ state: started
+ log_driver: journald
+ restart_policy: unless-stopped
+ published_ports:
+ - "{{docker_port_kibiter}}:5601"
+ recreate: yes
+ env:
+ ELASTICSEARCH_URL: "http://elasticsearch-production:9200"
+ PROJECT_NAME: "{{kibiter_project_name}}"
+ networks:
+ - name: "{{ es_network_name }}"
+ notify: dashboard-readonly
+
+- name: Wait for docker to start
+ wait_for:
+ port: "{{docker_port_kibiter}}"
+ delay: 10
diff --git a/roles/docker-kibiter/templates/Dockerfile.j2 b/roles/docker-kibiter/templates/Dockerfile.j2
new file mode 100644
index 00000000..d2f71abb
--- /dev/null
+++ b/roles/docker-kibiter/templates/Dockerfile.j2
@@ -0,0 +1,16 @@
+FROM {{docker_image_kibiter}}
+
+RUN echo 'kibana.index: "{{kibana_index}}"' \
+ >> /opt/kibana/config/kibana.yml \
+ && echo 'elasticsearch.requestTimeout: 300000' \
+ >> /opt/kibana/config/kibana.yml \
+ && sed -e "s|^kibana.defaultAppId: .*$|kibana.defaultAppId: \"{{kibiter_default_dashboard}}\"|" -i /opt/kibana/config/kibana.yml \
+ && sed -e "s/title GrimoireLab Analytics$/title {{kibiter_project_name}}/" -i /opt/kibana/src/ui/views/chrome.jade \
+ && echo "console.enabled: false" \
+ >> /opt/kibana/config/kibana.yml \
+ && echo "timelion.enabled: false" \
+ >> /opt/kibana/config/kibana.yml \
+ && mkdir /opt/kibana2 \
+ && (cd /opt/kibana; tar --group=kibana --owner=kibana -cf - .)|(cd /opt/kibana2; tar -xpf -) \
+ && rm -rf /opt/kibana \
+ && mv /opt/kibana2 /opt/kibana
diff --git a/roles/docker-llvmmonitor/defaults/main.yml b/roles/docker-llvmmonitor/defaults/main.yml
new file mode 100644
index 00000000..4cfc38dd
--- /dev/null
+++ b/roles/docker-llvmmonitor/defaults/main.yml
@@ -0,0 +1,5 @@
+---
+docker_image: linaro/ci-amd64-tcwg-llvmmonitor-nginx
+docker_container_name: tcwg-llvmmonitor-nginx
+docker_http_port: 8082
+
diff --git a/roles/docker-llvmmonitor/tasks/main.yml b/roles/docker-llvmmonitor/tasks/main.yml
new file mode 100644
index 00000000..2b4b7bdf
--- /dev/null
+++ b/roles/docker-llvmmonitor/tasks/main.yml
@@ -0,0 +1,25 @@
+---
+- name: Pull latest images from upstream repo
+ docker_image:
+ name: "{{docker_image}}"
+ state: present
+ source: pull
+ force_source: yes
+
+- name: Create tcwg container
+ docker_container:
+ name: "{{docker_container_name}}"
+ image: "{{docker_image}}"
+ state: started
+ log_driver: journald
+ restart_policy: unless-stopped
+ published_ports:
+ - "{{docker_http_port}}:80"
+ memory: 512m
+ cpu_shares: 2
+ recreate: yes
+
+- name: Wait for docker to start
+ wait_for:
+ port: "{{docker_http_port}}"
+ delay: 10
diff --git a/roles/docker-logstash/defaults/main.yml b/roles/docker-logstash/defaults/main.yml
new file mode 100644
index 00000000..4ab4a5f3
--- /dev/null
+++ b/roles/docker-logstash/defaults/main.yml
@@ -0,0 +1,13 @@
+---
+docker_image: linaro/logstash:6.5.1
+docker_container_logstash_name: logstash
+
+docker_port_logstash: 5044
+
+logstash_cert_path: "{{secrets_dir_external}}/files/logstash/logstash-beats.crt"
+logstash_cert_private_path: "{{secrets_dir_external}}/files/logstash/logstash-beats.key"
+
+docker_logstash_cert: "/srv/certs/logstash-beats.crt"
+docker_logstash_cert_private: "/srv/certs/logstash-beats.key"
+
+elk_root: /srv/elk-production/logstash
diff --git a/roles/docker-logstash/files/30-output.conf b/roles/docker-logstash/files/30-output.conf
new file mode 100644
index 00000000..486ab144
--- /dev/null
+++ b/roles/docker-logstash/files/30-output.conf
@@ -0,0 +1,8 @@
+ output {
+ elasticsearch {
+ hosts => ["elasticsearch-production"]
+ manage_template => false
+ index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
+ document_type => "%{[@metadata][type]}"
+ }
+ }
diff --git a/roles/docker-logstash/files/logstash.conf b/roles/docker-logstash/files/logstash.conf
new file mode 100644
index 00000000..1246f5be
--- /dev/null
+++ b/roles/docker-logstash/files/logstash.conf
@@ -0,0 +1,9 @@
+input {
+ beats {
+ port => 5044
+ ssl => true
+ ssl_certificate => "/etc/pki/tls/certs/logstash-beats.crt"
+ ssl_key => "/etc/pki/tls/private/logstash-beats.key"
+ }
+}
+
diff --git a/roles/docker-logstash/files/templates/30-output.conf b/roles/docker-logstash/files/templates/30-output.conf
new file mode 100644
index 00000000..af8ffce4
--- /dev/null
+++ b/roles/docker-logstash/files/templates/30-output.conf
@@ -0,0 +1,8 @@
+ output {
+ elasticsearch {
+ hosts => ["{{docker_container_elasticsearch_name}}"]
+ manage_template => false
+ index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
+ document_type => "%{[@metadata][type]}"
+ }
+ }
diff --git a/roles/docker-logstash/files/templates/logstash.conf b/roles/docker-logstash/files/templates/logstash.conf
new file mode 100644
index 00000000..1246f5be
--- /dev/null
+++ b/roles/docker-logstash/files/templates/logstash.conf
@@ -0,0 +1,9 @@
+input {
+ beats {
+ port => 5044
+ ssl => true
+ ssl_certificate => "/etc/pki/tls/certs/logstash-beats.crt"
+ ssl_key => "/etc/pki/tls/private/logstash-beats.key"
+ }
+}
+
diff --git a/roles/docker-logstash/tasks/main.yml b/roles/docker-logstash/tasks/main.yml
new file mode 100644
index 00000000..7a40bb95
--- /dev/null
+++ b/roles/docker-logstash/tasks/main.yml
@@ -0,0 +1,61 @@
+---
+- name: Install Apache modules to support dockerized elk
+ apache2_module: name={{ item }}
+ with_items:
+ - proxy
+ - proxy_http
+ - auth_basic
+ - authz_user
+ - authnz_ldap # apache-auth enables, also just ldap
+ - authnz_external
+ - ssl
+
+# This controls images available on the system since
+# we don't allow docker_container to do its own pulls
+
+- name: Ensure certs dir exists
+ file: path=/srv/certs state=directory
+- name: Copy logstash certs
+ copy:
+ src: "{{item}}"
+ dest: /srv/certs
+ with_items:
+ - "{{logstash_cert_path}}"
+ - "{{logstash_cert_private_path}}"
+
+- name: Copy logstash conf
+ copy:
+ src: files/
+ dest: "{{elk_root}}"
+ owner: 1000
+ group: 1000
+ mode: 0600
+
+# TODO: create custom linaro image to incorporate fix
+# for CVE-2021-44228
+# yum install zip
+# zip -q -d /usr/share/logstash/logstash-core/lib/jars/log4j-core-*.jar \
+# org/apache/logging/log4j/core/lookup/JndiLookup.class
+
+- name: Create docker container
+ docker_container:
+ name: "{{docker_container_logstash_name}}"
+ image: "{{docker_image}}"
+ state: started
+ log_driver: journald
+ restart_policy: unless-stopped
+ published_ports:
+ - "{{docker_port_logstash}}:5044"
+ recreate: yes
+ networks:
+ - name: "{{ es_network_name }}"
+ volumes:
+ - "{{elk_root}}:/usr/share/logstash/pipeline/"
+ - "{{docker_logstash_cert}}:/etc/pki/tls/certs/logstash-beats.crt"
+ - "{{docker_logstash_cert_private}}:/etc/pki/tls/private/logstash-beats.key"
+
+- name: Wait for docker to start
+ wait_for:
+ host: "{{docker_container_logstash_name}}"
+ port: "{{docker_port_logstash}}"
+ delay: 10
diff --git a/roles/docker-prometheus/defaults/main.yml b/roles/docker-prometheus/defaults/main.yml
new file mode 100644
index 00000000..8b11ac94
--- /dev/null
+++ b/roles/docker-prometheus/defaults/main.yml
@@ -0,0 +1,6 @@
+---
+docker_container_name_prometheus: prometheus
+docker_image_name_prometheus: linaro/prometheus
+docker_port_prometheus: 9090
+docker_network_prometheus: prometheus
+docker_prometheus_ufw_whitelist: [ "0.0.0.0" ]
diff --git a/roles/docker-prometheus/tasks/main.yml b/roles/docker-prometheus/tasks/main.yml
new file mode 100644
index 00000000..979cb211
--- /dev/null
+++ b/roles/docker-prometheus/tasks/main.yml
@@ -0,0 +1,78 @@
+---
+- name: Ensure required dirs exist
+ file:
+ path: "{{ item }}"
+ state: directory
+ owner: root
+ group: root
+ mode: "0775"
+ with_items:
+ - /srv/prometheus
+ - /srv/prometheus/etc
+ - /srv/prometheus/docker
+
+- name: Ensure required dirs exist
+ file:
+ path: "{{ item }}"
+ state: directory
+ owner: nobody
+ group: root
+ mode: "0775"
+ with_items:
+ - /srv/prometheus/storage
+
+- name: Install config files for host
+ template:
+ src: "{{ item }}"
+ dest: /srv/prometheus/etc/{{ item | basename }}
+ with_fileglob: "files/prometheus/{{ inventory_hostname }}/*"
+
+- name: Ensure Dockerfile exists
+ template:
+ src: templates/Dockerfile.j2
+ dest: /srv/prometheus/docker/Dockerfile
+
+- name: Build prometheus image
+ docker_image:
+ name: "{{ docker_image_name_prometheus }}"
+ source: build
+ build:
+ dockerfile: /srv/prometheus/docker/Dockerfile
+ path: "/srv/prometheus/docker"
+ pull: yes
+ force_source: yes
+ when: prometheus_upgrade is defined
+
+- name: Create prometheus container
+ docker_container:
+ name: "{{ docker_container_name_prometheus }}"
+ image: "{{ docker_image_name_prometheus }}"
+ state: started
+ log_driver: journald
+ restart_policy: unless-stopped
+ recreate: yes
+ published_ports: ["0.0.0.0:{{ docker_port_prometheus }}:{{ docker_port_prometheus }}"]
+ volumes:
+ - "/srv/prometheus/etc:/etc/prometheus"
+ - "/srv/prometheus/storage:/prometheus"
+ networks:
+ - name: "{{ docker_network_prometheus }}"
+ when: prometheus_upgrade is defined
+
+- name: Wait for docker to start
+ wait_for:
+ host: "{{ docker_container_name_prometheus }}"
+ port: "{{ docker_port_prometheus }}"
+ delay: 10
+
+#- name: Ensure UFW whitelist rules are in place
+# ufw:
+# rule: allow
+# route: true
+# direction: in
+# interface: eth0
+# proto: tcp
+# from_ip: "{{ item }}"
+# to_ip: "{{ansible_facts.docker_container.NetworkSettings.IPAddress}}"
+# to_port: "{{docker_port_prometheus}}"
+# with_items: "{{docker_prometheus_ufw_whitelist}}"
diff --git a/roles/docker-prometheus/templates/Dockerfile.j2 b/roles/docker-prometheus/templates/Dockerfile.j2
new file mode 100644
index 00000000..b2693d70
--- /dev/null
+++ b/roles/docker-prometheus/templates/Dockerfile.j2
@@ -0,0 +1,15 @@
+FROM prom/prometheus:latest
+LABEL maintainer="Linaro Systems <systems@linaro.org>"
+
+
+USER nobody
+EXPOSE {{ docker_port_prometheus }}
+VOLUME [ "/prometheus" ]
+WORKDIR /prometheus
+ENTRYPOINT [ "/bin/prometheus" ]
+CMD [ "--config.file=/etc/prometheus/prometheus.yml", \
+ "--storage.tsdb.path=/prometheus", \
+ "--storage.tsdb.retention.time=1y", \
+ "--web.console.libraries=/usr/share/prometheus/console_libraries", \
+ "--web.console.templates=/usr/share/prometheus/consoles", \
+ "--web.listen-address=0.0.0.0:{{ docker_port_prometheus }}"]
diff --git a/roles/docker-prometheus/templates/prometheus.yml.j2 b/roles/docker-prometheus/templates/prometheus.yml.j2
new file mode 100644
index 00000000..0b7d7855
--- /dev/null
+++ b/roles/docker-prometheus/templates/prometheus.yml.j2
@@ -0,0 +1,29 @@
+# my global config
+global:
+ scrape_interval: 15s
+ evaluation_interval: 15s
+ # scrape_timeout is set to the global default (10s).
+
+# Alertmanager configuration
+alerting:
+ alertmanagers:
+ - static_configs:
+ - targets:
+ # - alertmanager:9093
+
+# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
+rule_files:
+ - "rules/node_alerts.yaml"
+ - "rules/node_rules.yaml"
+
+# A scrape configuration containing exactly one endpoint to scrape:
+# Here it's Prometheus itself.
+scrape_configs:
+ # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
+ - job_name: 'prometheus'
+ # metrics_path defaults to '/metrics'
+ # scheme defaults to 'http'.
+ static_configs:
+ - targets: ['localhost:9090']
+
+ {{ prometheus_local_static_configs }}
diff --git a/roles/docker-publishing-site/defaults/main.yml b/roles/docker-publishing-site/defaults/main.yml
new file mode 100644
index 00000000..75f84d89
--- /dev/null
+++ b/roles/docker-publishing-site/defaults/main.yml
@@ -0,0 +1,5 @@
+---
+apache_aliases: []
+
+app_repo: https://git.linaro.org/infrastructure/linaro-license-protection.git
+app_branch: master
diff --git a/roles/docker-publishing-site/tasks/main.yml b/roles/docker-publishing-site/tasks/main.yml
new file mode 100644
index 00000000..31a2ba01
--- /dev/null
+++ b/roles/docker-publishing-site/tasks/main.yml
@@ -0,0 +1,81 @@
+---
+- name: Create site install dir
+ file:
+ path: "/srv/{{inventory_hostname}}"
+ state: directory
+
+# We use a bind mount in order to be able to update
+# the container code without having to rebuild and
+# distribute a new version of the image. Giving
+# each container its own copy of the repo allows us
+# selectively deploy updates by tagging individual
+# sites, or mass deploy by tagging the group via
+# this playbook.
+- name: Clone LLP repo for this site
+ git:
+ repo: "{{app_repo}}"
+ dest: "/srv/{{inventory_hostname}}/linaro-license-protection"
+ version: "{{app_branch}}"
+ update: yes
+
+- name: create secrets.py
+ template:
+ src: "secrets/publishing-servers/{{secrets_file}}"
+ dest: "/srv/{{inventory_hostname}}/secrets.py"
+
+- name: Install proxy_settings
+ template:
+ src: proxy_settings.py
+ dest: "/srv/{{inventory_hostname}}/proxy_settings.py"
+
+- name: Install docker_run.sh
+ get_url:
+ url: https://git.linaro.org/ci/dockerfiles.git/plain/ci-amd64-llp-alpine/docker_run.sh
+ dest: "/srv/{{inventory_hostname}}/docker_run.sh"
+ checksum: sha256:0a6cf2a1fdb15491cfd871007a2cd4f0ac2926fd209dd6cf0309a3347510f2b6
+ mode: 0755
+
+- name: Create allowed_hosts list
+ set_fact:
+ allowed_hosts: "{{apache_aliases}} + [ '{{inventory_hostname}}' ]"
+
+- name: Create allowed_hosts.txt
+ copy:
+ content: "{{ allowed_hosts | join('\n') }}"
+ dest: "/srv/{{inventory_hostname}}/allowed_hosts.txt"
+
+- name: Create header_override
+ template:
+ src: "{{header_override}}"
+ dest: "/srv/{{inventory_hostname}}/header_override.html"
+ when: header_override is defined
+
+- name: Create the docker container for site
+ docker_container:
+ name: "{{inventory_hostname}}"
+ image: "{{llp_docker_image}}"
+ hostname: "{{inventory_hostname}}"
+ pull: False
+ ignore_image: "{{not(docker_upgrade is defined)}}"
+ state: started
+ log_driver: journald
+ restart_policy: unless-stopped
+ published_ports:
+ - "{{llp_port}}"
+ volumes:
+ - "/srv/{{inventory_hostname}}:/srv"
+ env:
+ DJANGO_SETTINGS_MODULE: "settings_production"
+ DJANGO_MIGRATE: "true"
+ DJANGO_COLLECTSTATIC: "true"
+ PORT: "{{llp_port}}"
+ notify: event-watcher
+
+- name: Install LLP crontab
+ template:
+ src: templates/llp-crontab.cron
+ dest: /etc/cron.d/llp-crontab-{{ inventory_hostname | replace('.', '_') }}
+ mode: 0644
+ backup: no
+ owner: root
+ group: root
diff --git a/roles/docker-publishing/templates/allowed_hosts.txt b/roles/docker-publishing-site/templates/allowed_hosts.txt
index e69de29b..e69de29b 100644
--- a/roles/docker-publishing/templates/allowed_hosts.txt
+++ b/roles/docker-publishing-site/templates/allowed_hosts.txt
diff --git a/roles/docker-publishing-site/templates/llp-crontab.cron b/roles/docker-publishing-site/templates/llp-crontab.cron
new file mode 100644
index 00000000..5ce097ae
--- /dev/null
+++ b/roles/docker-publishing-site/templates/llp-crontab.cron
@@ -0,0 +1,14 @@
+# DO NOT EDIT: MANAGED BY ANSIBLE
+MAILTO=linaro-infrastructure-errors@lists.linaro.org
+{% if process_report %}
+*/10 * * * * root docker exec {{inventory_hostname}} /srv/linaro-license-protection/manage.py report_process --settings=settings_production
+{% if inventory_hostname == "releases-ie.linaro.org" %}
+0 1 * * * root docker exec {{inventory_hostname}} /srv/linaro-license-protection/manage.py downloads_report --settings=settings_production
+{% endif %}
+{% endif %}
+{% if s3_sanity %}
+0 0 * * * root docker exec {{inventory_hostname}} /srv/linaro-license-protection/manage.py s3_sanity --settings=settings_production
+{% endif %}
+{% if token_cleanup %}
+0 0 * * 0 root docker exec {{inventory_hostname}} /srv/linaro-license-protection/manage.py s3_purge --settings=settings_production token_cleanup
+{% endif %}
diff --git a/roles/docker-publishing/files/proxy_settings.py b/roles/docker-publishing-site/templates/proxy_settings.py
index f9e79de2..f9e79de2 100644
--- a/roles/docker-publishing/files/proxy_settings.py
+++ b/roles/docker-publishing-site/templates/proxy_settings.py
diff --git a/roles/docker-publishing/defaults/main.yml b/roles/docker-publishing/defaults/main.yml
index 8c00d00d..906e1beb 100644
--- a/roles/docker-publishing/defaults/main.yml
+++ b/roles/docker-publishing/defaults/main.yml
@@ -1,5 +1,3 @@
---
install_dir: /srv
docker_base: "{{install_dir}}/docker"
-app_repo: https://git.linaro.org/infrastructure/linaro-license-protection.git
-app_branch: master
diff --git a/roles/docker-publishing/files/apache-proxy.conf b/roles/docker-publishing/files/apache-proxy.conf
index 96a8d4cb..09d42284 100644
--- a/roles/docker-publishing/files/apache-proxy.conf
+++ b/roles/docker-publishing/files/apache-proxy.conf
@@ -14,9 +14,14 @@
{{args.apache_redirects}}
{% endif %}
ProxyPass /.well-known/acme-challenge/ !
- ProxyPass "/" "http://{{container}}:{{llp_port}}/"
+ ProxyPass "/" "http://{{container}}:{{llp_port}}/" disablereuse=on
ProxyPassReverse "/" "http://{{container}}"
+ # block web crawlers
+ RewriteEngine On
+ RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|Amazonbot|bingbot|Baidu|Baiduspider|360Spider|360|^MauiBot|^SemrushBot|^MegaIndex) [nocase]
+ RewriteRule ^(.*)$ - [forbidden,last]
+
Alias "/.well-known/acme-challenge/" "/srv/certbot/.well-known/acme-challenge/"
<Directory "/srv/certbot/.well-known/acme-challenge/">
Require all granted
@@ -45,7 +50,7 @@
{% if args.apache_redirects is defined %}
{{args.apache_redirects}}
{% endif %}
- ProxyPass "/" "http://{{container}}:{{llp_port}}/"
+ ProxyPass "/" "http://{{container}}:{{llp_port}}/" disablereuse=on
ProxyPassReverse "/" "https://{{container}}/"
</VirtualHost>
</IfModule>
diff --git a/roles/docker-publishing/files/docker_run.sh b/roles/docker-publishing/files/docker_run.sh
deleted file mode 100644
index 195d3770..00000000
--- a/roles/docker-publishing/files/docker_run.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-cd /srv
-
-./linaro-license-protection/manage.py migrate --noinput
-./linaro-license-protection/manage.py collectstatic --noinput
-
-/usr/bin/gunicorn -w4 -b 0.0.0.0:$PORT $LLP_APP
diff --git a/roles/docker-publishing/handlers/main.yml b/roles/docker-publishing/handlers/main.yml
deleted file mode 100644
index c1f65303..00000000
--- a/roles/docker-publishing/handlers/main.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-- name: reload-django
- command: "docker exec {{item.key}} killall -SIGHUP gunicorn"
- with_dict: "{{sites}}"
-
-- name: event-watcher
- command: "/usr/sbin/event-watcher.py -n -o"
diff --git a/roles/docker-publishing/tasks/deploy-site.yml b/roles/docker-publishing/tasks/deploy-site.yml
deleted file mode 100644
index 26b0bab6..00000000
--- a/roles/docker-publishing/tasks/deploy-site.yml
+++ /dev/null
@@ -1,87 +0,0 @@
----
-- name: Create site install dir {{install_dir}}/{{container}}
- file:
- path: "{{install_dir}}/{{container}}"
- state: directory
-
-- name: Create container code mount point for "{{container}}"
- file:
- path: "{{install_dir}}/{{container}}/linaro-license-protection"
- state: directory
-
-- name: Install docker_run.sh for {{container}}
- copy:
- src: files/docker_run.sh
- dest: "{{install_dir}}/{{container}}/docker_run.sh"
- mode: 0755
-
-- name: Install apache-site for {{container}}
- template:
- src: files/apache-proxy.conf
- dest: /etc/apache2/sites-available/{{container}}
- mode: 0644
- backup: yes
- owner: root
- group: root
-
-- name: Enable Apache 2.4 compat symlink {{container}}
- file: state=link force=yes
- src={{container}}
- dest=/etc/apache2/sites-available/{{container}}.conf
-
-- name: Enable apache modules
- apache2_module:
- state: present
- name: "{{item}}"
- ignore_configcheck: yes
- with_items:
- - proxy
- - proxy_http
- - ssl
- - headers
- notify: reload-apache
-
-- name: Enable site config for {{container}}
- command: "a2ensite {{container}}"
- register: result
- changed_when: "'already enabled' not in result.stdout"
-
-- name: create settings.py for {{container}}
- template:
- src: "{{args.secrets_file}}"
- dest: "{{install_base}}/{{container}}/secrets.py"
-
-- name: Create allowed_hosts list
- set_fact:
- allowed_hosts: "{{args.apache_aliases}} + [ '{{container}}' ]"
-
-- name: Create allowed_hosts.txt for {{container}}
- copy:
- content: "{{ allowed_hosts | join('\n') }}"
- dest: "{{install_base}}/{{container}}/allowed_hosts.txt"
-
-- name: Create header_override for {{container}}
- template:
- src: "{{args.header_override}}"
- dest: "{{install_base}}/{{container}}/header_override.html"
- when: args.header_override is defined
-
-- name: Create the docker container for {{container}}
- docker_container:
- name: "{{container}}"
- image: "{{llp_docker_image}}"
- hostname: "{{container}}"
- pull: False
- ignore_image: "{{not(docker_upgrade is defined)}}"
- state: started
- log_driver: journald
- restart_policy: unless-stopped
- published_ports:
- - "{{llp_port}}"
- volumes:
- - "/srv/{{container}}:/srv"
- - "/srv/linaro-license-protection:/srv/linaro-license-protection"
- env:
- DJANGO_SETTINGS_MODULE: "settings_production"
- PORT: "{{llp_port}}"
- notify: event-watcher
diff --git a/roles/docker-publishing/tasks/main.yml b/roles/docker-publishing/tasks/main.yml
index 478bc000..ab261d52 100644
--- a/roles/docker-publishing/tasks/main.yml
+++ b/roles/docker-publishing/tasks/main.yml
@@ -2,29 +2,6 @@
- name: Install git
apt: pkg=git state=present
-# all containers share one repo
-- name: Clone repo for LLP
- git:
- repo: "{{app_repo}}"
- dest: "{{install_dir}}/linaro-license-protection"
- version: "{{app_branch}}"
- update: yes
- notify:
- - reload-django
-
-- name: Install proxy_settings
- copy:
- src: proxy_settings.py
- dest: "{{install_dir}}/linaro-license-protection/proxy_settings.py"
- force: yes
-
-- name: Install event-watcher.py script
- copy:
- src: event-watcher.py
- dest: /usr/sbin/event-watcher.py
- mode: 0775
- force: yes
-
- name: Install the LLP docker image
docker_image:
name: "{{llp_docker_image}}"
@@ -32,20 +9,15 @@
force: True
when: docker_upgrade is defined
-- name: Install LLP sites
- include_tasks: deploy-site.yml
- vars:
- container: "{{docker_item.key}}"
- args: "{{docker_item.value}}"
- with_dict: "{{sites}}"
- loop_control:
- loop_var: docker_item
-
-- name: Install LLP crontab
+- name: Install host's apache redirect
template:
- src: templates/llp-crontab.cron
- dest: /etc/cron.d/llp-crontab
+ dest: /etc/apache2/sites-available/docker-default.conf
+ src: files/publishing/default-{{ inventory_hostname }}.conf
mode: 0644
- backup: no
owner: root
group: root
+
+- name: Enable default apache redirect
+ command: a2ensite docker-default
+ args:
+ creates: /etc/apache2/sites-enabled/docker-default.conf
diff --git a/roles/docker-publishing/templates/llp-crontab.cron b/roles/docker-publishing/templates/llp-crontab.cron
deleted file mode 100644
index eeaef2ed..00000000
--- a/roles/docker-publishing/templates/llp-crontab.cron
+++ /dev/null
@@ -1,15 +0,0 @@
-# DO NOT EDIT: MANAGED BY ANSIBLE
-MAILTO=linaro-infrastructure-errors@lists.linaro.org
-{% for site_info in sites %}
-{% for site,attrs in site_info.items() %}
-{% if attrs.has_key('process_report') %}
-*/10 * * * * root docker exec {{site}} /srv/linaro-license-protection/manage.py report_process --settings=settings_production
-{% endif %}
-{% if attrs.has_key('s3_sanity') %}
-0 0 * * * root docker exec {{site}} /srv/linaro-license-protection/manage.py s3_sanity --settings=settings_production
-{% endif %}
-{% if attrs.has_key('s3_purge') %}
-0 0 * * 0 root docker exec {{site}} /srv/linaro-license-protection/manage.py s3_purge --settings=settings_production {{attrs['s3_purge_options']|default('')}}
-{% endif %}
-{% endfor %}
-{% endfor %}
diff --git a/roles/docker-ses-proxy/handlers/main.yml b/roles/docker-ses-proxy/handlers/main.yml
new file mode 100644
index 00000000..66b9e677
--- /dev/null
+++ b/roles/docker-ses-proxy/handlers/main.yml
@@ -0,0 +1,3 @@
+---
+- name: Update SES firewall
+ command: /sbin/docker-firewall
diff --git a/roles/docker-ses-proxy/tasks/main.yml b/roles/docker-ses-proxy/tasks/main.yml
new file mode 100644
index 00000000..92940052
--- /dev/null
+++ b/roles/docker-ses-proxy/tasks/main.yml
@@ -0,0 +1,39 @@
+---
+- name: Pull latest aws-smtp-relay image
+ docker_image:
+ name: "blueimp/aws-smtp-relay"
+ state: present
+ source: pull
+ force_source: yes
+
+- name: Copy TLS certs
+ copy:
+ src: "{{secrets_dir}}/files/ses-proxy"
+ dest: /etc/ssl/
+
+- name: Create aws-smtp-relay container
+ docker_container:
+ image: "blueimp/aws-smtp-relay"
+ name: "aws-smtp-relay"
+ hostname: "{{ inventory_hostname }}"
+ state: started
+ env:
+ AWS_REGION: us-east-1
+ BCRYPT_HASH: "{{ postfix_relay_hash }}"
+ TLS_KEY_PASS: "{{ ses_proxy_key_password }}"
+ volumes:
+ - "/etc/ssl/ses-proxy/:/ssl/:ro"
+ published_ports:
+ - "{{postfix_relay_port}}:1025"
+ log_driver: journald
+ restart_policy: unless-stopped
+ command: -s -c /ssl/ses-proxy.crt -k /ssl/ses-proxy.key -u {{ postfix_relay_username }}
+
+- name: Create custom firewall rule
+ template:
+ src: docker-firewall.j2
+ dest: /sbin/docker-firewall
+ mode: 755
+ notify: Update SES firewall
+
+
diff --git a/roles/docker-ses-proxy/templates/docker-firewall.j2 b/roles/docker-ses-proxy/templates/docker-firewall.j2
new file mode 100644
index 00000000..3dcad593
--- /dev/null
+++ b/roles/docker-ses-proxy/templates/docker-firewall.j2
@@ -0,0 +1,8 @@
+#!/bin/sh
+iptables -F DOCKER
+iptables -I DOCKER -p tcp --dport {{postfix_relay_port}} -j DROP
+{% for item in groups['postfix'] %}
+iptables -I DOCKER -s {{ hostvars[item]['inventory_hostname'] }} -p tcp --dport {{postfix_relay_port}} -j ACCEPT
+{% endfor %}
+
+
diff --git a/roles/docker-publishing/meta/main.yml b/roles/docker-swarm-manager/meta/main.yml
index eed5d92d..1bc708f2 100644
--- a/roles/docker-publishing/meta/main.yml
+++ b/roles/docker-swarm-manager/meta/main.yml
@@ -1,4 +1,3 @@
---
dependencies:
- - {role: apache-site}
- {role: docker-deps}
diff --git a/roles/docker-swarm-manager/tasks/main.yml b/roles/docker-swarm-manager/tasks/main.yml
new file mode 100644
index 00000000..385d7564
--- /dev/null
+++ b/roles/docker-swarm-manager/tasks/main.yml
@@ -0,0 +1,52 @@
+---
+
+- name: Create TLS host certificate for Docker
+ local_action:
+ module: command ./create_cert {{inventory_hostname}} {{ansible_host}}
+ args:
+ creates: "{{inventory_hostname}}-cert.pem"
+ chdir: secrets/files/docker-tls/
+ become: false
+
+- name: Install Docker TLS certificate
+ copy:
+ src: secrets/files/docker-tls/{{item}}
+ dest: /etc/ssl/certs/{{item}}
+ with_items:
+ - ca.pem
+ - "{{inventory_hostname}}-key.pem"
+ - "{{inventory_hostname}}-cert.pem"
+ notify:
+ ignore_errors: '{{ ansible_check_mode }}'
+
+- name: Create swarm database
+ template:
+ src: swarm.txt.j2
+ dest: /etc/swarm.txt
+
+- name: create swarm manager
+ docker_container:
+ name: swarm-manager
+ image: swarm
+ state: started
+ restart_policy: unless-stopped
+ pull: yes
+ networks:
+ - name: jenkins
+ volumes:
+ - "/etc/ssl/certs/{{inventory_hostname}}-key.pem:/certs/key.pem:ro"
+ - "/etc/ssl/certs/{{inventory_hostname}}-cert.pem:/certs/cert.pem:ro"
+ - "/etc/ssl/certs/ca.pem:/certs/ca.pem:ro"
+ - "/etc/swarm.txt:/etc/swarm.txt:ro"
+ published_ports:
+ - "2376:2375"
+ command: manage --tlsverify --tlscacert=/certs/ca.pem --tlscert=/certs/cert.pem --tlskey=/certs/key.pem file://etc/swarm.txt
+
+- name: allow swarm traffic nodes
+ ufw:
+ rule: allow
+ proto: tcp
+ port: 3375
+ src: "{{hostvars[item].ansible_host}}"
+ with_items: "{{groups['swarm_nodes']}}"
+
diff --git a/roles/docker-swarm-manager/templates/swarm.txt.j2 b/roles/docker-swarm-manager/templates/swarm.txt.j2
new file mode 100644
index 00000000..b919467e
--- /dev/null
+++ b/roles/docker-swarm-manager/templates/swarm.txt.j2
@@ -0,0 +1,3 @@
+{% for item in groups['swarm_nodes'] %}
+{{ hostvars[item]['ansible_host'] }}:2375
+{% endfor %}
diff --git a/roles/docker-tcwg-proxy/defaults/main.yml b/roles/docker-tcwg-proxy/defaults/main.yml
index f20ab2c2..5cbe1d90 100644
--- a/roles/docker-tcwg-proxy/defaults/main.yml
+++ b/roles/docker-tcwg-proxy/defaults/main.yml
@@ -1,4 +1,15 @@
---
-docker_image: linaro/ci-amd64-tcwg-host-ubuntu:xenial-tcwg-tested
+docker_image: linaro/ci-amd64-tcwg-host-ubuntu:bionic
docker_container_name: tcwg-sshd-proxy
docker_sshd_port: 2020
+
+tcwg_vol_mounts:
+ - "/etc/ssh/ssh_host_dsa_key:/etc/ssh/ssh_host_dsa_key:ro"
+ - "/etc/ssh/ssh_host_ecdsa_key.pub:/etc/ssh/ssh_host_ecdsa_key.pub:ro"
+ - "/etc/ssh/ssh_host_rsa_key:/etc/ssh/ssh_host_rsa_key:ro"
+ - "/etc/ssh/ssh_host_dsa_key.pub:/etc/ssh/ssh_host_dsa_key.pub:ro"
+ - "/etc/ssh/ssh_host_ed25519_key:/etc/ssh/ssh_host_ed25519_key:ro"
+ - "/etc/ssh/ssh_host_rsa_key.pub:/etc/ssh/ssh_host_rsa_key.pub:ro"
+ - "/etc/ssh/ssh_host_ecdsa_key:/etc/ssh/ssh_host_ecdsa_key:ro"
+ - "/etc/ssh/ssh_host_ed25519_key.pub:/etc/ssh/ssh_host_ed25519_key.pub:ro"
+ - "{{jenkins_master_data_volume}}/.ssh/hosts:/etc/hosts:ro"
diff --git a/roles/docker-tcwg-proxy/tasks/main.yml b/roles/docker-tcwg-proxy/tasks/main.yml
index 1a0fad23..05bfcded 100644
--- a/roles/docker-tcwg-proxy/tasks/main.yml
+++ b/roles/docker-tcwg-proxy/tasks/main.yml
@@ -1,6 +1,10 @@
---
-# This controls images available on the system since
-# we don't allow docker_container to do its own pulls
+- name: Pull latest images from upstream repo
+ docker_image:
+ name: "{{docker_image}}"
+ state: present
+ source: pull
+ force_source: yes
- name: Create tcwg container
docker_container:
@@ -14,46 +18,8 @@
memory: 512m
cpu_shares: 2
recreate: yes
- command: all
- etc_hosts:
- {
- "bkp-01.tcwglab":"51.148.40.55",
- "build-01.tcwglab build-01.tcwglab.linaro.org":"192.168.16.5",
- "build-02.tcwglab build-02.tcwglab.linaro.org":"192.168.16.6",
- "build-03.tcwglab build-03.tcwglab.linaro.org":"192.168.16.7",
- "build-04.tcwglab build-04.tcwglab.linaro.org":"192.168.16.8",
- "build-05.tcwglab build-05.tcwglab.linaro.org":"192.168.16.9",
- "build-06.tcwglab build-06.tcwglab.linaro.org":"192.168.16.10",
- "build-07.tcwglab build-07.tcwglab.linaro.org":"192.168.16.11",
- "build-08.tcwglab build-08.tcwglab.linaro.org":"192.168.16.12",
- "apm-01.tcwglab apm-01.tcwglab.linaro.org":"192.168.16.20",
- "apm-02.tcwglab apm-02.tcwglab.linaro.org":"192.168.16.21",
- "test-armv8-01.tcwglab test-armv8-01.tcwglab.linaro.org":"192.168.16.24",
- "test-armv8-02.tcwglab test-armv8-02.tcwglab.linaro.org":"192.168.16.25",
- "tcwg-tx1-01.tcwglab tx1-01.tcwglab.linaro.org":"192.168.18.101",
- "tcwg-tx1-02.tcwglab tx1-02.tcwglab.linaro.org":"192.168.18.102",
- "tcwg-tx1-03.tcwglab tx1-03.tcwglab.linaro.org":"192.168.18.103",
- "tcwg-tx1-04.tcwglab tx1-04.tcwglab.linaro.org":"192.168.18.104",
- "tcwg-tx1-05.tcwglab tx1-05.tcwglab.linaro.org":"192.168.18.105",
- "tcwg-tx1-06.tcwglab bmk-tx1-06.tcwglab.linaro.org":"192.168.18.106",
- "tcwg-tx1-07.tcwglab bmk-tx1-07.tcwglab.linaro.org":"192.168.18.107",
- "tcwg-tx1-08.tcwglab bmk-tx1-08.tcwglab.linaro.org":"192.168.18.108",
- "tcwg-tk1-01.tcwglab tk1-01.tcwglab.linaro.org":"192.168.18.151",
- "tcwg-tk1-02.tcwglab tk1-02.tcwglab.linaro.org":"192.168.18.152",
- "tcwg-tk1-03.tcwglab tk1-03.tcwglab.linaro.org":"192.168.18.153",
- "tcwg-tk1-04.tcwglab tk1-04.tcwglab.linaro.org":"192.168.18.154",
- "tcwg-tk1-05.tcwglab tk1-05.tcwglab.linaro.org":"192.168.18.155",
- "tcwg-tk1-06.tcwglab bmk-tk1-06.tcwglab.linaro.org":"192.168.18.156",
- "tcwg-tk1-07.tcwglab bmk-tk1-07.tcwglab.linaro.org":"192.168.18.157",
- "tcwg-tk1-08.tcwglab bmk-tk1-08.tcwglab.linaro.org":"192.168.18.158",
- "tcwg-tk1-09.tcwglab tk1-09.tcwglab.linaro.org":"192.168.18.159",
- "tcwg-sq-01.tcwglab tcwg-sq-01.tcwglab.linaro.org":"192.168.16.41",
- "tcwg-sq-02.tcwglab tcwg-sq-02.tcwglab.linaro.org":"192.168.16.42",
- "tcwg-d05_llvmbot-01.tcwglab tcwg-d05_llvmbot-01.tcwglab.linaro.org":"147.75.199.202",
- "tcwg-thx1_llvmbot-01.tcwglab tcwg-thx1_llvmbot-01.tcwglab.linaro.org":"147.75.195.254",
- "dev-01.tcwglab dev-01.tcwglab.linaro.org":"192.168.17.10",
- "dev-02.tcwglab dev-02.tcwglab.linaro.org":"192.168.17.15",
- }
+ command: all host
+ volumes: "{{tcwg_vol_mounts}}"
- name: Wait for docker to start
wait_for:
diff --git a/roles/docker-tf-jenkins-master/tasks/main.yml b/roles/docker-tf-jenkins-master/tasks/main.yml
index cc5123d4..3b5f7973 100644
--- a/roles/docker-tf-jenkins-master/tasks/main.yml
+++ b/roles/docker-tf-jenkins-master/tasks/main.yml
@@ -1,11 +1,21 @@
---
+
+- name: Enable Apache modules
+ apache2_module: name={{item}}
+ with_items:
+ - rewrite
+ - ssl
+ - proxy
+ - proxy_http
+ notify: reload-apache
+
- name: Ensure data volume is owned by jenkins
file:
path: "{{jenkins_master_data_volume}}"
state: directory
owner: 1000
group: 1000
- recurse: yes
+ recurse: no
follow: no
# This is a *dead* symlink on the host, that becomes active when attached to the docker image.
@@ -24,7 +34,8 @@
docker_image:
name: "{{jenkins_master_image}}"
state: present
- force: True
+ source: pull
+ force_source: yes
when: jenkins_upgrade is defined
- name: Create jenkins data volume container
@@ -35,6 +46,14 @@
ignore_image: "{{not(jenkins_upgrade is defined)}}"
state: present
+- name: Install ssh known_hosts for jenkins
+ copy:
+ dest: "{{jenkins_master_data_volume}}/.ssh/known_hosts"
+ src: "{{jenkins_ssh_known_hosts}}"
+ owner: 1000
+ group: 1000
+ tags: jenkins_ssh
+
- name: Create jenkins container
docker_container:
name: "{{jenkins_master_container_name}}"
@@ -53,6 +72,8 @@
- "{{jenkins_master_data_volume}}:/var/jenkins_home"
volumes_from:
- "{{jenkins_master_data_container_name}}"
+ env:
+ JAVA_OPTS: "{{ jenkins_java_opts }}"
- name: Wait for Jenkins starts
wait_for:
diff --git a/roles/dovecot-imapd/handlers/main.yml b/roles/dovecot-imapd/handlers/main.yml
index 599dfdb3..f4ec62db 100644
--- a/roles/dovecot-imapd/handlers/main.yml
+++ b/roles/dovecot-imapd/handlers/main.yml
@@ -1,6 +1,6 @@
---
- name: newaliases-postfix
- command: /usr/bin/newaliases
+ command: /usr/sbin/postalias /etc/aliases
- name: restart-dovecot
service: name=dovecot state=restarted enabled=yes
diff --git a/roles/dovecot-imapd/tasks/main.yml b/roles/dovecot-imapd/tasks/main.yml
index 0e8f7155..fa3bb647 100644
--- a/roles/dovecot-imapd/tasks/main.yml
+++ b/roles/dovecot-imapd/tasks/main.yml
@@ -88,3 +88,9 @@
dest: "~{{dovecot_vmail_user}}/.forward"
force: yes
owner: "{{ dovecot_vmail_user }}"
+
+- name: Allow plaintext auth
+ template:
+ src: local.conf
+ dest: /etc/dovecot/local.conf
+ when: dovecot_allow_plaintext_auth is defined
diff --git a/roles/dovecot-imapd/templates/local.conf b/roles/dovecot-imapd/templates/local.conf
new file mode 100644
index 00000000..0edd3ba3
--- /dev/null
+++ b/roles/dovecot-imapd/templates/local.conf
@@ -0,0 +1 @@
+disable_plaintext_auth = no
diff --git a/roles/duplicity/tasks/main.yml b/roles/duplicity/tasks/main.yml
new file mode 100644
index 00000000..61f094b0
--- /dev/null
+++ b/roles/duplicity/tasks/main.yml
@@ -0,0 +1,21 @@
+---
+
+- name: Install server deps
+ apt: pkg={{item}} state=present
+ with_items:
+ - duplicity
+
+- name: Install backup script
+ template:
+ src: files/duplicity/{{inventory_hostname}}.backup
+ dest: /srv/backup.sh
+ owner: root
+ group: root
+ mode: 0700
+
+- name: Install backup crontab
+ template:
+ src: backup.cron
+ dest: /etc/cron.d/backup
+ owner: root
+ group: root
diff --git a/roles/jenkins-master-deps/templates/backup.cron b/roles/duplicity/templates/backup.cron
index a3370344..a3370344 100644
--- a/roles/jenkins-master-deps/templates/backup.cron
+++ b/roles/duplicity/templates/backup.cron
diff --git a/roles/filebeat/defaults/main.yml b/roles/filebeat/defaults/main.yml
deleted file mode 100644
index 020cf729..00000000
--- a/roles/filebeat/defaults/main.yml
+++ /dev/null
@@ -1,35 +0,0 @@
----
-filebeat_config:
- filebeat.prospectors:
- - type: log
- enabled: false
- paths:
- - /var/log/*.log
- filebeat.config.modules:
- path: ${path.config}/modules.d/*.yml
- reload.enabled: false
- name: "{{inventory_hostname}}"
- output:
- logstash:
- hosts: ["{{logstash_host}}"]
- ssl:
- certificate_authorities: ["/etc/filebeat/{{logstash_cert}}"]
- logging.level: warning
- logging.to_syslog: true
-
-filebeat_apache2_module_config:
- - module: apache2
- access:
- enabled: true
- var.paths: [/var/log/apache2/*access*.log]
- error:
- enabled: false
- var.paths: /var/log/apache2/*error*.log
-
-filebeat_system_module_config:
- - module: system
- syslog:
- enabled: true
- var.paths: [/var/log/syslog]
- auth:
- enabled: false
diff --git a/roles/filebeat/handlers/main.yml b/roles/filebeat/handlers/main.yml
deleted file mode 100644
index cbe78055..00000000
--- a/roles/filebeat/handlers/main.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-- name: restart filebeat
- service:
- name: filebeat
- state: restarted
- enabled: true
diff --git a/roles/filebeat/tasks/main.yml b/roles/filebeat/tasks/main.yml
deleted file mode 100644
index 50fb7a16..00000000
--- a/roles/filebeat/tasks/main.yml
+++ /dev/null
@@ -1,42 +0,0 @@
----
-- name: add elastic.co GPG pkg key
- apt_key:
- url: https://artifacts.elastic.co/GPG-KEY-elasticsearch
-
-- name: add beats repository
- apt_repository:
- repo: "deb https://artifacts.elastic.co/packages/6.x/apt stable main"
- state: present
- update_cache: yes
-
-# stick to version 6.2.4 explicitly. Upgrading past this will
-# require config file changes and will generate parse errors
-# logstash
-- name: install filebeat
- apt:
- name: filebeat=6.2.4
- state: present
- update_cache: yes
- notify:
- - restart filebeat
-
-- name: copy filebeat cert
- copy:
- src: "{{secrets_dir}}/files/elk/{{logstash_cert}}"
- dest: "/etc/filebeat/{{logstash_cert}}"
-
-- name: install customized module configs
- template:
- src: "{{item}}.j2"
- dest: /etc/filebeat/modules.d/{{item}}
- with_items:
- - apache2.yml
- - system.yml
-
-- name: create filebeat.yml
- template:
- src: filebeat.yml.j2
- dest: /etc/filebeat/filebeat.yml
- force: yes
- notify:
- - restart filebeat
diff --git a/roles/filebeat/templates/apache2.yml.j2 b/roles/filebeat/templates/apache2.yml.j2
deleted file mode 100644
index 7a09295c..00000000
--- a/roles/filebeat/templates/apache2.yml.j2
+++ /dev/null
@@ -1,2 +0,0 @@
-# DO NOT EDIT! MANAGED BY ANSIBLE
-{{ filebeat_apache2_module_config|to_yaml }}
diff --git a/roles/filebeat/templates/system.yml.j2 b/roles/filebeat/templates/system.yml.j2
deleted file mode 100644
index 007fefdb..00000000
--- a/roles/filebeat/templates/system.yml.j2
+++ /dev/null
@@ -1,2 +0,0 @@
-# DO NOT EDIT! MANAGED BY ANSIBLE
-{{ filebeat_system_module_config|to_yaml }}
diff --git a/roles/gerrit/files/review.mlplatform.org/tosa_cla.html b/roles/gerrit/files/review.mlplatform.org/tosa_cla.html
new file mode 100644
index 00000000..f57db5fc
--- /dev/null
+++ b/roles/gerrit/files/review.mlplatform.org/tosa_cla.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang="en">
+<body>
+
+<p>
+ARM TOSA SPECIFICATION CONTRIBUTION LICENCE
+</p>
+
+<p align=justify>
+THIS CONTRIBUTION LICENCE AGREEMENT IS A LEGAL AGREEMENT BETWEEN YOU (EITHER A SINGLE INDIVIDUAL, OR SINGLE LEGAL ENTITY) AND ARM LIMITED ("<b>ARM</b>") TO ALLOW YOU TO PROVIDE CONTRIBUTIONS (AS DEFINED) TO ARM ON THE SPECIFICATION (AS DEFINED) ("<b>CONTRIBUTION LICENCE</b>").
+</p>
+
+<p align=justify>
+THIS CONTRIBUTION LICENCE IS GRANTED ON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS HEREIN. BY CLICKING "I AGREE" OR OTHERWISE PROVIDING CONTRIBUTIONS YOU INDICATE THAT YOU AGREE TO BE BOUND BY ALL THE TERMS OF THIS CONTRIBUTION LICENCE. IF YOU DO NOT AGREE TO THE TERMS OF THIS CONTRIBUTION LICENCE, ARM IS UNWILLING TO ENTER INTO THIS LEGAL AGREEMENT AND YOU SHOULD NOT PROVIDE ANY CONTRIBUTIONS TO ARM.
+</p>
+
+<h3>Definitions</h3>
+<p align=justify>“<b>Contributions</b>” means all suggestions, comments, feedback, ideas, or know-how (whether in oral or written form) provided to ARM by You relating to the SPECIFICATION.</p>
+
+<p align=justify>“<b>Intellectual Property</b>” means any patents, patent rights, trade marks, service marks, registered designs, topography or semiconductor mask work rights, applications for any of the foregoing, copyright, unregistered design right and any other similar protected rights in any country and to the extent recognised by any relevant jurisdiction as intellectual property, trade secrets, know-how and confidential information.</p>
+
+<p align=justify>“<b>CONTRIBUTOR</b>” means You and your Subsidiaries (as applicable).</p>
+
+<p align=justify>“<b>Subsidiary</b>” means, if You are a single entity, any company the majority of whose voting shares is now or hereafter owned or controlled, directly or indirectly, by You. A company shall be a Subsidiary only for the period during which such control exists</p>
+
+<p align=justify>“<b>SPECIFICATION</b>” means the relevant TOSA specification, which has already been accessed and licensed to You under the public TOSA Specification Licence which accompanied the Specification</p>
+
+<h3>Contribution Provisions</h3>
+
+<ol style="padding=10px">
+ <li><p align=justify>CONTRIBUTOR grants to ARM, under all Intellectual Property owned or controlled by CONTRIBUTOR, the following worldwide, non-exclusive, perpetual, irrevocable, royalty free, fully paid up rights:
+ <ol type="i">
+ <li align=justify>to make, use, copy, modify, and create derivative works of, the Contributions as part of the SPECIFICATION;
+ <li align=justify>to make, use, copy, modify, and create derivative works of, the Contributions to implement the SPECIFICATION in any product;
+ <li align=justify>to sell, supply or otherwise distribute the whole or any part of the Contributions (and derivative works thereof) as part of the SPECIFICATION and as part of any product developed under the rights granted in 1 (ii); and
+ <li align=justify>to sublicense to third parties the foregoing rights, including the right to sublicense to further third parties.
+ </ol></p>
+ <li><p align=justify>CONTRIBUTOR hereby represents and warrants that it has power to cause all patents owned or controlled by CONTRIBUTOR or its affiliates to be licensed as set forth in this Contribution Licence. CONTRIBUTOR shall not knowingly give to ARM any Contributions it has reason to believe is subject to any Intellectual Property claim or right of any third party.</p>
+ <li><p align=justify>ARM shall be free to use, copy, disclose or otherwise distribute any Contributions to any third party or pursuant to the licence above without obligation or restriction of any kind.</p>
+</ol>
+<h3>Term and Termination</h3>
+
+<ol start=4>
+ <li><p align=justify>This Contribution Licence shall remain in force until terminated by you or by ARM. Both parties may terminate this Contribution Licence at any time for any reason. Upon termination of this Contribution Licence, the provisions of Clauses 1, 2, and 3 in respect of any Contributions provided prior to Termination shall survive.</p>
+ <li><p align=justify>Any termination of this Contribution Licence in accordance with the provisions of Clause 4 shall be effective in respect of all Subsidiaries. Any rights granted to any Subsidiary hereunder shall automatically terminate upon such Subsidiary ceasing to be a Subsidiary.</p>
+</ol>
+
+<h3>General</h3>
+<ol start=6>
+ <li>The validity, construction and performance of this Contribution Licence shall be governed by English Law.
+</ol>
+
+</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/roles/gerrit/handlers/main.yml b/roles/gerrit/handlers/main.yml
index 0bd9cca7..ff1bc72a 100644
--- a/roles/gerrit/handlers/main.yml
+++ b/roles/gerrit/handlers/main.yml
@@ -1,11 +1,11 @@
---
- name: configure-gerrit
- import_tasks: configure.yml
+ include_tasks: tasks/configure.yml
+
+- name: reload-systemd
+ systemd: daemon_reload=yes
- name: restart-gerrit
- command: "{{gerrit_root}}/bin/gerrit.sh restart"
+ service: name=gerrit state=restarted
listen:
- configure-gerrit
-
-- name: update-rcd-gerrit
- command: update-rc.d gerrit defaults
diff --git a/roles/gerrit/meta/main.yml b/roles/gerrit/meta/main.yml
deleted file mode 100644
index ddc3faaf..00000000
--- a/roles/gerrit/meta/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-dependencies:
- - {role: linaro-git-tools}
diff --git a/roles/gerrit/tasks/configure.yml b/roles/gerrit/tasks/configure.yml
index 06e381bf..afbdf312 100644
--- a/roles/gerrit/tasks/configure.yml
+++ b/roles/gerrit/tasks/configure.yml
@@ -1,46 +1,10 @@
---
# We need to ensure that gerrit has actually been stopped here
-# or else attempts to run init will fail. Check for pid file
-# and if it's still present, remove it.
-#
-# Also, we need to use the "gerrit.sh" script that comes with
-# gerrit rather than the script installed into /etc/init.d through
-# the 'service' module. Something is causing the init script to return
-# that gerrit has been successfully stopped even though it's still running.
+# or else attempts to run init will fail.
- name: Ensure currently running version is stopped after a download.
- command: chdir={{gerrit_root}} removes={{gerrit_root}}/logs/gerrit.pid ./bin/gerrit.sh stop
-
-- name: Check for Upgraded War File
- stat: path={{gerrit_root}}/bin/gerrit.war checksum_algorithm=md5 get_checksum=yes
- register: gerrit_current_war
-
-- name: Set Current Version Fact
- set_fact:
- gerrit_current: "md5:{{gerrit_current_war.stat.md5 | default('')}}"
-
-- name: Initialize Gerrit
- become: True
- become_user: "{{git_user}}"
- command: chdir={{gerrit_root}} java -jar gerrit.war init --batch --no-auto-start -d {{gerrit_root}}
- when: gerrit_checksum != gerrit_current
+ service: name=gerrit state=stopped
- name: Configure Gerrit
become: True
become_user: "{{git_user}}"
- command: chdir={{gerrit_root}} java -jar bin/gerrit.war init --batch --no-auto-start -d {{gerrit_root}}
-
-- name: Install included Gerrit plugins
- become: True
- become_user: "{{git_user}}"
- command: chdir={{gerrit_root}} java -jar bin/gerrit.war init --batch --install-plugin={{item}}
- with_items: "{{gerrit_included_plugins}}"
-
-- name: Check for Gerrit index
- stat: path={{gerrit_root}}/index/gerrit_index.config
- register: gerrit_index
-
-- name: Initialize Gerrit index
- become: True
- become_user: "{{git_user}}"
- when: gerrit_index.stat.exists == False
- command: chdir={{gerrit_root}} java -jar bin/gerrit.war reindex
+ command: chdir={{gerrit_root}} java -Xmx{{gerrit_mem}} -jar gerrit.war init --install-all-plugins --batch --no-auto-start -d {{gerrit_root}}
diff --git a/roles/gerrit/tasks/deps.yml b/roles/gerrit/tasks/deps.yml
index e1cfdd03..13bed143 100644
--- a/roles/gerrit/tasks/deps.yml
+++ b/roles/gerrit/tasks/deps.yml
@@ -4,37 +4,61 @@
repo: "ppa:git-core/ppa"
state: present
update_cache: yes
+ when: ansible_distribution == 'Ubuntu'
- name: Add OpenJDK PPA
apt_repository:
repo: "ppa:openjdk-r/ppa"
state: present
update_cache: yes
- when: ansible_distribution_release == "trusty"
+ when: ansible_distribution_release in ["trusty","xenial"]
- name: Install common OS dependencies
- apt: name={{ item }}
- with_items:
- - apache2
- - git
- - gitweb
- - libclass-std-storable-perl
- - libcache-cache-perl
- - ntp
- - python-requests
- - acl
+ apt:
+ pkg: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - apache2
+ - git
+ - gitweb
+ - libclass-std-storable-perl
+ - libcache-cache-perl
+ - ntp
+ - acl
+
+- name: Install old OS version dependencies
+ apt:
+ pkg: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - python-requests
+ - python-ldap
+ when: ansible_distribution_release in ["trusty","xenial"]
+
+- name: Install python3 only OS version dependencies
+ apt:
+ pkg: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - python3-ldap
+ when: ansible_distribution_release not in ["trusty","xenial"]
- name: Install gerrit OS dependencies
- apt: name={{ item }}
- with_items:
- - openjdk-8-jre-headless
- - libapache2-mod-authnz-external
- - python-ldap
+ apt:
+ pkg: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - openjdk-11-jre-headless
+ - libapache2-mod-authnz-external
- name: Ensure correct Java version is selected
alternatives:
name: java
- path: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
+ path: /usr/lib/jvm/java-11-openjdk-amd64/bin/java
- name: Install Apache modules to support Gerrit
apache2_module: name={{ item }}
@@ -56,3 +80,14 @@
owner={{ git_user }}
group={{ git_user }}
mode=0755
+
+- name: Install gerrit daemon systemd configuration
+ template: src=gerrit.service
+ dest=/etc/systemd/system/gerrit.service
+ mode=0644
+ owner=root
+ group=root
+ tags: gerrit-conf
+ notify:
+ - reload-systemd
+ - restart-gerrit
diff --git a/roles/gerrit/tasks/gerrit.yml b/roles/gerrit/tasks/gerrit.yml
index 04d979af..45cb7487 100644
--- a/roles/gerrit/tasks/gerrit.yml
+++ b/roles/gerrit/tasks/gerrit.yml
@@ -14,7 +14,7 @@
- name: Download External Gerrit plugins (stable)
get_url:
- url: https://gerrit-ci.gerritforge.com/view/Plugins-stable-{{gerrit_plugin_version}}/job/plugin-{{item}}-bazel-stable-{{gerrit_plugin_version}}/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/{{item}}/{{item}}.jar
+ url: https://gerrit-ci.gerritforge.com/job/plugin-{{item}}-bazel-master/lastSuccessfulBuild/artifact/bazel-bin/plugins/{{item}}/{{item}}.jar
dest: "{{gerrit_root}}/plugins/{{item}}.jar"
owner: "{{git_user}}"
group: "{{git_user}}"
@@ -22,39 +22,64 @@
force: yes
with_items:
- reviewers
- - javamelody
-- name: Download External Gerrit plugins (master)
+#- name: Ensure that gerrit's internal oauth plugin is disabled
+# file:
+# state: absent
+# force: true
+# path: "{{gerrit_root}}/plugins/gerrit-oauth-provider.jar"
+# when: gerrit_oauth is defined
+#
+#- name: Download oauth plugin
+# get_url:
+# url: https://gerrit-ci.gerritforge.com/job/plugin-oauth-bazel-master-stable-{{gerrit_plugin_version}}/lastSuccessfulBuild/artifact/bazel-bin/plugins/oauth/oauth.jar
+# dest: "{{gerrit_root}}/plugins/oauth.jar"
+# owner: "{{git_user}}"
+# group: "{{git_user}}"
+# validate_certs: no
+# force: yes
+# when: gerrit_oauth is defined
+
+- name: Download avatars-external plugin
get_url:
- url: https://gerrit-ci.gerritforge.com/view/Plugins-master/job/plugin-{{item}}-bazel-master/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/{{item}}/{{item}}.jar
- dest: "{{gerrit_root}}/plugins/{{item}}.jar"
+ url: https://gerrit-ci.gerritforge.com/job/plugin-avatars-external-bazel-master-stable-{{gerrit_plugin_version}}/lastSuccessfulBuild/artifact/bazel-bin/plugins/avatars-external/avatars-external.jar
+ dest: "{{gerrit_root}}/plugins/avatars-external.jar"
owner: "{{git_user}}"
group: "{{git_user}}"
validate_certs: no
force: yes
- with_items: []
+ when: gerrit_avatars is defined
-- name: Download oauth plugin
+- name: Download verify-status plugin
get_url:
- url: https://gerrit-ci.gerritforge.com/view/Plugins-master/job/plugin-oauth-bazel-master/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/oauth/oauth.jar
- dest: "{{gerrit_root}}/plugins/oauth.jar"
+ url: https://gerrit-ci.gerritforge.com/job/plugin-verify-status-bazel-master-stable-{{gerrit_plugin_version}}/lastSuccessfulBuild/artifact/bazel-bin/plugins/verify-status/verify-status.jar
+ dest: "{{gerrit_root}}/plugins/verify-status.jar"
owner: "{{git_user}}"
group: "{{git_user}}"
validate_certs: no
force: yes
- when: gerrit_oauth is defined
+ when: gerrit_verify is defined
-- name: Download avatars-external plugin
+- name: Download autosubmitter plugin
get_url:
- url: https://gerrit-ci.gerritforge.com/view/Plugins-stable-{{gerrit_plugin_version}}/job/plugin-avatars-external-bazel-stable-{{gerrit_plugin_version}}/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/avatars-external/avatars-external.jar
- dest: "{{gerrit_root}}/plugins/avatars-external.jar"
+ url: https://gerrit-ci.gerritforge.com/job/plugin-autosubmitter-bazel-master/lastSuccessfulBuild/artifact/bazel-bin/plugins/autosubmitter/autosubmitter.jar
+ dest: "{{gerrit_root}}/plugins/autosubmitter.jar"
+ owner: "{{git_user}}"
+ group: "{{git_user}}"
+ validate_certs: no
+ force: yes
+ when: gerrit_autosubmitter is defined
+
+- name: Download audit-sl4j plugin
+ get_url:
+ url: https://gerrit-ci.gerritforge.com/view/Plugins-stable-{{gerrit_plugin_version}}/job/plugin-audit-sl4j-bazel-master-stable-{{gerrit_plugin_version}}/lastSuccessfulBuild/artifact/bazel-bin/plugins/audit-sl4j/audit-sl4j.jar
+ dest: "{{gerrit_root}}/plugins/audit-sl4j.jar"
owner: "{{git_user}}"
group: "{{git_user}}"
validate_certs: no
force: yes
- when: gerrit_avatars is defined
-- name: Create Gerrit.conf
+- name: Create Gerrit.config
template: src="files/gerrit/{{gerrit_host}}" dest={{gerrit_root}}/etc/gerrit.config owner={{git_user}} group={{git_user}}
backup=yes
register: gerrit_conf
@@ -63,6 +88,16 @@
notify:
- restart-gerrit
+- name: Create gitiles.config
+ template: src="files/gerrit/gitiles_{{gerrit_host}}" dest={{gerrit_root}}/etc/gitiles.config owner={{git_user}} group={{git_user}}
+ backup=yes
+ register: gerrit_conf
+ tags:
+ - gerrit-conf
+ notify:
+ - restart-gerrit
+ when: gerrit_gitiles is defined
+
- name: Set up Gerrit secure.conf
template: src="secure.config" dest={{gerrit_root}}/etc/secure.config owner={{git_user}} group={{git_user}}
mode=0600 backup=yes
@@ -136,6 +171,12 @@
- etc/GerritSiteHeader.html
- static/linaro-logo.png
+- name: Install CLA license page for review.mlplatform.org
+ template: src="files/review.mlplatform.org/tosa_cla.html"
+ dest="{{ gerrit_root }}/static/tosa_cla.html"
+ owner={{ git_user }} group={{ git_user }} mode="0644"
+ when: inventory_hostname == 'review.mlplatform.org'
+
- name: Make sure that ~/.ssh exists for git user
file: state=directory dest=/home/{{git_user}}/.ssh/
owner={{git_user}} mode=0750
@@ -154,8 +195,9 @@
tags:
- secrets
-# NOTE: gerrit forks in wild ways that don't work with upstart
-- name: Setup a Sys-V init script
- template: src=gerrit.sysv dest=/etc/init.d/gerrit mode=0755
- notify:
- - update-rcd-gerrit
+- name: Set gerrit user to own all files
+ file: state=directory recurse=yes path={{item}} owner={{git_user}}
+ with_items:
+ - "{{gerrit_root}}"
+ - "{{repo_root}}/All-Users.git"
+ - "{{repo_root}}/All-Projects.git"
diff --git a/roles/gerrit/templates/gerrit-automate b/roles/gerrit/templates/gerrit-automate
index 5e4fb5a0..141d366d 100644
--- a/roles/gerrit/templates/gerrit-automate
+++ b/roles/gerrit/templates/gerrit-automate
@@ -1,8 +1,9 @@
MAILTO=linaro-infrastructure-errors@lists.linaro.org
#Ansible: Update gerrit SSH keys from LDAP
+{% if gerrit_no_update_keys is not defined %}
*/10 * * * * {{git_user}} {{tools_checkout_dir}}/linaro-git-tools/update-gerrit-keys.py --username {{gerrit_http_username}} --base {{gerrit_http_base}}
-
+{% endif %}
#Ansible: Update gerrit group membership from LDAP
*/60 * * * * {{git_user}} {{tools_checkout_dir}}/linaro-git-tools/update-gerrit-groups.py --username {{gerrit_http_username}} --base {{gerrit_http_base}}
diff --git a/roles/gerrit/templates/gerrit.service b/roles/gerrit/templates/gerrit.service
new file mode 100755
index 00000000..48f9578e
--- /dev/null
+++ b/roles/gerrit/templates/gerrit.service
@@ -0,0 +1,25 @@
+# Systemd unit file for gerrit
+
+[Unit]
+Description=Gerrit Code Review
+After=syslog.target network.target
+
+[Service]
+Type=simple
+WorkingDirectory={{ gerrit_root }}
+Environment=GERRIT_HOME={{ gerrit_root }} JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin
+ExecStart=/usr/bin/java -Xmx{{ gerrit_mem }} -jar ${GERRIT_HOME}/bin/gerrit.war daemon -d ${GERRIT_HOME}
+ExecStop=/bin/kill -s SIGINT $MAINPID
+# java has its own exit codes
+SuccessExitStatus=130 SIGINT
+SuccessExitStatus=143 SIGTERM
+User={{ git_user}}
+SyslogIdentifier=gerrit
+Restart=on-failure
+RestartSec=30s
+StartLimitInterval=600s
+StartLimitBurst=10
+OOMScoreAdjust=-500
+
+[Install]
+WantedBy=multi-user.target
diff --git a/roles/gerrit/templates/gerrit.sysv b/roles/gerrit/templates/gerrit.sysv
deleted file mode 100644
index 113b02ac..00000000
--- a/roles/gerrit/templates/gerrit.sysv
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec {{gerrit_root}}/bin/gerrit.sh $*
diff --git a/roles/gerrit/templates/secure.config b/roles/gerrit/templates/secure.config
index 568ab175..fc4c3171 100644
--- a/roles/gerrit/templates/secure.config
+++ b/roles/gerrit/templates/secure.config
@@ -1,5 +1,7 @@
+{% if gerrit_plugin_version < 3.0 %}
[database]
password = "{{db_password}}"
+{% endif %}
{% if apache_ldap_bind_pwd is defined %}
[ldap]
password = {{apache_ldap_bind_pwd}}
@@ -8,8 +10,10 @@
[receiveemail]
password = {{gerrit_config_dovecot_password}}
{% endif %}
+{% if registerEmailPrivateKey is defined %}
[auth]
registerEmailPrivateKey = {{registerEmailPrivateKey}}
+{% endif %}
{% if oauth_client_secret is defined %}
[plugin "gerrit-oauth-provider-github-oauth"]
client-secret = {{oauth_client_secret}}
diff --git a/roles/git-deps/files/git_logrotate b/roles/git-deps/files/git_logrotate
index b1ff9a83..a310920a 100644
--- a/roles/git-deps/files/git_logrotate
+++ b/roles/git-deps/files/git_logrotate
@@ -1,6 +1,6 @@
# MANAGED BY ANSIBLE
# We need daily log timestamps for the git daemon.30 days should be ample for
-# rotation since weblogs should store what it needs long term
+# rotation.
/var/log/git.log {
daily
missingok
diff --git a/roles/git-deps/handlers/main.yml b/roles/git-deps/handlers/main.yml
index 20fff236..fe723acd 100644
--- a/roles/git-deps/handlers/main.yml
+++ b/roles/git-deps/handlers/main.yml
@@ -1,4 +1,7 @@
---
+- name: reload-systemd
+ systemd: daemon_reload=yes
+
- name: restart-git
service: name=git-daemon state=restarted
diff --git a/roles/git-deps/tasks/daemon.yml b/roles/git-deps/tasks/daemon.yml
index 9a5ba610..c1ef0311 100644
--- a/roles/git-deps/tasks/daemon.yml
+++ b/roles/git-deps/tasks/daemon.yml
@@ -16,4 +16,25 @@
mode=0644
owner=root
group=root
+ when: ansible_distribution_release == "trusty"
notify: restart-git
+
+- name: Install git-daemon systemd configuration
+ template: src=git-daemon.service
+ dest=/etc/systemd/system/git-daemon.service
+ mode=0644
+ owner=root
+ group=root
+ when: ansible_distribution_release != "trusty"
+ notify:
+ - reload-systemd
+ - restart-git
+
+- name: Enable git-daemon systemd configuration
+ systemd:
+ name: git-daemon
+ enabled: yes
+ when: ansible_distribution_release != "trusty"
+ notify:
+ - reload-systemd
+ - restart-git
diff --git a/roles/git-deps/tasks/pkgs.yml b/roles/git-deps/tasks/pkgs.yml
index e7e029c1..b9dd7e78 100644
--- a/roles/git-deps/tasks/pkgs.yml
+++ b/roles/git-deps/tasks/pkgs.yml
@@ -3,6 +3,7 @@
apt_repository:
repo: ppa:git-core/ppa
update_cache: yes
+ when: ansible_distribution == 'Ubuntu'
- name: Install common OS dependencies
apt:
@@ -16,7 +17,7 @@
- libclass-std-storable-perl
- libcache-cache-perl
- ntp
- - python-requests
+ - python3-requests
- rsyslog
- name: Enable Apache modules
diff --git a/roles/git-deps/templates/git-daemon.service b/roles/git-deps/templates/git-daemon.service
new file mode 100644
index 00000000..222ef537
--- /dev/null
+++ b/roles/git-deps/templates/git-daemon.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Start Linaro Git Daemon
+
+[Service]
+ExecStart=/usr/bin/git daemon --max-connections=64 --verbose --reuseaddr --timeout=120 --base-path={{ repo_root }} {{ repo_root }}
+
+Restart=always
+RestartSec=500ms
+
+StandardOutput=syslog
+StandardError=syslog
+SyslogIdentifier=git-daemon
+
+DynamicUser=yes
+# this implies ProtectSystem=strict and ProtectHome=read-only
+
+NoNewPrivileges=yes
+MemoryHigh=4G
+
+[Install]
+WantedBy=multi-user.target
diff --git a/roles/gitlab-runner/defaults/main.yml b/roles/gitlab-runner/defaults/main.yml
new file mode 100644
index 00000000..bfc20320
--- /dev/null
+++ b/roles/gitlab-runner/defaults/main.yml
@@ -0,0 +1,8 @@
+---
+gitlab_runners:
+ - original
+
+gitlab_runner_tasks_max: 100000
+gitlab_runner_proc_limit: 100000
+gitlab_runner_file_limit: 100000
+gitlab_runner_stop_timeout: 7200
diff --git a/roles/gitlab-runner/tasks/main.yml b/roles/gitlab-runner/tasks/main.yml
new file mode 100644
index 00000000..488dc478
--- /dev/null
+++ b/roles/gitlab-runner/tasks/main.yml
@@ -0,0 +1,131 @@
+---
+- name: Add gitlab apt key
+ apt_key:
+ id: "3F01618A51312F3F"
+ url: https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
+
+- name: Install apt https package for gitlab-runner repo
+ apt:
+ name: apt-transport-https
+ state: present
+
+- name: Add gitlab runner repos
+ apt_repository:
+ repo: "deb https://packages.gitlab.com/runner/gitlab-runner/{{ansible_distribution|lower}} {{ansible_distribution_release}} main"
+
+- name: Install gitlab-runner
+ apt:
+ name: gitlab-runner
+ force: yes
+ update_cache: yes
+ state: latest
+
+- name: Hold gitlab-runner at old version
+ dpkg_selections:
+ name: gitlab-runner
+ selection: hold
+
+- name: Get docker machine
+ get_url:
+ url: "{{ docker_machine_url }}"
+ dest: /usr/local/bin/docker-machine
+ checksum: "{{ docker_machine_sha }}"
+ mode: 0755
+ when: gitlab_executor == "docker+machine"
+
+- name: Create systemd options directory
+ file: path=/etc/systemd/system/gitlab-runner.service.d
+ state=directory
+ owner=root
+ group=root
+ mode=0755
+
+# this will send a SIGQUIT to gitlab-runner with a timeout
+# so that instead of immediately exiting it will wait
+# for either all runners to stop or the timeout expiring
+# before quitting
+#
+# If you change either of these, you will need to run
+# systemctl daeemon-reload
+# systemctl restart gitlab-runner
+- name: Install systemd kill.conf
+ template: src=templates/kill.conf.j2
+ dest=/etc/systemd/system/gitlab-runner.service.d/kill.conf
+ mode=0644
+ owner=root
+ group=root
+
+- name: Install systemd env.conf
+ template: src=templates/env.conf.j2
+ dest=/etc/systemd/system/gitlab-runner.service.d/env.conf
+ mode=0644
+ owner=root
+ group=root
+
+- name: Register gitlab-runners with the server
+ command: |
+ /usr/bin/gitlab-runner register \
+ --non-interactive \
+ --config /etc/gitlab-runner/config-{{ item }}.toml \
+ --url "{{ gitlab_runner_url[item] }}" \
+ --clone-url "{{ gitlab_runner_url[item] }}" \
+ --registration-token "{{ gitlab_runner_token[item] }}" \
+ --executor "{{ gitlab_executor }}" \
+ --docker-image "alpine:latest" \
+ --name "{{ inventory_hostname }}"
+ # Creating the standalone config files makes sure runners
+ # aren't registered again. They're NOT supposed to be deleted
+ # after role execution/manually.
+ args:
+ creates: /etc/gitlab-runner/config-{{item}}.toml
+ loop: "{{ gitlab_runners }}"
+ ignore_errors: "{{ ansible_check_mode }}"
+
+- name: Read the runner-specific auth token
+ shell: awk '/token = "/' /etc/gitlab-runner/config-{{item}}.toml | cut -d \" -f 2
+ register: auth_token
+ loop: "{{ gitlab_runners }}"
+ ignore_errors: "{{ ansible_check_mode }}"
+
+- name: Generate dictionary \"gitlab_auth_token\" from grep results
+ set_fact:
+ gitlab_auth_token: "{{ gitlab_auth_token|default({}) | combine( {item.item: item.stdout} ) }}"
+ with_items: "{{ auth_token.results }}"
+ ignore_errors: "{{ ansible_check_mode }}"
+
+# Note: gitlab-runner will load a changed config.toml
+# automatically. We don't need to restart, which will
+# cause the service to terminate and relaunch and will
+# interrupt all executing jobs.
+- name: Install config.toml
+ template:
+ src: files/gitlab/{{ inventory_hostname }}.toml
+ dest: /etc/gitlab-runner/config.toml
+ mode: 0600
+ ignore_errors: "{{ ansible_check_mode }}"
+
+- name: Install docker cleanup cron job
+ template:
+ src: templates/gitlab-cleanup.j2
+ dest: /etc/cron.d/gitlab-cleanup
+ mode: 0755
+
+- name: Create userdata directory
+ file: path=/etc/gitlab-runner/userdata
+ state=directory
+ owner=root
+ group=root
+ mode=0755
+
+- name: Install morello EC2 userdata
+ template:
+ src: templates/morello-start.sh
+ dest: /etc/gitlab-runner/userdata/start.sh
+ mode: 0755
+ when: inventory_hostname == "gitlab-runner-manager.morello-project.org"
+
+- name: Ensure gitlab-runner started
+ service:
+ name: gitlab-runner
+ enabled: yes
+ state: started
diff --git a/roles/gitlab-runner/templates/env.conf.j2 b/roles/gitlab-runner/templates/env.conf.j2
new file mode 100644
index 00000000..051b58a8
--- /dev/null
+++ b/roles/gitlab-runner/templates/env.conf.j2
@@ -0,0 +1,4 @@
+[Service]
+TasksMax={{ gitlab_runner_tasks_max }}
+LimitNOFILE={{ gitlab_runner_file_limit }}
+LimitNOPROC={{ gitlab_runner_proc_limit }}
diff --git a/roles/gitlab-runner/templates/gitlab-cleanup.j2 b/roles/gitlab-runner/templates/gitlab-cleanup.j2
new file mode 100644
index 00000000..30c804e0
--- /dev/null
+++ b/roles/gitlab-runner/templates/gitlab-cleanup.j2
@@ -0,0 +1,3 @@
+MAILTO={{ mailto_address }}
+# prune everything every 2 hours
+* */2 * * * root /usr/bin/docker system prune -f
diff --git a/roles/gitlab-runner/templates/kill.conf.j2 b/roles/gitlab-runner/templates/kill.conf.j2
new file mode 100644
index 00000000..b4cfeac3
--- /dev/null
+++ b/roles/gitlab-runner/templates/kill.conf.j2
@@ -0,0 +1,3 @@
+[Service]
+TimeoutStopSec={{ gitlab_runner_stop_timeout }}
+KillSignal=SIGQUIT
diff --git a/roles/gitlab-runner/templates/morello-start.sh b/roles/gitlab-runner/templates/morello-start.sh
new file mode 100644
index 00000000..20e1a265
--- /dev/null
+++ b/roles/gitlab-runner/templates/morello-start.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# hack.. can't get apt db lock if we run immediately
+sleep 20
+sudo apt update
+sleep 30
+sudo apt install qemu-user-static -y
+
diff --git a/roles/gitolite/templates/gitolite.rc b/roles/gitolite/templates/gitolite.rc
index 7c76ff13..2f9b2b93 100644
--- a/roles/gitolite/templates/gitolite.rc
+++ b/roles/gitolite/templates/gitolite.rc
@@ -194,6 +194,7 @@
# command.
$REMOTE_COMMAND_PATT = qr(^[-0-9a-zA-Z._\@/+ :,\%=']*$);
$UNSAFE_PATT = qr([`~#\&;<>]);
+$REF_OR_FILENAME_PATT = qr(^[0-9a-zA-Z][-0-9a-zA-Z._\@/+ :,%]*$);
# ------------------------------------------------------------------------------
# per perl rules, this should be the last line in such a file:
diff --git a/roles/grokmirror/files/known_hosts b/roles/grokmirror/files/known_hosts
new file mode 100644
index 00000000..02faf396
--- /dev/null
+++ b/roles/grokmirror/files/known_hosts
@@ -0,0 +1,7 @@
+android-git-us.linaro.org,ec2-54-225-81-132.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy5fjXgJWuF+qKwieMYCWsdrFnQFQ9KB49gZOONc4F9sJGaxdihOGrhq2Uk4nBjPNSFdwB0QdjSa/Mr3a81wBT3s3EGrB70JsgOyjVzE9lVMol1DdEyX94c0KlQl3B8Gg/RuR3347nh28+4qr2CIyTRTexUQywctEP1qmaIFKL+vNEmbMUIJnkQ1VLPanR1js3JhjpYJLCS8gPjL3gx8UNHoxXIPjwYK3yW269pb/0jVD5OKmVXYI7CD7OFsngIIzm54JzeiGEOJP0S6FLv9geH8Olc6CBlJQ/09IoGzvHqsASPJSisCdQWbhYFdBNJXuaoKLG3isCi4Drc/yIl8CB
+android-git-us.linaro.org,ec2-54-225-81-132.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKadv8RptDmwU1c4ahKtUjuhwLsgtkTAQvlBdOzLRUBSVPmntpGz6LE9xEwgtZpz/WdV9doi13xdt53fCjJcRIo=
+git-us.linaro.org,ec2-52-2-214-187.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Q8j887I9mBD2va9C7gWl4Cr8agHWxuFHfDUWaqiygI9jA4w2YC7mo5oJMqwUk2DsvPDLuU5Z6yyKSA7Cko+L0MnKfNMzQ8e00ZXGDBq8bh1tRKstFselAFmmg+5DhM9q9HPjpKYzbAxU6rxmdFbSc+ktE0rhtmciThVT3YW3bMs3g+D+6sf6ER9UkSpbdZ7skKFXBHw2t1BWaPrvW4L8GMFAokgXUKOE8e1WZkQuCcseIz8J9Hz1p/liyiiTPVQnjGyleUnUY0pZA3ViB6pS317BH5Kvd8aX8x0vSwCIs30rpkmBam9C0b2uj2jWk3GrmHYjVHebMAW376VSLTZV
+git-us.linaro.org,ec2-52-2-214-187.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
+dev-private-git.linaro.org,ec2-107-21-230-219.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC34bjTOKJIq8MVSeC5gddQlbR0hyvvTZbrpW7KXgCzkLTFZxa05wbz8VC1l7ruPotQBgrICgLYmrbjrASqcY//9OPLDa1Pf/MUIu2F2lA1W/5E3psGYmyC9GTvmjKgu39Rad5ujXMeMLjuzVPCmo+WhewgugDSV4Fcggd6B6YXHGtoE15ctSw4moerUq1+2BXVgFxUyMoGcpSCeLnbvWpmi6xWoGQOSnrQ4Z/VmZ5WZ87vQsiiWEAsqmMOHHacunnSph7uzQXJlHNajdeGnr2NF+EgcmQ0N6vivZDRLmRYuSmizjCOHSRZxSm/0UJC/ewVzp9BwRepiNKWsjb4gTMb
+dev-private-git.linaro.org,ec2-107-21-230-219.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
+git.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
diff --git a/roles/grokmirror/tasks/main.yml b/roles/grokmirror/tasks/main.yml
index b82e9a0c..845c14be 100644
--- a/roles/grokmirror/tasks/main.yml
+++ b/roles/grokmirror/tasks/main.yml
@@ -1,10 +1,12 @@
---
- name: Install dependencies for grokmirror
- apt: name={{item}}
- with_items:
- - python-setuptools
- - python-anyjson
- - python-pip
+ apt:
+ name: "{{ packages }}"
+ vars:
+ packages:
+ - python-setuptools
+ - python-anyjson
+ - python-pip
- name: Install pip packages
pip:
@@ -18,6 +20,16 @@
update=yes
accept_hostkey=yes
register: grokclone
+
+- name: Check if grokmirror is installed
+ stat: path=/usr/local/bin/grok-pull
+ register: grokmirror_st
+
+- name: Install grokmirror if needed
+ debug:
+ msg: Needs install
+ when: grokmirror_st.stat.exists == False
+ changed_when: True
notify:
- install-grokmirror
diff --git a/roles/grokmirror/tasks/master.yml b/roles/grokmirror/tasks/master.yml
index 96789ec1..91c87c62 100644
--- a/roles/grokmirror/tasks/master.yml
+++ b/roles/grokmirror/tasks/master.yml
@@ -5,7 +5,7 @@
- name: Ensure grokmirror trigger is installed in gitolite-admin
command: "{{tools_checkout_dir}}/linaro-git-tools/grok-gitolite-setup.sh {{gitolite_admin_name}} {{repo_root}} {{apache_root}}/{{git_host}}/manifest.js.gz"
- when: gitolite_st.stat is defined and gitolite_st.stat.isdir
+ when: gitolite_st.stat.exists is not false and gitolite_st.stat.isdir
register: groktrigger
changed_when: "'updating gitolite-admin' in groktrigger.stdout"
become: true
diff --git a/roles/grokmirror/tasks/slave.yml b/roles/grokmirror/tasks/slave.yml
index d656e3b2..d1a389ba 100644
--- a/roles/grokmirror/tasks/slave.yml
+++ b/roles/grokmirror/tasks/slave.yml
@@ -28,6 +28,11 @@
copy: content="{{grok_private_key}}" dest=/home/{{git_user}}/.ssh/id_rsa
mode=0400 owner={{git_user}} group={{git_user}}
+- name: Install known_hosts for connecting to master
+ when: server_role == "git-main" and grok_private_key is defined
+ copy: src=known_hosts dest=/home/{{git_user}}/.ssh/known_hosts
+ mode=0644 owner={{git_user}} group={{git_user}}
+
- name: Setup grokcheck crontab
template: src=grokcheck.cron.d dest=/etc/cron.d/grokcheck
owner=root group=root mode=0644
diff --git a/roles/grokmirror/templates/grokcheck.cron.d b/roles/grokmirror/templates/grokcheck.cron.d
index 1677cb52..139d30f4 100644
--- a/roles/grokmirror/templates/grokcheck.cron.d
+++ b/roles/grokmirror/templates/grokcheck.cron.d
@@ -1,2 +1,2 @@
MAILTO={{mailto_address}}
-*/5 * * * * git {{tools_checkout_dir}}/linaro-git-tools/grok-check-manifest.py https://{{git_master}}/manifest.js.gz
+*/5 * * * * git /usr/bin/flock -n /tmp/grokcheck.lock {{tools_checkout_dir}}/linaro-git-tools/grok-check-manifest.py https://{{git_master}}/manifest.js.gz
diff --git a/roles/grokmirror/templates/grokmirror.cron.d b/roles/grokmirror/templates/grokmirror.cron.d
index 17bc8983..32cbcee2 100644
--- a/roles/grokmirror/templates/grokmirror.cron.d
+++ b/roles/grokmirror/templates/grokmirror.cron.d
@@ -1,5 +1,5 @@
{% if grokmirror_master %}
-*/5 * * * * git {{tools_checkout_dir}}/linaro-git-tools/grok-cron.py -m {{repo_root}}/manifest.js.gz -t {{repo_root}}{% if not grokmirror_master_check_export %} --no-check-export{% endif %}
+*/5 * * * * git /usr/bin/flock -n /tmp/grokmirror.lock {{tools_checkout_dir}}/linaro-git-tools/grok-cron.py -m {{repo_root}}/manifest.js.gz -t {{repo_root}}{% if not grokmirror_master_check_export %} --no-check-export{% endif %}
{% else %}
* * * * * git /usr/local/bin/grok-pull -p -c /etc/grokmirror-repos.conf
00 02 * * * git /usr/local/bin/grok-fsck -c /etc/grokmirror-fsck.conf
diff --git a/roles/jenkins-master-deps/tasks/main.yml b/roles/jenkins-master-deps/tasks/main.yml
deleted file mode 100644
index 65c9a17d..00000000
--- a/roles/jenkins-master-deps/tasks/main.yml
+++ /dev/null
@@ -1,72 +0,0 @@
----
-
-# https://launchpad.net/~canonical-kernel-team/+archive/ubuntu/ppa
-- name: Add repos
- apt_repository:
- repo: "{{item}}"
- with_items:
- - 'ppa:canonical-kernel-team/ppa'
- - 'ppa:duplicity-team/ppa'
-
-- name: Install server deps
- apt: pkg={{item}} state=present
- with_items:
- - apache2
- - cifs-utils
- - duplicity
- - git
- - ufw
- - linux-image-4.15.0-39-generic
- - postfix
- - zabbix-agent
-
-- name: Enable Apache modules
- apache2_module: name={{item}}
- with_items: "{{apache_modules}}"
- notify: reload-apache
-
-- name: Ensure backup script exists
- template:
- src: backup.sh.j2
- dest: /srv/backup.sh
- owner: root
- group: root
- mode: 0755
-
-- name: Ensure backup crontab exists
- template:
- src: backup.cron
- dest: /etc/cron.d/backup
- owner: root
- group: root
-
-- name: Ensure cleanup crontab exists
- template:
- src: cleanup-crontab.cron
- dest: /etc/cron.d/cleanup
- owner: root
- group: root
-
-# Only adds ports does not delete.
-# ufw reset is required for a fresh ufw deploy (-e firewall_reset=y).
-
-- name: Include ufw role
- include_role:
- name: ufw
-
-- name: Open firewall port to Zabbix
- ufw:
- rule: allow
- proto: tcp
- port: 10050
- src: 81.128.185.38
-
-- name: Open firewall port for NFS
- ufw:
- rule: allow
- port: "{{item.0}}"
- src: "{{item.1}}"
- with_nested:
- - "{{nfs_ports}}"
- - "{{groups['jenkins_slaves']|map('extract', hostvars, 'ansible_host')|list}}"
- tags: nfs
diff --git a/roles/jenkins-master-deps/templates/cleanup-crontab.cron b/roles/jenkins-master-deps/templates/cleanup-crontab.cron
deleted file mode 100644
index 1166f36a..00000000
--- a/roles/jenkins-master-deps/templates/cleanup-crontab.cron
+++ /dev/null
@@ -1 +0,0 @@
-@weekly root find /var/data/nfs/oe -not -path /var/data/nfs/oe/downloads -atime +90 -delete
diff --git a/roles/jenkins-slave-deps/files/docker_ssh/buildslave.config b/roles/jenkins-slave-deps/files/docker_ssh/buildslave.config
deleted file mode 100644
index bc51a135..00000000
--- a/roles/jenkins-slave-deps/files/docker_ssh/buildslave.config
+++ /dev/null
@@ -1,4 +0,0 @@
-Host dev-private-git.linaro.org
- User git
-Host dev-private-review.linaro.org
- User git
diff --git a/roles/jenkins-slave-deps/files/docker_ssh/buildslave.known_hosts b/roles/jenkins-slave-deps/files/docker_ssh/buildslave.known_hosts
index d896d799..bdf13dcf 100644
--- a/roles/jenkins-slave-deps/files/docker_ssh/buildslave.known_hosts
+++ b/roles/jenkins-slave-deps/files/docker_ssh/buildslave.known_hosts
@@ -10,5 +10,18 @@ github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXY
|1|gBlziVA7T5UkU9UMsI6C/Eu2crM=|3xwAQhxBNnCI6Z1p4pRO2Sep7fE= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
|1|QoMH945rHmz0qtsACnj3AGIGrHM=|WdoVaa80MYkiPlfl+/UDCb9LROQ= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
lhg-review.linaro.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDN3HxAgbbcvWvCvJ9sTKN1oxDMj4UqkYZ3MvAvRNPM9NoYedEHT/YPSgpIVl280ANsGxtZTKDYp30VH4CN3S1lRogiMKodA0wE5ORnMEXV8QyVHAk9C+sye1EHnx6R8Ma0Y/Jdzf6qwThSd2/hcwXFB07QetQ6HNa0NUkEMSiiml+eW+MRje3iyYCCJhx9PFkh/S4pk6+P5dUVDwo6BKjQ8Zay6b9+ym4rKtOPcv3jg5lBdK8n3CNHAVUFVXRTIS5l5PY3pl0uQsKAyZlkaMNk0zqsBns7SsPRR3eTUQIx/9S1cpLoMlvzpAY/BBgkSG6S27incyG7+afK+xT/WWlZ
-
-
+51.148.40.56 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEQjPJk0fveMb/M7/Lib5e2yeWVya9IjoN8hnl/BRMXxjwM/mJBwHFD4nNTFcc0QekEo/KDrX/nJpk7iJHYchNA=
+51.148.40.56 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDR4EhTlQPY0Ut0p5N23DEapFe3t6WQgX52ULPXP92QW857CN65DP1E+Tcmwnddx1FNbHXaYt4SU7DfYlxGdPj034W5a3pzkOtjeTNlaqb9XW06SOn/G2UjNRkQ6PCphw8Fp4OzVX0Z7E/7puYVFab2JT6o++APxsivLHLDv8zNRyK7mDibMAUSCGDDoDpSGTtwYzs4qkv2CiiC9vEG95UY12lnr0ZGvFSKeIe+mKQ3Uuk+NHev27OE53NIKtP2Eln5HTzDbAEQVd5lzu2HmDTYBH/aIZ1chnTWzwe5NgdS+zLnd/mNHdcg4L92CfY3g82eZKnVSELc3+BqX+oxNIbR
+|1|yUDJcusSu0In2wFRYT9zjRdIUYQ=|JYa1CRNcxQ58WTcrZHjTYN73Ud4= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
+|1|jQM0oE53LjDVckRFoStitNAaPtM=|3lrKTTVy3dbsSf4IzO9it9EwKms= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
+|1|pSE2FFdkPbRa4Z7ztgBd5xzouts=|PlXn4UfOMj1TyXNyC5GMrVjppfA= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
+|1|T15+df3X7qfkfCp949JVM1hJ0RY=|d9FMRmHciM9xfpIi/PfDgxmk1PA= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
+[android-review.linaro.org]:29418 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDF/+slCWCRR5QYFjSCMgrV1nfaoEJ5LyQzPWFYJHK46gmN0arMWuWsaY4tO/t260kyd+ZXyzBUy+rlo5FKiT1f+nSb+VlQPq3mgbFtd6XAT3XlIFtmlfXvxI4mQy2Ibc1vV7WRSpXKbcTf1HnQWA5ipoLGLjIFFtG2jQVOYFVJoi3wlBHkFtisxJU8uFeAR4zXsLBd+oBnOOEc0gjoxImcutynMUpz0CpOrUfFXECeTs1C31cGi6QWY2MVkAYBVfoHiFp6NCCaVTNpNcWBM7WrzQlJPEEj5scOl1Cgb+Z+UK4+bpiaPZzvWwcH2mjHP9Zmnjb+8iaIvPTggQxBKOY1
+[android-review.linaro.org]:29418 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBF7TALshEtz8pLmmqrK6/yi6ft2OJsYFimQUba+12SbDpMH5Z9O8M4yg5d8j8Bq6aqX2E7A9MPlyFQsAcYrFX+g=
+[android-review.linaro.org]:29418 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIESyOih+8OBkWqjbfMpYuSOn9lowAyHzN533q0hvd7s0
+[review.linaro.org]:29418 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMfTLkTmsbtahAiVJTKXRFbR9MQ/vDH/JPj4QN3XPHJuubxLhUf8WObEBtML7J11uvVM1oDTwM5YG5yjyBnc+85OaQaB9tMPDheGhfMG40F4vxdSnQL29ihyrls0hrFTY9UZ4Y2FmJwYL0rOnGU7iPyNuExQwfg2bkdw67aH9nEGjSd2eXYl2bI4DHujy5GJiV3dR9TlUF0iaSeHVSIX5t9I/BXK+AiSqHTrvwdGGi9XvL6xEWYMOZOpJnCH8Q4OSibsFfQXnCMgIFeO7J/ZMGXqltXOtztgQMr8VvRRD3S+Lcp8yKb5aUjWwoCxb4YzEUbQE04SRVeAGjsfNJcXgT
+[review.linaro.org]:29418 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPzkmW4axU/BXRtRkR42I8FVvWjGhB4CUtTC3cSkhu6L0Oo9i+ija/hahkPT0DC+S0k/vEL7s4mC5SrdNCeJO/0=
+[review.linaro.org]:29418 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFc6ZLtKFrdDI1dYcnYnfrZ9aZDSEVuYvjrsuGDXE0hj
+[dev-private-review.linaro.org]:29418 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCofUDWYYwzE4YWotCffwCxLoRuVCMb6DP+eObwbTPHMe5asK94Y1jPNeK1yUVJIuIAUO8aA6pIq3uLKlusyGLZe1YBpM+7YX3HMOBfCOeOemHFxETlj/HC7islYLYT7Sm/DweiN1kxgP8Q/PhPIA5czCZGHS/+T/VLbMApyyzdTmswaqfgJejyK9juHAcmxT3Tupj2SGOuOamyKfhfsPxGwIchivy/mt7xBTk5cNiSDeLAfMn2rHsilfLjb+IoeE6EvtqG3+rTh+ttulHp2vSeZkK79tuyVWt+XOZjD4RDfk1taW9JjaafkyOW0VCF4gqOMfJU24u88xTCgqkgT1bN
+[dev-private-review.linaro.org]:29418 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDZ6AQ2WyZSO43657/fFpxGgVY73kUwh1R1eXpZp27T6lAI5XFQ7YS8HjQ2O7e4edGSpJHHrqVuZphKpqu11Lz8=
+[dev-private-review.linaro.org]:29418 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDqjPck6EM0H0tlZSKAnleuvhvhhB+jrcGPCt/DD8PB2
diff --git a/roles/jenkins-slave-deps/files/jenkins_sudoers b/roles/jenkins-slave-deps/files/jenkins_sudoers
index 80259bcf..0d1eb35e 100644
--- a/roles/jenkins-slave-deps/files/jenkins_sudoers
+++ b/roles/jenkins-slave-deps/files/jenkins_sudoers
@@ -7,4 +7,6 @@ buildslave ALL = NOPASSWD: /bin/umount
buildslave ALL = NOPASSWD: /usr/sbin/chroot
buildslave ALL = NOPASSWD: /usr/bin/apt-get
buildslave ALL = NOPASSWD: /bin/tar
-buildslave ALL = NOPASSWD: /home/buildslave/workspace/lt-qcom-cros-*/cros_builds/chromiumos/chromite/bin/cros_sdk
+buildslave ALL = NOPASSWD: /home/buildslave/workspace/lt-qcom-cros-*/MACHINE/mistral/label/qcomlt/cros_builds/chromiumos/chromite/bin/cros_sdk
+buildslave ALL = NOPASSWD: /home/buildslave/workspace/lt-qcom-cros-*/MACHINE/qcs404-evb-1000/label/qcomlt/cros_builds/chromiumos/chromite/bin/cros_sdk
+buildslave ALL = NOPASSWD: /home/buildslave/workspace/lt-qcom-cros-*/MACHINE/qcs404-evb-4000/label/qcomlt/cros_builds/chromiumos/chromite/bin/cros_sdk
diff --git a/roles/jenkins-slave-deps/tasks/main.yml b/roles/jenkins-slave-deps/tasks/main.yml
index 29042571..678d4afa 100644
--- a/roles/jenkins-slave-deps/tasks/main.yml
+++ b/roles/jenkins-slave-deps/tasks/main.yml
@@ -13,7 +13,8 @@
port: "{{item.port}}"
src: "{{item.src}}"
with_items:
- - {port: 2375, src: '88.99.136.175'} #ci.linaro.org
+ - {port: 2375, src: '{{ jenkins_ip }}' } # Jenkins master
+ - {port: 2375, src: '{{ jenkins_ip_staging }}' } # Jenkins master
- {port: 16509, src: '172.17.0.0/24'}
- name: Open firewall port for Nexus
@@ -29,15 +30,6 @@
- name: flush handlers so UFW is restarted before docker is installed
meta: flush_handlers
-- name: Install sudo rule for QCOM builds
- copy:
- src: jenkins_sudoers
- dest: /etc/sudoers.d/jenkins
- owner: root
- group: root
- mode: 0400
- when: ansible_hostname == 'oe-x86_64-02'
-
- name: Create directory for docker service supplementary config
file:
path: /etc/systemd/system/docker.service.d
@@ -63,6 +55,7 @@
- "{{inventory_hostname}}-key.pem"
- "{{inventory_hostname}}-cert.pem"
notify:
+ - reload-systemd
- restart-docker
ignore_errors: '{{ ansible_check_mode }}'
@@ -77,32 +70,58 @@
- reload-systemd
- restart-docker
-# https://launchpad.net/~canonical-kernel-team/+archive/ubuntu/ppa
-- name: Add repos (ubuntu)
- apt_repository: repo=ppa:canonical-kernel-team/ppa
- when: ansible_distribution == 'Ubuntu' and ansible_machine == 'x86_64'
-
-- name: Upgrade to kernel with overlayfs fixes
- apt: pkg=linux-image-4.15.0-42-generic update_cache=yes
- when: ansible_distribution == 'Ubuntu' and ansible_machine == 'x86_64'
-
- name: Install openjdk for Jenkins slave
apt:
name: "{{packages}}"
update_cache: yes
vars:
packages:
- - openjdk-8-jdk-headless
- - openjdk-8-jre-headless
+ - openjdk-11-jdk-headless
+ - openjdk-11-jre-headless
+
+- name: Set system to use openjdk by default
+ alternatives:
+ name: java
+ path: /usr/lib/jvm/java-11-openjdk-amd64/bin/java
+
+- name: Install extra deps
+ apt: pkg={{item}} state=present
+ with_items:
+ - smartmontools
+ - unzip
- name: Append Systems team to docker group
user: name={{item}} groups=docker append=yes
with_items: "{{docker_group_user}}"
-- name: Copy docker ssh config
+- name: Copy ssh files for docker
copy:
src: files/docker_ssh/
dest: /srv/docker/ssh
+ owner: "1000"
+ group: "1000"
+ mode: 0600
+
+- name: Create .ssh directory
+ file:
+ path: /home/buildslave/.ssh/
+ state: directory
+ owner: buildslave
+ group: primary
+ mode: 0700
+
+- name: Copy ssh host key for system
+ copy:
+ src: files/docker_ssh/buildslave.known_hosts
+ dest: /etc/ssh/ssh_known_hosts
+ owner: root
+ group: root
+ mode: 0444
+
+- name: Set up docker ssh config
+ template:
+ src: buildslave.config
+ dest: /srv/docker/ssh/buildslave.config
owner: 1000
group: 1000
mode: 0600
@@ -118,3 +137,39 @@
owner: 1000
group: 1000
state: directory
+
+- name: Ensure ECR update directory exists
+ file:
+ path: /root/aws
+ owner: root
+ group: root
+ mode: 0700
+ state: directory
+ when: ansible_hostname == 'x86-TF-03' or ansible_hostname == 'x86-TF-04'
+
+- name: Install FVP sync cron job
+ template:
+ src: update_ecr_images.sh
+ dest: /root/aws/update_ecr_images.sh
+ owner: root
+ group: root
+ mode: 0700
+ when: ansible_hostname == 'x86-TF-03' or ansible_hostname == 'x86-TF-04'
+
+- name: Install AWS credentials for ECR
+ template:
+ src: credentials.sh
+ dest: /root/aws/credentials.sh
+ owner: root
+ group: root
+ mode: 0600
+ when: ansible_hostname == 'x86-TF-03' or ansible_hostname == 'x86-TF-04'
+
+- name: Install AWS credentials for ECR
+ template:
+ src: ecr-sync.crontab
+ dest: /etc/cron.d/ecr-sync
+ owner: root
+ group: root
+ mode: 0755
+ when: ansible_hostname == 'x86-TF-03' or ansible_hostname == 'x86-TF-04'
diff --git a/roles/jenkins-slave-deps/templates/buildslave.config b/roles/jenkins-slave-deps/templates/buildslave.config
new file mode 100644
index 00000000..ad62a755
--- /dev/null
+++ b/roles/jenkins-slave-deps/templates/buildslave.config
@@ -0,0 +1,19 @@
+Host dev-private-git.linaro.org
+ User git
+Host dev-private-review.linaro.org
+ User git
+{% if inventory_hostname == "aosp-x86-13" %}
+Host nexus-machine
+ ForwardAgent yes
+ Hostname 51.148.40.56
+ User vishal.bhoj
+ ServerAliveInterval 60
+ Port 7676
+{% elif inventory_hostname == "aosp-x86-10" %}
+Host nexus-machine
+ ForwardAgent yes
+ Hostname 51.148.40.56
+ User vishal.bhoj
+ ServerAliveInterval 60
+ Port 7878
+{%endif%}
diff --git a/roles/jenkins-slave-deps/templates/credentials.sh b/roles/jenkins-slave-deps/templates/credentials.sh
new file mode 100644
index 00000000..f8e1729d
--- /dev/null
+++ b/roles/jenkins-slave-deps/templates/credentials.sh
@@ -0,0 +1,3 @@
+export AWS_ACCESS_KEY_ID={{ aws_access_key_id }}
+export AWS_SECRET_ACCESS_KEY={{ aws_secret_access_key }}
+export AWS_REGION=us-east-1
diff --git a/roles/jenkins-slave-deps/templates/ecr-sync.crontab b/roles/jenkins-slave-deps/templates/ecr-sync.crontab
new file mode 100644
index 00000000..a877b099
--- /dev/null
+++ b/roles/jenkins-slave-deps/templates/ecr-sync.crontab
@@ -0,0 +1,4 @@
+# Update the FVP images from the ECR every 30 minutes by doing
+# a docker pull.
+
+*/30 * * * * root /root/aws/update_ecr_images.sh fvp >> /var/log/ecr-sync.log
diff --git a/roles/jenkins-slave-deps/templates/update_ecr_images.sh b/roles/jenkins-slave-deps/templates/update_ecr_images.sh
new file mode 100755
index 00000000..4ce15f0e
--- /dev/null
+++ b/roles/jenkins-slave-deps/templates/update_ecr_images.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+. /root/aws/credentials.sh
+
+ECR=987685672616.dkr.ecr.us-east-1.amazonaws.com
+REPO=${1:-fvp}
+
+aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin $ECR
+
+
+for i in $(aws ecr list-images --repository-name $REPO --filter tagStatus=TAGGED --query 'imageIds[*].imageTag' --output text);do docker pull $ECR/$REPO:$i; done
diff --git a/roles/jenkins-trigger-agent/tasks/main.yml b/roles/jenkins-trigger-agent/tasks/main.yml
new file mode 100644
index 00000000..d8839626
--- /dev/null
+++ b/roles/jenkins-trigger-agent/tasks/main.yml
@@ -0,0 +1,51 @@
+---
+
+- name: Install package for jenkins trigger slaves
+ apt:
+ name: "{{packages}}"
+ update_cache: yes
+ vars:
+ packages:
+ - git
+ - unzip
+ - curl
+ - build-essential
+ - debian-keyring
+ - devscripts
+ - gettext
+ - libssl-dev
+ - libffi-dev
+ - moreutils
+ - parallel
+ - python3-cryptography
+ - python3-dev
+ - python3-paramiko
+ - python3-pip
+ - python3-pretty-yaml
+ - python3-requests
+ - python3-setuptools
+ - python3-wheel
+
+
+- name: Download repo
+ get_url:
+ url: https://storage.googleapis.com/git-repo-downloads/repo
+ dest: /usr/local/bin/repo
+ mode: 0755
+
+- name: install jjb
+ command: pip3 install jenkins-job-builder==2.10.0 ansible==2.9.13 ansible-lint==4.2.0
+ args:
+ creates: /usr/local/bin/jenkins-jobs
+
+- name: Clone linaro jjb plugin repository
+ git: name=https://git.linaro.org/infrastructure/jjb-linaro-plugin.git
+ dest=/srv/jjb-linaro-plugin
+ version="HEAD"
+
+- name: Install linaro jjb plugin
+ command: python3 setup.py install
+ args:
+ chdir: /srv/jjb-linaro-plugin
+ creates: /usr/local/lib/python3.6/dist-packages/jenkins_jobs_linaro/modules/linaro.py
+
diff --git a/roles/lava-docker-worker/tasks/main.yml b/roles/lava-docker-worker/tasks/main.yml
new file mode 100644
index 00000000..2af5526e
--- /dev/null
+++ b/roles/lava-docker-worker/tasks/main.yml
@@ -0,0 +1,33 @@
+---
+- name: Add lavasoftware apt key
+ apt_key:
+ id: "A791358F2E49B100"
+ url: https://apt.lavasoftware.org/lavasoftware.key.asc
+
+- name: Install apt https package for repo
+ apt:
+ name: apt-transport-https
+ state: present
+
+- name: Add lavasoftware repo
+ apt_repository:
+ repo: "deb https://apt.lavasoftware.org/release bullseye main"
+ when: ansible_distribution_release == "bullseye"
+
+- name: Install lava-dispatcher-host
+ apt:
+ name: lava-dispatcher-host
+ update_cache: yes
+ state: latest
+
+- name: install lava-docker-worker config
+ template:
+ dest: /etc/lava-dispatcher-host/lava-docker-worker
+ src: templates/lava-docker-worker
+
+- name: start/enable lava-docker-worker
+ service:
+ name: lava-docker-worker
+ state: started
+ enabled: yes
+
diff --git a/roles/lava-docker-worker/templates/lava-docker-worker b/roles/lava-docker-worker/templates/lava-docker-worker
new file mode 100644
index 00000000..dad2f44a
--- /dev/null
+++ b/roles/lava-docker-worker/templates/lava-docker-worker
@@ -0,0 +1,5 @@
+WORKER_NAME="--name {{ lava_dispatcher_hostname }}"
+
+# Server connection
+URL="{{ lava_server_hostname }}"
+TOKEN="--token {{ lava_dispatcher_token }} "
diff --git a/roles/lava-elk-deps/defaults/main.yml b/roles/lava-elk-deps/defaults/main.yml
index a54efb12..271187f2 100644
--- a/roles/lava-elk-deps/defaults/main.yml
+++ b/roles/lava-elk-deps/defaults/main.yml
@@ -10,3 +10,10 @@ lava_servers:
- host: lite.validation.linaro.org
username: ben.copeland
token: foo
+
+kisscache_servers:
+ - host: http://51.148.40.18:8080/api/v1/status/
+
+gitlab_servers:
+ - host: https://git.morello-project.org/
+ token: foo
diff --git a/roles/lava-elk-deps/files/jobfailure_dashboard.json b/roles/lava-elk-deps/files/jobfailure_dashboard.json
new file mode 100644
index 00000000..81d6abaf
--- /dev/null
+++ b/roles/lava-elk-deps/files/jobfailure_dashboard.json
@@ -0,0 +1,26 @@
+[
+ {
+ "_id": "158314c0-70be-11e9-8ab9-1b38609ca045",
+ "_type": "dashboard",
+ "_source": {
+ "title": "LKFT Jobfailure",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"panelIndex\":\"1\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":4,\"i\":\"1\"},\"version\":\"6.1.4-1\",\"type\":\"visualization\",\"id\":\"daff3a10-725f-11e9-8ab9-1b38609ca045\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-4h",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ }
+ }
+] \ No newline at end of file
diff --git a/roles/lava-elk-deps/files/kibana_dashboard.json b/roles/lava-elk-deps/files/kibana_dashboard.json
index 183f4783..181e523b 100644
--- a/roles/lava-elk-deps/files/kibana_dashboard.json
+++ b/roles/lava-elk-deps/files/kibana_dashboard.json
@@ -6,228 +6,54 @@
"title": "LAVA Jobqueue Length",
"hits": 0,
"description": "",
- "panelsJSON": "[{\"panelIndex\":\"2\",\"gridData\":{\"x\":24,\"y\":0,\"w\":24,\"h\":15,\"i\":\"2\"},\"embeddableConfig\":{},\"id\":\"02361660-a625-11e8-8538-f34fec203819\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"3\",\"gridData\":{\"x\":0,\"y\":0,\"w\":24,\"h\":15,\"i\":\"3\"},\"embeddableConfig\":{},\"id\":\"a8581090-a623-11e8-8538-f34fec203819\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"4\",\"gridData\":{\"x\":0,\"y\":15,\"w\":24,\"h\":15,\"i\":\"4\"},\"embeddableConfig\":{},\"id\":\"c6670080-a625-11e8-8538-f34fec203819\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"5\",\"gridData\":{\"x\":24,\"y\":15,\"w\":24,\"h\":15,\"i\":\"5\"},\"version\":\"6.3.2\",\"type\":\"visualization\",\"id\":\"e0e68790-b1ed-11e8-852d-55393e7ce617\",\"embeddableConfig\":{}},{\"panelIndex\":\"6\",\"gridData\":{\"x\":0,\"y\":30,\"w\":24,\"h\":15,\"i\":\"6\"},\"version\":\"6.3.2\",\"type\":\"visualization\",\"id\":\"5bbc4230-b1ed-11e8-852d-55393e7ce617\",\"embeddableConfig\":{}}]",
+ "panelsJSON": "[{\"panelIndex\":\"2\",\"gridData\":{\"x\":5,\"y\":0,\"w\":5,\"h\":6,\"i\":\"2\"},\"embeddableConfig\":{},\"id\":\"02361660-a625-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue LEDGE\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"3\",\"gridData\":{\"x\":0,\"y\":0,\"w\":5,\"h\":6,\"i\":\"3\"},\"embeddableConfig\":{},\"id\":\"a8581090-a623-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue LKFT\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"4\",\"gridData\":{\"x\":0,\"y\":6,\"w\":5,\"h\":5,\"i\":\"4\"},\"embeddableConfig\":{},\"id\":\"c6670080-a625-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue Validation\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"5\",\"gridData\":{\"x\":5,\"y\":6,\"w\":5,\"h\":5,\"i\":\"5\"},\"embeddableConfig\":{},\"id\":\"e0e68790-b1ed-11e8-852d-55393e7ce617\",\"title\":\"LAVA Queue PMWG\",\"type\":\"visualization\",\"version\":\"6.3.2\"}]",
"optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{}",
"version": 1,
- "timeRestore": true,
- "timeTo": "now",
- "timeFrom": "now-1h",
- "refreshInterval": {
- "display": "Off",
- "pause": false,
- "value": 0
- },
+ "timeRestore": false,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
}
- },
- "_meta": {
- "savedObjectVersion": 2
}
},
{
- "_id": "20280fd0-a624-11e8-8538-f34fec203819",
- "_type": "search",
- "_source": {
- "title": "jobqueue_validation",
- "description": "",
- "hits": 0,
- "columns": [
- "_source"
- ],
- "sort": [
- "device.timestamp",
- "desc"
- ],
- "version": 1,
- "kibanaSavedObjectMeta": {
- "searchSourceJSON": "{\"index\":\"79192790-b1ec-11e8-852d-55393e7ce617\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"meta\":{\"negate\":false,\"index\":\"b1578e40-a606-11e8-9dd0-e5c705b98d0d\",\"type\":\"phrase\",\"key\":\"device.lava_server\",\"value\":\"validation.linaro.org\",\"params\":{\"query\":\"validation.linaro.org\",\"type\":\"phrase\"},\"disabled\":false,\"alias\":null},\"query\":{\"match\":{\"device.lava_server\":{\"query\":\"validation.linaro.org\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"
- }
- },
- "_meta": {
- "savedObjectVersion": 2
- }
- },
- {
- "_id": "29de5430-a624-11e8-8538-f34fec203819",
- "_type": "search",
- "_source": {
- "title": "jobqueue_lite",
- "description": "",
- "hits": 0,
- "columns": [
- "_source"
- ],
- "sort": [
- "device.timestamp",
- "desc"
- ],
- "version": 1,
- "kibanaSavedObjectMeta": {
- "searchSourceJSON": "{\"index\":\"79192790-b1ec-11e8-852d-55393e7ce617\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"meta\":{\"negate\":false,\"index\":\"b1578e40-a606-11e8-9dd0-e5c705b98d0d\",\"type\":\"phrase\",\"key\":\"device.lava_server\",\"value\":\"lite.validation.linaro.org\",\"params\":{\"query\":\"lite.validation.linaro.org\",\"type\":\"phrase\"},\"disabled\":false,\"alias\":null},\"query\":{\"match\":{\"device.lava_server\":{\"query\":\"lite.validation.linaro.org\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"
- }
- },
- "_meta": {
- "savedObjectVersion": 2
- }
- },
- {
- "_id": "7ca82c00-a60a-11e8-9dd0-e5c705b98d0d",
- "_type": "search",
- "_source": {
- "title": "jobqueue_lkft",
- "description": "",
- "hits": 0,
- "columns": [
- "_source"
- ],
- "sort": [
- "device.timestamp",
- "desc"
- ],
- "version": 1,
- "kibanaSavedObjectMeta": {
- "searchSourceJSON": "{\"index\":\"79192790-b1ec-11e8-852d-55393e7ce617\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"meta\":{\"negate\":false,\"index\":\"b1578e40-a606-11e8-9dd0-e5c705b98d0d\",\"type\":\"phrase\",\"key\":\"device.lava_server\",\"value\":\"lkft.validation.linaro.org\",\"params\":{\"query\":\"lkft.validation.linaro.org\",\"type\":\"phrase\"},\"disabled\":false,\"alias\":null},\"query\":{\"match\":{\"device.lava_server\":{\"query\":\"lkft.validation.linaro.org\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"
- }
- },
- "_meta": {
- "savedObjectVersion": 2
- }
- },
- {
- "_id": "324e8c50-a6da-11e8-83fb-2d7acaa76fd6",
- "_type": "search",
- "_source": {
- "title": "jobqueue_lng",
- "description": "",
- "hits": 0,
- "columns": [
- "_source"
- ],
- "sort": [
- "device.timestamp",
- "desc"
- ],
- "version": 1,
- "kibanaSavedObjectMeta": {
- "searchSourceJSON": "{\"index\":\"79192790-b1ec-11e8-852d-55393e7ce617\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"meta\":{\"negate\":false,\"index\":\"e29da230-a6d0-11e8-9f01-ff6e57cf4784\",\"type\":\"phrase\",\"key\":\"device.lava_server\",\"value\":\"lng.validation.linaro.org\",\"params\":{\"query\":\"lng.validation.linaro.org\",\"type\":\"phrase\"},\"disabled\":false,\"alias\":null},\"query\":{\"match\":{\"device.lava_server\":{\"query\":\"lng.validation.linaro.org\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"
- }
- },
- "_meta": {
- "savedObjectVersion": 2
- }
- },
- {
- "_id": "43f85670-a6da-11e8-83fb-2d7acaa76fd6",
- "_type": "search",
+ "_id": "9458e6d0-1a79-11e9-98b1-8df03cb1ed5f",
+ "_type": "dashboard",
"_source": {
- "title": "jobqueue_pwmg",
- "description": "",
+ "title": "LKFT Dashboard",
"hits": 0,
- "columns": [
- "_source"
- ],
- "sort": [
- "device.timestamp",
- "desc"
- ],
- "version": 1,
- "kibanaSavedObjectMeta": {
- "searchSourceJSON": "{\"index\":\"79192790-b1ec-11e8-852d-55393e7ce617\",\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[{\"meta\":{\"negate\":false,\"index\":\"e29da230-a6d0-11e8-9f01-ff6e57cf4784\",\"type\":\"phrase\",\"key\":\"device.lava_server\",\"value\":\"pmwg.validation.linaro.org\",\"params\":{\"query\":\"pmwg.validation.linaro.org\",\"type\":\"phrase\"},\"disabled\":false,\"alias\":null},\"query\":{\"match\":{\"device.lava_server\":{\"query\":\"pmwg.validation.linaro.org\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"
- }
- },
- "_meta": {
- "savedObjectVersion": 2
- }
- },
- {
- "_id": "c6670080-a625-11e8-8538-f34fec203819",
- "_type": "visualization",
- "_source": {
- "title": "lava_queue_validation",
- "visState": "{\"title\":\"lava_queue_validation\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"m\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
- "uiStateJSON": "{}",
"description": "",
- "savedSearchId": "20280fd0-a624-11e8-8538-f34fec203819",
- "version": 1,
- "kibanaSavedObjectMeta": {
- "searchSourceJSON": "{}"
- }
- },
- "_meta": {
- "savedObjectVersion": 2
- }
- },
- {
- "_id": "a8581090-a623-11e8-8538-f34fec203819",
- "_type": "visualization",
- "_source": {
- "title": "lava_queue_lkft",
- "visState": "{\"title\":\"lava_queue_lkft\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"m\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
- "uiStateJSON": "{}",
- "description": "",
- "savedSearchId": "7ca82c00-a60a-11e8-9dd0-e5c705b98d0d",
- "version": 1,
- "kibanaSavedObjectMeta": {
- "searchSourceJSON": "{}"
- }
- },
- "_meta": {
- "savedObjectVersion": 2
- }
- },
- {
- "_id": "02361660-a625-11e8-8538-f34fec203819",
- "_type": "visualization",
- "_source": {
- "title": "lava_queue_lite",
- "visState": "{\"title\":\"lava_queue_lite\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"m\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "panelsJSON": "[{\"gridData\":{\"w\":24,\"h\":15,\"x\":0,\"y\":0,\"i\":\"1\"},\"version\":\"6.5.1\",\"panelIndex\":\"1\",\"type\":\"visualization\",\"id\":\"a8581090-a623-11e8-8538-f34fec203819\",\"embeddableConfig\":{}}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
"uiStateJSON": "{}",
- "description": "",
- "savedSearchId": "29de5430-a624-11e8-8538-f34fec203819",
"version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-7d",
+ "refreshInterval": {
+ "pause": true,
+ "value": 0
+ },
"kibanaSavedObjectMeta": {
- "searchSourceJSON": "{}"
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
}
- },
- "_meta": {
- "savedObjectVersion": 2
}
},
{
- "_id": "5bbc4230-b1ed-11e8-852d-55393e7ce617",
- "_type": "visualization",
+ "_id": "861f0220-a625-11e8-8538-f34fec203819",
+ "_type": "dashboard",
"_source": {
- "title": "lava_queue_lng",
- "visState": "{\"title\":\"lava_queue_lng\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"m\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
- "uiStateJSON": "{}",
+ "title": "LAVA Jobqueue Length",
+ "hits": 0,
"description": "",
- "savedSearchId": "324e8c50-a6da-11e8-83fb-2d7acaa76fd6",
- "version": 1,
- "kibanaSavedObjectMeta": {
- "searchSourceJSON": "{}"
- }
- },
- "_meta": {
- "savedObjectVersion": 2
- }
- },
- {
- "_id": "e0e68790-b1ed-11e8-852d-55393e7ce617",
- "_type": "visualization",
- "_source": {
- "title": "lava_queue_pwmg",
- "visState": "{\"title\":\"lava_queue_pwmg\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"m\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "panelsJSON": "[{\"panelIndex\":\"2\",\"gridData\":{\"x\":5,\"y\":0,\"w\":5,\"h\":6,\"i\":\"2\"},\"embeddableConfig\":{},\"id\":\"02361660-a625-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue LEDGE\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"3\",\"gridData\":{\"x\":0,\"y\":0,\"w\":5,\"h\":6,\"i\":\"3\"},\"embeddableConfig\":{},\"id\":\"a8581090-a623-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue LKFT\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"4\",\"gridData\":{\"x\":0,\"y\":6,\"w\":5,\"h\":5,\"i\":\"4\"},\"embeddableConfig\":{},\"id\":\"c6670080-a625-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue Validation\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"5\",\"gridData\":{\"x\":5,\"y\":6,\"w\":5,\"h\":5,\"i\":\"5\"},\"embeddableConfig\":{},\"id\":\"e0e68790-b1ed-11e8-852d-55393e7ce617\",\"title\":\"LAVA Queue PMWG\",\"type\":\"visualization\",\"version\":\"6.3.2\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
"uiStateJSON": "{}",
- "description": "",
- "savedSearchId": "43f85670-a6da-11e8-83fb-2d7acaa76fd6",
"version": 1,
+ "timeRestore": false,
"kibanaSavedObjectMeta": {
- "searchSourceJSON": "{}"
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
}
- },
- "_meta": {
- "savedObjectVersion": 2
}
}
] \ No newline at end of file
diff --git a/roles/lava-elk-deps/files/kisscache_dashboard.json b/roles/lava-elk-deps/files/kisscache_dashboard.json
new file mode 100644
index 00000000..5a512ea8
--- /dev/null
+++ b/roles/lava-elk-deps/files/kisscache_dashboard.json
@@ -0,0 +1,26 @@
+[
+ {
+ "_id": "27e87f10-83e1-11ea-a795-b501b684e6e8",
+ "_type": "dashboard",
+ "_source": {
+ "title": "Kisscache",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"gridData\":{\"h\":3,\"i\":\"4\",\"w\":6,\"x\":6,\"y\":6},\"id\":\"720a7fc0-848c-11ea-a795-b501b684e6e8\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"5\",\"w\":6,\"x\":0,\"y\":6},\"id\":\"59e66790-847a-11ea-a795-b501b684e6e8\",\"panelIndex\":\"5\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"6\",\"w\":6,\"x\":0,\"y\":0},\"id\":\"187dd8d0-848c-11ea-a795-b501b684e6e8\",\"panelIndex\":\"6\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"7\",\"w\":6,\"x\":0,\"y\":3},\"id\":\"70a79ef0-848d-11ea-a795-b501b684e6e8\",\"panelIndex\":\"7\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"8\",\"w\":6,\"x\":6,\"y\":3},\"id\":\"8b13dac0-8491-11ea-a795-b501b684e6e8\",\"panelIndex\":\"8\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"9\",\"w\":6,\"x\":0,\"y\":9},\"id\":\"550e1470-848e-11ea-a795-b501b684e6e8\",\"panelIndex\":\"9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"10\",\"w\":6,\"x\":6,\"y\":0},\"id\":\"7df7b9a0-8492-11ea-a795-b501b684e6e8\",\"panelIndex\":\"10\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"13\",\"w\":6,\"x\":6,\"y\":9},\"id\":\"41626300-8492-11ea-a795-b501b684e6e8\",\"panelIndex\":\"13\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{\"P-3\":{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(0,104,55)\",\"50 - 75\":\"rgb(255,255,190)\",\"75 - 100\":\"rgb(165,0,38)\"}}},\"P-5\":{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(0,104,55)\",\"50 - 75\":\"rgb(255,255,190)\",\"75 - 100\":\"rgb(165,0,38)\"}}},\"P-7\":{\"vis\":{\"colors\":{\"requests\":\"#447EBC\"}}}}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-60d",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ }
+ }
+] \ No newline at end of file
diff --git a/roles/lava-elk-deps/files/kisscache_visualizations.json b/roles/lava-elk-deps/files/kisscache_visualizations.json
new file mode 100644
index 00000000..f3befc34
--- /dev/null
+++ b/roles/lava-elk-deps/files/kisscache_visualizations.json
@@ -0,0 +1,114 @@
+[
+ {
+ "_id": "720a7fc0-848c-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_diskusage",
+ "visState": "{\"title\":\"kisscache_diskusage\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"usage\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"usage\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"cardinal\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"data\":{\"id\":\"3\",\"label\":\"quota\"},\"valueAxis\":\"ValueAxis-1\",\"interpolate\":\"cardinal\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"disk_usage\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"usage\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"disk_quota\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"quota\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"colors\":{\"quota\":\"#BF1B00\",\"usage\":\"#447EBC\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ }
+ },
+ {
+ "_id": "59e66790-847a-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_diskusage_percent",
+ "visState": "{\"title\":\"kisscache_diskusage_percent\",\"type\":\"gauge\",\"params\":{\"type\":\"gauge\",\"addTooltip\":true,\"addLegend\":true,\"isDisplayWarning\":false,\"gauge\":{\"verticalSplit\":true,\"extendRange\":true,\"percentageMode\":true,\"gaugeType\":\"Arc\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"Labels\",\"colorsRange\":[{\"from\":0,\"to\":50},{\"from\":50,\"to\":75},{\"from\":75,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":true,\"color\":\"black\"},\"scale\":{\"show\":true,\"labels\":false,\"color\":\"#333\"},\"type\":\"meter\",\"style\":{\"bgWidth\":0.9,\"width\":0.9,\"mask\":false,\"bgMask\":false,\"maskBars\":50,\"bgFill\":\"#eee\",\"bgColor\":false,\"subText\":\"\",\"fontSize\":60,\"labelColor\":true}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"disk_usage_percent\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"Disk usage\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(0,104,55)\",\"50 - 75\":\"rgb(255,255,190)\",\"75 - 100\":\"rgb(165,0,38)\"},\"colors\":{\"50 - 75\":\"#E0752D\",\"75 - 100\":\"#BF1B00\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ }
+ },
+ {
+ "_id": "187dd8d0-848c-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_download_upload",
+ "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"upload\",\"customMetric\":{\"enabled\":true,\"id\":\"1-metric\",\"params\":{\"field\":\"statistics_upload\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!percentile_ranks\",\"!median\",\"!std_dev\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"metricAgg\",\"params\":[],\"title\":\"Metric Agg\"},\"type\":\"max\"},\"metricAgg\":\"custom\"},\"schema\":\"metric\",\"type\":\"derivative\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customInterval\":\"2h\",\"extended_bounds\":{},\"field\":\"timestamp\",\"interval\":\"auto\",\"min_doc_count\":0},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"download\",\"customMetric\":{\"enabled\":true,\"id\":\"3-metric\",\"params\":{\"field\":\"statistics_download\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!percentile_ranks\",\"!median\",\"!std_dev\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"metricAgg\",\"params\":[],\"title\":\"Metric Agg\"},\"type\":\"max\"},\"metricAgg\":\"custom\"},\"schema\":\"metric\",\"type\":\"derivative\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":true,\"style\":{\"color\":\"#eee\"},\"valueAxis\":null},\"legendPosition\":\"right\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"upload\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"normal\",\"show\":\"true\",\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"},{\"data\":{\"id\":\"3\",\"label\":\"download\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Size\"},\"type\":\"value\"}]},\"title\":\"kisscache_download_upload\",\"type\":\"line\"}",
+ "uiStateJSON": "{\"vis\":{\"colors\":{\"download\":\"#BF1B00\",\"upload\":\"#508642\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ }
+ },
+ {
+ "_id": "7df7b9a0-8492-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_download_upload_total",
+ "visState": "{\"title\":\"kisscache_download_upload_total\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":34}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"statistics_download\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"Download\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"statistics_upload\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"Upload\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ }
+ },
+ {
+ "_id": "70a79ef0-848d-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_requests",
+ "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"requests\",\"customMetric\":{\"enabled\":true,\"id\":\"1-metric\",\"params\":{\"field\":\"statistics_requests\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!percentile_ranks\",\"!median\",\"!std_dev\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"metricAgg\",\"params\":[],\"title\":\"Metric Agg\"},\"type\":\"max\"},\"metricAgg\":\"custom\"},\"schema\":\"metric\",\"type\":\"derivative\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customInterval\":\"2h\",\"extended_bounds\":{},\"field\":\"timestamp\",\"interval\":\"auto\",\"min_doc_count\":0},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"right\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"requests\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"normal\",\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"requests\"},\"type\":\"value\"}]},\"title\":\"kisscache_requests\",\"type\":\"line\"}",
+ "uiStateJSON": "{\"vis\":{\"colors\":{\"requests\":\"#447EBC\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ }
+ },
+ {
+ "_id": "8b13dac0-8491-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_requests_total",
+ "visState": "{\"title\":\"kisscache_requests_total\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"statistics_requests\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"requests\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ }
+ },
+ {
+ "_id": "550e1470-848e-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_resources",
+ "visState": "{\"title\":\"kisscache_resources\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"successes\"}},{\"id\":\"ValueAxis-2\",\"name\":\"RightAxis-1\",\"type\":\"value\",\"position\":\"right\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"scheduled\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"3\",\"label\":\"scheduled\"},\"valueAxis\":\"ValueAxis-2\"},{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"downloading\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-2\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"cardinal\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"4\",\"label\":\"failures\"},\"valueAxis\":\"ValueAxis-2\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"5\",\"label\":\"successes\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"resources_scheduled\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"scheduled\"}},{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"resources_downloading\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"downloading\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"resources_failures\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"failures\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"resources_successes\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"successes\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"colors\":{\"Successes\":\"#629E51\",\"failures\":\"#BF1B00\",\"scheduled\":\"#64B0C8\",\"downloading\":\"#962D82\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ }
+ },
+ {
+ "_id": "41626300-8492-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_resources_total",
+ "visState": "{\"title\":\"kisscache_resources_total\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"statistics_successes\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"Successes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"statistics_failures\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"Failures\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ }
+ }
+] \ No newline at end of file
diff --git a/roles/lava-elk-deps/files/lavalab-kibana.json b/roles/lava-elk-deps/files/lavalab-kibana.json
new file mode 100644
index 00000000..4230a3ab
--- /dev/null
+++ b/roles/lava-elk-deps/files/lavalab-kibana.json
@@ -0,0 +1,7548 @@
+[
+ {
+ "_id": "d39f0980-1ff3-11e9-ae2a-939083c6a64e",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of the Ubiquiti Firewall iptables events dashboard.",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 15, \"y\": 0, \"w\": 33, \"x\": 0}, \"title\": \"Event Timeline\", \"panelIndex\": \"1\", \"embeddableConfig\": {\"vis\": {\"colors\": {\"deny\": \"#E24D42\", \"allow\": \"#64B0C8\"}, \"legendOpen\": true}}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"758b3620-1fda-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"2\", \"h\": 15, \"y\": 0, \"w\": 15, \"x\": 33}, \"title\": \"Top Blocked by source IP\", \"panelIndex\": \"2\", \"embeddableConfig\": {}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"1ba82fd0-1ff0-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"3\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 0}, \"title\": \"Allowed Traffic Map\", \"panelIndex\": \"3\", \"embeddableConfig\": {\"mapCenter\": [39.095962936305476, -22.148437500000004], \"mapZoom\": 2}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"5bd53050-1fe9-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 24}, \"title\": \"Blocked Traffic Map\", \"panelIndex\": \"4\", \"embeddableConfig\": {\"mapCenter\": [46.31658418182218, -34.10156250000001], \"mapZoom\": 2}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"8853aa20-1fef-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"5\", \"h\": 18, \"y\": 30, \"w\": 24, \"x\": 0}, \"title\": \"Traffic Breakdown by Protocol\", \"panelIndex\": \"5\", \"embeddableConfig\": {\"vis\": {\"colors\": {\"deny\": \"#E24D42\", \"udp\": \"#F2C96D\", \"tcp\": \"#447EBC\", \"ipv6-icmp\": \"#EA6460\", \"ipv4\": \"#65C5DB\", \"allow\": \"#7EB26D\", \"ipv6\": \"#D683CE\", \"icmp\": \"#F29191\"}}}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"fdea1ad0-1ff4-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"6\", \"h\": 27, \"y\": 48, \"w\": 48, \"x\": 0}, \"title\": \"Event View\", \"panelIndex\": \"6\", \"embeddableConfig\": {}, \"version\": \"6.6.0\", \"type\": \"search\", \"id\": \"c4e80aa0-1fd4-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"7\", \"h\": 18, \"y\": 30, \"w\": 24, \"x\": 24}, \"title\": \"Traffic Breakdown by Port\", \"panelIndex\": \"7\", \"embeddableConfig\": {}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"190bcb50-1ff6-11e9-ae2a-939083c6a64e\"}]",
+ "timeRestore": false,
+ "title": "[Filebeat Iptables] Ubiquiti Firewall Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "05268ee0-86d1-11e8-b59d-21efb914e65c",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of the Suricata Alerts dashboard.",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 10, \"y\": 0, \"w\": 23, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"1\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"494fa290-86d2-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"2\", \"h\": 22, \"y\": 0, \"w\": 25, \"x\": 23}, \"embeddableConfig\": {}, \"panelIndex\": \"2\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"16033310-86d3-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"3\", \"h\": 16, \"y\": 37, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"3\", \"version\": \"6.3.0\", \"type\": \"search\", \"id\": \"1c2bcec0-86d1-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 22, \"w\": 23, \"x\": 0}, \"embeddableConfig\": {\"mapCenter\": [38.548165423046584, -6.328125000000001], \"mapZoom\": 2}, \"panelIndex\": \"4\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"85fed080-86d7-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"5\", \"h\": 15, \"y\": 22, \"w\": 25, \"x\": 23}, \"embeddableConfig\": {\"mapCenter\": [41.77131167976407, 1.9335937500000002], \"mapZoom\": 2}, \"panelIndex\": \"5\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"a09ca070-86d7-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"7\", \"h\": 12, \"y\": 10, \"w\": 12, \"x\": 11}, \"embeddableConfig\": {}, \"panelIndex\": \"7\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"2ccdc1a0-86d8-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"8\", \"h\": 12, \"y\": 10, \"w\": 11, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"8\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"c7b8b8f0-86d8-11e8-b59d-21efb914e65c\"}]",
+ "timeRestore": false,
+ "title": "[Suricata] Alert Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ceefb9e0-1f51-11e9-93ed-f7e068f4aebb",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of the iptables events dashboard.",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 15, \"y\": 0, \"w\": 37, \"x\": 0}, \"embeddableConfig\": {\"vis\": {\"legendOpen\": false}}, \"panelIndex\": \"1\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"4c913eb0-1f51-11e9-93ed-f7e068f4aebb\"}, {\"gridData\": {\"i\": \"2\", \"h\": 15, \"y\": 0, \"w\": 11, \"x\": 37}, \"embeddableConfig\": {}, \"panelIndex\": \"2\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"2599f5e0-1e98-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"3\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 0}, \"embeddableConfig\": {\"mapCenter\": [47.15984001304432, -47.02148437500001], \"mapZoom\": 2}, \"panelIndex\": \"3\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"c4394ec0-1efd-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 24}, \"embeddableConfig\": {\"mapCenter\": [49.15296965617042, -27.949218750000004], \"mapZoom\": 2}, \"panelIndex\": \"4\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"d8cea010-1efd-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"5\", \"h\": 15, \"y\": 30, \"w\": 19, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"5\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"b57b7370-1f1d-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"6\", \"h\": 15, \"y\": 30, \"w\": 18, \"x\": 19}, \"embeddableConfig\": {}, \"panelIndex\": \"6\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"35fe0910-1f26-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"7\", \"h\": 15, \"y\": 30, \"w\": 11, \"x\": 37}, \"embeddableConfig\": {}, \"panelIndex\": \"7\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"683402b0-1f29-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"8\", \"h\": 19, \"y\": 45, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"8\", \"version\": \"6.6.0\", \"type\": \"search\", \"id\": \"b3f1b010-1f26-11e9-8ec4-cf5d91a864b3\"}]",
+ "timeRestore": false,
+ "title": "[Filebeat Iptables] Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "943caca0-87ee-11e7-ad9c-db80de0bf8d3",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Filebeat Kafka module dashboard",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Number of Kafka stracktraces by class\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"Kafka stacktraces\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"columns\": [\"kafka.log.class\", \"kafka.log.trace.class\", \"kafka.log.trace.full\"], \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"All Kafka logs\", \"size_x\": 12, \"size_y\": 5, \"panelIndex\": 3, \"col\": 1, \"columns\": [\"kafka.log.level\", \"kafka.log.component\", \"kafka.log.message\"], \"row\": 6}, {\"type\": \"visualization\", \"id\": \"3f7c33c0-87ee-11e7-ad9c-db80de0bf8d3\", \"size_x\": 12, \"size_y\": 2, \"panelIndex\": 4, \"col\": 1, \"row\": 4}]",
+ "timeRestore": false,
+ "title": "[Filebeat Kafka] Overview",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "158be870-87f4-11e7-ad9c-db80de0bf8d3",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview dashboard for the Filebeat PostgreSQL module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"PostgreSQL Log Level Count\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"PostgreSQL All Logs\", \"size_x\": 12, \"size_y\": 6, \"panelIndex\": 2, \"col\": 1, \"columns\": [\"postgresql.log.user\", \"postgresql.log.database\", \"postgresql.log.level\", \"postgresql.log.message\", \"postgresql.log.query\"], \"row\": 4}, {\"type\": \"visualization\", \"id\": \"3dbd5370-87f3-11e7-ad9c-db80de0bf8d3\", \"size_x\": 9, \"size_y\": 3, \"panelIndex\": 3, \"col\": 4, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Filebeat PostgreSQL] Overview",
+ "uiStateJSON": "{\"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e4c5f230-87f3-11e7-ad9c-db80de0bf8d3",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Dashboard for analyzing the query durations of the Filebeat PostgreSQL module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"postgresql.log.query:*\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"PostgreSQL Query Count and Duration\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"Slow PostgreSQL Queries\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"columns\": [\"postgresql.log.user\", \"postgresql.log.database\", \"postgresql.log.duration\", \"postgresql.log.query\"], \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"PostgreSQL Query Durations\", \"size_x\": 12, \"size_y\": 5, \"panelIndex\": 3, \"col\": 1, \"columns\": [\"postgresql.log.user\", \"postgresql.log.database\", \"postgresql.log.duration\", \"postgresql.log.query\"], \"row\": 4}]",
+ "timeRestore": false,
+ "title": "[Filebeat PostgreSQL] Query Duration Overview",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "abcf35b0-0a82-11e8-bffe-ff7d4f68cf94",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Filebeat MongoDB module overview",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"0fef5710-0a82-11e8-bffe-ff7d4f68cf94\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"e49fe000-0a7e-11e8-bffe-ff7d4f68cf94\", \"size_x\": 8, \"size_y\": 3, \"panelIndex\": 2, \"col\": 5, \"columns\": [\"mongodb.log.timestamp\", \"mongodb.log.severity\", \"mongodb.log.component\", \"mongodb.log.context\", \"mongodb.log.message\"], \"row\": 1}, {\"sort\": [\"mongodb.log.timestamp\", \"asc\"], \"type\": \"search\", \"id\": \"bfc96a60-0a80-11e8-bffe-ff7d4f68cf94\", \"size_x\": 12, \"size_y\": 6, \"panelIndex\": 3, \"col\": 1, \"columns\": [\"mongodb.log.timestamp\", \"mongodb.log.severity\", \"mongodb.log.component\", \"mongodb.log.context\", \"mongodb.log.message\"], \"row\": 4}]",
+ "timeRestore": false,
+ "title": "Overview [Filebeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "78289c40-86da-11e8-b59d-21efb914e65c",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of the Surcata events dashboard.",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 10, \"y\": 0, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"1\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"c7d46c60-86da-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"2\", \"h\": 14, \"y\": 20, \"w\": 9, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"2\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"0a0aa630-86db-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"3\", \"h\": 14, \"y\": 20, \"w\": 11, \"x\": 19}, \"embeddableConfig\": {}, \"panelIndex\": \"3\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"728f64c0-86db-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"4\", \"h\": 10, \"y\": 10, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"4\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"9d5b5b50-86db-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"5\", \"h\": 19, \"y\": 34, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"5\", \"version\": \"6.3.0\", \"type\": \"search\", \"id\": \"13dd22f0-86cc-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"6\", \"h\": 14, \"y\": 20, \"w\": 9, \"x\": 30}, \"embeddableConfig\": {}, \"panelIndex\": \"6\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"5f99eb50-86dc-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"7\", \"h\": 14, \"y\": 20, \"w\": 9, \"x\": 39}, \"embeddableConfig\": {}, \"panelIndex\": \"7\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"8e7f88d0-86dc-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"8\", \"h\": 14, \"y\": 20, \"w\": 10, \"x\": 9}, \"embeddableConfig\": {}, \"panelIndex\": \"8\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"0a363820-86dd-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"9\", \"h\": 16, \"y\": 53, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"9\", \"version\": \"6.3.0\", \"type\": \"search\", \"id\": \"d57a2db0-86ca-11e8-b59d-21efb914e65c\"}]",
+ "timeRestore": false,
+ "title": "[Suricata] Events Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Apache2-Dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Filebeat Apache2 module dashboard",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Apache2-access-unique-IPs-map\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Apache2-response-codes-of-top-URLs\", \"size_x\": 8, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Apache2-browsers\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 3, \"col\": 9, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Apache2-operating-systems\", \"size_x\": 2, \"size_y\": 2, \"panelIndex\": 4, \"col\": 11, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"Apache2-error-logs-over-time\", \"size_x\": 12, \"size_y\": 2, \"panelIndex\": 5, \"col\": 1, \"row\": 9}, {\"type\": \"visualization\", \"id\": \"Apache2-response-codes-over-time\", \"size_x\": 10, \"size_y\": 2, \"panelIndex\": 6, \"col\": 1, \"row\": 4}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"Apache2-errors-log\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 7, \"col\": 1, \"columns\": [\"apache2.error.client\", \"apache2.error.level\", \"apache2.error.module\", \"apache2.error.message\"], \"row\": 11}]",
+ "timeRestore": false,
+ "title": "[Filebeat Apache2] Access and error logs",
+ "uiStateJSON": "{\"P-1\": {\"mapCenter\": [40.713955826286046, -0.17578125], \"mapCollar\": {\"zoom\": 2, \"bottom_right\": {\"lat\": -39.667755, \"lon\": 180}, \"top_left\": {\"lat\": 90, \"lon\": -180}}, \"mapBounds\": {\"bottom_right\": {\"lat\": -3.864254615721396, \"lon\": 205.3125}, \"top_left\": {\"lat\": 67.7427590666639, \"lon\": -205.6640625}}, \"mapZoom\": 2}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dfbb49f0-0a0f-11e7-8a62-2d05eaaac5cb",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Dashboard for the Auditd Filebeat module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"6295bdd0-0a0e-11e7-825f-6748cda7d858\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"5ebdbe50-0a0f-11e7-825f-6748cda7d858\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 2, \"col\": 9, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"2bb0fa70-0a11-11e7-9e84-43da493ad0c7\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"d1726930-0a7f-11e7-8b04-eb22a5669f27\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 5, \"col\": 7, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"c5411910-0a87-11e7-8b04-eb22a5669f27\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 6, \"col\": 5, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"4ac0a370-0a11-11e7-8b04-eb22a5669f27\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 7, \"col\": 1, \"columns\": [\"auditd.log.record_type\", \"auditd.log.sequence\", \"auditd.log.acct\"], \"row\": 8}]",
+ "timeRestore": false,
+ "title": "[Filebeat Auditd] Audit Events",
+ "uiStateJSON": "{\"P-5\": {\"mapCollar\": {\"zoom\": 2, \"bottom_right\": {\"lat\": -87.16078, \"lon\": 180}, \"top_left\": {\"lat\": 87.16078, \"lon\": -180}}, \"mapZoom\": 2, \"mapBounds\": {\"bottom_right\": {\"lat\": -43.580390855607845, \"lon\": 102.65625}, \"top_left\": {\"lat\": 43.58039085560784, \"lon\": -102.3046875}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "277876d0-fa2c-11e6-bbd3-29c986c96e5a",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Sudo commands dashboard from the Filebeat System module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"5c7af030-fa2a-11e6-bbd3-29c986c96e5a\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 1, \"col\": 1, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"51164310-fa2b-11e6-bbd3-29c986c96e5a\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"dc589770-fa2b-11e6-bbd3-29c986c96e5a\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 3, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"327417e0-8462-11e7-bab8-bd2f0fb42c54\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 4, \"col\": 1, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Filebeat System] Sudo commands",
+ "uiStateJSON": "{\"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "26309570-2419-11e7-a83b-d5f4cebac9ff",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Filebeat Icinga module dashboard for the debug logs",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"0bc34b60-2419-11e7-a83b-d5f4cebac9ff\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"fb09d4b0-2418-11e7-a83b-d5f4cebac9ff\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"c876e6a0-2418-11e7-a83b-d5f4cebac9ff\", \"size_x\": 12, \"size_y\": 29, \"panelIndex\": 3, \"col\": 1, \"columns\": [\"icinga.debug.facility\", \"icinga.debug.severity\", \"icinga.debug.message\"], \"row\": 4}]",
+ "timeRestore": false,
+ "title": "[Filebeat Icinga] Debug Log",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f693d260-2417-11e7-a83b-d5f4cebac9ff",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Filebeat Icinga module dashboard for the main log files",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"d8e5dc40-2417-11e7-a83b-d5f4cebac9ff\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 7, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"ffaf5a30-2413-11e7-a0d9-39604d45ca7f\", \"size_x\": 12, \"size_y\": 25, \"panelIndex\": 2, \"col\": 1, \"columns\": [\"icinga.main.facility\", \"icinga.main.severity\", \"icinga.main.message\"], \"row\": 4}, {\"type\": \"visualization\", \"id\": \"2cf77780-2418-11e7-a83b-d5f4cebac9ff\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Filebeat Icinga] Main Log",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4278ad30-fe16-11e7-a3b0-d13028918f9f",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Dashboard for the Filebeat IIS module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 3, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"1\", \"id\": \"eb2db5b0-fe11-11e7-a3b0-d13028918f9f\"}, {\"gridData\": {\"i\": \"2\", \"h\": 3, \"y\": 3, \"w\": 7, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"2\", \"id\": \"f31414b0-fe14-11e7-a3b0-d13028918f9f\"}, {\"gridData\": {\"i\": \"4\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"4\", \"id\": \"63129c80-fe12-11e7-a3b0-d13028918f9f\"}, {\"gridData\": {\"i\": \"5\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"5\", \"id\": \"ccd3f9c0-fe12-11e7-a3b0-d13028918f9f\"}, {\"gridData\": {\"i\": \"6\", \"h\": 3, \"y\": 3, \"w\": 5, \"x\": 7}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"6\", \"id\": \"41f38230-fe17-11e7-a3b0-d13028918f9f\"}, {\"gridData\": {\"i\": \"7\", \"h\": 3, \"y\": 6, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"7\", \"id\": \"c0d02cd0-fe1b-11e7-a3b0-d13028918f9f\"}]",
+ "timeRestore": false,
+ "title": "[Filebeat IIS] Access and error logs",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3560d580-aa34-11e8-9c06-877f0445e3e0",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Filebeat HAProxy module dashboard",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 15, \"y\": 0, \"w\": 24, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"1\", \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"55251360-aa32-11e8-9c06-877f0445e3e0\"}, {\"gridData\": {\"i\": \"2\", \"h\": 15, \"y\": 0, \"w\": 24, \"x\": 24}, \"embeddableConfig\": {}, \"panelIndex\": \"2\", \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"7fb671f0-aa32-11e8-9c06-877f0445e3e0\"}, {\"gridData\": {\"i\": \"3\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"3\", \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"11f8b9c0-aa32-11e8-9c06-877f0445e3e0\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 24}, \"embeddableConfig\": {}, \"panelIndex\": \"4\", \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"68af8ef0-aa33-11e8-9c06-877f0445e3e0\"}]",
+ "timeRestore": false,
+ "title": "[Filebeat HAProxy] Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b9163ea0-2417-11e7-a83b-d5f4cebac9ff",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Filebeat Icinga module dashboard for startup errors",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"a59b5e00-2417-11e7-a83b-d5f4cebac9ff\", \"size_x\": 12, \"size_y\": 2, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"710043e0-2417-11e7-a83b-d5f4cebac9ff\", \"size_x\": 12, \"size_y\": 13, \"panelIndex\": 2, \"col\": 1, \"columns\": [\"icinga.startup.facility\", \"icinga.startup.severity\", \"icinga.startup.message\"], \"row\": 3}]",
+ "timeRestore": false,
+ "title": "[Filebeat Icinga] Startup Errors",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "55a9e6e0-a29e-11e7-928f-5dbe6f6f5519",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Dashboard for the Filebeat Nginx module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Nginx-Access-Browsers\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 3, \"col\": 10, \"row\": 12}, {\"type\": \"visualization\", \"id\": \"Nginx-Access-OSes\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 12}, {\"type\": \"visualization\", \"id\": \"Nginx-Access-Map\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 8, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"b70b1b20-a1f4-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 13, \"col\": 1, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"9184fa00-a1f5-11e7-928f-5dbe6f6f5519\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 14, \"col\": 7, \"row\": 9}, {\"type\": \"visualization\", \"id\": \"46322e50-a1f6-11e7-928f-5dbe6f6f5519\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 15, \"col\": 1, \"row\": 9}, {\"type\": \"visualization\", \"id\": \"0dd6f320-a29f-11e7-928f-5dbe6f6f5519\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 16, \"col\": 1, \"row\": 12}, {\"type\": \"visualization\", \"id\": \"97109780-a2a5-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 17, \"col\": 1, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Filebeat Nginx] Overview",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"legendOpen\": true}}, \"P-8\": {\"mapCenter\": [50.51342652633956, -0.17578125], \"mapCollar\": {\"zoom\": 2, \"bottom_right\": {\"lat\": -49.583095, \"lon\": 180}, \"top_left\": {\"lat\": 90, \"lon\": -180}}, \"mapBounds\": {\"bottom_right\": {\"lat\": -7.362466865535738, \"lon\": 245.39062500000003}, \"top_left\": {\"lat\": 77.07878389624943, \"lon\": -245.74218750000003}}, \"mapZoom\": 2}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-MySQL-Dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview dashboard for the Filebeat MySQL module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"MySQL-slowest-queries\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 1, \"col\": 1, \"row\": 8}, {\"type\": \"visualization\", \"id\": \"MySQL-Slow-queries-over-time\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"MySQL-error-logs\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 7, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"Filebeat-MySQL-error-log\", \"size_x\": 6, \"size_y\": 5, \"panelIndex\": 4, \"col\": 7, \"columns\": [\"mysql.error.level\", \"mysql.error.message\"], \"row\": 8}, {\"type\": \"visualization\", \"id\": \"MySQL-Error-logs-levels\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 5, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"MySQL-Slow-logs-by-count\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 6, \"col\": 1, \"row\": 4}]",
+ "timeRestore": false,
+ "title": "[Filebeat MySQL] Overview",
+ "uiStateJSON": "{\"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7fea2930-478e-11e7-b1f0-cb29bac6bf8b",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview dashboard for the FIlebeat Redis module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"78b9afe0-478f-11e7-b1f0-cb29bac6bf8b\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"d2864600-478f-11e7-be88-2ddb32f3df97\", \"size_x\": 9, \"size_y\": 3, \"panelIndex\": 3, \"col\": 4, \"row\": 5}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"73613570-4791-11e7-be88-2ddb32f3df97\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 4, \"col\": 1, \"columns\": [\"beat.name\", \"redis.log.level\", \"redis.log.role\", \"redis.log.message\"], \"row\": 8}, {\"type\": \"visualization\", \"id\": \"dcccaa80-4791-11e7-be88-2ddb32f3df97\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 5, \"col\": 7, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"0ab87b80-478e-11e7-b1f0-cb29bac6bf8b\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 6, \"col\": 1, \"columns\": [\"beat.name\", \"message\", \"redis.slowlog.duration.us\", \"redis.slowlog.key\"], \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Filebeat Redis] Overview",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"legendOpen\": false}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Logstash-Slowlog-Dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"742e45d0-cbdd-11e7-9852-73e0a9df1bb6\", \"size_x\": 12, \"size_y\": 9, \"panelIndex\": 1, \"col\": 1, \"columns\": [\"logstash.slowlog.level\", \"logstash.slowlog.plugin_type\", \"logstash.slowlog.plugin_name\", \"logstash.slowlog.message\", \"logstash.slowlog.plugin_params\", \"logstash.slowlog.execution_time_ns\"], \"row\": 7}, {\"type\": \"visualization\", \"id\": \"0b1dace0-cbdb-11e7-9852-73e0a9df1bb6\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"e90b7240-cbda-11e7-9852-73e0a9df1bb6\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"b3315630-cbdf-11e7-9852-73e0a9df1bb6\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 4, \"col\": 1, \"row\": 4}]",
+ "timeRestore": false,
+ "title": "Slowlogs [Filebeat Logstash]",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": 3, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0d3f2380-fa78-11e6-ae9b-81e5311e8cab",
+ "_type": "dashboard",
+ "_source": {
+ "description": "New users and groups dashboard for the System module in Filebeat",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"f398d2f0-fa77-11e6-ae9b-81e5311e8cab\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"5dd15c00-fa78-11e6-ae9b-81e5311e8cab\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"e121b140-fa78-11e6-a1df-a78bd7504d38\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"d56ee420-fa79-11e6-a1df-a78bd7504d38\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"12667040-fa80-11e6-a1df-a78bd7504d38\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 5, \"col\": 1, \"row\": 8}, {\"type\": \"visualization\", \"id\": \"346bb290-fa80-11e6-a1df-a78bd7504d38\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 6, \"col\": 7, \"row\": 8}, {\"type\": \"visualization\", \"id\": \"327417e0-8462-11e7-bab8-bd2f0fb42c54\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 7, \"col\": 1, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Filebeat System] New users and groups",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5517a150-f9ce-11e6-8115-a7c18106d86a",
+ "_type": "dashboard",
+ "_source": {
+ "description": "SSH dashboard for the System module in Filebeat",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"d16bb400-f9cc-11e6-8115-a7c18106d86a\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"78b74f30-f9cd-11e6-8115-a7c18106d86a\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"341ffe70-f9ce-11e6-8115-a7c18106d86a\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 3, \"col\": 1, \"row\": 8}, {\"type\": \"visualization\", \"id\": \"3cec3eb0-f9d3-11e6-8a3e-2b904044ea1d\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 4, \"col\": 7, \"row\": 8}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"62439dc0-f9c9-11e6-a747-6121780e0414\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 5, \"col\": 1, \"columns\": [\"system.auth.ssh.event\", \"system.auth.ssh.method\", \"system.auth.user\", \"system.auth.ssh.ip\", \"system.auth.ssh.geoip.country_iso_code\"], \"row\": 12}, {\"type\": \"visualization\", \"id\": \"327417e0-8462-11e7-bab8-bd2f0fb42c54\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 6, \"col\": 1, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Filebeat System] SSH login attempts",
+ "uiStateJSON": "{\"P-4\": {\"mapCenter\": [39.774769485295465, 23.203125], \"mapCollar\": {\"zoom\": 3, \"bottom_right\": {\"lat\": -14.777884999999998, \"lon\": 125.771485}, \"top_left\": {\"lat\": 85.593335, \"lon\": -79.189455}}, \"mapBounds\": {\"bottom_right\": {\"lat\": 10.31491928581316, \"lon\": 74.53125}, \"top_left\": {\"lat\": 60.50052541051131, \"lon\": -27.94921875}}, \"mapZoom\": 3}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-syslog-dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Syslog dashboard from the Filebeat System module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Syslog-events-by-hostname\", \"size_x\": 8, \"size_y\": 4, \"panelIndex\": 1, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"Syslog-hostnames-and-processes\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 2, \"col\": 9, \"row\": 2}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"Syslog-system-logs\", \"size_x\": 12, \"size_y\": 7, \"panelIndex\": 3, \"col\": 1, \"columns\": [\"system.syslog.hostname\", \"system.syslog.program\", \"system.syslog.message\"], \"row\": 6}, {\"type\": \"visualization\", \"id\": \"327417e0-8462-11e7-bab8-bd2f0fb42c54\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 4, \"col\": 1, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Filebeat System] Syslog dashboard",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "046212a0-a2a1-11e7-928f-5dbe6f6f5519",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Dashboard for the Filebeat Nginx module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"9eb25600-a1f0-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 11, \"col\": 1, \"columns\": [\"nginx.error.level\", \"nginx.error.message\"], \"row\": 5}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"6d9e66d0-a1f0-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 7, \"panelIndex\": 16, \"col\": 1, \"columns\": [\"nginx.access.url\", \"nginx.access.method\", \"nginx.access.response_code\", \"nginx.access.body_sent.bytes\"], \"row\": 8}, {\"type\": \"visualization\", \"id\": \"1cfb1a80-a1f4-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 18, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"97109780-a2a5-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 19, \"col\": 1, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Filebeat Nginx] Access and error logs",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Logstash-Log-Dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"0b1dace0-cbdb-11e7-9852-73e0a9df1bb6\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"e90b7240-cbda-11e7-9852-73e0a9df1bb6\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"cfaba090-cbda-11e7-9852-73e0a9df1bb6\", \"size_x\": 12, \"size_y\": 10, \"panelIndex\": 4, \"col\": 1, \"columns\": [\"logstash.log.level\", \"logstash.log.module\", \"logstash.log.message\", \"source\"], \"row\": 4}]",
+ "timeRestore": false,
+ "title": "Logstash Logs [Filebeat Logstash]",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Remote-IP-URL-Explorer",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Machine Learning dashboard for the Filebeat Traefik module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Unique-Count-URL-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Response-Code-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Top-Remote-IPs-Table\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Map\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Top-URLs-Table\", \"size_x\": 12, \"size_y\": 8, \"panelIndex\": 5, \"col\": 1, \"row\": 7}]",
+ "timeRestore": false,
+ "title": "[Filebeat Traefik] [ML] Remote IP URL Explorer",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Remote-IP-URL-Explorer",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Machine Learning dashboard for the Filebeat Nginx module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Unique-Count-URL-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Response-Code-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Top-Remote-IPs-Table\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Map\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Top-URLs-Table\", \"size_x\": 12, \"size_y\": 8, \"panelIndex\": 5, \"col\": 1, \"row\": 7}]",
+ "timeRestore": false,
+ "title": "[Filebeat Nginx] [ML] Remote IP URL Explorer",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Traefik-Dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Dashboard for the Filebeat Traefik module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}]}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Traefik-Access-Browsers\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 3, \"col\": 1, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"Traefik-Access-OSes\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 4, \"col\": 5, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"New-Visualization\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 5, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"Traefik-Access-Response-codes-by-top-URLs\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 6, \"col\": 1, \"row\": 7}, {\"type\": \"visualization\", \"id\": \"Sent-sizes\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 7, \"col\": 9, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"Traefik-Access-Map\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 8, \"col\": 1, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Filebeat Traefik] Access logs",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"legendOpen\": true}}, \"P-8\": {\"mapCenter\": [50.51342652633956, -0.17578125]}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "69f5ae20-eb02-11e7-8f04-51231daa5b05",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Dashboard for visualizing the data collected by the Osquery compliance pack.",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 4, \"y\": 6, \"w\": 6, \"x\": 6}, \"type\": \"search\", \"version\": \"6.2.4\", \"panelIndex\": \"1\", \"id\": \"7a9482d0-eb00-11e7-8f04-51231daa5b05\"}, {\"gridData\": {\"i\": \"2\", \"h\": 5, \"y\": 1, \"w\": 7, \"x\": 5}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"2\", \"id\": \"a9fd8bb0-eb01-11e7-8f04-51231daa5b05\"}, {\"gridData\": {\"i\": \"3\", \"h\": 4, \"y\": 6, \"w\": 6, \"x\": 0}, \"type\": \"search\", \"version\": \"6.2.4\", \"panelIndex\": \"3\", \"id\": \"3824b080-eb02-11e7-8f04-51231daa5b05\"}, {\"gridData\": {\"i\": \"4\", \"h\": 3, \"y\": 1, \"w\": 5, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"4\", \"id\": \"1da1ed30-eb03-11e7-8f04-51231daa5b05\"}, {\"gridData\": {\"i\": \"5\", \"h\": 2, \"y\": 4, \"w\": 5, \"x\": 0}, \"embeddableConfig\": {\"vis\": {\"legendOpen\": false, \"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"panelIndex\": \"5\", \"version\": \"6.2.4\", \"type\": \"visualization\", \"id\": \"240f3630-eb05-11e7-8f04-51231daa5b05\"}, {\"gridData\": {\"i\": \"6\", \"h\": 1, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"6\", \"id\": \"2d6e0760-f4ab-11e7-8647-534bb4c21040\"}]",
+ "timeRestore": false,
+ "title": "[Osquery Result] Compliance pack",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c0a7ce90-f4aa-11e7-8647-534bb4c21040",
+ "_type": "dashboard",
+ "_source": {
+ "description": "This dashboard shows data collected by the OSSEC rootkit pack from osquery",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 2, \"y\": 1, \"w\": 4, \"x\": 8}, \"type\": \"visualization\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"1\", \"id\": \"6ec10290-f4aa-11e7-8647-534bb4c21040\"}, {\"gridData\": {\"i\": \"2\", \"h\": 2, \"y\": 1, \"w\": 4, \"x\": 4}, \"type\": \"visualization\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"2\", \"id\": \"ffdbba50-f4a9-11e7-8647-534bb4c21040\"}, {\"gridData\": {\"i\": \"3\", \"h\": 2, \"y\": 1, \"w\": 4, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"3\", \"id\": \"ab587180-f4a9-11e7-8647-534bb4c21040\"}, {\"gridData\": {\"i\": \"4\", \"h\": 1, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"4\", \"id\": \"2d6e0760-f4ab-11e7-8647-534bb4c21040\"}, {\"gridData\": {\"i\": \"5\", \"h\": 4, \"y\": 3, \"w\": 12, \"x\": 0}, \"type\": \"search\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"5\", \"id\": \"0fe5dc00-f49b-11e7-8647-534bb4c21040\"}]",
+ "timeRestore": false,
+ "title": "[Osquery Result] OSSEC rootkit pack",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Remote-IP-Count-Explorer",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Machine learning dashboard, for the Filebeat Traefik module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Remote-IP-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Response-Code-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Top-Remote-IPs-Table\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Map\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Top-URLs-Table\", \"size_x\": 12, \"size_y\": 9, \"panelIndex\": 5, \"col\": 1, \"row\": 7}]",
+ "timeRestore": false,
+ "title": "[Filebeat Traefik] [ML] Remote IP Count Explorer",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Remote-IP-Count-Explorer",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Machine learning dashboard, for the Filebeat Nginx module",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Remote-IP-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Response-Code-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Top-Remote-IPs-Table\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Map\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Top-URLs-Table\", \"size_x\": 12, \"size_y\": 9, \"panelIndex\": 5, \"col\": 1, \"row\": 7}]",
+ "timeRestore": false,
+ "title": "[Filebeat Nginx] [ML] Remote IP Count Explorer",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9458e6d0-1a79-11e9-98b1-8df03cb1ed5f",
+ "_type": "dashboard",
+ "_source": {
+ "title": "LKFT Dashboard",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"gridData\":{\"w\":24,\"h\":15,\"x\":0,\"y\":0,\"i\":\"1\"},\"version\":\"6.5.1\",\"panelIndex\":\"1\",\"type\":\"visualization\",\"id\":\"a8581090-a623-11e8-8538-f34fec203819\",\"embeddableConfig\":{}}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-7d",
+ "refreshInterval": {
+ "pause": true,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "158314c0-70be-11e9-8ab9-1b38609ca045",
+ "_type": "dashboard",
+ "_source": {
+ "title": "LKFT Jobfailure",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"panelIndex\":\"1\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":4,\"i\":\"1\"},\"version\":\"6.1.4-1\",\"type\":\"visualization\",\"id\":\"daff3a10-725f-11e9-8ab9-1b38609ca045\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-4h",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "AV4REOpp5NkDleZmzKkE",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of docker containers",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Docker-containers\", \"size_x\": 7, \"size_y\": 5, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Docker-Number-of-Containers\", \"size_x\": 5, \"size_y\": 2, \"panelIndex\": 2, \"col\": 8, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Docker-containers-per-host\", \"size_x\": 2, \"size_y\": 3, \"panelIndex\": 3, \"col\": 8, \"row\": 3}, {\"type\": \"visualization\", \"id\": \"Docker-images-and-names\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 7, \"col\": 10, \"row\": 3}, {\"type\": \"visualization\", \"id\": \"Docker-CPU-usage\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 1, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Docker-memory-usage\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 5, \"col\": 7, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Docker-Network-IO\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 6, \"col\": 1, \"row\": 9}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Docker] Overview",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"legendOpen\": true}}, \"P-7\": {\"vis\": {\"legendOpen\": true}}, \"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": 1, \"direction\": \"asc\"}}}}, \"P-2\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-3\": {\"vis\": {\"legendOpen\": true}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-Apache-HTTPD-server-status",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of Apache server status",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Apache-HTTPD-CPU\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 7, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Hostname-list\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Load1-slash-5-slash-15\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Scoreboard\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 4, \"col\": 1, \"row\": 7}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Total-accesses-and-kbytes\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 5, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Uptime\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 6, \"col\": 4, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Workers\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 7, \"col\": 1, \"row\": 4}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Apache] Overview",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-6\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "CPU-slash-Memory-per-container",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of container metrics",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Container-CPU-usage\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"System-Navigation\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 3, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Container-Memory-stats\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 4, \"col\": 1, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"Container-Block-IO\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 5, \"col\": 1, \"row\": 8}]",
+ "timeRestore": false,
+ "title": "[Metricbeat System] Containers overview",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f2dc7320-f519-11e6-a3c9-9d1f7c42b045",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of Go profiling information",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"58000780-f529-11e6-844d-b170e2f0a07e\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 8, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"95388680-f52a-11e6-969c-518c48c913e4\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 9, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"b59a5200-f52a-11e6-969c-518c48c913e4\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 10, \"col\": 9, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"9a9a8bf0-f52a-11e6-969c-518c48c913e4\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 11, \"col\": 5, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"b046cb80-f52a-11e6-969c-518c48c913e4\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 12, \"col\": 7, \"row\": 8}, {\"type\": \"visualization\", \"id\": \"ab226b50-f52a-11e6-969c-518c48c913e4\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 13, \"col\": 1, \"row\": 8}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Golang] Overview",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9151c900-471d-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "description": "HAProxy backend metrics",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 2, \"y\": 0, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"1\", \"id\": \"a64b4fd0-471c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"2\", \"h\": 2, \"y\": 0, \"w\": 3, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"2\", \"id\": \"794b6cd0-471d-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"3\", \"h\": 4, \"y\": 2, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"3\", \"id\": \"bb0ab500-4735-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"4\", \"h\": 2, \"y\": 0, \"w\": 3, \"x\": 9}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"4\", \"id\": \"40bed190-473b-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"5\", \"h\": 2, \"y\": 2, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"0751ed00-479c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"6\", \"h\": 2, \"y\": 4, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"6\", \"id\": \"b3463670-47a1-11e8-bc13-1397384faad3\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat HAProxy] Backend",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ea488d90-8e63-11e8-8fa2-3d5f811fbd0f",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Kafka analysis of topics and consumer groups",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 13, \"y\": 20, \"w\": 24, \"x\": 0}, \"title\": \"Kafka Topic & Consumer Offsets\", \"panelIndex\": \"1\", \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"b9d12c80-8e63-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"3\", \"h\": 6, \"y\": 0, \"w\": 16, \"x\": 0}, \"title\": \"Kafka Controls\", \"panelIndex\": \"3\", \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"8d2f79a0-8e65-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"6\", \"h\": 14, \"y\": 6, \"w\": 24, \"x\": 0}, \"title\": \"Consumer Group Lag by Topic\", \"panelIndex\": \"6\", \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"944188f0-8e79-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"10\", \"h\": 6, \"y\": 0, \"w\": 25, \"x\": 16}, \"title\": \"Kafka Metrics\", \"panelIndex\": \"10\", \"embeddableConfig\": {\"spy\": null}, \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"dc89f8d0-8e8e-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"12\", \"h\": 7, \"y\": 33, \"w\": 24, \"x\": 0}, \"title\": \"Consumer Partition Reassignments\", \"panelIndex\": \"12\", \"embeddableConfig\": {}, \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"587f2360-8f21-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"13\", \"h\": 6, \"y\": 0, \"w\": 7, \"x\": 41}, \"title\": \"Consumer Metrics\", \"panelIndex\": \"13\", \"embeddableConfig\": {}, \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"1681f1a0-90e7-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"14\", \"h\": 13, \"y\": 27, \"w\": 24, \"x\": 24}, \"title\": \"Kafka Consumer Group Clients\", \"panelIndex\": \"14\", \"embeddableConfig\": {\"spy\": null, \"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"9a7576e0-d231-11e8-8766-dbbdc39e7ba9\"}, {\"gridData\": {\"i\": \"15\", \"h\": 10, \"y\": 6, \"w\": 24, \"x\": 24}, \"title\": \"Kafka Brokers\", \"panelIndex\": \"15\", \"embeddableConfig\": {}, \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"27dd5960-d2ed-11e8-8766-dbbdc39e7ba9\"}, {\"gridData\": {\"i\": \"16\", \"h\": 11, \"y\": 16, \"w\": 24, \"x\": 24}, \"title\": \"Kafka Topic Details\", \"panelIndex\": \"16\", \"embeddableConfig\": {\"table\": {\"sort\": {\"column\": \"26d2cd90-d2f5-11e8-9dd4-c5f03280d7b0\", \"order\": \"desc\"}}}, \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"491fee50-d2f5-11e8-8766-dbbdc39e7ba9\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Kafka] Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "af7225b0-5794-11e8-afa2-e9067ea62228",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Kubernetes API server metrics",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": false, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 24, \"y\": 22, \"w\": 24, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"1\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"7cbeb750-5794-11e8-afa2-e9067ea62228\"}, {\"gridData\": {\"i\": \"3\", \"h\": 22, \"y\": 0, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"3\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"ec360ff0-57a0-11e8-afa2-e9067ea62228\"}, {\"gridData\": {\"i\": \"4\", \"h\": 24, \"y\": 22, \"w\": 24, \"x\": 24}, \"embeddableConfig\": {}, \"panelIndex\": \"4\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"95a7f110-57a2-11e8-afa2-e9067ea62228\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Kubernetes] API server",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0836a4b0-47bd-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "description": "HAProxy HTTP backend metrics",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 2, \"y\": 5, \"w\": 4, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"1\", \"id\": \"a64b4fd0-471c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"2\", \"h\": 2, \"y\": 0, \"w\": 3, \"x\": 9}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"2\", \"id\": \"794b6cd0-471d-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"3\", \"h\": 3, \"y\": 2, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"3\", \"id\": \"bb0ab500-4735-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"4\", \"h\": 2, \"y\": 0, \"w\": 3, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"4\", \"id\": \"40bed190-473b-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"5\", \"h\": 2, \"y\": 5, \"w\": 4, \"x\": 4}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"0751ed00-479c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"6\", \"h\": 2, \"y\": 5, \"w\": 4, \"x\": 8}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"6\", \"id\": \"b3463670-47a1-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"7\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"7\", \"id\": \"fcbdfa60-47bd-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"8\", \"h\": 2, \"y\": 3, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"8\", \"id\": \"981d1040-47be-11e8-bc13-1397384faad3\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat HAProxy] HTTP backend",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8cc50a50-47e0-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "description": "HAProxy metrics for HTTP mode",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"5\", \"h\": 2, \"y\": 5, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"0751ed00-479c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"6\", \"h\": 2, \"y\": 3, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"6\", \"id\": \"b3463670-47a1-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"7\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"7\", \"id\": \"fcbdfa60-47bd-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"8\", \"h\": 2, \"y\": 3, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"8\", \"id\": \"981d1040-47be-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"10\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"10\", \"id\": \"72e84b00-47e1-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"11\", \"h\": 2, \"y\": 5, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"11\", \"id\": \"976b0910-47e4-11e8-bc13-1397384faad3\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat HAProxy] HTTP server",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4b555c30-47dd-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "description": "HAProxy overview",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"2\", \"h\": 6, \"y\": 2, \"w\": 4, \"x\": 8}, \"title\": \"Servers\", \"panelIndex\": \"2\", \"version\": \"6.2.2\", \"type\": \"visualization\", \"id\": \"79350d50-47db-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"3\", \"h\": 6, \"y\": 2, \"w\": 4, \"x\": 4}, \"title\": \"Backends\", \"panelIndex\": \"3\", \"version\": \"6.2.2\", \"type\": \"visualization\", \"id\": \"8c8f0300-47dc-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"4\", \"h\": 6, \"y\": 2, \"w\": 4, \"x\": 0}, \"title\": \"Frontends\", \"panelIndex\": \"4\", \"version\": \"6.2.2\", \"type\": \"visualization\", \"id\": \"f1e27ed0-47dc-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"5\", \"h\": 2, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"a64b4fd0-471c-11e8-bc13-1397384faad3\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat HAProxy] Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e9057ae0-47c5-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "description": "HAProxy frontend metrics",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"3\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"3\", \"id\": \"86159190-47c5-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"4\", \"h\": 3, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"4\", \"id\": \"fcbdfa60-47bd-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"5\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"30956d00-47d7-11e8-bc13-1397384faad3\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat HAProxy] HTTP frontend",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d5878d00-47c5-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "description": "HAProxy frontend metrics",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"2\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"2\", \"id\": \"a64b4fd0-471c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"3\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"3\", \"id\": \"86159190-47c5-11e8-bc13-1397384faad3\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat HAProxy] Frontend",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "AV4RGUqo5NkDleZmzKuZ",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of Kubernetes cluster metrics",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false, \"useMargins\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"1\", \"id\": \"022a54c0-2bf5-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"2\", \"h\": 3, \"y\": 6, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"2\", \"id\": \"44f12b40-2bf4-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"5\", \"h\": 3, \"y\": 0, \"w\": 3, \"x\": 3}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"cd059410-2bfb-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"6\", \"h\": 3, \"y\": 3, \"w\": 2, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"6\", \"id\": \"e1018b90-2bfb-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"7\", \"h\": 3, \"y\": 6, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"7\", \"id\": \"d6564360-2bfc-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"8\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"8\", \"id\": \"16fa4470-2bfd-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"9\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"9\", \"id\": \"294546b0-30d6-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"10\", \"h\": 3, \"y\": 0, \"w\": 3, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"10\", \"id\": \"408fccf0-30d6-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"11\", \"h\": 3, \"y\": 12, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"11\", \"id\": \"58e644f0-30d6-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"12\", \"h\": 3, \"y\": 12, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"12\", \"id\": \"a4c9d360-30df-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"13\", \"h\": 3, \"y\": 3, \"w\": 2, \"x\": 4}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"13\", \"id\": \"174a6ad0-30e0-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"14\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"14\", \"id\": \"7aac4fd0-30e0-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"15\", \"h\": 3, \"y\": 3, \"w\": 2, \"x\": 2}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"15\", \"id\": \"da1ff7c0-30ed-11e7-b9e5-2b5b07213ab3\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Kubernetes] Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-MongoDB",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of MongoDB server status",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"MongoDB-hosts\", \"size_x\": 8, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"MongoDB-Engine-ampersand-Version\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 4, \"col\": 9, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"MongoDB-operation-counters\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"MongoDB-Concurrent-transactions-Read\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 6, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"MongoDB-Concurrent-transactions-Write\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 7, \"col\": 10, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"MongoDB-memory-stats\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 5, \"col\": 1, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"MongoDB-asserts\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 7, \"row\": 7}, {\"type\": \"visualization\", \"id\": \"MongoDB-WiredTiger-Cache\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 8, \"col\": 1, \"row\": 7}]",
+ "timeRestore": false,
+ "title": "[Metricbeat MongoDB] Overview",
+ "uiStateJSON": "{\"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "AV4YjZ5pux-M-tCAunxK",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of Redis server metrics",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Redis-Clients-Metrics\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Redis-Connected-clients\", \"size_x\": 5, \"size_y\": 3, \"panelIndex\": 1, \"col\": 4, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Redis-hosts\", \"size_x\": 12, \"size_y\": 2, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"Redis-Server-Versions\", \"size_x\": 4, \"size_y\": 2, \"panelIndex\": 4, \"col\": 1, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Redis-server-mode\", \"size_x\": 4, \"size_y\": 2, \"panelIndex\": 5, \"col\": 5, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Redis-multiplexing-API\", \"size_x\": 3, \"size_y\": 2, \"panelIndex\": 6, \"col\": 9, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Redis-Keyspaces\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 7, \"col\": 9, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Redis] Overview",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"legendOpen\": true}}, \"P-2\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "28969190-0511-11e9-9c60-d582a238e2c5",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Redis keys metrics",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"controlledBy\":\"1545388837304\",\"disabled\":false,\"index\":\"bc2e8280-0509-11e9-9c60-d582a238e2c5\",\"key\":\"redis.keyspace.id\",\"negate\":false,\"params\":[\"db0\",\"db1\"],\"type\":\"phrases\",\"value\":\"db0, db1\"},\"query\":{\"bool\":{\"minimum_should_match\":1,\"should\":[{\"match_phrase\":{\"redis.keyspace.id\":\"db0\"}},{\"match_phrase\":{\"redis.keyspace.id\":\"db1\"}}]}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 5, \"y\": 0, \"w\": 12, \"x\": 0}, \"title\": \"Keyspace selector\", \"panelIndex\": \"1\", \"embeddableConfig\": {}, \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"00d39210-050d-11e9-9c60-d582a238e2c5\"}, {\"gridData\": {\"i\": \"2\", \"h\": 15, \"y\": 0, \"w\": 36, \"x\": 12}, \"title\": \"Lists length\", \"panelIndex\": \"2\", \"embeddableConfig\": {}, \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"7f4bc7d0-050c-11e9-9c60-d582a238e2c5\"}, {\"gridData\": {\"i\": \"3\", \"h\": 10, \"y\": 5, \"w\": 12, \"x\": 0}, \"title\": \"Keys by type\", \"panelIndex\": \"3\", \"embeddableConfig\": {\"vis\": {\"legendOpen\": false}}, \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"4435ac40-050e-11e9-9c60-d582a238e2c5\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 0}, \"title\": \"Average size of string keys\", \"panelIndex\": \"4\", \"embeddableConfig\": {}, \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"8541a4a0-0513-11e9-9c60-d582a238e2c5\"}, {\"gridData\": {\"i\": \"5\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 24}, \"title\": \"Average keys TTL\", \"panelIndex\": \"5\", \"embeddableConfig\": {}, \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"517a5fd0-0514-11e9-9c60-d582a238e2c5\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Redis] Keys",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "AV4YobKIge1VCbKU_qVo",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of RabbitMQ status",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"RabbitMQ-Memory-Usage\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 8, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Rabbitmq-Number-of-Nodes\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 2, \"col\": 8, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"RabbitMQ-Erlang-Process-Usage\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 10, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"RabbitMQ-Queue-Index-Operations\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 9, \"col\": 7, \"row\": 4}]",
+ "timeRestore": false,
+ "title": "[Metricbeat RabbitMQ] Overview",
+ "uiStateJSON": "{\"P-2\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "66881e90-0006-11e7-bf7f-c9acc3d3e306",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of MySQL server",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false, \"useMargins\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"10\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"10\", \"id\": \"d7e6bee0-f1f3-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"11\", \"h\": 3, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"11\", \"id\": \"695a4f90-f1f4-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"13\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"13\", \"id\": \"124dce60-f1f5-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"14\", \"h\": 3, \"y\": 6, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"14\", \"id\": \"aaa326b0-f1f5-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"15\", \"h\": 3, \"y\": 6, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"15\", \"id\": \"fb1f3f20-f1f5-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"16\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"16\", \"id\": \"f5b35930-f1f6-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"17\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"17\", \"id\": \"7404feb0-f1f7-11e7-85ab-594b1652e0d1\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat MySQL] Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "467207a0-231e-11e9-bb66-8baac426dfd4",
+ "_type": "dashboard",
+ "_source": {
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 15, \"y\": 15, \"w\": 15, \"x\": 0}, \"title\": \"Approximate data size\", \"panelIndex\": \"1\", \"embeddableConfig\": {}, \"version\": \"7.0.0-alpha2\", \"type\": \"visualization\", \"id\": \"8d3b7770-2319-11e9-bb66-8baac426dfd4\"}, {\"gridData\": {\"i\": \"2\", \"h\": 15, \"y\": 15, \"w\": 17, \"x\": 15}, \"title\": \"Latency\", \"panelIndex\": \"2\", \"embeddableConfig\": {}, \"version\": \"7.0.0-alpha2\", \"type\": \"visualization\", \"id\": \"c0be43c0-2319-11e9-bb66-8baac426dfd4\"}, {\"gridData\": {\"i\": \"3\", \"h\": 15, \"y\": 15, \"w\": 16, \"x\": 32}, \"title\": \"Alive Connections\", \"panelIndex\": \"3\", \"embeddableConfig\": {}, \"version\": \"7.0.0-alpha2\", \"type\": \"visualization\", \"id\": \"1c2f8930-231a-11e9-bb66-8baac426dfd4\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 0, \"w\": 25, \"x\": 23}, \"title\": \"Used file descriptors\", \"panelIndex\": \"4\", \"embeddableConfig\": {}, \"version\": \"7.0.0-alpha2\", \"type\": \"visualization\", \"id\": \"ddb13c60-231b-11e9-bb66-8baac426dfd4\"}, {\"gridData\": {\"i\": \"5\", \"h\": 15, \"y\": 0, \"w\": 23, \"x\": 0}, \"title\": \"Packets received / sent\", \"panelIndex\": \"5\", \"embeddableConfig\": {}, \"version\": \"7.0.0-alpha2\", \"type\": \"visualization\", \"id\": \"d2f52b50-231c-11e9-bb66-8baac426dfd4\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Zookeeper] Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "32fca290-f0af-11e7-b9ff-9f96241065de",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of uWSGI service metrics",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"a5058e70-f0ae-11e7-b9ff-9f96241065de\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ac7194b0-f0ae-11e7-b9ff-9f96241065de\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"8c5f96e0-f0ae-11e7-b9ff-9f96241065de\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ba4a80b0-f0ae-11e7-b9ff-9f96241065de\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 4}]",
+ "timeRestore": false,
+ "title": "[Metricbeat uWSGI] Overview",
+ "uiStateJSON": "{}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d9eba730-c991-11e7-9835-2f31fe08873b",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview of the Windows Service States",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"eb8277d0-c98c-11e7-9835-2f31fe08873b\", \"size_x\": 9, \"size_y\": 5, \"panelIndex\": 1, \"col\": 4, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"23a5fff0-c98e-11e7-9835-2f31fe08873b\", \"size_x\": 3, \"size_y\": 5, \"panelIndex\": 2, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"830c45f0-c991-11e7-9835-2f31fe08873b\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"35f5ad60-c996-11e7-9835-2f31fe08873b\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 4, \"col\": 5, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"c36b2ba0-ca29-11e7-9835-2f31fe08873b\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 5, \"col\": 9, \"row\": 1}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Windows] Services",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-5\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "023d2930-f1a5-11e7-a9ef-93c69af7b129",
+ "_type": "dashboard",
+ "_source": {
+ "description": "Overview dashboard for the Nginx module in Metricbeat",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"1\", \"id\": \"555df8a0-f1a1-11e7-a9ef-93c69af7b129\"}, {\"gridData\": {\"i\": \"2\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"2\", \"id\": \"a1d92240-f1a1-11e7-a9ef-93c69af7b129\"}, {\"gridData\": {\"i\": \"3\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"3\", \"id\": \"d763a570-f1a1-11e7-a9ef-93c69af7b129\"}, {\"gridData\": {\"i\": \"4\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"4\", \"id\": \"47a8e0f0-f1a4-11e7-a9ef-93c69af7b129\"}, {\"gridData\": {\"i\": \"5\", \"h\": 3, \"y\": 6, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"5\", \"id\": \"dcbffe30-f1a4-11e7-a9ef-93c69af7b129\"}]",
+ "timeRestore": false,
+ "title": "[Metricbeat Nginx] Overview",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "79ffd6e0-faa0-11e6-947f-177f697178b8",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat System] Host overview",
+ "hits": 0,
+ "description": "Overviw of host metrics",
+ "panelsJSON": "[{\"gridData\":{\"h\":3,\"i\":\"1\",\"w\":6,\"x\":0,\"y\":11},\"id\":\"6b7b9a40-faa1-11e6-86b1-cd7735ff7e23\",\"panelIndex\":\"1\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"2\",\"w\":6,\"x\":6,\"y\":5},\"id\":\"4d546850-1b15-11e7-b09e-037021c4f8df\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"3\",\"w\":6,\"x\":6,\"y\":11},\"id\":\"089b85d0-1b16-11e7-b09e-037021c4f8df\",\"panelIndex\":\"3\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"4\",\"w\":6,\"x\":0,\"y\":8},\"id\":\"bfa5e400-1b16-11e7-b09e-037021c4f8df\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"5\",\"w\":6,\"x\":6,\"y\":14},\"id\":\"e0f001c0-1b18-11e7-b09e-037021c4f8df\",\"panelIndex\":\"5\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"6\",\"w\":6,\"x\":0,\"y\":14},\"id\":\"2e224660-1b19-11e7-b09e-037021c4f8df\",\"panelIndex\":\"6\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"7\",\"w\":6,\"x\":0,\"y\":5},\"id\":\"ab2d1e90-1b1a-11e7-b09e-037021c4f8df\",\"panelIndex\":\"7\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"8\",\"w\":6,\"x\":6,\"y\":8},\"id\":\"4e4bb1e0-1b1b-11e7-b09e-037021c4f8df\",\"panelIndex\":\"8\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"9\",\"w\":2,\"x\":4,\"y\":1},\"id\":\"26732e20-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"10\",\"w\":2,\"x\":0,\"y\":1},\"id\":\"83e12df0-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"10\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"11\",\"w\":2,\"x\":2,\"y\":1},\"id\":\"d3166e80-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"11\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"12\",\"w\":2,\"x\":6,\"y\":1},\"id\":\"522ee670-1b92-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"12\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"13\",\"w\":2,\"x\":8,\"y\":1},\"id\":\"1aae9140-1b93-11e7-8ada-3df93aab833e\",\"panelIndex\":\"13\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"14\",\"w\":4,\"x\":8,\"y\":3},\"id\":\"34f97ee0-1b96-11e7-8ada-3df93aab833e\",\"panelIndex\":\"14\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":1,\"i\":\"16\",\"w\":6,\"x\":0,\"y\":0},\"id\":\"System-Navigation\",\"panelIndex\":\"16\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"21\",\"w\":2,\"x\":0,\"y\":3},\"id\":\"19e123b0-4d5a-11e7-aee5-fdc812cc3bec\",\"panelIndex\":\"21\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"22\",\"w\":2,\"x\":2,\"y\":3},\"id\":\"d2e80340-4d5c-11e7-aa29-87a97a796de6\",\"panelIndex\":\"22\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"23\",\"w\":2,\"x\":6,\"y\":3},\"id\":\"825fdb80-4d1d-11e7-b5f2-2b7c1895bf32\",\"panelIndex\":\"23\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"25\",\"w\":2,\"x\":10,\"y\":1},\"id\":\"96976150-4d5d-11e7-aa29-87a97a796de6\",\"panelIndex\":\"25\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"27\",\"w\":6,\"x\":0,\"y\":17},\"id\":\"99381c80-4d60-11e7-9a4c-ed99bbcaa42b\",\"panelIndex\":\"27\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"28\",\"w\":6,\"x\":6,\"y\":17},\"id\":\"c5e3cf90-4d60-11e7-9a4c-ed99bbcaa42b\",\"panelIndex\":\"28\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"29\",\"w\":2,\"x\":4,\"y\":3},\"id\":\"590a60f0-5d87-11e7-8884-1bb4c3b890e4\",\"panelIndex\":\"29\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":1,\"i\":\"30\",\"w\":6,\"x\":6,\"y\":0},\"id\":\"3d65d450-a9c3-11e7-af20-67db8aecb295\",\"panelIndex\":\"30\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}",
+ "uiStateJSON": "{\"P-29\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-7d",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"beat.name:\\\"lkft-master.lavalab\\\"\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dddc1860-c6c4-11ea-9cf6-c19e3a7fac53",
+ "_type": "dashboard",
+ "_source": {
+ "title": "LKFT Lava Jobqueue - 1 Minute Interval",
+ "hits": 0,
+ "description": "Snapshot of the LKFT LAVA jobqueue for the past 24 hours at 1 minute intervals.",
+ "panelsJSON": "[{\"gridData\":{\"h\":3,\"i\":\"1\",\"w\":6,\"x\":0,\"y\":0},\"id\":\"0fb2b0c0-c6c4-11ea-9cf6-c19e3a7fac53\",\"panelIndex\":\"1\",\"title\":\"LKFT LAVA Jobqueue - Minute Interval\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-24h",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "27e87f10-83e1-11ea-a795-b501b684e6e8",
+ "_type": "dashboard",
+ "_source": {
+ "title": "Kisscache",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"gridData\":{\"h\":3,\"i\":\"4\",\"w\":6,\"x\":6,\"y\":6},\"id\":\"720a7fc0-848c-11ea-a795-b501b684e6e8\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"5\",\"w\":6,\"x\":0,\"y\":6},\"id\":\"59e66790-847a-11ea-a795-b501b684e6e8\",\"panelIndex\":\"5\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"6\",\"w\":6,\"x\":0,\"y\":0},\"id\":\"187dd8d0-848c-11ea-a795-b501b684e6e8\",\"panelIndex\":\"6\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"7\",\"w\":6,\"x\":0,\"y\":3},\"id\":\"70a79ef0-848d-11ea-a795-b501b684e6e8\",\"panelIndex\":\"7\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"8\",\"w\":6,\"x\":6,\"y\":3},\"id\":\"8b13dac0-8491-11ea-a795-b501b684e6e8\",\"panelIndex\":\"8\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"9\",\"w\":6,\"x\":0,\"y\":9},\"id\":\"550e1470-848e-11ea-a795-b501b684e6e8\",\"panelIndex\":\"9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"10\",\"w\":6,\"x\":6,\"y\":0},\"id\":\"7df7b9a0-8492-11ea-a795-b501b684e6e8\",\"panelIndex\":\"10\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"13\",\"w\":6,\"x\":6,\"y\":9},\"id\":\"41626300-8492-11ea-a795-b501b684e6e8\",\"panelIndex\":\"13\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{\"P-3\":{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(0,104,55)\",\"50 - 75\":\"rgb(255,255,190)\",\"75 - 100\":\"rgb(165,0,38)\"}}},\"P-5\":{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(0,104,55)\",\"50 - 75\":\"rgb(255,255,190)\",\"75 - 100\":\"rgb(165,0,38)\"}}},\"P-7\":{\"vis\":{\"colors\":{\"requests\":\"#447EBC\"}}}}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-60d",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-system-overview",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat System] Overview",
+ "hits": 0,
+ "description": "Overview of system metrics",
+ "panelsJSON": "[{\"gridData\":{\"h\":1,\"i\":\"9\",\"w\":12,\"x\":0,\"y\":0},\"id\":\"System-Navigation\",\"panelIndex\":\"9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"11\",\"w\":2,\"x\":0,\"y\":1},\"id\":\"c6f2ffd0-4d17-11e7-a196-69b9a7a020a9\",\"panelIndex\":\"11\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":4,\"i\":\"12\",\"w\":6,\"x\":6,\"y\":3},\"id\":\"fe064790-1b1f-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"12\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":4,\"i\":\"13\",\"w\":6,\"x\":0,\"y\":3},\"id\":\"855899e0-1b1c-11e7-b09e-037021c4f8df\",\"panelIndex\":\"13\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"16\",\"w\":2,\"x\":8,\"y\":1},\"id\":\"522ee670-1b92-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"16\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"17\",\"w\":2,\"x\":10,\"y\":1},\"id\":\"1aae9140-1b93-11e7-8ada-3df93aab833e\",\"panelIndex\":\"17\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"18\",\"w\":2,\"x\":6,\"y\":1},\"id\":\"825fdb80-4d1d-11e7-b5f2-2b7c1895bf32\",\"panelIndex\":\"18\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"19\",\"w\":2,\"x\":4,\"y\":1},\"id\":\"d3166e80-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"19\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"20\",\"w\":2,\"x\":2,\"y\":1},\"id\":\"83e12df0-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"20\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":6,\"i\":\"21\",\"w\":12,\"x\":0,\"y\":7},\"id\":\"5ed8f9f0-c2a2-11ea-9cf6-c19e3a7fac53\",\"panelIndex\":\"21\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}",
+ "uiStateJSON": "{\"P-11\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-12\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-14\":{\"vis\":{\"defaultColors\":{\"0% - 20%\":\"rgb(247,252,245)\",\"20% - 40%\":\"rgb(199,233,192)\",\"40% - 60%\":\"rgb(116,196,118)\",\"60% - 80%\":\"rgb(35,139,69)\"}}},\"P-16\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-2\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-21\":{\"vis\":{\"params\":{\"config\":{\"searchKeyword\":\"\"},\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"P-3\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Overview",
+ "_type": "dashboard",
+ "_source": {
+ "title": "Overview",
+ "hits": 0,
+ "description": "Overview of system metrics",
+ "panelsJSON": "[{\"gridData\":{\"h\":1,\"i\":\"9\",\"w\":12,\"x\":0,\"y\":0},\"id\":\"System-Navigation\",\"panelIndex\":\"9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"11\",\"w\":2,\"x\":0,\"y\":1},\"id\":\"c6f2ffd0-4d17-11e7-a196-69b9a7a020a9\",\"panelIndex\":\"11\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":4,\"i\":\"12\",\"w\":6,\"x\":6,\"y\":3},\"id\":\"fe064790-1b1f-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"12\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":4,\"i\":\"13\",\"w\":6,\"x\":0,\"y\":3},\"id\":\"855899e0-1b1c-11e7-b09e-037021c4f8df\",\"panelIndex\":\"13\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"16\",\"w\":2,\"x\":8,\"y\":1},\"id\":\"522ee670-1b92-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"16\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"17\",\"w\":2,\"x\":10,\"y\":1},\"id\":\"1aae9140-1b93-11e7-8ada-3df93aab833e\",\"panelIndex\":\"17\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"18\",\"w\":2,\"x\":6,\"y\":1},\"id\":\"825fdb80-4d1d-11e7-b5f2-2b7c1895bf32\",\"panelIndex\":\"18\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"19\",\"w\":2,\"x\":4,\"y\":1},\"id\":\"d3166e80-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"19\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"20\",\"w\":2,\"x\":2,\"y\":1},\"id\":\"83e12df0-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"20\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":6,\"i\":\"21\",\"w\":12,\"x\":0,\"y\":7},\"id\":\"5ed8f9f0-c2a2-11ea-9cf6-c19e3a7fac53\",\"panelIndex\":\"21\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}",
+ "uiStateJSON": "{\"P-11\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-12\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-14\":{\"vis\":{\"defaultColors\":{\"0% - 20%\":\"rgb(247,252,245)\",\"20% - 40%\":\"rgb(199,233,192)\",\"40% - 60%\":\"rgb(116,196,118)\",\"60% - 80%\":\"rgb(35,139,69)\"}}},\"P-16\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-2\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-21\":{\"vis\":{\"params\":{\"config\":{\"searchKeyword\":\"\"},\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"P-3\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "861f0220-a625-11e8-8538-f34fec203819",
+ "_type": "dashboard",
+ "_source": {
+ "title": "LAVA Jobqueue Length",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"panelIndex\":\"3\",\"gridData\":{\"x\":5,\"y\":0,\"w\":5,\"h\":4,\"i\":\"3\"},\"embeddableConfig\":{},\"id\":\"a8581090-a623-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue LKFT\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"4\",\"gridData\":{\"x\":0,\"y\":0,\"w\":5,\"h\":4,\"i\":\"4\"},\"embeddableConfig\":{},\"id\":\"c6670080-a625-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue Validation\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"7\",\"gridData\":{\"x\":5,\"y\":4,\"w\":5,\"h\":4,\"i\":\"7\"},\"id\":\"d2128630-8286-11eb-b4ce-c7a87883d896\",\"title\":\"LAVA Queue TF\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"panelIndex\":\"8\",\"gridData\":{\"x\":0,\"y\":8,\"w\":5,\"h\":4,\"i\":\"8\"},\"id\":\"0a6c35a0-860e-11eb-ab35-ab7823fa4527\",\"title\":\"LAVA Queue Morello\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"title\":\"LAVA Queue LEDGE\",\"panelIndex\":\"9\",\"gridData\":{\"x\":0,\"y\":4,\"w\":5,\"h\":4,\"i\":\"9\"},\"id\":\"21bd8920-864f-11eb-ab35-ab7823fa4527\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"panelIndex\":\"10\",\"gridData\":{\"x\":5,\"y\":8,\"w\":5,\"h\":4,\"i\":\"10\"},\"id\":\"e0e68790-b1ed-11e8-852d-55393e7ce617\",\"title\":\"LAVA Queue PWMG\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{\"P-2\":{\"vis\":{\"colors\":{\"juno\":\"#65C5DB\"}}}}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-6h",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c4e80aa0-1fd4-11e9-ae2a-939083c6a64e",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"iptables.ubiquiti.rule_set :*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Ubiquiti Firewall Events [Filebeat Iptables]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9f7d97c0-1fe9-11e9-ae2a-939083c6a64e",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"iptables.ubiquiti.rule_set :* and event.outcome : \\\"deny\\\"\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Ubiquiti Firewall Blocked Events [Filebeat Iptables]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7862cab0-1fdb-11e9-ae2a-939083c6a64e",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"iptables.ubiquiti.rule_set :* and event.outcome : \\\"allow\\\"\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Ubiquiti Firewall Allowed Events [Filebeat Iptables]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "host.name",
+ "suricata.eve.flow_id",
+ "suricata.eve.src_ip",
+ "suricata.eve.src_port",
+ "suricata.eve.dest_ip",
+ "suricata.eve.dest_port",
+ "source_ecs.geo.country_iso_code",
+ "destination.geo.country_iso_code"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"event.type\",\"negate\":false,\"params\":{\"query\":\"alert\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"alert\"},\"query\":{\"match\":{\"event.type\":{\"query\":\"alert\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"suricata\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"suricata\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"suricata\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Alerts [Suricata]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length :*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Events Search [Filebeat Iptables]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Kafka stacktraces",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "kafka.log.class",
+ "kafka.log.trace.class",
+ "kafka.log.trace.full"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"_exists_:kafka.log.trace.class\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Stacktraces [Filebeat Kafka]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "All Kafka logs",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "kafka.log.level",
+ "kafka.log.component",
+ "kafka.log.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"kafka\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"kafka\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"kafka\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"log\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"log\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"log\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "All logs [Filebeat Kafka]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "PostgreSQL All Logs",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "postgresql.log.user",
+ "postgresql.log.database",
+ "postgresql.log.level",
+ "postgresql.log.message",
+ "postgresql.log.query"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"postgresql\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"postgresql\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"postgresql\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "All Logs [Filebeat PostgreSQL]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Slow PostgreSQL Queries",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "postgresql.log.user",
+ "postgresql.log.database",
+ "postgresql.log.duration",
+ "postgresql.log.query"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"postgresql.log.duration:\\u003e30\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Slow Queries [Filebeat PostgreSQL]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "PostgreSQL Query Durations",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "postgresql.log.user",
+ "postgresql.log.database",
+ "postgresql.log.duration",
+ "postgresql.log.query"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"postgresql.log.duration:*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Query Durations [Filebeat PostgreSQL]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e49fe000-0a7e-11e8-bffe-ff7d4f68cf94",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "mongodb.log.timestamp",
+ "mongodb.log.severity",
+ "mongodb.log.component",
+ "mongodb.log.context",
+ "mongodb.log.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"mongodb.log.severity: F or mongodb.log.severity: W\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Error logs [Filebeat MongoDB]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "bfc96a60-0a80-11e8-bffe-ff7d4f68cf94",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "mongodb.log.timestamp",
+ "mongodb.log.severity",
+ "mongodb.log.component",
+ "mongodb.log.context",
+ "mongodb.log.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"mongodb.log.severity: *\"},\"version\":true}"
+ },
+ "sort": [
+ "mongodb.log.timestamp",
+ "asc"
+ ],
+ "title": "All logs [Filebeat MongoDB]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "host.name",
+ "event.type",
+ "suricata.eve.flow_id",
+ "suricata.eve.proto",
+ "source_ecs.ip",
+ "suricata.eve.src_port",
+ "suricata.eve.dest_ip",
+ "suricata.eve.dest_port",
+ "destination.geo.region_name",
+ "destination.geo.country_iso_code"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"event.type\",\"negate\":true,\"params\":{\"query\":\"stats\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"stats\"},\"query\":{\"match\":{\"event.type\":{\"query\":\"stats\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"suricata\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"suricata\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"suricata\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Events [Suricata]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d57a2db0-86ca-11e8-b59d-21efb914e65c",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "host.name",
+ "suricata.eve.stats.detect.alert",
+ "suricata.eve.stats.app_layer.flow.dns_udp",
+ "suricata.eve.stats.app_layer.flow.tls",
+ "suricata.eve.stats.app_layer.flow.http",
+ "suricata.eve.stats.app_layer.flow.ssh",
+ "suricata.eve.stats.tcp.sessions"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"suricata\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"suricata\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"suricata\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"event.type\",\"negate\":false,\"params\":{\"query\":\"stats\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"stats\"},\"query\":{\"match\":{\"event.type\":{\"query\":\"stats\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Host Stats [Suricata]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-errors-log",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "apache2.error.client",
+ "apache2.error.level",
+ "apache2.error.module",
+ "apache2.error.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:apache2.error\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Apache errors log [Filebeat Apache2]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-access-logs",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "apache2.access.remote_ip",
+ "apache2.access.method",
+ "apache2.access.url",
+ "apache2.access.response_code"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:apache2.access\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Apache access logs [Filebeat Apache2]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4ac0a370-0a11-11e7-8b04-eb22a5669f27",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "auditd.log.record_type",
+ "auditd.log.sequence",
+ "auditd.log.acct"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:auditd.log\"}},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Audit Events [Filebeat Auditd]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b6f321e0-fa25-11e6-bbd3-29c986c96e5a",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "system.auth.user",
+ "system.auth.sudo.user",
+ "system.auth.sudo.pwd",
+ "system.auth.sudo.command"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.auth.sudo\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Sudo commands [Filebeat System]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c876e6a0-2418-11e7-a83b-d5f4cebac9ff",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "icinga.debug.facility",
+ "icinga.debug.severity",
+ "icinga.debug.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"icinga\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"icinga\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"icinga\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"debug\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"debug\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"debug\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Debug Log [Filebeat Icinga]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ffaf5a30-2413-11e7-a0d9-39604d45ca7f",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "icinga.main.facility",
+ "icinga.main.severity",
+ "icinga.main.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"icinga\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"icinga\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"icinga\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"main\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"main\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"main\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Main Log [Filebeat Icinga]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "710043e0-2417-11e7-a83b-d5f4cebac9ff",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "icinga.startup.facility",
+ "icinga.startup.severity",
+ "icinga.startup.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"icinga.startup.severity:critical\"}}},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Startup Errors [Filebeat Icinga]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Nginx-module",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "nginx.access.url",
+ "nginx.access.method",
+ "nginx.access.response_code",
+ "nginx.access.referrer",
+ "nginx.access.body_sent.bytes"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:nginx\"}}},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Nginx logs [Filebeat Nginx]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-MySQL-error-log",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "mysql.error.level",
+ "mysql.error.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"mysql\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"mysql\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"mysql\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"error\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"error\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"error\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Error logs [Filebeat MySQL]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-MySQL-Slow-log",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"mysql\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"mysql\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"mysql\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"slowlog\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"slowlog\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"slowlog\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Slow logs [Filebeat MySQL]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "73613570-4791-11e7-be88-2ddb32f3df97",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "beat.name",
+ "redis.log.level",
+ "redis.log.role",
+ "redis.log.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"redis\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"redis\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"redis\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"log\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"log\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"log\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Logs [Filebeat Redis]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0ab87b80-478e-11e7-b1f0-cb29bac6bf8b",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "beat.name",
+ "message",
+ "redis.slowlog.duration.us",
+ "redis.slowlog.key"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:redis.slowlog\"}}},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Slow logs [Filebeat Redis]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "742e45d0-cbdd-11e7-9852-73e0a9df1bb6",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "logstash.slowlog.level",
+ "logstash.slowlog.plugin_type",
+ "logstash.slowlog.plugin_name",
+ "logstash.slowlog.message",
+ "logstash.slowlog.plugin_params",
+ "logstash.slowlog.execution_time_ns"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"logstash\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"logstash\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"logstash\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"slowlog\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"slowlog\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"slowlog\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "sort": [
+ "logstash.slowlog.level",
+ "asc"
+ ],
+ "title": "Slow logs [Filebeat Logstash]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "cfaba090-cbda-11e7-9852-73e0a9df1bb6",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "logstash.log.level",
+ "logstash.log.module",
+ "logstash.log.message",
+ "source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"logstash\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"logstash\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"logstash\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"log\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"log\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"log\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "logs [Filebeat Logstash]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8030c1b0-fa77-11e6-ae9b-81e5311e8cab",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "system.auth.useradd.name",
+ "system.auth.useradd.uid",
+ "system.auth.useradd.gid",
+ "system.auth.useradd.home",
+ "system.auth.useradd.shell"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.auth.useradd\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "useradd logs [Filebeat System]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "eb0039f0-fa7f-11e6-a1df-a78bd7504d38",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "system.auth.groupadd.name",
+ "system.auth.groupadd.gid"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.auth.groupadd\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "groupadd logs [Filebeat System]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "62439dc0-f9c9-11e6-a747-6121780e0414",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "system.auth.ssh.event",
+ "system.auth.ssh.method",
+ "system.auth.user",
+ "system.auth.ssh.ip",
+ "system.auth.ssh.geoip.country_iso_code"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.auth.ssh.event\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "SSH login attempts [Filebeat System]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Syslog-system-logs",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "system.syslog.hostname",
+ "system.syslog.program",
+ "system.syslog.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.syslog\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Syslog logs [Filebeat System]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9eb25600-a1f0-11e7-928f-5dbe6f6f5519",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "nginx.error.level",
+ "nginx.error.message"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"_exists_:nginx AND _exists_:nginx.error.message\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Nginx error logs [Filebeat Nginx]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "6d9e66d0-a1f0-11e7-928f-5dbe6f6f5519",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "nginx.access.url",
+ "nginx.access.method",
+ "nginx.access.response_code",
+ "nginx.access.body_sent.bytes"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"_exists_:nginx AND _exists_:nginx.access.url\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Nginx access logs [Filebeat Nginx]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Filebeat-Traefik-Access",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "Filebeat Traefik Access Data",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:traefik.access\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "ML Access Data [Filebeat Traefik]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Filebeat-Nginx-Access",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "Filebeat Nginx Access Data",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:nginx.access\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "ML Access Data [Filebeat Nginx]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Traefik-module",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:traefik\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Traefik logs [Filebeat Traefik]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7a9482d0-eb00-11e7-8f04-51231daa5b05",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "osquery.result.columns.path",
+ "osquery.result.columns.type",
+ "osquery.result.columns.flags"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"osquery.result.name\",\"negate\":false,\"params\":{\"query\":\"pack_it-compliance_mounts\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"pack_it-compliance_mounts\"},\"query\":{\"match\":{\"osquery.result.name\":{\"query\":\"pack_it-compliance_mounts\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Mounts [Osquery results]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3824b080-eb02-11e7-8f04-51231daa5b05",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "osquery.result.columns.name",
+ "osquery.result.columns.version",
+ "osquery.result.columns.revision"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"osquery.result.name\",\"negate\":false,\"params\":{\"query\":\"pack_it-compliance_deb_packages\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"pack_it-compliance_deb_packages\"},\"query\":{\"match\":{\"osquery.result.name\":{\"query\":\"pack_it-compliance_deb_packages\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "DEB packages installed [Osquery results]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b5d6baa0-eb02-11e7-8f04-51231daa5b05",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "osquery.result.name"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"osquery.result.name\",\"negate\":false,\"params\":{\"query\":\"pack_it-compliance_os_version\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"pack_it-compliance_os_version\"},\"query\":{\"match\":{\"osquery.result.name\":{\"query\":\"pack_it-compliance_os_version\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "OS versions [Osquery results]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f59e21e0-eb03-11e7-8f04-51231daa5b05",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "osquery.result.name",
+ "osquery.result.columns.name",
+ "osquery.result.columns.status"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"osquery.result.name\",\"negate\":false,\"params\":{\"query\":\"pack_it-compliance_kernel_modules\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"pack_it-compliance_kernel_modules\"},\"query\":{\"match\":{\"osquery.result.name\":{\"query\":\"pack_it-compliance_kernel_modules\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Kernel modules [Osquery results]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0fe5dc00-f49b-11e7-8647-534bb4c21040",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "osquery.result.name",
+ "osquery.result.columns.path",
+ "beat.hostname"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"query\",\"negate\":false,\"type\":\"custom\",\"value\":\"{\\\"prefix\\\":{\\\"osquery.result.name\\\":\\\"pack_ossec-rootkit\\\"}}\"},\"query\":{\"prefix\":{\"osquery.result.name\":\"pack_ossec-rootkit\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"osquery\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"osquery\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"osquery\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"result\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"result\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"result\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "OSSEC Rootkits [Osquery Result]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "20280fd0-a624-11e8-8538-f34fec203819",
+ "_type": "search",
+ "_source": {
+ "title": "jobqueue_validation",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "device.timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"e7f71ed0-c12e-11ea-9cf6-c19e3a7fac53\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"meta\":{\"negate\":false,\"index\":\"b1578e40-a606-11e8-9dd0-e5c705b98d0d\",\"type\":\"phrase\",\"key\":\"device.lava_server\",\"value\":\"validation.linaro.org\",\"params\":{\"query\":\"validation.linaro.org\",\"type\":\"phrase\"},\"disabled\":false,\"alias\":null},\"query\":{\"match\":{\"device.lava_server\":{\"query\":\"validation.linaro.org\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "43f85670-a6da-11e8-83fb-2d7acaa76fd6",
+ "_type": "search",
+ "_source": {
+ "title": "jobqueue_pwmg",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "device.timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"e7f71ed0-c12e-11ea-9cf6-c19e3a7fac53\",\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[{\"meta\":{\"negate\":false,\"index\":\"e29da230-a6d0-11e8-9f01-ff6e57cf4784\",\"type\":\"phrase\",\"key\":\"device.lava_server\",\"value\":\"pmwg.validation.linaro.org\",\"params\":{\"query\":\"pmwg.validation.linaro.org\",\"type\":\"phrase\"},\"disabled\":false,\"alias\":null},\"query\":{\"match\":{\"device.lava_server\":{\"query\":\"pmwg.validation.linaro.org\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7ca82c00-a60a-11e8-9dd0-e5c705b98d0d",
+ "_type": "search",
+ "_source": {
+ "title": "jobqueue_lkft",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "device.timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"e7f71ed0-c12e-11ea-9cf6-c19e3a7fac53\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"meta\":{\"negate\":false,\"index\":\"b1578e40-a606-11e8-9dd0-e5c705b98d0d\",\"type\":\"phrase\",\"key\":\"device.lava_server\",\"value\":\"lkft.validation.linaro.org\",\"params\":{\"query\":\"lkft.validation.linaro.org\",\"type\":\"phrase\"},\"disabled\":false,\"alias\":null},\"query\":{\"match\":{\"device.lava_server\":{\"query\":\"lkft.validation.linaro.org\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "324e8c50-a6da-11e8-83fb-2d7acaa76fd6",
+ "_type": "search",
+ "_source": {
+ "title": "jobqueue_lng",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "device.timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\n \"index\": \"e7f71ed0-c12e-11ea-9cf6-c19e3a7fac53\",\n \"highlightAll\": true,\n \"version\": true,\n \"query\": {\n \"language\": \"lucene\",\n \"query\": \"\"\n },\n \"filter\": [\n {\n \"meta\": {\n \"negate\": false,\n \"index\": \"e29da230-a6d0-11e8-9f01-ff6e57cf4784\",\n \"type\": \"phrase\",\n \"key\": \"device.lava_server\",\n \"value\": \"lng.validation.linaro.org\",\n \"params\": {\n \"query\": \"lng.validation.linaro.org\",\n \"type\": \"phrase\"\n },\n \"disabled\": false,\n \"alias\": null\n },\n \"query\": {\n \"match\": {\n \"device.lava_server\": {\n \"query\": \"lng.validation.linaro.org\",\n \"type\": \"phrase\"\n }\n }\n },\n \"$state\": {\n \"store\": \"appState\"\n }\n }\n ]\n}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4710ee00-71b2-11e9-8ab9-1b38609ca045",
+ "_type": "search",
+ "_source": {
+ "title": "jobfailure_lkft",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "time_stamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"a64fb940-c1b7-11ea-9cf6-c19e3a7fac53\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"meta\":{\"negate\":false,\"index\":\"9a1184c0-70bd-11e9-8ab9-1b38609ca045\",\"type\":\"phrase\",\"key\":\"lava_server\",\"value\":\"lkft.validation.linaro.org\",\"params\":{\"query\":\"lkft.validation.linaro.org\",\"type\":\"phrase\"},\"disabled\":false,\"alias\":null},\"query\":{\"match\":{\"lava_server\":{\"query\":\"lkft.validation.linaro.org\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-Docker",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:docker\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Metricbeat Docker",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module: apache\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Apache HTTPD",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-search",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:mongodb\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "MongoDB search",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-Redis",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:redis\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Metricbeat Redis",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-Rabbitmq",
+ "_type": "search",
+ "_source": {
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:rabbitmq\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Metricbeat-Rabbitmq",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat uWSGI status",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "_source"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"metricset.module: uwsgi\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Metricbeat uWSGI status",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b6b7ccc0-c98d-11e7-9835-2f31fe08873b",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "beat.name",
+ "windows.service.display_name",
+ "windows.service.state",
+ "windows.service.start_type",
+ "windows.service.uptime.ms",
+ "windows.service.pid",
+ "windows.service.exit_code"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"metricset.module\",\"negate\":false,\"params\":{\"query\":\"windows\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"windows\"},\"query\":{\"match\":{\"metricset.module\":{\"query\":\"windows\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"metricset.name\",\"negate\":false,\"params\":{\"query\":\"service\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"service\"},\"query\":{\"match\":{\"metricset.name\":{\"query\":\"service\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Services [Metricbeat Windows]",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "29de5430-a624-11e8-8538-f34fec203819",
+ "_type": "search",
+ "_source": {
+ "title": "jobqueue_lite",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "device.timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\n \"index\": \"e7f71ed0-c12e-11ea-9cf6-c19e3a7fac53\",\n \"highlightAll\": true,\n \"version\": true,\n \"query\": {\n \"language\": \"lucene\",\n \"query\": \"\"\n },\n \"filter\": [\n {\n \"meta\": {\n \"negate\": false,\n \"index\": \"b1578e40-a606-11e8-9dd0-e5c705b98d0d\",\n \"type\": \"phrase\",\n \"key\": \"device.lava_server\",\n \"value\": \"lite.validation.linaro.org\",\n \"params\": {\n \"query\": \"lite.validation.linaro.org\",\n \"type\": \"phrase\"\n },\n \"disabled\": false,\n \"alias\": null\n },\n \"query\": {\n \"match\": {\n \"device.lava_server\": {\n \"query\": \"lite.validation.linaro.org\",\n \"type\": \"phrase\"\n }\n }\n },\n \"$state\": {\n \"store\": \"appState\"\n }\n }\n ]\n}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a291c0d0-860d-11eb-ab35-ab7823fa4527",
+ "_type": "search",
+ "_source": {
+ "title": "jobqueue_morello",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"e7f71ed0-c12e-11ea-9cf6-c19e3a7fac53\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"device.lava_server: lava.morello-project.org\"},\"filter\":[]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "749b2d00-8285-11eb-b4ce-c7a87883d896",
+ "_type": "search",
+ "_source": {
+ "title": "jobqueue_tf",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"device.lava_server: tf.validation.linaro.org\"},\"filter\":[],\"index\":\"e7f71ed0-c12e-11ea-9cf6-c19e3a7fac53\"}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "758b3620-1fda-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "c4e80aa0-1fd4-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Event Timeline [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"deny\": \"#E24D42\", \"allow\": \"#64B0C8\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"top\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"timeRange\": {\"to\": \"2019-01-24T15:47:52.785Z\", \"from\": \"2019-01-24T15:47:12.171Z\", \"mode\": \"absolute\"}, \"extended_bounds\": {}, \"field\": \"@timestamp\", \"interval\": \"auto\", \"time_zone\": \"Europe/Berlin\", \"useNormalizedEsInterval\": true, \"drop_partials\": false, \"min_doc_count\": 1, \"customInterval\": \"2h\"}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"_key\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"event.outcome\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Ubiquiti Firewall Event Timeline [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1ba82fd0-1ff0-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "9f7d97c0-1fe9-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Top Blocked IPs [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Source IP\", \"missingBucketLabel\": \"Missing\", \"field\": \"source_ecs.ip\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Ubiquiti Firewall Top Blocked IPs [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5bd53050-1fe9-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "7862cab0-1fdb-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Allowed Traffic Map [Filebeat Iptables]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"maxZoom\": 18, \"origin\": \"elastic_maps_service\", \"minZoom\": 0, \"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"id\": \"road_map\"}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"source_ecs.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Ubiquiti Firewall Allowed Traffic Map [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8853aa20-1fef-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "9f7d97c0-1fe9-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Blocked Traffic Map [Filebeat Iptables]",
+ "uiStateJSON": "{\"mapCenter\": [19.228176737766262, -22.851562500000004], \"mapZoom\": 3}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"maxZoom\": 18, \"origin\": \"elastic_maps_service\", \"minZoom\": 0, \"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"id\": \"road_map\"}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"source_ecs.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Ubiquiti Firewall Blocked Traffic Map [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "fdea1ad0-1ff4-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "c4e80aa0-1fd4-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Traffic Breakdown [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"deny\": \"#E24D42\", \"udp\": \"#F2C96D\", \"tcp\": \"#447EBC\", \"ipv6-icmp\": \"#EA6460\", \"ipv4\": \"#65C5DB\", \"ipv6\": \"#D683CE\", \"icmp\": \"#F29191\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": false, \"last_level\": false, \"truncate\": 100, \"show\": true}, \"legendPosition\": \"top\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"event.outcome\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"network.type\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"network.transport\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"segment\"}], \"title\": \"Ubiquiti Firewall Traffic Breakdown [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "190bcb50-1ff6-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "c4e80aa0-1fd4-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Traffic by Port [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"event.outcome\", \"missingBucketLabel\": \"Missing\", \"field\": \"event.outcome\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"size\": 5, \"order\": \"desc\", \"row\": false}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"split\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Destination port\", \"missingBucketLabel\": \"Missing\", \"field\": \"destination.port\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}], \"title\": \"Ubiquiti Firewall Traffic by Port [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "494fa290-86d2-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Top Alerting Hosts [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"host.name\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Top Alerting Hosts [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "16033310-86d3-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Top Alert Signatures [Suricata]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Alert Signature\", \"missingBucketLabel\": \"Missing\", \"field\": \"suricata.eve.alert.signature\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Alert Category\", \"missingBucketLabel\": \"Missing\", \"field\": \"suricata.eve.alert.category\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}], \"title\": \"Top Alert Signatures [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "85fed080-86d7-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Alert - Source Location [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"url\": \"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.3.0&license=fc9de2c1-5f06-4080-8dd0-8a334171d89a\", \"subdomains\": [], \"minZoom\": 0, \"maxZoom\": 18, \"id\": \"road_map\"}, \"baseLayersAreLoaded\": {}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}, \"tmsLayers\": [{\"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"url\": \"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.3.0&license=fc9de2c1-5f06-4080-8dd0-8a334171d89a\", \"subdomains\": [], \"minZoom\": 0, \"maxZoom\": 18, \"id\": \"road_map\"}]}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"source_ecs.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Alert - Source Location [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a09ca070-86d7-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Alert - Destination Location [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"url\": \"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.3.0&license=fc9de2c1-5f06-4080-8dd0-8a334171d89a\", \"subdomains\": [], \"minZoom\": 0, \"maxZoom\": 18, \"id\": \"road_map\"}, \"baseLayersAreLoaded\": {}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}, \"tmsLayers\": [{\"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"url\": \"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.3.0&license=fc9de2c1-5f06-4080-8dd0-8a334171d89a\", \"subdomains\": [], \"minZoom\": 0, \"maxZoom\": 18, \"id\": \"road_map\"}]}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"destination.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Alert - Destination Location [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2ccdc1a0-86d8-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Alerts - Top Destination Countries [Suricata]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 5, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Source Country\", \"missingBucketLabel\": \"Missing\", \"field\": \"destination.geo.country_iso_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Alerts - Top Destination Countries [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c7b8b8f0-86d8-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Alerts - Top Source Countries [Suricata]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 5, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Source Country\", \"missingBucketLabel\": \"Missing\", \"field\": \"source_ecs.geo.country_iso_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Alerts - Top Source Countries [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4c913eb0-1f51-11e9-93ed-f7e068f4aebb",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Events Timeline [Filebeat Iptables]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"type\": \"area\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"extended_bounds\": {}, \"field\": \"@timestamp\", \"interval\": \"auto\", \"time_zone\": \"Europe/Berlin\", \"useNormalizedEsInterval\": true, \"drop_partials\": false, \"min_doc_count\": 1, \"customInterval\": \"2h\"}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Events Timeline [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2599f5e0-1e98-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Top Source Countries [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Country\", \"missingBucketLabel\": \"Missing\", \"field\": \"source_ecs.geo.country_iso_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Top Source Countries [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c4394ec0-1efd-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Source Map [Filebeat Iptables]",
+ "uiStateJSON": "{\"mapCenter\": [45.02695045318546, -44.82421875000001], \"mapZoom\": 3}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"maxZoom\": 18, \"origin\": \"elastic_maps_service\", \"minZoom\": 0, \"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"id\": \"road_map\"}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"source_ecs.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Source Map [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d8cea010-1efd-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Destination Map [Filebeat Iptables]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"maxZoom\": 18, \"origin\": \"elastic_maps_service\", \"minZoom\": 0, \"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"id\": \"road_map\"}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"destination.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Destination Map [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b57b7370-1f1d-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Network Type Breakdown [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"legendOpen\": false}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": true}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"network.type\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Network Type Breakdown [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "35fe0910-1f26-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Network Transport Breakdown [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"legendOpen\": false}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": true}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"network.transport\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Network Transport Breakdown [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "683402b0-1f29-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Top Destination Ports [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Port\", \"missingBucketLabel\": \"Missing\", \"field\": \"destination.port\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Top Destination Ports [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Number of Kafka stracktraces by class",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Kafka stacktraces",
+ "title": "Number of stracktraces by class [Filebeat Kafka]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per 30 minutes\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"kafka.log.trace.class\", \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Number of Kafka stracktraces by class [Filebeat Kafka]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3f7c33c0-87ee-11e7-ad9c-db80de0bf8d3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "All Kafka logs",
+ "title": "Log levels over time [Filebeat Kafka]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per day\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"kafka.log.level\", \"customLabel\": \"Log Level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Log levels over time [Filebeat Kafka]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "PostgreSQL Log Level Count",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "PostgreSQL All Logs",
+ "title": "Log Level Count [Filebeat PostgreSQL]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"postgresql.log.level\", \"order\": \"desc\", \"size\": 12}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Log Level Count [Filebeat PostgreSQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3dbd5370-87f3-11e7-ad9c-db80de0bf8d3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "PostgreSQL All Logs",
+ "title": "Logs by level over time [Filebeat PostgreSQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per month\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"postgresql.log.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Logs by level over time [Filebeat PostgreSQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "PostgreSQL Query Count and Duration",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\"}}"
+ },
+ "savedSearchId": "PostgreSQL Query Durations",
+ "title": "Query count and cumulated duration [Filebeat PostgreSQL]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Number of queries\": \"#0A437C\", \"Sum of query duration\": \"#6ED0E0\"}, \"legendOpen\": true}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": true, \"type\": \"histogram\", \"interpolate\": \"linear\", \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"lineWidth\": 2, \"data\": {\"id\": \"4\", \"label\": \"Number of queries\"}}, {\"showCircles\": true, \"show\": true, \"type\": \"histogram\", \"interpolate\": \"linear\", \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"lineWidth\": 2, \"data\": {\"id\": \"2\", \"label\": \"Sum of query duration\"}}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per 3 hours\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}, {\"params\": {\"customLabel\": \"Number of queries\"}, \"type\": \"count\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"postgresql.log.duration\", \"customLabel\": \"Sum of query duration\"}, \"type\": \"sum\", \"enabled\": true, \"id\": \"2\", \"schema\": \"metric\"}], \"title\": \"Query count and cumulated duration [Filebeat PostgreSQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0fef5710-0a82-11e8-bffe-ff7d4f68cf94",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "bfc96a60-0a80-11e8-bffe-ff7d4f68cf94",
+ "title": "Logs Severity [Filebeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"legendPosition\": \"right\", \"type\": \"pie\", \"isDonut\": true, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mongodb.log.severity\", \"customLabel\": \"Log severity\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Logs Severity [Filebeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c7d46c60-86da-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Activity Types over Time [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"event.type\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 20}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Activity Types over Time [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0a0aa630-86db-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Event Types [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"bottom\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"event.type\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 20}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Event Types [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "728f64c0-86db-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Top Application Protocols [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"bottom\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"suricata.eve.app_proto\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Top Application Protocols [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9d5b5b50-86db-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Top Hosts Generating Events [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"host.name\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Top Hosts Generating Events [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5f99eb50-86dc-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Top Connection Source Countries [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tagcloud\", \"params\": {\"maxFontSize\": 72, \"showLabel\": true, \"minFontSize\": 18, \"orientation\": \"single\", \"scale\": \"linear\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Top Connection Source Countries\", \"missingBucketLabel\": \"Missing\", \"field\": \"source_ecs.geo.country_iso_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Top Connection Source Countries [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8e7f88d0-86dc-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Top Connection Destination Countries [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tagcloud\", \"params\": {\"maxFontSize\": 72, \"showLabel\": true, \"minFontSize\": 18, \"orientation\": \"single\", \"scale\": \"linear\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Top Connection Destination Countries\", \"missingBucketLabel\": \"Missing\", \"field\": \"destination.geo.country_iso_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Top Connection Destination Countries [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0a363820-86dd-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Top Network Protocols [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"bottom\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"suricata.eve.proto\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Top Network Protocols [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-access-unique-IPs-map",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-access-logs",
+ "title": "Unique IPs map [Filebeat Apache2]",
+ "uiStateJSON": "{\"mapCenter\": [14.944784875088372, 5.09765625]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {\"field\": \"apache2.access.remote_ip\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"apache2.access.geoip.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Apache2 access unique IPs map\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-response-codes-of-top-URLs",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-access-logs",
+ "title": "Top URLs by response code [Filebeat Apache2]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#7EB26D\", \"404\": \"#EF843C\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"customLabel\": \"URL\", \"field\": \"apache2.access.url\", \"row\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"split\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Apache2 response codes of top URLs\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-browsers",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-access-logs",
+ "title": "Browsers breakdown [Filebeat Apache2]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"apache2.access.remote_ip\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.user_agent.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.user_agent.major\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Apache2 browsers\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-operating-systems",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-access-logs",
+ "title": "Operating systems breakdown [Filebeat Apache2]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"apache2.access.remote_ip\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.user_agent.os_name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.user_agent.os_major\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Apache2 operating systems\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-error-logs-over-time",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-errors-log",
+ "title": "Error logs over time [Filebeat Apache2]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.error.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Apache2 error logs over time\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-response-codes-over-time",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-access-logs",
+ "title": "Response codes over time [Filebeat Apache2]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#629E51\", \"404\": \"#EF843C\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Apache2 response codes over time\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "6295bdd0-0a0e-11e7-825f-6748cda7d858",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}"
+ },
+ "title": "Event types breakdown [Filebeat Auditd]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": true, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"auditd.log.record_type\", \"order\": \"desc\", \"size\": 50}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Audit Event Types\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5ebdbe50-0a0f-11e7-825f-6748cda7d858",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"auditd.log.record_type:EXECVE\"}}}"
+ },
+ "title": "Top Exec Commands [Filebeat Auditd]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"auditd.log.a0\", \"customLabel\": \"Command (arg 0)\", \"order\": \"desc\", \"size\": 30}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Audit Top Exec Commands\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2bb0fa70-0a11-11e7-9e84-43da493ad0c7",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Event Results [Filebeat Auditd]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"auto\", \"expression\": \".es(q=\\\"_exists_:auditd.log NOT auditd.log.res:failure\\\").label(\\\"Success\\\"), .es(q=\\\"auditd.log.res:failed\\\").label(\\\"Failure\\\").title(\\\"Audit Event Results\\\")\"}, \"aggs\": [], \"title\": \"Event Results [Filebeat Auditd]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d1726930-0a7f-11e7-8b04-eb22a5669f27",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}"
+ },
+ "title": "Event Address Geo Location [Filebeat Auditd]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"auditd.log.geoip.location\", \"precision\": 2, \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Audit Event Address Geo Location\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c5411910-0a87-11e7-8b04-eb22a5669f27",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}"
+ },
+ "title": "Event Account Tag Cloud [Filebeat Auditd]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tagcloud\", \"listeners\": {}, \"params\": {\"maxFontSize\": 42, \"scale\": \"linear\", \"hideLabel\": false, \"orientation\": \"single\", \"minFontSize\": 15}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"auditd.log.acct\", \"order\": \"desc\", \"size\": 15}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Audit Event Account Tag Cloud\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5c7af030-fa2a-11e6-bbd3-29c986c96e5a",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "b6f321e0-fa25-11e6-bbd3-29c986c96e5a",
+ "title": "Sudo commands by user [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.user\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Sudo commands by user\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "51164310-fa2b-11e6-bbd3-29c986c96e5a",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.auth.sudo.error\"}}}"
+ },
+ "title": "Sudo errors [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.sudo.error\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Sudo errors\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dc589770-fa2b-11e6-bbd3-29c986c96e5a",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "b6f321e0-fa25-11e6-bbd3-29c986c96e5a",
+ "title": "Top sudo commands [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.sudo.command\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.user\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}], \"title\": \"Top sudo commands\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0bc34b60-2419-11e7-a83b-d5f4cebac9ff",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "c876e6a0-2418-11e7-a83b-d5f4cebac9ff",
+ "title": "Debuglog Facility [Filebeat Icinga]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"icinga.debug.facility\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Icinga Debuglog Facility\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "fb09d4b0-2418-11e7-a83b-d5f4cebac9ff",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "c876e6a0-2418-11e7-a83b-d5f4cebac9ff",
+ "title": "Debuglog Severity [Filebeat Icinga]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"debug\": \"#BA43A9\", \"information\": \"#629E51\", \"notice\": \"#6ED0E0\", \"warning\": \"#E5AC0E\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"icinga.debug.severity\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Icinga Debuglog Severity\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d8e5dc40-2417-11e7-a83b-d5f4cebac9ff",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ffaf5a30-2413-11e7-a0d9-39604d45ca7f",
+ "title": "Mainlog Severity [Filebeat Icinga]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"critical\": \"#BF1B00\", \"warning\": \"#E5AC0E\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"icinga.main.severity\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Icinga Mainlog Severity\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2cf77780-2418-11e7-a83b-d5f4cebac9ff",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ffaf5a30-2413-11e7-a0d9-39604d45ca7f",
+ "title": "Mainlog Facility [Filebeat Icinga]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"icinga.main.facility\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Icinga Mainlog Facility\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "eb2db5b0-fe11-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Access map [Filebeat IIS]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"wms\": {\"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"iis.access.geoip.location\", \"isFilteredByCollar\": true, \"precision\": 2, \"autoPrecision\": true, \"useGeocentroid\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Access map [Filebeat IIS]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f31414b0-fe14-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Response codes over time [Filebeat IIS]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"iis.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Response codes over time [Filebeat IIS]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "63129c80-fe12-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Browsers breakdown [Filebeat IIS]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"iis.access.user_agent.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"iis.access.user_agent.major\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Browsers breakdown [Filebeat IIS]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ccd3f9c0-fe12-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Operating systems breakdown [Filebeat IIS]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"iis.access.user_agent.os_name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"iis.access.user_agent.os_major\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Operating systems breakdown [Filebeat IIS]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "41f38230-fe17-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Error logs over time [Filebeat IIS]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"iis.error.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Error logs over time [Filebeat IIS]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c0d02cd0-fe1b-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Top URLs by response code [Filebeat IIS]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": false, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"customLabel\": \"URL\", \"field\": \"iis.access.url\", \"row\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"split\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"iis.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Top URLs by response code [Filebeat IIS]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "55251360-aa32-11e8-9c06-877f0445e3e0",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Backend breakdown [Filebeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"haproxy.backend_name\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Backend breakdown [Filebeat HAProxy]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7fb671f0-aa32-11e8-9c06-877f0445e3e0",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Frontend breakdown [Filebeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"haproxy.frontend_name\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Frontend breakdown [Filebeat HAProxy]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "11f8b9c0-aa32-11e8-9c06-877f0445e3e0",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "IP Geohashes [Filebeat HAProxy]",
+ "uiStateJSON": "{\"mapCenter\": [14.944784875088372, 5.09765625]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {\"field\": \"haproxy.client.ip\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"haproxy.geoip.location\", \"isFilteredByCollar\": true, \"precision\": 2, \"autoPrecision\": true, \"useGeocentroid\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"IP Geohashes [Filebeat HAProxy]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "68af8ef0-aa33-11e8-9c06-877f0445e3e0",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Response codes over time [Filebeat HAProxy]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#508642\", \"302\": \"#6ED0E0\", \"404\": \"#EAB839\", \"204\": \"#629E51\", \"503\": \"#705DA0\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"_term\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"haproxy.http.response.status_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Response codes over time [Filebeat HAProxy]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a59b5e00-2417-11e7-a83b-d5f4cebac9ff",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "710043e0-2417-11e7-a83b-d5f4cebac9ff",
+ "title": "Startup Errors [Filebeat Icinga]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Count\": \"#BF1B00\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Icinga Startup Errors\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Nginx-Access-Browsers",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}"
+ },
+ "title": "Browsers breakdown [Filebeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.user_agent.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.user_agent.major\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Nginx Access Browsers\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Nginx-Access-OSes",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}"
+ },
+ "title": "Operating systems breakdown [Filebeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.user_agent.os_name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.user_agent.os_major\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Nginx Access OSes\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Nginx-Access-Map",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-Nginx-module",
+ "title": "Access Map [Filebeat Nginx]",
+ "uiStateJSON": "{\"mapCenter\": [12.039320557540572, -0.17578125]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"nginx.access.geoip.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Nginx Access Map\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b70b1b20-a1f4-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Response codes over time [Filebeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"fileset.module:nginx AND fileset.name:access\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"filebeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"bar\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"\",\"line_width\":1,\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"count\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"filter\":\"nginx.access.response_code:[200 TO 299]\",\"id\":\"5acdc750-a29d-11e7-a062-a1c3587f4874\",\"label\":\"200s\"},{\"color\":\"rgba(252,196,0,1)\",\"filter\":\"nginx.access.response_code:[300 TO 399]\",\"id\":\"6efd2ae0-a29d-11e7-a062-a1c3587f4874\",\"label\":\"300s\"},{\"color\":\"rgba(211,49,21,1)\",\"filter\":\"nginx.access.response_code:[400 TO 499]\",\"id\":\"76089a90-a29d-11e7-a062-a1c3587f4874\",\"label\":\"400s\"},{\"color\":\"rgba(171,20,158,1)\",\"filter\":\"nginx.access.response_code:[500 TO 599]\",\"id\":\"7c7929d0-a29d-11e7-a062-a1c3587f4874\",\"label\":\"500s\"}],\"split_mode\":\"filters\",\"stacked\":\"stacked\",\"terms_field\":\"nginx.access.response_code\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Response codes over time [Filebeat Nginx]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9184fa00-a1f5-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Top pages [Filebeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"6252c320-a1f5-11e7-92ba-5d0b8663aece\"}],\"filter\":\"fileset.module:nginx AND fileset.name:access\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"filebeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"line_width\":1,\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"count\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"nginx.access.url\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"value_template\":\"\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Top pages [Filebeat Nginx]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "46322e50-a1f6-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Errors over time [Filebeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"fileset.module:nginx AND fileset.name:error\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"filebeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"bar\",\"color\":\"rgba(211,49,21,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"line_width\":1,\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"count\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"nginx.error.level\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Errors over time [Filebeat Nginx]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0dd6f320-a29f-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Data Volume [Filebeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"fileset.module: nginx AND fileset.name: access\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"filebeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.access.body_sent.bytes\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"filter\":\"nginx.access.response_code:[200 TO 299]\",\"id\":\"7c343c20-a29e-11e7-a062-a1c3587f4874\",\"label\":\"200s\"}],\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":null}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Data Volume [Filebeat Nginx]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "97109780-a2a5-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Dashboards [Filebeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"markdown\", \"params\": {\"markdown\": \"[Nginx logs overview](#/dashboard/55a9e6e0-a29e-11e7-928f-5dbe6f6f5519) | [Nginx access and error logs](#/dashboard/046212a0-a2a1-11e7-928f-5dbe6f6f5519)\", \"fontSize\": 12}, \"aggs\": [], \"title\": \"Dashboards [Filebeat Nginx]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MySQL-slowest-queries",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-MySQL-Slow-log",
+ "title": "Top slowest queries [Filebeat MySQL]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"mysql.slowlog.query_time.sec\", \"customLabel\": \"Query time\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mysql.slowlog.query\", \"customLabel\": \"Query\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mysql.slowlog.user\", \"customLabel\": \"User\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}], \"title\": \"Top slowest queries [Filebeat MySQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MySQL-Slow-queries-over-time",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-MySQL-Slow-log",
+ "title": "Slow queries over time [Filebeat MySQL]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Slow queries\": \"#EF843C\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Slow queries\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"yAxis\": {}, \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per 30 seconds\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Slow queries\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"customLabel\": \"Slow queries\"}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Slow queries over time [Filebeat MySQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MySQL-error-logs",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-MySQL-error-log",
+ "title": "Error logs over time [Filebeat MySQL]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Count\": \"#447EBC\", \"Error logs\": \"#1F78C1\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Error logs\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"yAxis\": {}, \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per 30 seconds\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Error logs\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"customLabel\": \"Error logs\"}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Error logs over time [Filebeat MySQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MySQL-Error-logs-levels",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-MySQL-error-log",
+ "title": "Error logs levels breakdown [Filebeat MySQL]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Note\": \"#9AC48A\", \"Warning\": \"#F9934E\", \"ERROR\": \"#E24D42\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"addTooltip\": true, \"isDonut\": false, \"legendPosition\": \"bottom\", \"addLegend\": true, \"shareYAxis\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mysql.error.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Error logs levels breakdown [Filebeat MySQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MySQL-Slow-logs-by-count",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-MySQL-Slow-log",
+ "title": "Slow logs breakdown [Filebeat MySQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"addTooltip\": true, \"isDonut\": false, \"legendPosition\": \"bottom\", \"addLegend\": true, \"shareYAxis\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mysql.slowlog.query\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Slow logs breakdown [Filebeat MySQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "78b9afe0-478f-11e7-b1f0-cb29bac6bf8b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:redis.log\"}}},\"version\":true}"
+ },
+ "title": "Log levels and roles breakdown [Filebeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"legendPosition\": \"bottom\", \"type\": \"pie\", \"isDonut\": false, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.log.role\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.log.level\", \"customLabel\": \"Log level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Log levels and roles breakdown [Filebeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d2864600-478f-11e7-be88-2ddb32f3df97",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:redis.log\"}}},\"version\":true}"
+ },
+ "title": "Logs over time [Filebeat Redis]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"notice\": \"#629E51\", \"warning\": \"#EF843C\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per month\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.log.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Logs over time [Filebeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dcccaa80-4791-11e7-be88-2ddb32f3df97",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "0ab87b80-478e-11e7-b1f0-cb29bac6bf8b",
+ "title": "Top slowest commands [Filebeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": true, \"data\": {\"id\": \"1\", \"label\": \"Command\"}, \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"Duration (microseconds)\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 200, \"show\": true}, \"position\": \"left\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Command\"}, \"labels\": {\"filter\": true, \"rotate\": 75, \"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {\"field\": \"redis.slowlog.duration.us\", \"customLabel\": \"Command\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.slowlog.cmd\", \"customLabel\": \"Duration (microseconds)\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Top slowest commands [Filebeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0b1dace0-cbdb-11e7-9852-73e0a9df1bb6",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "cfaba090-cbda-11e7-9852-73e0a9df1bb6",
+ "title": "Logs Severity [Filebeat Logstash]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"legendPosition\": \"right\", \"type\": \"pie\", \"isDonut\": true, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"logstash.log.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Logs Severity [Filebeat Logstash]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e90b7240-cbda-11e7-9852-73e0a9df1bb6",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "cfaba090-cbda-11e7-9852-73e0a9df1bb6",
+ "title": "logs over time [Filebeat Logstash]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"logstash.log.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"logs over time [Filebeat Logstash]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b3315630-cbdf-11e7-9852-73e0a9df1bb6",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "742e45d0-cbdd-11e7-9852-73e0a9df1bb6",
+ "title": "Slowest plugins [Filebeat Logstash]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": 3, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"logstash.slowlog.took_in_millis\", \"customLabel\": \"Average\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"logstash.slowlog.took_in_millis\", \"customLabel\": \"Min\"}, \"type\": \"min\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"5\", \"field\": \"logstash.slowlog.plugin_name\", \"customLabel\": \"Plugin Name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"8\", \"schema\": \"bucket\"}, {\"params\": {\"field\": \"logstash.slowlog.took_in_millis\", \"customLabel\": \"Max\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"7\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"5\", \"field\": \"logstash.slowlog.plugin_type\", \"customLabel\": \"Plugin Type\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"9\", \"schema\": \"bucket\"}], \"title\": \"Slowest plugins [Filebeat Logstash]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f398d2f0-fa77-11e6-ae9b-81e5311e8cab",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "8030c1b0-fa77-11e6-ae9b-81e5311e8cab",
+ "title": "New users [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.hostname\", \"customLabel\": \"Host\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.name\", \"customLabel\": \"User\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.uid\", \"customLabel\": \"UID\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.gid\", \"customLabel\": \"GID\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"5\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.home\", \"customLabel\": \"Home\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"6\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.shell\", \"customLabel\": \"Shell\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"7\", \"schema\": \"bucket\"}], \"title\": \"New users\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5dd15c00-fa78-11e6-ae9b-81e5311e8cab",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "8030c1b0-fa77-11e6-ae9b-81e5311e8cab",
+ "title": "New users over time [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"New users over time\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e121b140-fa78-11e6-a1df-a78bd7504d38",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "8030c1b0-fa77-11e6-ae9b-81e5311e8cab",
+ "title": "New users by shell [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"/sbin/nologin\": \"#7EB26D\", \"/bin/false\": \"#508642\", \"/bin/bash\": \"#E24D42\"}, \"legendOpen\": true}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.shell\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"New users by shell\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d56ee420-fa79-11e6-a1df-a78bd7504d38",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "8030c1b0-fa77-11e6-ae9b-81e5311e8cab",
+ "title": "New users by home directory [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"/nonexistent\": \"#629E51\", \"/sbin/nologin\": \"#7EB26D\", \"/bin/false\": \"#508642\", \"/bin/bash\": \"#E24D42\"}, \"legendOpen\": true}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.home\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"New users by home directory\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "12667040-fa80-11e6-a1df-a78bd7504d38",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "eb0039f0-fa7f-11e6-a1df-a78bd7504d38",
+ "title": "New groups [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.groupadd.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.groupadd.gid\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}], \"title\": \"New groups\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "346bb290-fa80-11e6-a1df-a78bd7504d38",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "eb0039f0-fa7f-11e6-a1df-a78bd7504d38",
+ "title": "New groups over time [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.groupadd.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"New groups over time\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d16bb400-f9cc-11e6-8115-a7c18106d86a",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"system.auth.ssh.event:Accepted\"}}}"
+ },
+ "title": "Successful SSH logins [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Failed\": \"#F9934E\", \"password\": \"#BF1B00\", \"Accepted\": \"#3F6833\", \"Invalid\": \"#447EBC\", \"publickey\": \"#629E51\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.ssh.method\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Successful SSH logins\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "78b74f30-f9cd-11e6-8115-a7c18106d86a",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\"}"
+ },
+ "title": "SSH login attempts [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Failed\": \"#F9934E\", \"Accepted\": \"#3F6833\", \"Invalid\": \"#447EBC\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.ssh.event\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"SSH login attempts\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "341ffe70-f9ce-11e6-8115-a7c18106d86a",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"system.auth.ssh.event:Failed OR system.auth.ssh.event:Invalid\"}}}"
+ },
+ "title": "SSH users of failed login attempts [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tagcloud\", \"listeners\": {}, \"params\": {\"maxFontSize\": 72, \"minFontSize\": 18, \"orientation\": \"single\", \"scale\": \"linear\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.user\", \"order\": \"desc\", \"size\": 50}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"SSH users of failed login attempts\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3cec3eb0-f9d3-11e6-8a3e-2b904044ea1d",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"system.auth.ssh.event:Failed OR system.auth.ssh.event:Invalid\"}}}"
+ },
+ "title": "SSH failed login attempts source locations [Filebeat System]",
+ "uiStateJSON": "{\"mapCenter\": [17.602139123350838, 69.697265625], \"mapZoom\": 2}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Shaded Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.auth.ssh.geoip.location\", \"precision\": 2, \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"SSH failed login attempts source locations\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Syslog-events-by-hostname",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Syslog-system-logs",
+ "title": "Syslog events by hostname [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.syslog.hostname\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Syslog events by hostname\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Syslog-hostnames-and-processes",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Syslog-system-logs",
+ "title": "Syslog hostnames and processes [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.syslog.hostname\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.syslog.program\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Syslog hostnames and processes\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "327417e0-8462-11e7-bab8-bd2f0fb42c54",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Dashboards [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"markdown\", \"params\": {\"markdown\": \"[Syslog](#/dashboard/Filebeat-syslog-dashboard) | [Sudo commands](#/dashboard/277876d0-fa2c-11e6-bbd3-29c986c96e5a) | [SSH logins](#/dashboard/5517a150-f9ce-11e6-8115-a7c18106d86a) | [New users and groups](#/dashboard/0d3f2380-fa78-11e6-ae9b-81e5311e8cab)\", \"fontSize\": 12}, \"aggs\": [], \"title\": \"Dashboards [Filebeat System]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1cfb1a80-a1f4-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Access logs over time [Filebeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"annotations\":[{\"color\":\"#F00\",\"icon\":\"fa-tag\",\"id\":\"970b1420-a1f3-11e7-a062-a1c3587f4874\",\"ignore_global_filters\":1,\"ignore_panel_filters\":1,\"index_pattern\":\"filebeat-*\",\"time_field\":\"@timestamp\"}],\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"3189aa80-a1f3-11e7-a062-a1c3587f4874\"}],\"filter\":\"fileset.module:nginx AND fileset.name:access\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"filebeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Access logs\",\"line_width\":1,\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"count\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"1db649a0-a1f3-11e7-a062-a1c3587f4874\"}],\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"nginx.access.url\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Access logs over time [Filebeat Nginx]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Unique-Count-URL-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Unique Count URL Timechart [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": true, \"type\": \"line\", \"interpolate\": \"linear\", \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"lineWidth\": 2, \"data\": {\"id\": \"1\", \"label\": \"Unique count of traefik.access.url\"}}], \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per day\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Unique count of traefik.access.url\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {\"field\": \"traefik.access.url\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"ML Traefik Access Unique Count URL Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Response-Code-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Response Code Timechart [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#7EB26D\", \"404\": \"#614D93\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"ML Traefik Access Response Code Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Top-Remote-IPs-Table",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Top Remote IPs [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.remote_ip\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"ML Traefik Access Top Remote IPs Table\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Map",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Access Map [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{\"mapCenter\": [12.039320557540572, -0.17578125]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"traefik.access.geoip.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"ML Traefik Access Map\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Top-URLs-Table",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Top URLs [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 100, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.url\", \"order\": \"desc\", \"size\": 1000}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"ML Traefik Access Top URLs Table\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Unique-Count-URL-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Unique Count URL Timechart [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": true, \"type\": \"line\", \"interpolate\": \"linear\", \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"lineWidth\": 2, \"data\": {\"id\": \"1\", \"label\": \"Unique count of nginx.access.url\"}}], \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per day\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Unique count of nginx.access.url\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {\"field\": \"nginx.access.url\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"ML Nginx Access Unique Count URL Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Response-Code-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Response Code Timechart [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#7EB26D\", \"404\": \"#614D93\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"ML Nginx Access Response Code Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Top-Remote-IPs-Table",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Top Remote IPs [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.remote_ip\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"ML Nginx Access Top Remote IPs Table\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Map",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Access Map [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{\"mapCenter\": [12.039320557540572, -0.17578125]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"nginx.access.geoip.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"ML Nginx Access Map\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Top-URLs-Table",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Top URLs [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 100, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.url\", \"order\": \"desc\", \"size\": 1000}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"ML Nginx Access Top URLs Table\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Traefik-Access-Browsers",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}"
+ },
+ "title": "Browsers breakdown [Filebeat Traefik]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.user_agent.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.user_agent.major\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Traefik Access Browsers\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Traefik-Access-OSes",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}"
+ },
+ "title": "Operating systems breakdown [Filebeat Traefik]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.user_agent.os_name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.user_agent.os_major\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Traefik Access OSes\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "New-Visualization",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-Traefik-module",
+ "title": "Response codes over time [Filebeat Traefik]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#7EB26D\", \"404\": \"#614D93\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"New Visualization\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Traefik-Access-Response-codes-by-top-URLs",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}"
+ },
+ "title": "Response codes by top URLs [Filebeat Traefik]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#629E51\", \"404\": \"#0A50A1\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.url\", \"size\": 5, \"order\": \"desc\", \"row\": false}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"split\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Traefik Access Response codes by top URLs\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Sent-sizes",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:traefik.access\"}}}"
+ },
+ "title": "Sent Byte Size [Filebeat Traefik]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": true, \"yAxis\": {}, \"smoothLines\": true, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": \"17\", \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"traefik.access.body_sent.bytes\", \"customLabel\": \"Data sent\"}, \"type\": \"sum\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"3\", \"schema\": \"radius\"}], \"title\": \"Sent sizes\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Traefik-Access-Map",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-Traefik-module",
+ "title": "Access Map [Filebeat Traefik]",
+ "uiStateJSON": "{\"mapCenter\": [12.039320557540572, -0.17578125]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"traefik.access.geoip.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Traefik Access Map\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a9fd8bb0-eb01-11e7-8f04-51231daa5b05",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "7a9482d0-eb00-11e7-8f04-51231daa5b05",
+ "title": "Mounts by type [Osquery Result]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"osquery.result.columns.path\", \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"osquery.result.columns.type\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Mounts by type [Osquery Result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1da1ed30-eb03-11e7-8f04-51231daa5b05",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b5d6baa0-eb02-11e7-8f04-51231daa5b05",
+ "title": "OS versions [Osquery result]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {\"field\": \"osquery.result.host_identifier\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"osquery.result.columns.platform_like\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"osquery.result.columns.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"osquery.result.columns.version\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"OS versions [Osquery result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "240f3630-eb05-11e7-8f04-51231daa5b05",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"osquery.result.columns.status\",\"negate\":false,\"params\":{\"query\":\"Live\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"Live\"},\"query\":{\"match\":{\"osquery.result.columns.status\":{\"query\":\"Live\",\"type\":\"phrase\"}}}}],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "f59e21e0-eb03-11e7-8f04-51231daa5b05",
+ "title": "Number of Kernel modules [Osquery Result]",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"gauge\", \"params\": {\"gauge\": {\"gaugeType\": \"Arc\", \"style\": {\"bgWidth\": 0.9, \"subText\": \"\", \"maskBars\": 50, \"labelColor\": true, \"mask\": false, \"bgFill\": \"#eee\", \"bgColor\": false, \"fontSize\": 60, \"bgMask\": false, \"width\": 0.9}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"orientation\": \"vertical\", \"gaugeStyle\": \"Full\", \"type\": \"meter\", \"labels\": {\"color\": \"black\", \"show\": true}, \"gaugeColorMode\": \"Labels\", \"colorsRange\": [{\"to\": 100, \"from\": 0}], \"scale\": {\"color\": \"#333\", \"labels\": false, \"show\": true}, \"verticalSplit\": false, \"percentageMode\": false, \"extendRange\": true, \"backStyle\": \"Full\"}, \"type\": \"gauge\", \"addTooltip\": true, \"isDisplayWarning\": false, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"osquery.result.columns.name\", \"customLabel\": \"Live Kernel modules\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Number of Kernel modules [Osquery Result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "6ec10290-f4aa-11e7-8647-534bb4c21040",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Info OSSEC rootkit [Osquery Result]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"markdown\", \"params\": {\"markdown\": \"This dashboard shows data collected by the ossec-rootkit pack from osquery.\", \"fontSize\": 12}, \"aggs\": [], \"title\": \"Info OSSEC rootkit [Osquery Result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ffdbba50-f4a9-11e7-8647-534bb4c21040",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "0fe5dc00-f49b-11e7-8647-534bb4c21040",
+ "title": "Number of rootkits found [Osquery Result]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"params\": {\"type\": \"metric\", \"metric\": {\"style\": {\"bgFill\": \"#000\", \"bgColor\": false, \"fontSize\": 40, \"subText\": \"\", \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"labels\": {\"show\": true}, \"useRanges\": false, \"percentageMode\": false, \"colorsRange\": [{\"to\": 10000, \"from\": 0}], \"metricColorMode\": \"None\"}, \"addTooltip\": true, \"addLegend\": false}, \"aggs\": [{\"params\": {\"field\": \"osquery.result.name\", \"customLabel\": \"Rootkits\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Number of rootkits found [Osquery Result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ab587180-f4a9-11e7-8647-534bb4c21040",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "0fe5dc00-f49b-11e7-8647-534bb4c21040",
+ "title": "Number of hosts infected [Osquery Result]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"params\": {\"type\": \"metric\", \"metric\": {\"style\": {\"bgFill\": \"#000\", \"bgColor\": false, \"fontSize\": 40, \"subText\": \"\", \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"labels\": {\"show\": true}, \"useRanges\": false, \"percentageMode\": false, \"colorsRange\": [{\"to\": 10000, \"from\": 0}], \"metricColorMode\": \"None\"}, \"addTooltip\": true, \"addLegend\": false}, \"aggs\": [{\"params\": {\"field\": \"beat.hostname\", \"customLabel\": \"Hosts\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Number of hosts infected [Osquery Result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2d6e0760-f4ab-11e7-8647-534bb4c21040",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Navigation [Osquery Result]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"markdown\", \"params\": {\"markdown\": \"[Compilance](#/dashboard/69f5ae20-eb02-11e7-8f04-51231daa5b05) | [OSSEC Rootkit](#/dashboard/c0a7ce90-f4aa-11e7-8647-534bb4c21040)\", \"fontSize\": 10}, \"aggs\": [], \"title\": \"Navigation [Osquery Result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Remote-IP-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Remote IP Timechart [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{\"vis\": {\"legendOpen\": false}}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per 5 minutes\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.remote_ip\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"ML Traefik Access Remote IP Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Remote-IP-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Remote IP Timechart [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{\"vis\": {\"legendOpen\": false}}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per 5 minutes\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.remote_ip\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"ML Nginx Access Remote IP Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "41626300-8492-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_resources_total",
+ "visState": "{\"title\":\"kisscache_resources_total\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"statistics_successes\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"Successes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"statistics_failures\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"Failures\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5bbc4230-b1ed-11e8-852d-55393e7ce617",
+ "_type": "visualization",
+ "_source": {
+ "title": "lava_queue_lng",
+ "visState": "{\"title\":\"lava_queue_lng\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"m\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "324e8c50-a6da-11e8-83fb-2d7acaa76fd6",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "daff3a10-725f-11e9-8ab9-1b38609ca045",
+ "_type": "visualization",
+ "_source": {
+ "title": "jobfailure_lkft",
+ "visState": "{\"title\":\"jobfailure_lkft\",\"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\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"error_message.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"device.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "4710ee00-71b2-11e9-8ab9-1b38609ca045",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8b13dac0-8491-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_requests_total",
+ "visState": "{\"title\":\"kisscache_requests_total\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"statistics_requests\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"requests\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-containers",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Docker",
+ "title": "Docker containers [Metricbeat Docker]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": 1, \"direction\": \"asc\"}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 8, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": true, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"orderBy\": \"1\", \"field\": \"docker.container.name\", \"customLabel\": \"Name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"field\": \"docker.cpu.total.pct\", \"customLabel\": \"CPU usage (%)\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"docker.diskio.total\", \"customLabel\": \"DiskIO\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"docker.memory.usage.pct\", \"customLabel\": \"Mem (%)\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"docker.memory.rss.total\", \"customLabel\": \"Mem RSS\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"docker.container.id\", \"customLabel\": \"Number of Containers\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Docker containers [Metricbeat Docker]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-Number-of-Containers",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Docker",
+ "title": "Number of Containers [Metricbeat Docker]",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"listeners\": {}, \"params\": {\"addTooltip\": true, \"addLegend\": false, \"fontSize\": \"36\", \"handleNoResults\": true, \"gauge\": {\"useRange\": false, \"gaugeType\": \"Metric\", \"style\": {\"subText\": \"\", \"bgColor\": false, \"fontSize\": 60, \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"orientation\": \"vertical\", \"gaugeStyle\": \"Full\", \"autoExtend\": false, \"labels\": {\"color\": \"black\", \"show\": true}, \"backStyle\": \"Full\", \"colorsRange\": [{\"to\": 100, \"from\": 0}], \"scale\": {\"color\": \"#333\", \"width\": 2, \"labels\": false, \"show\": false}, \"verticalSplit\": false, \"percentageMode\": false, \"type\": \"simple\", \"gaugeColorMode\": \"None\"}, \"type\": \"gauge\"}, \"aggs\": [{\"params\": {\"field\": \"docker.info.containers.running\", \"customLabel\": \"Running\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"2\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"docker.info.containers.paused\", \"customLabel\": \"Paused\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"docker.info.containers.stopped\", \"customLabel\": \"Stopped\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}], \"title\": \"Number of Containers [Metricbeat Docker]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-containers-per-host",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Docker",
+ "title": "Docker containers per host [Metricbeat Docker]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"docker.container.id\", \"customLabel\": \"Number of containers\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"beat.hostname\", \"customLabel\": \"Hosts\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Docker containers per host [Metricbeat Docker]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-images-and-names",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Docker",
+ "title": "Docker images and names [Metricbeat Docker]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"docker.container.image\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"docker.container.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Docker images and names [Metricbeat Docker]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-CPU-usage",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:docker AND metricset.name:cpu\"}}}"
+ },
+ "title": "CPU usage [Metricbeat Docker]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": true, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"top\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"docker.cpu.total.pct\", \"customLabel\": \"Total CPU time\", \"percents\": [75]}, \"type\": \"percentiles\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1.75\", \"field\": \"docker.container.name\", \"customLabel\": \"Container name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"CPU usage [Metricbeat Docker]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-memory-usage",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:docker AND metricset.name:memory\"}}}"
+ },
+ "title": "Memory usage [Metricbeat Docker]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"top\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"docker.memory.usage.total\", \"customLabel\": \"Memory\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"docker.container.name\", \"customLabel\": \"Container name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Memory usage [Metricbeat Docker]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-Network-IO",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:docker AND metricset.name:network\"}}}"
+ },
+ "title": "Network IO [Metricbeat Docker]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": true, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"top\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"docker.network.in.bytes\", \"customLabel\": \"IN bytes\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"docker.container.name\", \"customLabel\": \"Container name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}, {\"params\": {\"field\": \"docker.network.out.bytes\", \"customLabel\": \"OUT bytes\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}], \"title\": \"Network IO [Metricbeat Docker]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-CPU",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "CPU usage [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": true, \"yAxis\": {}, \"smoothLines\": false, \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"type\": \"avg\", \"params\": {\"field\": \"apache.status.cpu.load\", \"customLabel\": \"CPU load\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"date_histogram\", \"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"id\": \"2\", \"schema\": \"segment\"}, {\"type\": \"terms\", \"params\": {\"orderBy\": \"1\", \"field\": \"apache.status.hostname\", \"size\": 5, \"order\": \"desc\", \"row\": true}, \"id\": \"3\", \"schema\": \"split\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.cpu.user\", \"customLabel\": \"CPU user\"}, \"id\": \"4\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.cpu.system\", \"customLabel\": \"CPU system\"}, \"id\": \"5\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.cpu.children_user\", \"customLabel\": \"CPU children user\"}, \"id\": \"6\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.cpu.children_system\", \"customLabel\": \"CPU children system\"}, \"id\": \"7\", \"schema\": \"metric\"}], \"title\": \"Apache HTTPD - CPU\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Hostname-list",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Hostname list [Metricbeat Apache]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"type\": \"count\", \"params\": {\"customLabel\": \"Events count\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"terms\", \"params\": {\"orderBy\": \"1\", \"field\": \"apache.status.hostname\", \"customLabel\": \"Apache HTTD Hostname\", \"order\": \"desc\", \"size\": 5}, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Apache HTTPD - Hostname list\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Load1-slash-5-slash-15",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Load1/5/15 [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": true, \"yAxis\": {}, \"smoothLines\": false, \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"type\": \"avg\", \"params\": {\"field\": \"apache.status.load.5\", \"customLabel\": \"Load 5\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"date_histogram\", \"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"id\": \"2\", \"schema\": \"segment\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.load.1\", \"customLabel\": \"Load 1\"}, \"id\": \"3\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.load.15\", \"customLabel\": \"Load 15\"}, \"id\": \"4\", \"schema\": \"metric\"}, {\"type\": \"terms\", \"params\": {\"orderBy\": \"1\", \"customLabel\": \"Hostname\", \"field\": \"apache.status.hostname\", \"row\": true, \"order\": \"desc\", \"size\": 5}, \"id\": \"5\", \"schema\": \"split\"}], \"title\": \"Apache HTTPD - Load1/5/15\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Scoreboard",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Scoreboard [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": true, \"yAxis\": {}, \"smoothLines\": false, \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.closing_connection\", \"customLabel\": \"Closing connection\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"date_histogram\", \"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"id\": \"2\", \"schema\": \"segment\"}, {\"type\": \"terms\", \"params\": {\"orderBy\": \"1\", \"customLabel\": \"Hostname\", \"field\": \"apache.status.hostname\", \"row\": true, \"order\": \"desc\", \"size\": 5}, \"id\": \"3\", \"schema\": \"split\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.dns_lookup\", \"customLabel\": \"DNS lookup\"}, \"id\": \"4\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.gracefully_finishing\", \"customLabel\": \"Gracefully finishing\"}, \"id\": \"5\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.idle_cleanup\", \"customLabel\": \"Idle cleanup\"}, \"id\": \"6\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.keepalive\", \"customLabel\": \"Keepalive\"}, \"id\": \"7\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.logging\", \"customLabel\": \"Logging\"}, \"id\": \"8\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.open_slot\", \"customLabel\": \"Open slot\"}, \"id\": \"9\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.reading_request\", \"customLabel\": \"Reading request\"}, \"id\": \"10\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.sending_reply\", \"customLabel\": \"Sending reply\"}, \"id\": \"11\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.starting_up\", \"customLabel\": \"Starting up\"}, \"id\": \"12\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.total\", \"customLabel\": \"Total\"}, \"id\": \"13\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.waiting_for_connection\", \"customLabel\": \"Waiting for connection\"}, \"id\": \"14\", \"schema\": \"metric\"}], \"title\": \"Apache HTTPD - Scoreboard\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Total-accesses-and-kbytes",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Total accesses and kbytes [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"listeners\": {}, \"params\": {\"handleNoResults\": true, \"fontSize\": 60}, \"aggs\": [{\"type\": \"max\", \"params\": {\"field\": \"apache.status.total_kbytes\", \"customLabel\": \"Total kbytes\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"max\", \"params\": {\"field\": \"apache.status.total_accesses\", \"customLabel\": \"Total accesses\"}, \"id\": \"2\", \"schema\": \"metric\"}], \"title\": \"Apache HTTPD - Total accesses and kbytes\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Uptime",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Uptime [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"listeners\": {}, \"params\": {\"handleNoResults\": true, \"fontSize\": 60}, \"aggs\": [{\"type\": \"max\", \"params\": {\"field\": \"apache.status.uptime.uptime\", \"customLabel\": \"Uptime\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"max\", \"params\": {\"field\": \"apache.status.uptime.server_uptime\", \"customLabel\": \"Server uptime\"}, \"id\": \"2\", \"schema\": \"metric\"}], \"title\": \"Apache HTTPD - Uptime\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Workers",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Workers [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": true, \"yAxis\": {}, \"smoothLines\": false, \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"type\": \"avg\", \"params\": {\"field\": \"apache.status.workers.busy\", \"customLabel\": \"Busy workers\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"date_histogram\", \"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"id\": \"2\", \"schema\": \"segment\"}, {\"type\": \"terms\", \"params\": {\"orderBy\": \"1\", \"customLabel\": \"Hostname\", \"field\": \"apache.status.hostname\", \"row\": true, \"order\": \"desc\", \"size\": 5}, \"id\": \"3\", \"schema\": \"split\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.workers.idle\", \"customLabel\": \"Idle workers\"}, \"id\": \"4\", \"schema\": \"metric\"}], \"title\": \"Apache HTTPD - Workers\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Container-CPU-usage",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "Container CPU usage [Metricbeat System]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"system.process.cgroup.cpuacct.stats.user.ns\", \"customLabel\": \"CPU user\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.cpu.cfs.quota.us\", \"customLabel\": \"CPU quota\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"2\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.process.cgroup.id\", \"customLabel\": \"Container ID\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}, {\"params\": {\"field\": \"system.process.cgroup.cpu.stats.throttled.ns\", \"customLabel\": \"CPU throttling\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.cpuacct.stats.system.ns\", \"customLabel\": \"CPU kernel\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.process.name\", \"customLabel\": \"Process name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"6\", \"schema\": \"bucket\"}], \"title\": \"Container CPU usage [Metricbeat System]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Container-Memory-stats",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "Container Memory stats [Metricbeat System]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"system.process.cgroup.memory.mem.usage.bytes\", \"customLabel\": \"Usage\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"13\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.mem.usage.max.bytes\", \"customLabel\": \"Max usage\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"14\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.stats.page_faults\", \"customLabel\": \"Page faults\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.stats.pages_in\", \"customLabel\": \"Pages in memory\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"2\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.stats.pages_out\", \"customLabel\": \"Pages out of memory\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.process.cgroup.id\", \"customLabel\": \"Container ID\", \"order\": \"desc\", \"size\": 50}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"bucket\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.stats.inactive_file.bytes\", \"customLabel\": \"Inactive files\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.stats.major_page_faults\", \"customLabel\": \"# Major page faults\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.process.name\", \"customLabel\": \"Process name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"8\", \"schema\": \"bucket\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.mem.failures\", \"customLabel\": \"Failures\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"12\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.kmem_tcp.usage.bytes\", \"customLabel\": \"TCP buffers\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"10\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.stats.rss_huge.bytes\", \"customLabel\": \"Huge pages\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"11\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.stats.rss.bytes\", \"customLabel\": \"Swap caches\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"7\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.memory.stats.swap.bytes\", \"customLabel\": \"Swap usage\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"15\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.blkio.total.ios\", \"customLabel\": \"Block I/O\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"16\", \"schema\": \"metric\"}], \"title\": \"Container Memory stats [Metricbeat System]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Container-Block-IO",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "Container Block IO [Metricbeat System]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"system.process.cgroup.blkio.total.bytes\", \"customLabel\": \"Total\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"system.process.cgroup.blkio.total.ios\", \"customLabel\": \"I/O\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"2\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.process.cgroup.id\", \"customLabel\": \"Container ID\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.process.name\", \"customLabel\": \"Process name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"bucket\"}], \"title\": \"Container Block IO [Metricbeat System]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "58000780-f529-11e6-844d-b170e2f0a07e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "Heap Summary [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.system.total\\\").label(\\\"System Total Memory\\\").yaxis(label=\\\"Bytes\\\",units=bytes),.es(index=\\\"metricbeat*\\\",metric=\\\"min:golang.heap.allocations.allocated\\\").label(\\\"Bytes Allocated(min)\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.allocations.allocated\\\").label(\\\"Bytes Allocated(max)\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.gc.next_gc_limit\\\").label(\\\"GC Limit\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.gc.pause.count\\\").condition(lt,1, null).points().label(\\\"GC Cycles(count)\\\").yaxis(2,label=\\\"Count\\\")\"}, \"aggs\": [], \"title\": \"Heap Summary [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "95388680-f52a-11e6-969c-518c48c913e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "Heap [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.allocations.total\\\").label(\\\"Heap Total\\\").derivative().movingaverage(30).yaxis(label=\\\"Bytes\\\",units=bytes),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.allocations.active\\\").label(\\\"Heap Inuse\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.allocations.allocated\\\").label(\\\"Heap Allocated\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.allocations.idle\\\").label(\\\"Heap Idle\\\").movingaverage(30)\"}, \"aggs\": [], \"title\": \"Heap [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b59a5200-f52a-11e6-969c-518c48c913e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "Objects [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.allocations.objects\\\").label(\\\"Object Count(avg)\\\").yaxis(1,label=\\\"Count\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.allocations.total\\\").derivative().label(\\\"Allocation Rate\\\").yaxis(2,label=\\\"Rate\\\").movingaverage(30)\"}, \"aggs\": [], \"title\": \"Objects [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9a9a8bf0-f52a-11e6-969c-518c48c913e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "System [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.system.total\\\").label(\\\"System Total\\\").yaxis(label=\\\"Bytes\\\",units=bytes),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.system.obtained\\\").label(\\\"System Obtained\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.system.stack\\\").label(\\\"System Stack\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.system.released\\\").label(\\\"System Released\\\")\"}, \"aggs\": [], \"title\": \"System [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b046cb80-f52a-11e6-969c-518c48c913e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "GC count [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.pause.count\\\").label(\\\"GC Count\\\").bars().yaxis(label=\\\"Count\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.total_count\\\").label(\\\"GC Rate\\\").derivative().movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.cpu_fraction\\\").label(\\\"CPU Fraction\\\").yaxis(2,label=\\\"Fraction\\\")\"}, \"aggs\": [], \"title\": \"GC count [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ab226b50-f52a-11e6-969c-518c48c913e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "GC durations [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.pause.sum.ns\\\").bars().label(\\\"sum of GC Pause durations(ns)\\\").yaxis(label=\\\"Durations(ns)\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.total_pause.ns\\\").derivative().movingaverage(30).label(\\\"Total GC Pause(ns) Rate\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.pause.max.ns\\\").label(\\\"Max GC Pause(ns)\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.gc.pause.avg.ns\\\").label(\\\"Avg GC Pause(ns)\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.pause.count\\\").condition(lt,1, null).label(\\\"GC Pause count\\\").points().yaxis(2,label=\\\"Count\\\")\"}, \"aggs\": [], \"title\": \"GC durations [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4d546850-1b15-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "System Load [Metricbeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"f6264ad0-1b14-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(115,216,255,1)\",\"fill\":\"0\",\"formatter\":\"number\",\"id\":\"f62671e0-1b14-11e7-b09e-037021c4f8df\",\"label\":\"1m\",\"line_width\":\"3\",\"metrics\":[{\"field\":\"system.load.1\",\"id\":\"f62671e1-1b14-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"0\",\"formatter\":\"number\",\"id\":\"1c324850-1b15-11e7-b09e-037021c4f8df\",\"label\":\"5m\",\"line_width\":\"3\",\"metrics\":[{\"field\":\"system.load.5\",\"id\":\"1c324851-1b15-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,98,177,1)\",\"fill\":\"0\",\"formatter\":\"number\",\"id\":\"3287e740-1b15-11e7-b09e-037021c4f8df\",\"label\":\"15m\",\"line_width\":\"3\",\"metrics\":[{\"field\":\"system.load.15\",\"id\":\"32880e50-1b15-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"System Load [Metricbeat System]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "bfa5e400-1b16-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "Memory Usage [Metricbeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"32f46f40-1b16-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(211,49,21,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"4ff61fd0-1b16-11e7-b09e-037021c4f8df\",\"label\":\"Used\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.actual.used.bytes\",\"id\":\"4ff61fd1-1b16-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"753a6080-1b16-11e7-b09e-037021c4f8df\",\"label\":\"Cache\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.actual.used.bytes\",\"id\":\"753a6081-1b16-11e7-b09e-037021c4f8df\",\"type\":\"avg\"},{\"field\":\"system.memory.used.bytes\",\"id\":\"7c9d3f00-1b16-11e7-b09e-037021c4f8df\",\"type\":\"avg\"},{\"id\":\"869cc160-1b16-11e7-b09e-037021c4f8df\",\"script\":\"params.actual != null \\u0026\\u0026 params.used != null ? params.used - params.actual : null\",\"type\":\"calculation\",\"variables\":[{\"field\":\"753a6081-1b16-11e7-b09e-037021c4f8df\",\"id\":\"890f9620-1b16-11e7-b09e-037021c4f8df\",\"name\":\"actual\"},{\"field\":\"7c9d3f00-1b16-11e7-b09e-037021c4f8df\",\"id\":\"8f3ab7f0-1b16-11e7-b09e-037021c4f8df\",\"name\":\"used\"}]}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"32f46f41-1b16-11e7-b09e-037021c4f8df\",\"label\":\"Free\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.free\",\"id\":\"32f46f42-1b16-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Memory Usage [Metricbeat System]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ab2d1e90-1b1a-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "CPU Usage [Metricbeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"80a04950-1b19-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"80a04951-1b19-11e7-b09e-037021c4f8df\",\"label\":\"user\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.user.pct\",\"id\":\"80a04952-1b19-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(211,49,21,1)\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"993acf30-1b19-11e7-b09e-037021c4f8df\",\"label\":\"system\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.system.pct\",\"id\":\"993acf31-1b19-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(123,100,255,1)\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"65ca35e0-1b1a-11e7-b09e-037021c4f8df\",\"label\":\"nice\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.nice.pct\",\"id\":\"65ca5cf0-1b1a-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(226,115,0,1)\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"741b5f20-1b1a-11e7-b09e-037021c4f8df\",\"label\":\"irq\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.irq.pct\",\"id\":\"741b5f21-1b1a-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(176,188,0,1)\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"2efc5d40-1b1a-11e7-b09e-037021c4f8df\",\"label\":\"softirq\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.softirq.pct\",\"id\":\"2efc5d41-1b1a-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(15,20,25,1)\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"ae644a30-1b19-11e7-b09e-037021c4f8df\",\"label\":\"iowait\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.iowait.pct\",\"id\":\"ae644a31-1b19-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"CPU Usage [Metricbeat System]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "26732e20-1b91-11e7-bec4-a5e9ec5cab8b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "Load Gauge [Metricbeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"feefabd0-1b90-11e7-bec4-a5e9ec5cab8b\"}],\"gauge_color_rules\":[{\"id\":\"ffd94880-1b90-11e7-bec4-a5e9ec5cab8b\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"fdcc6180-1b90-11e7-bec4-a5e9ec5cab8b\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"fdcc6181-1b90-11e7-bec4-a5e9ec5cab8b\",\"label\":\"5m Load\",\"line_width\":1,\"metrics\":[{\"field\":\"system.load.5\",\"id\":\"fdcc6182-1b90-11e7-bec4-a5e9ec5cab8b\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"gauge\"},\"title\":\"Load Gauge [Metricbeat System]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "19e123b0-4d5a-11e7-aee5-fdc812cc3bec",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "Swap usage [Metricbeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"\",\"gauge_color_rules\":[{\"gauge\":\"rgba(104,188,0,1)\",\"id\":\"d17c1e90-4d59-11e7-aee5-fdc812cc3bec\",\"operator\":\"gte\",\"value\":0},{\"gauge\":\"rgba(251,158,0,1)\",\"id\":\"fc1d3490-4d59-11e7-aee5-fdc812cc3bec\",\"operator\":\"gte\",\"value\":0.7},{\"gauge\":\"rgba(211,49,21,1)\",\"id\":\"0e204240-4d5a-11e7-aee5-fdc812cc3bec\",\"operator\":\"gte\",\"value\":0.85}],\"gauge_inner_width\":10,\"gauge_max\":\"\",\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"cee2fd20-4d59-11e7-aee5-fdc812cc3bec\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"cee2fd21-4d59-11e7-aee5-fdc812cc3bec\",\"label\":\"Swap usage\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.swap.used.pct\",\"id\":\"cee2fd22-4d59-11e7-aee5-fdc812cc3bec\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"gauge\"},\"title\":\"Swap usage [Metricbeat System]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d2e80340-4d5c-11e7-aa29-87a97a796de6",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query_string\":{\"query\":\"*\"}}}"
+ },
+ "title": "Memory usage vs total",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"6f7618b0-4d5c-11e7-aa29-87a97a796de6\"}],\"id\":\"6bc65720-4d5c-11e7-aa29-87a97a796de6\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"6bc65721-4d5c-11e7-aa29-87a97a796de6\",\"label\":\"Memory usage\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.actual.used.bytes\",\"id\":\"6bc65722-4d5c-11e7-aa29-87a97a796de6\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"b8fe6820-4d5c-11e7-aa29-87a97a796de6\",\"label\":\"Total Memory\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.total\",\"id\":\"b8fe6821-4d5c-11e7-aa29-87a97a796de6\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Memory usage vs total\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "96976150-4d5d-11e7-aa29-87a97a796de6",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "Packetloss [Metricbeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"6ba9b1f0-4d5d-11e7-aa29-87a97a796de6\"}],\"id\":\"6984af10-4d5d-11e7-aa29-87a97a796de6\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"6984af11-4d5d-11e7-aa29-87a97a796de6\",\"label\":\"In Packetloss\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.in.dropped\",\"id\":\"6984af12-4d5d-11e7-aa29-87a97a796de6\",\"type\":\"max\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"ac2e6b30-4d5d-11e7-aa29-87a97a796de6\",\"label\":\"Out Packetloss\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.out.dropped\",\"id\":\"ac2e6b31-4d5d-11e7-aa29-87a97a796de6\",\"type\":\"max\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Packetloss [Metricbeat System]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "590a60f0-5d87-11e7-8884-1bb4c3b890e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}"
+ },
+ "title": "Number of processes [Metricbeat System]",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"listeners\": {}, \"params\": {\"gauge\": {\"useRange\": false, \"gaugeType\": \"Metric\", \"style\": {\"bgFill\": \"#000\", \"bgColor\": false, \"fontSize\": 60, \"subText\": \"\", \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"orientation\": \"vertical\", \"gaugeStyle\": \"Full\", \"autoExtend\": false, \"labels\": {\"color\": \"black\", \"show\": true}, \"backStyle\": \"Full\", \"colorsRange\": [{\"to\": 100, \"from\": 0}], \"scale\": {\"color\": \"#333\", \"width\": 2, \"labels\": false, \"show\": false}, \"verticalSplit\": false, \"percentageMode\": false, \"type\": \"simple\", \"gaugeColorMode\": \"None\"}, \"type\": \"gauge\", \"addTooltip\": true, \"addLegend\": false}, \"aggs\": [{\"params\": {\"field\": \"system.process.pid\", \"customLabel\": \"Processes\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Number of processes\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3d65d450-a9c3-11e7-af20-67db8aecb295",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Tip [Metricbeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"markdown\", \"params\": {\"markdown\": \"**TIP:** To select another host, go to the [System Overview](#/dashboard/Metricbeat-system-overview) dashboard and double-click a host name.\", \"fontSize\": 12}, \"aggs\": [], \"title\": \"Tip [Metricbeat System]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b9d12c80-8e63-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Kafka Topic & Consumer Offsets [Metricbeat Kafka]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"8b27e6a0-8e61-11e8-b741-c3e458b74a68\"}],\"filter\":\"NOT kafka.topic.name:__consumer_offsets\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"bar\",\"color\":\"rgba(244,78,59,1)\",\"fill\":\"0.1\",\"filter\":\"metricset.name: partition AND kafka.partition.partition.is_leader: true\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Topic Offsets\",\"line_width\":\"0.5\",\"metrics\":[{\"field\":\"kafka.partition.offset.newest\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_color_mode\":\"rainbow\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kafka.topic.name\",\"terms_order_by\":\"_term\",\"value_template\":\"{{value}}\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(244,78,59,0.52)\",\"fill\":\"0\",\"filter\":\"metricset.name: consumergroup\",\"formatter\":\"number\",\"id\":\"d43034c0-8f1e-11e8-8784-cd0acd161a28\",\"label\":\"Consumer Offsets\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"kafka.consumergroup.offset\",\"id\":\"d43034c1-8f1e-11e8-8784-cd0acd161a28\",\"type\":\"sum\"}],\"point_size\":\"1.5\",\"seperate_axis\":0,\"split_color_mode\":\"rainbow\",\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"dd41ada0-8f1e-11e8-8784-cd0acd161a28\"}],\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kafka.consumergroup.id\",\"terms_order_by\":\"_term\",\"value_template\":\"{{value}}\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Kafka Topic \\u0026 Consumer Offsets [Metricbeat Kafka]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8d2f79a0-8e65-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Kafka Controls [Metricbeat Kafka]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"input_control_vis\", \"params\": {\"pinFilters\": false, \"useTimeFilter\": false, \"updateFiltersOnChange\": true, \"controls\": [{\"parent\": \"\", \"id\": \"1532342651170\", \"fieldName\": \"kafka.topic.name\", \"indexPattern\": \"metricbeat-*\", \"label\": \"Topic Name\", \"type\": \"list\", \"options\": {\"type\": \"terms\", \"multiselect\": true, \"order\": \"desc\", \"size\": 10}}, {\"parent\": \"1532342651170\", \"id\": \"1539799686678\", \"fieldName\": \"kafka.partition.id\", \"indexPattern\": \"metricbeat-*\", \"label\": \"Partition\", \"type\": \"list\", \"options\": {\"type\": \"terms\", \"multiselect\": true, \"order\": \"desc\", \"size\": 5}}]}, \"aggs\": [], \"title\": \"Kafka Controls [Metricbeat Kafka]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "944188f0-8e79-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Kafka Consumer Group Lag vs Time [Metricbeat Kafka]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"((metricset.name: partition AND kafka.partition.partition.is_leader: true) OR metricset.name: consumergroup) AND NOT kafka.topic.name:__consumer_offsets\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"0.2\",\"formatter\":\"number\",\"id\":\"0dcb8020-8e6d-11e8-bfab-6f29bad3a6f2\",\"label\":\"Consumer Groups\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.offset.newest\",\"id\":\"0dcb8021-8e6d-11e8-bfab-6f29bad3a6f2\",\"type\":\"max\"},{\"field\":\"kafka.consumergroup.offset\",\"id\":\"4bd11db0-8e6f-11e8-bfab-6f29bad3a6f2\",\"type\":\"max\"},{\"id\":\"e0742d50-8e78-11e8-abb3-cf57ca7a810c\",\"script\":\"def lag = params.partition - params.consumergroup; if (lag \\u003c 0) { return 0 } return lag\",\"type\":\"calculation\",\"variables\":[{\"field\":\"0dcb8021-8e6d-11e8-bfab-6f29bad3a6f2\",\"id\":\"e20d6af0-8e78-11e8-abb3-cf57ca7a810c\",\"name\":\"partition\"},{\"field\":\"4bd11db0-8e6f-11e8-bfab-6f29bad3a6f2\",\"id\":\"e6cc2b80-8e78-11e8-abb3-cf57ca7a810c\",\"name\":\"consumergroup\"}]}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_color_mode\":\"rainbow\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kafka.topic.name\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Kafka Consumer Group Lag vs Time [Metricbeat Kafka]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dc89f8d0-8e8e-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Partition Metricset\",\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"metricset.name\",\"negate\":false,\"params\":{\"query\":\"partition\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"partition\"},\"query\":{\"match\":{\"metricset.name\":{\"query\":\"partition\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"kafka.topic.name\",\"negate\":true,\"params\":{\"query\":\"__consumer_offsets\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"__consumer_offsets\"},\"query\":{\"match\":{\"kafka.topic.name\":{\"query\":\"__consumer_offsets\",\"type\":\"phrase\"}}}}],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "title": "Kafka Metrics [Metricbeat Kafka]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"params\": {\"type\": \"metric\", \"metric\": {\"style\": {\"bgFill\": \"#000\", \"bgColor\": false, \"fontSize\": 32, \"subText\": \"\", \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"labels\": {\"show\": true}, \"useRanges\": false, \"percentageMode\": false, \"colorsRange\": [{\"to\": 10000, \"from\": 0}], \"metricColorMode\": \"None\"}, \"addTooltip\": true, \"addLegend\": false}, \"aggs\": [{\"params\": {\"field\": \"kafka.topic.name\", \"customLabel\": \"Topics\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"kafka.partition.broker.id\", \"customLabel\": \"Brokers\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"kafka.partition.topic_id\", \"customLabel\": \"Partitions\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"kafka.partition.topic_broker_id\", \"customLabel\": \"Replicas\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}], \"title\": \"Kafka Metrics [Metricbeat Kafka]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "587f2360-8f21-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Consumer Partition Reassignments [Metricbeat Kafka]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_max\":\"1\",\"axis_min\":\"-1\",\"axis_position\":\"right\",\"filter\":\"NOT kafka.topic.name:__consumer_offsets\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0\",\"formatter\":\"number\",\"hide_in_legend\":0,\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Consumer -\\u003e Partition Reassignment\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"kafka.consumergroup.partition\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"6b69c760-8f20-11e8-8927-d7e991b5b6ab\",\"type\":\"derivative\",\"unit\":\"\"},{\"id\":\"976f9d80-8f20-11e8-8927-d7e991b5b6ab\",\"script\":\"if (params.sum_partition \\u003c 0) { return -1 } else if (params.sum_partition \\u003e 0) { return 1 }\",\"type\":\"calculation\",\"variables\":[{\"field\":\"6b69c760-8f20-11e8-8927-d7e991b5b6ab\",\"id\":\"99cc2b20-8f20-11e8-8927-d7e991b5b6ab\",\"name\":\"sum_partition\"}]}],\"point_size\":\"20\",\"seperate_axis\":0,\"split_color_mode\":\"rainbow\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kafka.consumergroup.id\",\"value_template\":\"\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Consumer Partition Reassignments [Metricbeat Kafka]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1681f1a0-90e7-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"kafka.topic.name\",\"negate\":true,\"params\":{\"query\":\"__consumer_offsets\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"__consumer_offsets\"},\"query\":{\"match\":{\"kafka.topic.name\":{\"query\":\"__consumer_offsets\",\"type\":\"phrase\"}}}}],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Consumer Metrics [Metricbeat Kafka]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"params\": {\"type\": \"metric\", \"metric\": {\"style\": {\"bgFill\": \"#000\", \"bgColor\": false, \"fontSize\": 32, \"subText\": \"\", \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"labels\": {\"show\": true}, \"useRanges\": false, \"percentageMode\": false, \"colorsRange\": [{\"to\": 10000, \"from\": 0}], \"metricColorMode\": \"None\"}, \"addTooltip\": true, \"addLegend\": false}, \"aggs\": [{\"params\": {\"field\": \"kafka.consumergroup.id\", \"customLabel\": \"Consumer Groups\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Consumer Metrics [Metricbeat Kafka]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9a7576e0-d231-11e8-8766-dbbdc39e7ba9",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Kafka Consumer Group Clients [Metricbeat Kafka]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"kafka.consumergroup.offset\", \"customLabel\": \"Newest Offset\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"_term\", \"missingBucket\": false, \"customLabel\": \"Consumer group client\", \"missingBucketLabel\": \"Missing\", \"field\": \"kafka.consumergroup.client.id\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 64}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Topic\", \"missingBucketLabel\": \"Missing\", \"field\": \"kafka.topic.name\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 64}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Partition\", \"missingBucketLabel\": \"Missing\", \"field\": \"kafka.partition.id\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 256}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"bucket\"}], \"title\": \"Kafka Consumer Group Clients [Metricbeat Kafka]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "27dd5960-d2ed-11e8-8766-dbbdc39e7ba9",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Kafka Broker Details [Metricbeat Kafka]",
+ "uiStateJSON": "{\"table\": {\"sort\": {\"column\": \"cf09c940-d2ec-11e8-88c8-af5b2a9ee6b2\", \"order\": \"asc\"}}}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"7fb31e00-d2ec-11e8-88c8-af5b2a9ee6b2\"}],\"filter\":\"\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"pivot_id\":\"kafka.partition.partition.replica\",\"pivot_label\":\"Broker ID\",\"pivot_rows\":\"256\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Topics\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.topic.name\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kafka.broker.id\",\"terms_size\":\"100\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"7e9ee780-d2ef-11e8-9dd4-c5f03280d7b0\"}],\"fill\":0.5,\"filter\":\"kafka.partition.partition.is_leader: true\",\"formatter\":\"number\",\"id\":\"b38e91a0-d2ec-11e8-88c8-af5b2a9ee6b2\",\"label\":\"Leader Partitions\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.topic_id\",\"id\":\"b38eb8b0-d2ec-11e8-88c8-af5b2a9ee6b2\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"d4d9d2c0-d2ec-11e8-88c8-af5b2a9ee6b2\"}],\"fill\":0.5,\"filter\":\"\",\"formatter\":\"number\",\"id\":\"cf09c940-d2ec-11e8-88c8-af5b2a9ee6b2\",\"label\":\"Replicas\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.topic_broker_id\",\"id\":\"cf09f050-d2ec-11e8-88c8-af5b2a9ee6b2\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"table\"},\"title\":\"Kafka Broker Details [Metricbeat Kafka]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "491fee50-d2f5-11e8-8766-dbbdc39e7ba9",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Kafka Topic Details [Metricbeat Kafka]",
+ "uiStateJSON": "{\"table\": {\"sort\": {\"column\": \"_default_\", \"order\": \"asc\"}}}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"f81e47a0-d2f3-11e8-9dd4-c5f03280d7b0\"}],\"filter\":\"NOT kafka.topic.name: __consumer_offsets\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"pivot_id\":\"kafka.topic.name\",\"pivot_label\":\"Topic Name\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"f07881d0-d2f5-11e8-95b9-eb9260148efc\"}],\"fill\":0.5,\"filter\":\" metricset.name: partition\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Brokers\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.broker.id\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"fb759e10-d2f5-11e8-95b9-eb9260148efc\"}],\"fill\":0.5,\"filter\":\" metricset.name: partition\",\"formatter\":\"number\",\"id\":\"7d640440-d2f4-11e8-9dd4-c5f03280d7b0\",\"label\":\"Partitions\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.id\",\"id\":\"7d640441-d2f4-11e8-9dd4-c5f03280d7b0\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"fdb1ab60-d2f5-11e8-95b9-eb9260148efc\"}],\"fill\":0.5,\"filter\":\" metricset.name: partition\",\"formatter\":\"number\",\"id\":\"ad26e260-d2f4-11e8-9dd4-c5f03280d7b0\",\"label\":\"Replicas\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.topic_broker_id\",\"id\":\"ad26e261-d2f4-11e8-9dd4-c5f03280d7b0\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"ff90f2b0-d2f5-11e8-95b9-eb9260148efc\"}],\"fill\":0.5,\"filter\":\" metricset.name: consumergroup\",\"formatter\":\"number\",\"id\":\"26d2cd90-d2f5-11e8-9dd4-c5f03280d7b0\",\"label\":\"Consumers\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.consumergroup.client.id\",\"id\":\"26d2cd91-d2f5-11e8-9dd4-c5f03280d7b0\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"ea4984e0-d2f4-11e8-9dd4-c5f03280d7b0\"}],\"fill\":0.5,\"filter\":\" metricset.name: partition\",\"formatter\":\"number\",\"id\":\"dc390e20-d2f4-11e8-9dd4-c5f03280d7b0\",\"label\":\"Newest Offset\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.offset.newest\",\"id\":\"dc393530-d2f4-11e8-9dd4-c5f03280d7b0\",\"type\":\"max\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"043b67f0-d2f6-11e8-95b9-eb9260148efc\"}],\"fill\":0.5,\"filter\":\" metricset.name: partition\",\"formatter\":\"number\",\"id\":\"11366c80-d2f5-11e8-9dd4-c5f03280d7b0\",\"label\":\"Oldest Offset\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.offset.oldest\",\"id\":\"11366c81-d2f5-11e8-9dd4-c5f03280d7b0\",\"type\":\"min\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"table\"},\"title\":\"Kafka Topic Details [Metricbeat Kafka]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a64b4fd0-471c-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Connections [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"4e35d500-471b-11e8-a520-3f46123ab5eb\"}],\"bar_color_rules\":[{\"id\":\"69899960-4719-11e8-a520-3f46123ab5eb\"}],\"filter\":\"haproxy.stat.component_type:(0 OR 1)\",\"gauge_color_rules\":[{\"id\":\"6f171ba0-4719-11e8-a520-3f46123ab5eb\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Number of connections\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"41ff3940-4719-11e8-a520-3f46123ab5eb\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"41ff3940-4719-11e8-a520-3f46123ab5eb\",\"id\":\"456a5fa0-4738-11e8-8633-8f8b3acf1566\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"series_drop_last_bucket\":1,\"split_color_mode\":\"rainbow\",\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"0ceb7740-471a-11e8-a520-3f46123ab5eb\"}],\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.proxy.name\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"HAProxy connections\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "794b6cd0-471d-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Active servers in backend [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"color\":\"rgba(255,0,6,1)\",\"id\":\"1ec0dde0-471d-11e8-9876-09cc6c85f5f2\",\"operator\":\"lte\",\"value\":0}],\"bar_color_rules\":[{\"id\":\"297160c0-471d-11e8-9876-09cc6c85f5f2\"}],\"filter\":\"haproxy.stat.component_type:(2 OR 3)\",\"gauge_color_rules\":[{\"gauge\":\"rgba(255,0,5,1)\",\"id\":\"4ce156a0-471d-11e8-9876-09cc6c85f5f2\",\"operator\":\"lte\",\"text\":null,\"value\":0},{\"gauge\":\"rgba(255,196,0,1)\",\"id\":\"f8458a80-4721-11e8-b854-2f6d2b452362\",\"operator\":\"lte\",\"value\":0.5}],\"gauge_inner_width\":10,\"gauge_max\":\"1\",\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"haproxy.stat.status:UP\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Active servers\",\"line_width\":1,\"metrics\":[{\"denominator\":\"*\",\"field\":\"haproxy.stat.server.id\",\"id\":\"b754d060-471e-11e8-9876-09cc6c85f5f2\",\"metric_agg\":\"count\",\"numerator\":\"*\",\"script\":\"params.up / (params.down + params.up)\",\"type\":\"cardinality\",\"variables\":[{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"cfd51780-471e-11e8-9d35-6baabcdce3dc\",\"name\":\"down\"},{\"field\":\"a049c420-471e-11e8-9876-09cc6c85f5f2\",\"id\":\"45e6ec00-471f-11e8-9d35-6baabcdce3dc\",\"name\":\"up\"}]}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.proxy.name\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"2cba9420-4724-11e8-b854-2f6d2b452362\",\"label\":\"Total servers\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.server.id\",\"id\":\"2cba9421-4724-11e8-b854-2f6d2b452362\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"HAProxy active servers in backend\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "bb0ab500-4735-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Connections per server [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"978f2660-4735-11e8-b619-8f82b8185e96\"}],\"drilldown_url\":\"../app/kibana#/dashboard/8cc50a50-47e0-11e8-bc13-1397384faad3?_a=(query:(language:lucene,query:'haproxy.stat.service_name:\\\"{{ key }}\\\"'))\",\"filter\":\"haproxy.stat.component_type:(2 OR 3)\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Connections per server\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"3ea29000-4735-11e8-b619-8f82b8185e96\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.service_name\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"HAProxy connections per server\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "40bed190-473b-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Downtime seconds [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"c86b8e00-4739-11e8-8953-55bbe33e1362\"}],\"filter\":\"haproxy.stat.component_type:1\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,0,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Downtime\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.downtime\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"91aa6a20-473a-11e8-8953-55bbe33e1362\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"91aa6a20-473a-11e8-8953-55bbe33e1362\",\"id\":\"a8ce7ca0-473a-11e8-8953-55bbe33e1362\",\"sigma\":\"\",\"type\":\"sum_bucket\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.proxy.name\",\"value_template\":\"{{value}}s\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"HAProxy downtime seconds\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b3463670-47a1-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Average time in queue [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Average time in queue\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.queue.time.avg\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"HAProxy average time in queue\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "86159190-47c5-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Traffic volume [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(164,221,0,1)\",\"fill\":\"0.5\",\"formatter\":\"bytes\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Incoming\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"haproxy.stat.in.bytes\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"9814c420-47c4-11e8-994c-81d2daeb7c86\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":\"1\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(25,77,51,1)\",\"fill\":\"0.5\",\"formatter\":\"bytes\",\"id\":\"c89d1520-47c4-11e8-994c-81d2daeb7c86\",\"label\":\"Outgoing\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"haproxy.stat.out.bytes\",\"id\":\"c89d6340-47c4-11e8-994c-81d2daeb7c86\",\"type\":\"sum\"},{\"field\":\"c89d6340-47c4-11e8-994c-81d2daeb7c86\",\"id\":\"c89d6341-47c4-11e8-994c-81d2daeb7c86\",\"type\":\"derivative\",\"unit\":\"\"}],\"override_index_pattern\":0,\"point_size\":\"1\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"HAProxy traffic volume\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "fcbdfa60-47bd-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "HTTP response codes [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"200s\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.http.2xx\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"973a6de0-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"973a6de0-47bd-11e8-b7ab-dff70b15977c\",\"id\":\"4971d580-47e5-11e8-b45e-f10c3845381c\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(64,240,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"aafd05e0-47bd-11e8-b7ab-dff70b15977c\",\"label\":\"300s\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.http.3xx\",\"id\":\"aafd05e1-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"sum\"},{\"field\":\"aafd05e1-47bd-11e8-b7ab-dff70b15977c\",\"id\":\"aafd05e2-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,246,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"c77191a0-47bd-11e8-b7ab-dff70b15977c\",\"label\":\"400s\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.http.4xx\",\"id\":\"c77191a1-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"sum\"},{\"field\":\"c77191a1-47bd-11e8-b7ab-dff70b15977c\",\"id\":\"c77191a2-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,0,4,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"d574e900-47bd-11e8-b7ab-dff70b15977c\",\"label\":\"500s\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.http.5xx\",\"id\":\"d574e901-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"sum\"},{\"field\":\"d574e901-47bd-11e8-b7ab-dff70b15977c\",\"id\":\"d5753720-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,251,255,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"e3b8a4c0-47bd-11e8-b7ab-dff70b15977c\",\"label\":\"Other\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.http.other\",\"id\":\"e3b8a4c1-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"sum\"},{\"field\":\"e3b8a4c1-47bd-11e8-b7ab-dff70b15977c\",\"id\":\"e3b8a4c2-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(15,20,25,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"f9217d40-47be-11e8-b7ab-dff70b15977c\",\"label\":\"Response errors\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.errors\",\"id\":\"f9217d41-47be-11e8-b7ab-dff70b15977c\",\"type\":\"sum\"},{\"field\":\"f9217d41-47be-11e8-b7ab-dff70b15977c\",\"id\":\"1b7d4400-47bf-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"HAProxy HTTP response codes\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "981d1040-47be-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Average response time [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"ms,ms,0\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Average response time\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.time.avg\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"value_template\":\"{{value}}ms\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"HAProxy average response time\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "30956d00-47d7-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Requests [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Requests\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.request.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"ad38e2c0-47d6-11e8-994c-81d2daeb7c86\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"ad38e2c0-47d6-11e8-994c-81d2daeb7c86\",\"id\":\"b1ca03a0-47d6-11e8-994c-81d2daeb7c86\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,0,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"c2f30500-47d6-11e8-994c-81d2daeb7c86\",\"label\":\"Request errors\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.request.errors\",\"id\":\"c2f30501-47d6-11e8-994c-81d2daeb7c86\",\"type\":\"max\"},{\"field\":\"c2f30501-47d6-11e8-994c-81d2daeb7c86\",\"id\":\"c2f30502-47d6-11e8-994c-81d2daeb7c86\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"c2f30502-47d6-11e8-994c-81d2daeb7c86\",\"id\":\"c2f30503-47d6-11e8-994c-81d2daeb7c86\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,0,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"11968ce0-47d7-11e8-994c-81d2daeb7c86\",\"label\":\"Denied requests\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.request.denied\",\"id\":\"11968ce1-47d7-11e8-994c-81d2daeb7c86\",\"type\":\"max\"},{\"field\":\"11968ce1-47d7-11e8-994c-81d2daeb7c86\",\"id\":\"11968ce2-47d7-11e8-994c-81d2daeb7c86\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"11968ce2-47d7-11e8-994c-81d2daeb7c86\",\"id\":\"11968ce3-47d7-11e8-994c-81d2daeb7c86\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"HAProxy requests\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0751ed00-479c-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Average connection time [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0.1\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Percentile\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"haproxy.stat.connection.time.avg\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"percentiles\":[{\"id\":\"9fa517e0-479b-11e8-9590-e34c5ed2dd95\",\"mode\":\"line\",\"percentile\":\"\",\"shade\":0.2,\"value\":\"99\"},{\"id\":\"daafd6e0-479b-11e8-9590-e34c5ed2dd95\",\"mode\":\"line\",\"percentile\":\"\",\"shade\":0.2,\"value\":\"90\"},{\"id\":\"e006b8c0-479b-11e8-9590-e34c5ed2dd95\",\"mode\":\"line\",\"percentile\":\"\",\"shade\":0.2,\"value\":\"50\"}],\"type\":\"percentile\"}],\"point_size\":1,\"seperate_axis\":0,\"split_color_mode\":\"gradient\",\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.service_name\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"HAProxy average connection time\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "72e84b00-47e1-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Number of server connections [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"haproxy.stat.component_type:(2 OR 3)\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Number of connections\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"22668d40-47e1-11e8-96ee-d767c73d008a\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"22668d40-47e1-11e8-96ee-d767c73d008a\",\"id\":\"2a1d0a00-47e1-11e8-96ee-d767c73d008a\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.service_name\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"HAProxy number of server connections\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "976b0910-47e4-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Healthcheck [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,0,4,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"198f56e0-47e4-11e8-b45e-f10c3845381c\",\"label\":\"Down\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.downtime\",\"id\":\"198f56e1-47e4-11e8-b45e-f10c3845381c\",\"type\":\"sum\"},{\"field\":\"198f56e1-47e4-11e8-b45e-f10c3845381c\",\"id\":\"dbf38560-47e6-11e8-b45e-f10c3845381c\",\"sigma\":\"\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"dbf38560-47e6-11e8-b45e-f10c3845381c\",\"id\":\"62274b80-47e7-11e8-b45e-f10c3845381c\",\"type\":\"positive_only\",\"unit\":\"\"},{\"id\":\"7b7a7300-47e7-11e8-b45e-f10c3845381c\",\"script\":\"(params.down \\u003e 0) ? 1 : 0\",\"type\":\"calculation\",\"variables\":[{\"field\":\"62274b80-47e7-11e8-b45e-f10c3845381c\",\"id\":\"7e577b40-47e7-11e8-b45e-f10c3845381c\",\"name\":\"down\"}]}],\"point_size\":1,\"seperate_axis\":1,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,218,0,1)\",\"fill\":0.5,\"formatter\":\"ms,ms,0\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Duration (ms)\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.check.duration\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"HAProxy healthcheck\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "79350d50-47db-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Servers per connection [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"50830800-47d9-11e8-9db9-274c7a5e25e4\"}],\"drilldown_url\":\"../app/kibana#/dashboard/8cc50a50-47e0-11e8-bc13-1397384faad3?_a=(query:(language:lucene,query:'haproxy.stat.service_name:\\\"{{ key }}\\\"'))\",\"filter\":\"\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"ignore_global_filter\":0,\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"markdown\":\"{{#each _all}}\\n{{ label }}\\n\\n{{/each}}\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"haproxy.stat.component_type:(2 OR 3)\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Servers\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.service_name\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"20\",\"var_name\":\"\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"HAProxy servers per connection\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8c8f0300-47dc-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Backends per connection [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"4aeddd40-47dc-11e8-9db9-274c7a5e25e4\"}],\"drilldown_url\":\"../app/kibana#/dashboard/0836a4b0-47bd-11e8-bc13-1397384faad3?_a=(query:(language:lucene,query:'haproxy.stat.proxy.name:\\\"{{ key }}\\\"'))\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"haproxy.stat.component_type:1\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Backends\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.proxy.name\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"20\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"HAProxy backends per connection\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f1e27ed0-47dc-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Frontends per connection [Metricbeat HAProxy]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"b81d8640-47dc-11e8-9a25-99b107967d82\"}],\"drilldown_url\":\"../app/kibana#/dashboard/e9057ae0-47c5-11e8-bc13-1397384faad3?_a=(query:(language:lucene,query:'haproxy.stat.proxy.name:\\\"{{ key }}\\\"'))\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"haproxy.stat.component_type:0\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Frontends\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.proxy.name\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"20\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"HAProxy frontends per connection\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7cbeb750-5794-11e8-afa2-e9067ea62228",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Kubernetes API Server: Top clients by number of requests",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"61a13010-5794-11e8-8bd0-2180975e72dd\"}],\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"5m\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,188,0,1)\",\"fill\":0.5,\"filter\":\"\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Top clients by number of requests (5m)\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.apiserver.request.count\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"0e6ff4a0-5792-11e8-8bd0-2180975e72dd\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"9e4b8030-5792-11e8-8bd0-2180975e72dd\"}],\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.apiserver.request.client\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"10\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Kubernetes API Server: Top clients by number of requests\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ec360ff0-57a0-11e8-afa2-e9067ea62228",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Kubernetes API Server: Requests",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(159,5,0,1)\",\"fill\":\"0\",\"filter\":\"NOT (kubernetes.apiserver.request.verb: WATCH or kubernetes.apiserver.request.verb: CONNECT)\",\"formatter\":\"us,ms,2\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Avg response time\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.apiserver.request.latency.sum\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"kubernetes.apiserver.request.count\",\"id\":\"a2185e50-57a0-11e8-af57-a1d645d2b569\",\"type\":\"sum\"},{\"id\":\"b09133d0-57a0-11e8-af57-a1d645d2b569\",\"script\":\"params.sum / params.count\",\"type\":\"calculation\",\"variables\":[{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"b27c8910-57a0-11e8-af57-a1d645d2b569\",\"name\":\"sum\"},{\"field\":\"a2185e50-57a0-11e8-af57-a1d645d2b569\",\"id\":\"b5fc8810-57a0-11e8-af57-a1d645d2b569\",\"name\":\"count\"}]}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"value_template\":\"{{value}} ms\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(22,165,165,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"c0019340-57a1-11e8-a049-ff54cef064a2\",\"label\":\"Requests rate\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.apiserver.request.count\",\"id\":\"c001ba50-57a1-11e8-a049-ff54cef064a2\",\"type\":\"sum\"},{\"field\":\"c001ba50-57a1-11e8-a049-ff54cef064a2\",\"id\":\"dc83b390-57a1-11e8-a049-ff54cef064a2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":1,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Kubernetes API Server: Requests\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "95a7f110-57a2-11e8-afa2-e9067ea62228",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Kubernetes API Server: Top clients by resource",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"61a13010-5794-11e8-8bd0-2180975e72dd\"}],\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"5m\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,188,0,1)\",\"fill\":0.5,\"filter\":\"\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Top clients by number of requests (5m)\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.apiserver.request.count\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"0e6ff4a0-5792-11e8-8bd0-2180975e72dd\",\"type\":\"derivative\",\"unit\":\"\"}],\"override_index_pattern\":0,\"point_size\":1,\"seperate_axis\":0,\"series_drop_last_bucket\":1,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"9e4b8030-5792-11e8-8bd0-2180975e72dd\"}],\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.apiserver.request.resource\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"10\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Kubernetes API Server: Top clients by resource\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "System-Navigation",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "System Navigation [Metricbeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"markdown\", \"params\": {\"markdown\": \"[System Overview](#/dashboard/Metricbeat-system-overview) | [Host Overview](#/dashboard/79ffd6e0-faa0-11e6-947f-177f697178b8) |\\n[Containers overview](#/dashboard/CPU-slash-Memory-per-container)\", \"fontSize\": 12}, \"aggs\": [], \"title\": \"System Navigation [Metricbeat System]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d3166e80-1b91-11e7-bec4-a5e9ec5cab8b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "Memory Usage Gauge [Metricbeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"\",\"gauge_color_rules\":[{\"gauge\":\"rgba(104,188,0,1)\",\"id\":\"a0d522e0-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"value\":0},{\"gauge\":\"rgba(254,146,0,1)\",\"id\":\"b45ad8f0-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"value\":0.7},{\"gauge\":\"rgba(211,49,21,1)\",\"id\":\"c06e9550-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"value\":0.85}],\"gauge_inner_width\":10,\"gauge_max\":\"1\",\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"9f51b730-1b91-11e7-bec4-a5e9ec5cab8b\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"9f51b731-1b91-11e7-bec4-a5e9ec5cab8b\",\"label\":\"Memory Usage\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.actual.used.pct\",\"id\":\"9f51b732-1b91-11e7-bec4-a5e9ec5cab8b\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"gauge\"},\"title\":\"Memory Usage Gauge [Metricbeat System]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "022a54c0-2bf5-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "Available pods per deployment [Metricbeat Kubernetes]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"id\":\"117fadf0-30df-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,188,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"64456840-30df-11e7-8df8-6d3604a72912\",\"label\":\"Available pods\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.replicas.available\",\"id\":\"64456841-30df-11e7-8df8-6d3604a72912\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"53d35ad0-30df-11e7-8df8-6d3604a72912\"}],\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.deployment.name\",\"terms_size\":\"10000\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Available pods per deployment [Metricbeat Kubernetes]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "44f12b40-2bf4-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query_string\":{\"query\":\"*\"}}}"
+ },
+ "title": "CPU usage by node [Metricbeat Kubernetes]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"12c1f2f0-2bf2-11e7-859b-f78b612cde28\"}],\"bar_color_rules\":[{\"id\":\"1373ddd0-2bf2-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND (metricset.name:container OR metricset.name:state_node)\",\"gauge_color_rules\":[{\"id\":\"140e4910-2bf2-11e7-859b-f78b612cde28\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"0d5c6b10-2bf2-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0.5\",\"formatter\":\"0.0a\",\"id\":\"0d5c9220-2bf2-11e7-859b-f78b612cde28\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.container.cpu.usage.nanocores\",\"id\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"type\":\"sum\"}],\"override_index_pattern\":0,\"point_size\":1,\"seperate_axis\":0,\"series_interval\":\"10s\",\"series_time_field\":\"@timestamp\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"terms_size\":\"10000\",\"value_template\":\"{{value}} nanocores\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(211,49,21,1)\",\"fill\":\"0\",\"formatter\":\"0.0a\",\"hide_in_legend\":1,\"id\":\"22f65d40-31a7-11e7-84cc-096d2b38e6e5\",\"label\":\"\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.node.cpu.capacity.cores\",\"id\":\"22f65d41-31a7-11e7-84cc-096d2b38e6e5\",\"type\":\"avg\"},{\"id\":\"4af4c390-34d6-11e7-be88-cb6a123dc1bb\",\"script\":\"params.cores * 1000000000\",\"type\":\"calculation\",\"variables\":[{\"field\":\"22f65d41-31a7-11e7-84cc-096d2b38e6e5\",\"id\":\"4cd32080-34d6-11e7-be88-cb6a123dc1bb\",\"name\":\"cores\"}]}],\"override_index_pattern\":0,\"point_size\":\"0\",\"seperate_axis\":0,\"series_interval\":\"10s\",\"series_time_field\":\"@timestamp\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"22f65d41-31a7-11e7-84cc-096d2b38e6e5\",\"terms_size\":\"10000\",\"value_template\":\"{{value}} nanocores\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"CPU usage by node [Metricbeat Kubernetes]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "cd059410-2bfb-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query_string\":{\"query\":\"*\"}}}"
+ },
+ "title": "Kubernetes - Deployments",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"67ee7da0-30e0-11e7-8df8-6d3604a72912\"}],\"bar_color_rules\":[{\"id\":\"68cdba10-30e0-11e7-8df8-6d3604a72912\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"gauge_color_rules\":[{\"id\":\"69765620-30e0-11e7-8df8-6d3604a72912\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"4c4690b0-30e0-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"4c4690b1-30e0-11e7-8df8-6d3604a72912\",\"label\":\"Deployments\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.name\",\"id\":\"4c4690b2-30e0-11e7-8df8-6d3604a72912\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.deployment.name\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Kubernetes - Deployments\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e1018b90-2bfb-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query_string\":{\"query\":\"*\"}}}"
+ },
+ "title": "Kubernetes - Desired pods",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"508ffb30-30d5-11e7-8df8-6d3604a72912\"}],\"bar_color_rules\":[{\"id\":\"674d83b0-30d5-11e7-8df8-6d3604a72912\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"gauge_color_rules\":[{\"id\":\"50f9b980-30d5-11e7-8df8-6d3604a72912\"}],\"gauge_inner_width\":\"10\",\"gauge_max\":\"5\",\"gauge_style\":\"half\",\"gauge_width\":\"10\",\"id\":\"2fe9d3b0-30d5-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"2fe9d3b1-30d5-11e7-8df8-6d3604a72912\",\"label\":\"Desired Pods\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.replicas.desired\",\"id\":\"54cf79a0-30d5-11e7-8df8-6d3604a72912\",\"type\":\"sum\"}],\"override_index_pattern\":1,\"point_size\":1,\"seperate_axis\":0,\"series_interval\":\"10s\",\"series_time_field\":\"@timestamp\",\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Kubernetes - Desired pods\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d6564360-2bfc-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "Memory usage by node [Metricbeat Kubernetes]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"12c1f2f0-2bf2-11e7-859b-f78b612cde28\"}],\"bar_color_rules\":[{\"id\":\"1373ddd0-2bf2-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND (metricset.name:container OR metricset.name:state_node)\",\"gauge_color_rules\":[{\"id\":\"140e4910-2bf2-11e7-859b-f78b612cde28\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"0d5c6b10-2bf2-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"0d5c9220-2bf2-11e7-859b-f78b612cde28\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.container.memory.usage.bytes\",\"id\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"type\":\"sum\"},{\"field\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"id\":\"9f0cf900-1ffb-11e8-81f2-43be86397500\",\"type\":\"cumulative_sum\"},{\"field\":\"9f0cf900-1ffb-11e8-81f2-43be86397500\",\"id\":\"a926e130-1ffb-11e8-81f2-43be86397500\",\"type\":\"derivative\",\"unit\":\"10s\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"terms_size\":\"10000\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(211,49,21,1)\",\"fill\":\"0\",\"formatter\":\"bytes\",\"hide_in_legend\":1,\"id\":\"8ba3b270-31a7-11e7-84cc-096d2b38e6e5\",\"label\":\"Node capacity\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.node.memory.capacity.bytes\",\"id\":\"8ba3b271-31a7-11e7-84cc-096d2b38e6e5\",\"type\":\"sum\"},{\"field\":\"8ba3b271-31a7-11e7-84cc-096d2b38e6e5\",\"id\":\"d1fb2670-1ffb-11e8-81f2-43be86397500\",\"type\":\"cumulative_sum\"},{\"field\":\"d1fb2670-1ffb-11e8-81f2-43be86397500\",\"id\":\"dc8b01f0-1ffb-11e8-81f2-43be86397500\",\"type\":\"derivative\",\"unit\":\"10s\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"8ba3b271-31a7-11e7-84cc-096d2b38e6e5\",\"terms_size\":\"10000\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Memory usage by node [Metricbeat Kubernetes]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "16fa4470-2bfd-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query_string\":{\"query\":\"*\"}}}"
+ },
+ "title": "Network in by node [Metricbeat Kubernetes]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"12c1f2f0-2bf2-11e7-859b-f78b612cde28\"}],\"bar_color_rules\":[{\"id\":\"1373ddd0-2bf2-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:pod\",\"gauge_color_rules\":[{\"id\":\"140e4910-2bf2-11e7-859b-f78b612cde28\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"0d5c6b10-2bf2-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,188,0,1)\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"0d5c9220-2bf2-11e7-859b-f78b612cde28\",\"label\":\"\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.pod.network.rx.bytes\",\"id\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"type\":\"sum\"},{\"field\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"id\":\"494fc310-2bf7-11e7-859b-f78b612cde28\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"494fc310-2bf7-11e7-859b-f78b612cde28\",\"id\":\"37c72a70-3598-11e7-aa4a-8313a0c92a88\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"terms_size\":\"100000\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Network in by node [Metricbeat Kubernetes]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "294546b0-30d6-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query_string\":{\"query\":\"*\"}}}"
+ },
+ "title": "Network out by node [Metricbeat Kubernetes]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"12c1f2f0-2bf2-11e7-859b-f78b612cde28\"}],\"bar_color_rules\":[{\"id\":\"1373ddd0-2bf2-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:pod\",\"gauge_color_rules\":[{\"id\":\"140e4910-2bf2-11e7-859b-f78b612cde28\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"0d5c6b10-2bf2-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,188,0,1)\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"0d5c9220-2bf2-11e7-859b-f78b612cde28\",\"label\":\"\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.pod.network.tx.bytes\",\"id\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"type\":\"sum\"},{\"field\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"id\":\"494fc310-2bf7-11e7-859b-f78b612cde28\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"494fc310-2bf7-11e7-859b-f78b612cde28\",\"id\":\"244c70e0-3598-11e7-aa4a-8313a0c92a88\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"terms_size\":\"10000\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Network out by node [Metricbeat Kubernetes]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "408fccf0-30d6-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query_string\":{\"query\":\"*\"}}}"
+ },
+ "title": "Kubernetes - Nodes",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"67ee7da0-30e0-11e7-8df8-6d3604a72912\"}],\"bar_color_rules\":[{\"id\":\"68cdba10-30e0-11e7-8df8-6d3604a72912\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:state_node\",\"gauge_color_rules\":[{\"id\":\"69765620-30e0-11e7-8df8-6d3604a72912\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"4c4690b0-30e0-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"4c4690b1-30e0-11e7-8df8-6d3604a72912\",\"label\":\"Nodes\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.node.name\",\"id\":\"4c4690b2-30e0-11e7-8df8-6d3604a72912\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.deployment.name\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Kubernetes - Nodes\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "58e644f0-30d6-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query_string\":{\"query\":\"*\"}}}"
+ },
+ "title": "Top CPU intensive pods [Metricbeat Kubernetes]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"802104d0-2bfc-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:container\",\"id\":\"5d3692a0-2bfc-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"0.0 a\",\"id\":\"5d3692a1-2bfc-11e7-859b-f78b612cde28\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.container.cpu.usage.core.ns\",\"id\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"type\":\"sum\"},{\"field\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"id\":\"6c905240-2bfc-11e7-859b-f78b612cde28\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"field\":\"6c905240-2bfc-11e7-859b-f78b612cde28\",\"id\":\"9a51f710-359d-11e7-aa4a-8313a0c92a88\",\"type\":\"positive_only\",\"unit\":\"\"}],\"offset_time\":\"\",\"override_index_pattern\":0,\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.pod.name\",\"terms_order_by\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"value_template\":\"{{value}} ns\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Top CPU intensive pods [Metricbeat Kubernetes]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a4c9d360-30df-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "Top memory intensive pods [Metricbeat Kubernetes]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"802104d0-2bfc-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:container\",\"id\":\"5d3692a0-2bfc-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"5d3692a1-2bfc-11e7-859b-f78b612cde28\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.container.memory.usage.bytes\",\"id\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"type\":\"sum\"},{\"field\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"id\":\"3972e9f0-256f-11e8-84e6-87221f87ae3b\",\"type\":\"cumulative_sum\"},{\"field\":\"3972e9f0-256f-11e8-84e6-87221f87ae3b\",\"id\":\"3e9fd5a0-256f-11e8-84e6-87221f87ae3b\",\"type\":\"derivative\",\"unit\":\"10s\"}],\"offset_time\":\"\",\"override_index_pattern\":0,\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.pod.name\",\"terms_order_by\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"terms_size\":\"10\",\"value_template\":\"\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Top memory intensive pods [Metricbeat Kubernetes]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "174a6ad0-30e0-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query_string\":{\"query\":\"*\"}}}"
+ },
+ "title": "Kubernetes - Unavailable pods",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"508ffb30-30d5-11e7-8df8-6d3604a72912\"}],\"bar_color_rules\":[{\"id\":\"674d83b0-30d5-11e7-8df8-6d3604a72912\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"gauge_color_rules\":[{\"id\":\"50f9b980-30d5-11e7-8df8-6d3604a72912\"}],\"gauge_inner_width\":\"10\",\"gauge_max\":\"\",\"gauge_style\":\"half\",\"gauge_width\":\"10\",\"id\":\"2fe9d3b0-30d5-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"2fe9d3b1-30d5-11e7-8df8-6d3604a72912\",\"label\":\"Unavailable Pods\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.replicas.unavailable\",\"id\":\"54cf79a0-30d5-11e7-8df8-6d3604a72912\",\"type\":\"sum\"}],\"override_index_pattern\":1,\"point_size\":1,\"seperate_axis\":0,\"series_interval\":\"10s\",\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Kubernetes - Unavailable pods\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7aac4fd0-30e0-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ },
+ "title": "Unavailable pods per deployment [Metricbeat Kubernetes]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"id\":\"117fadf0-30df-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(254,146,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"64456840-30df-11e7-8df8-6d3604a72912\",\"label\":\"Unavailable pods\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.replicas.unavailable\",\"id\":\"64456841-30df-11e7-8df8-6d3604a72912\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"53d35ad0-30df-11e7-8df8-6d3604a72912\"}],\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.deployment.name\",\"terms_size\":\"10000\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Unavailable pods per deployment [Metricbeat Kubernetes]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "da1ff7c0-30ed-11e7-b9e5-2b5b07213ab3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query_string\":{\"query\":\"*\"}}}"
+ },
+ "title": "Kubernetes - Available pods",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"508ffb30-30d5-11e7-8df8-6d3604a72912\"}],\"bar_color_rules\":[{\"id\":\"674d83b0-30d5-11e7-8df8-6d3604a72912\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"gauge_color_rules\":[{\"id\":\"50f9b980-30d5-11e7-8df8-6d3604a72912\"}],\"gauge_inner_width\":\"10\",\"gauge_max\":\"5\",\"gauge_style\":\"half\",\"gauge_width\":\"10\",\"id\":\"2fe9d3b0-30d5-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"2fe9d3b1-30d5-11e7-8df8-6d3604a72912\",\"label\":\"Available Pods\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.replicas.available\",\"id\":\"54cf79a0-30d5-11e7-8df8-6d3604a72912\",\"type\":\"sum\"}],\"override_index_pattern\":1,\"point_size\":1,\"seperate_axis\":0,\"series_index_pattern\":\"*\",\"series_interval\":\"10s\",\"series_time_field\":\"@timestamp\",\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Kubernetes - Available pods\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-hosts",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Hosts [Metricbeat MongoDB]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.connections.current\", \"customLabel\": \"Number of connections\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"metricset.host\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"field\": \"mongodb.status.memory.bits\", \"customLabel\": \"Arch\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.memory.resident.mb\", \"customLabel\": \"Resident memory\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.memory.virtual.mb\", \"customLabel\": \"Virtual memory\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}], \"title\": \"Hosts [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-Engine-ampersand-Version",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Engine & Version [Metricbeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"addTooltip\": true, \"isDonut\": true, \"legendPosition\": \"bottom\", \"addLegend\": true, \"shareYAxis\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {\"field\": \"metricset.host\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mongodb.status.storage_engine.name\", \"customLabel\": \"Engine\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mongodb.status.version\", \"customLabel\": \"Version\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Engine & Version [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-operation-counters",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Operation counters [Metricbeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"type\": \"area\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.ops.counters.command\", \"customLabel\": \"command\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.ops.counters.delete\", \"customLabel\": \"delete\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.ops.counters.getmore\", \"customLabel\": \"getmore\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.ops.counters.insert\", \"customLabel\": \"insert\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.ops.counters.query\", \"customLabel\": \"query\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.ops.replicated.update\", \"customLabel\": \"update\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"7\", \"schema\": \"metric\"}], \"title\": \"Operation counters [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-Concurrent-transactions-Read",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Concurrent transactions Read [Metricbeat MongoDB]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Read Used\": \"#BF1B00\", \"Read Available\": \"#508642\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"type\": \"area\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.wired_tiger.concurrent_transactions.read.available\", \"customLabel\": \"Read Available\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.wired_tiger.concurrent_transactions.read.out\", \"customLabel\": \"Read Used\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}], \"title\": \"Concurrent transactions Read [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-Concurrent-transactions-Write",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Concurrent transactions Write [Metricbeat MongoDB]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Write Used\": \"#BF1B00\", \"Write Available\": \"#629E51\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"type\": \"area\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.wired_tiger.concurrent_transactions.write.available\", \"customLabel\": \"Write Available\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.wired_tiger.concurrent_transactions.write.out\", \"customLabel\": \"Write Used\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}], \"title\": \"Concurrent transactions Write [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-memory-stats",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Memory stats [Metricbeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"params\": {\"scale\": \"log\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"line\"}], \"yAxis\": {}, \"smoothLines\": false, \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"type\": \"line\", \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.memory.mapped.mb\", \"customLabel\": \"Mapped\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.memory.mapped_with_journal.mb\", \"customLabel\": \"Mapped with journal\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.memory.resident.mb\", \"customLabel\": \"Rezident\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.memory.virtual.mb\", \"customLabel\": \"Virtual\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}], \"title\": \"Memory stats [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-asserts",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Asserts [Metricbeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"type\": \"area\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.asserts.msg\", \"customLabel\": \"message\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.asserts.regular\", \"customLabel\": \"regular\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.asserts.rollovers\", \"customLabel\": \"rollover\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.asserts.user\", \"customLabel\": \"user\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.asserts.warning\", \"customLabel\": \"warning\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}], \"title\": \"Asserts [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-WiredTiger-Cache",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "WiredTiger Cache [Metricbeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"overlap\", \"type\": \"area\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.wired_tiger.cache.maximum.bytes\", \"customLabel\": \"max\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.wired_tiger.cache.used.bytes\", \"customLabel\": \"used\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.wired_tiger.cache.dirty.bytes\", \"customLabel\": \"dirty\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}], \"title\": \"WiredTiger Cache [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-Clients-Metrics",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Clients [Metricbeat Redis]",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"listeners\": {}, \"params\": {\"addTooltip\": true, \"addLegend\": false, \"fontSize\": 60, \"handleNoResults\": true, \"gauge\": {\"useRange\": false, \"gaugeType\": \"Metric\", \"style\": {\"subText\": \"\", \"bgColor\": false, \"fontSize\": 60, \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"orientation\": \"vertical\", \"gaugeStyle\": \"Full\", \"autoExtend\": false, \"labels\": {\"color\": \"black\", \"show\": true}, \"backStyle\": \"Full\", \"colorsRange\": [{\"to\": 100, \"from\": 0}], \"scale\": {\"color\": \"#333\", \"width\": 2, \"labels\": false, \"show\": false}, \"verticalSplit\": false, \"percentageMode\": false, \"type\": \"simple\", \"gaugeColorMode\": \"None\"}, \"type\": \"gauge\"}, \"aggs\": [{\"params\": {\"field\": \"redis.info.clients.connected\", \"customLabel\": \"Connected clients\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Clients [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-Connected-clients",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Connected clients [Metricbeat Redis]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Blocked\": \"#C15C17\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"yAxis\": {}, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"grouped\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"redis.info.clients.connected\", \"customLabel\": \"Connected\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"redis.info.clients.blocked\", \"customLabel\": \"Blocked\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}], \"title\": \"Connected clients [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-hosts",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Hosts [Metricbeat Redis]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"orderBy\": \"1\", \"field\": \"metricset.host\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"field\": \"redis.info.server.uptime\", \"customLabel\": \"Uptime (s)\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"redis.info.server.process_id\", \"customLabel\": \"PID\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"redis.info.memory.used.peak\", \"customLabel\": \"Memory\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"redis.info.cpu.used.user\", \"customLabel\": \"CPU used (user)\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"redis.info.cpu.used.sys\", \"customLabel\": \"CPU used (system)\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}], \"title\": \"Hosts [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-Server-Versions",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Server Versions [Metricbeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"metricset.host\", \"customLabel\": \"Hosts\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.info.server.version\", \"customLabel\": \"Multiplexing API\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Server Versions [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-server-mode",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Server mode [Metricbeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"metricset.host\", \"customLabel\": \"Hosts\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.info.server.mode\", \"customLabel\": \"Server mode\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Server mode [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-multiplexing-API",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Multiplexing API [Metricbeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"metricset.host\", \"customLabel\": \"Hosts\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.info.server.multiplexing_api\", \"customLabel\": \"Multiplexing API\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Multiplexing API [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-Keyspaces",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Keyspaces [Metricbeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"redis.keyspace.keys\", \"customLabel\": \"Number of keys\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.keyspace.id\", \"customLabel\": \"Keyspaces\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Keyspaces [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "00d39210-050d-11e9-9c60-d582a238e2c5",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "title": "Keyspace selector [Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"input_control_vis\", \"params\": {\"pinFilters\": false, \"useTimeFilter\": false, \"updateFiltersOnChange\": true, \"controls\": [{\"parent\": \"\", \"id\": \"1545388837304\", \"fieldName\": \"redis.keyspace.id\", \"indexPattern\": \"bc2e8280-0509-11e9-9c60-d582a238e2c5\", \"label\": \"Keyspace\", \"type\": \"list\", \"options\": {\"type\": \"terms\", \"size\": 5, \"multiselect\": true, \"dynamicOptions\": true, \"order\": \"desc\"}}]}, \"aggs\": [], \"title\": \"Keyspace selector [Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7f4bc7d0-050c-11e9-9c60-d582a238e2c5",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"bc2e8280-0509-11e9-9c60-d582a238e2c5\",\"key\":\"redis.key.type\",\"negate\":false,\"params\":{\"query\":\"list\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"list\"},\"query\":{\"match\":{\"redis.key.type\":{\"query\":\"list\",\"type\":\"phrase\"}}}}],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "title": "Lists length [Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"line\", \"interpolate\": \"linear\", \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Number of elements\"}}], \"type\": \"line\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Number of elements\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {\"field\": \"redis.key.length\", \"customLabel\": \"Number of elements\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Keyspace\", \"missingBucketLabel\": \"Missing\", \"field\": \"redis.keyspace.id\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 16}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Key name\", \"missingBucketLabel\": \"Missing\", \"field\": \"redis.key.name\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 20}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"group\"}, {\"params\": {\"timeRange\": {\"to\": \"now\", \"from\": \"now-15m\", \"mode\": \"quick\"}, \"extended_bounds\": {}, \"field\": \"@timestamp\", \"interval\": \"auto\", \"time_zone\": \"Europe/Berlin\", \"useNormalizedEsInterval\": true, \"drop_partials\": false, \"min_doc_count\": 1, \"customInterval\": \"2h\"}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"4\", \"schema\": \"segment\"}], \"title\": \"Lists length [Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4435ac40-050e-11e9-9c60-d582a238e2c5",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "title": "Keys by type [Redis]",
+ "uiStateJSON": "{\"vis\": {\"legendOpen\": false}}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Number of keys\"}, \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"line\"}], \"type\": \"line\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Number of keys\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {\"field\": \"redis.key.id\", \"customLabel\": \"Number of keys\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Key type\", \"missingBucketLabel\": \"Missing\", \"field\": \"redis.key.type\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"group\"}, {\"params\": {\"timeRange\": {\"to\": \"now\", \"from\": \"now-15m\", \"mode\": \"quick\"}, \"min_doc_count\": 1, \"field\": \"@timestamp\", \"customLabel\": \"\", \"interval\": \"auto\", \"time_zone\": \"Europe/Berlin\", \"useNormalizedEsInterval\": true, \"drop_partials\": false, \"extended_bounds\": {}, \"customInterval\": \"2h\"}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Keys by type [Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8541a4a0-0513-11e9-9c60-d582a238e2c5",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"bc2e8280-0509-11e9-9c60-d582a238e2c5\",\"key\":\"redis.key.type\",\"negate\":false,\"params\":{\"query\":\"string\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"string\"},\"query\":{\"match\":{\"redis.key.type\":{\"query\":\"string\",\"type\":\"phrase\"}}}}],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "title": "Average string key size [Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Average key size\"}, \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"line\"}], \"type\": \"line\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Average key size\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {\"field\": \"redis.key.length\", \"customLabel\": \"Average key size\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Keyspace\", \"missingBucketLabel\": \"Missing\", \"field\": \"redis.keyspace.id\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}, {\"params\": {\"timeRange\": {\"to\": \"now\", \"from\": \"now-15m\", \"mode\": \"quick\"}, \"extended_bounds\": {}, \"field\": \"@timestamp\", \"interval\": \"auto\", \"time_zone\": \"Europe/Berlin\", \"useNormalizedEsInterval\": true, \"drop_partials\": false, \"min_doc_count\": 1, \"customInterval\": \"2h\"}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Average string key size [Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "517a5fd0-0514-11e9-9c60-d582a238e2c5",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"bc2e8280-0509-11e9-9c60-d582a238e2c5\",\"key\":\"redis.key.expire.ttl\",\"negate\":false,\"params\":{\"gte\":0,\"lt\":null},\"type\":\"range\",\"value\":\"0 to +∞\"},\"range\":{\"redis.key.expire.ttl\":{\"gte\":0,\"lt\":null}}}],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "title": "Average keys TTL [Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Average TTL\"}, \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"line\"}], \"type\": \"line\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Average TTL\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {\"field\": \"redis.key.expire.ttl\", \"customLabel\": \"Average TTL\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Keyspace\", \"missingBucketLabel\": \"Missing\", \"field\": \"redis.keyspace.id\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"group\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Key type\", \"missingBucketLabel\": \"Missing\", \"field\": \"redis.key.type\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"group\"}, {\"params\": {\"timeRange\": {\"to\": \"now\", \"from\": \"now-15m\", \"mode\": \"quick\"}, \"extended_bounds\": {}, \"field\": \"@timestamp\", \"interval\": \"auto\", \"time_zone\": \"Europe/Berlin\", \"useNormalizedEsInterval\": true, \"drop_partials\": false, \"min_doc_count\": 1, \"customInterval\": \"2h\"}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Average keys TTL [Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "RabbitMQ-Memory-Usage",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Rabbitmq",
+ "title": "Memory Usage [Metricbeat RabbitMQ]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": false, \"yAxis\": {}, \"smoothLines\": true, \"legendPosition\": \"top\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": true, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"rabbitmq.node.mem.used.bytes\", \"customLabel\": \"Used memory\", \"json\": \"\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"30s\", \"field\": \"@timestamp\", \"interval\": \"custom\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"rabbitmq.node.name\", \"customLabel\": \"Node name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"group\"}], \"title\": \"RabbitMQ Memory Usage\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Rabbitmq-Number-of-Nodes",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Rabbitmq",
+ "title": "Number of Nodes [Metricbeat RabbitMQ]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"listeners\": {}, \"params\": {\"handleNoResults\": true, \"fontSize\": 60}, \"aggs\": [{\"params\": {\"field\": \"rabbitmq.node.name\", \"customLabel\": \"RabbitMQ Nodes\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Rabbitmq-Number-of-Nodes\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "RabbitMQ-Erlang-Process-Usage",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Rabbitmq",
+ "title": "Erlang Process Usage [Metricbeat RabbitMQ]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": false, \"yAxis\": {}, \"smoothLines\": true, \"legendPosition\": \"top\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"rabbitmq.node.proc.used\", \"customLabel\": \"Used Process\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"30s\", \"field\": \"@timestamp\", \"interval\": \"custom\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"rabbitmq.node.name\", \"customLabel\": \"Node name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"group\"}], \"title\": \"RabbitMQ Erlang Process Usage\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "RabbitMQ-Queue-Index-Operations",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Rabbitmq",
+ "title": "Queue Index Operations [Metricbeat RabbitMQ]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"line\"}], \"yAxis\": {}, \"smoothLines\": false, \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"top\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"type\": \"line\", \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": false}, \"aggs\": [{\"params\": {\"field\": \"rabbitmq.node.queue.index.read.count\", \"customLabel\": \"Queue Index Read\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"30s\", \"field\": \"@timestamp\", \"interval\": \"custom\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"rabbitmq.node.queue.index.journal_write.count\", \"customLabel\": \"Queue Index Jornal Write\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"rabbitmq.node.queue.index.write.count\", \"customLabel\": \"Queue Index Write\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}], \"title\": \"Queue Index Operations [Metricbeat RabbitMQ]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d7e6bee0-f1f3-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Connections rate [Metricbeat MySQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Connections rate\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.connections\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"aee9bbf0-f1f3-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Connections rate [Metricbeat MySQL]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "695a4f90-f1f4-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Command rates [Metricbeat MySQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0.2\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"SELECT\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.command.select\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"2d149f90-f1f4-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,204,202,1)\",\"fill\":\"0.2\",\"formatter\":\"number\",\"id\":\"3c2a2a40-f1f4-11e7-a752-236fe3270d99\",\"label\":\"INSERT\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.command.insert\",\"id\":\"3c2a2a41-f1f4-11e7-a752-236fe3270d99\",\"type\":\"avg\"},{\"field\":\"3c2a2a41-f1f4-11e7-a752-236fe3270d99\",\"id\":\"3c2a2a42-f1f4-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(252,220,0,1)\",\"fill\":\"0.2\",\"formatter\":\"number\",\"id\":\"485ce050-f1f4-11e7-a752-236fe3270d99\",\"label\":\"UPDATE\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.command.update\",\"id\":\"485ce051-f1f4-11e7-a752-236fe3270d99\",\"type\":\"avg\"},{\"field\":\"485ce051-f1f4-11e7-a752-236fe3270d99\",\"id\":\"485ce052-f1f4-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(244,78,59,1)\",\"fill\":\"0.2\",\"formatter\":\"number\",\"id\":\"543a4a70-f1f4-11e7-a752-236fe3270d99\",\"label\":\"DELETE\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.command.delete\",\"id\":\"543a4a71-f1f4-11e7-a752-236fe3270d99\",\"type\":\"avg\"},{\"field\":\"543a4a71-f1f4-11e7-a752-236fe3270d99\",\"id\":\"543a4a72-f1f4-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Command rates [Metricbeat MySQL]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "124dce60-f1f5-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Running threads [Metricbeat MySQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(174,161,255,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Running threads\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.threads.running\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Running threads [Metricbeat MySQL]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "aaa326b0-f1f5-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Opened tables rate [Metricbeat MySQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(252,196,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Opened tables rate\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.opened_tables\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"9972d250-f1f5-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Opened tables rate [Metricbeat MySQL]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "fb1f3f20-f1f5-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Threads created rate [Metricbeat MySQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(123,100,255,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Threads created rate\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.threads.created\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"9972d250-f1f5-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Threads created rate [Metricbeat MySQL]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f5b35930-f1f6-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Open files [Metricbeat MySQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(22,165,165,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Open files\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.open.files\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Open files [Metricbeat MySQL]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7404feb0-f1f7-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Sent and received bytes rates [Metricbeat MySQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,98,177,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"2b1c2390-f1f7-11e7-a752-236fe3270d99\",\"label\":\"Received bytes\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.bytes.received\",\"id\":\"2b1c2391-f1f7-11e7-a752-236fe3270d99\",\"type\":\"avg\"},{\"field\":\"2b1c2391-f1f7-11e7-a752-236fe3270d99\",\"id\":\"2b1c2392-f1f7-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Sent bytes\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.bytes.sent\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"23cfda50-f1f7-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Sent and received bytes rates [Metricbeat MySQL]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8d3b7770-2319-11e9-bb66-8baac426dfd4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Approximate data size [Metricbeat Zookeeper]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_min\":\"0\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Approximate data size\",\"line_width\":1,\"metrics\":[{\"field\":\"zookeeper.mntr.approximate_data_size\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"separate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Approximate data size [Metricbeat Zookeeper]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c0be43c0-2319-11e9-bb66-8baac426dfd4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Latency [Metricbeat Zookeeper]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_min\":\"0\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"ms,ms,2\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Latency\",\"line_width\":1,\"metrics\":[{\"field\":\"zookeeper.mntr.latency.avg\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"separate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Latency [Metricbeat Zookeeper]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1c2f8930-231a-11e9-bb66-8baac426dfd4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Alive Connections [Metricbeat Zookeeper]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_min\":\"0\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"0,0.[00]\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Alive connections\",\"line_width\":1,\"metrics\":[{\"field\":\"zookeeper.mntr.num_alive_connections\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"separate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Alive Connections [Metricbeat Zookeeper]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ddb13c60-231b-11e9-bb66-8baac426dfd4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Used file descriptors [Metricbeat Zookeeper]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_min\":\"0\",\"axis_position\":\"left\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0.1\",\"formatter\":\"percent\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Used file descriptors\",\"line_width\":1,\"metrics\":[{\"field\":\"zookeeper.mntr.open_file_descriptor_count\",\"id\":\"b92e4550-231a-11e9-9e57-679640dc0c7c\",\"metric_agg\":\"avg\",\"type\":\"avg\"},{\"field\":\"zookeeper.mntr.max_file_descriptor_count\",\"id\":\"918d0c60-231b-11e9-9e57-679640dc0c7c\",\"type\":\"avg\"},{\"id\":\"7e4d11e0-231b-11e9-9e57-679640dc0c7c\",\"script\":\"params.a/params.b\",\"type\":\"math\",\"variables\":[{\"field\":\"b92e4550-231a-11e9-9e57-679640dc0c7c\",\"id\":\"81c03fa0-231b-11e9-9e57-679640dc0c7c\",\"name\":\"a\"},{\"field\":\"918d0c60-231b-11e9-9e57-679640dc0c7c\",\"id\":\"8a3af6c0-231b-11e9-9e57-679640dc0c7c\",\"name\":\"b\"}]}],\"point_size\":1,\"separate_axis\":1,\"split_mode\":\"everything\",\"stacked\":\"none\",\"value_template\":\"{{value}}\"},{\"axis_min\":\"0\",\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,98,177,1)\",\"fill\":\"0\",\"formatter\":\"0,0.[00]\",\"id\":\"dffaffe0-23cc-11e9-b1ff-37c851471450\",\"label\":\"Open file descriptors\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"zookeeper.mntr.open_file_descriptor_count\",\"id\":\"dffaffe1-23cc-11e9-b1ff-37c851471450\",\"type\":\"avg\"}],\"point_size\":1,\"separate_axis\":1,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Used file descriptors [Metricbeat Zookeeper]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d2f52b50-231c-11e9-bb66-8baac426dfd4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Packets received / sent [Metricbeat Zookeeper]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_min\":\"0\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0\",\"formatter\":\"0,0.[00]\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Packets received\",\"line_width\":\"2\",\"metrics\":[{\"field\":\"zookeeper.mntr.packets.received\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"34949540-231c-11e9-9707-f128cdaa3bf2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":\"0\",\"separate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"5811d190-231c-11e9-9707-f128cdaa3bf2\"}],\"split_mode\":\"terms\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(115,216,255,1)\",\"fill\":\"0\",\"formatter\":\"0,0.[00]\",\"id\":\"753b2e60-231c-11e9-9707-f128cdaa3bf2\",\"label\":\"Packets sent\",\"line_width\":\"2\",\"metrics\":[{\"field\":\"zookeeper.mntr.packets.sent\",\"id\":\"753b2e61-231c-11e9-9707-f128cdaa3bf2\",\"type\":\"avg\"},{\"field\":\"753b2e61-231c-11e9-9707-f128cdaa3bf2\",\"id\":\"7ed33c60-231c-11e9-9707-f128cdaa3bf2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":\"0\",\"separate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Packets received / sent [Metricbeat Zookeeper]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a5058e70-f0ae-11e7-b9ff-9f96241065de",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Overview [Metricbeat uWSGI]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"15s\", \"expression\": \".es(metric=avg:uwsgi.status.total.requests).derivative().label('Requests').title('Overview of requests per period'),\\n.es(metric=avg:uwsgi.status.total.exceptions).derivative().label('Exceptions'),\\n.es(metric=max:uwsgi.status.worker.avg_rt).label('Average response time').yaxis(2)\"}, \"title\": \"Overview [Metricbeat uWSGI]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ac7194b0-f0ae-11e7-b9ff-9f96241065de",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Memory usage [Metricbeat uWSGI]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"15s\", \"expression\": \".es(metric=max:uwsgi.status.worker.rss).label('Currently used (rss)').title('Memory usage'),\\n.es(metric=max:uwsgi.status.worker.vsz).label('Assigned (vsz)').yaxis(2)\"}, \"title\": \"Memory usage [Metricbeat uWSGI]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8c5f96e0-f0ae-11e7-b9ff-9f96241065de",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Workers [Metricbeat uWSGI]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"15s\", \"expression\": \".es(split=uwsgi.status.core.id:16,metric=max:uwsgi.status.core.requests.total).derivative().bars().title('Requests handled by each thread (core) per period')\"}, \"title\": \"Workers [Metricbeat uWSGI]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ba4a80b0-f0ae-11e7-b9ff-9f96241065de",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Errors [Metricbeat uWSGI]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"15s\", \"expression\": \".es(metric=max:uwsgi.status.total.read_errors).label('Read errors').title('Errors'),\\n.es(metric=max:uwsgi.status.total.write_errors).label('Write errors'),\\n.es(metric=max:uwsgi.status.worker.harakiri_count).label('Timeouted requests')\"}, \"title\": \"Errors [Metricbeat uWSGI]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "eb8277d0-c98c-11e7-9835-2f31fe08873b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "title": "Service States [Metricbeat Windows]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"sortField\": \"@timestamp\", \"customLabel\": \"Latest Report\", \"field\": \"@timestamp\", \"sortOrder\": \"desc\", \"aggregate\": \"concat\", \"size\": 1}, \"type\": \"top_hits\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"_term\", \"field\": \"windows.service.display_name\", \"customLabel\": \"Service\", \"order\": \"asc\", \"size\": 100}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"_term\", \"field\": \"beat.name\", \"customLabel\": \"Host\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"5\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"custom\", \"customLabel\": \"State\", \"field\": \"windows.service.state\", \"orderAgg\": {\"params\": {\"field\": \"@timestamp\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3-orderAgg\", \"schema\": {\"group\": \"none\", \"name\": \"orderAgg\", \"min\": 0, \"aggFilter\": [\"!top_hits\", \"!percentiles\", \"!median\", \"!std_dev\", \"!derivative\", \"!moving_avg\", \"!serial_diff\", \"!cumulative_sum\", \"!avg_bucket\", \"!max_bucket\", \"!min_bucket\", \"!sum_bucket\"], \"max\": null, \"title\": \"Order Agg\", \"hideCustomLabel\": true, \"params\": [], \"editor\": false, \"deprecate\": false}}, \"order\": \"desc\", \"size\": 1}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"custom\", \"customLabel\": \"Startup Type\", \"field\": \"windows.service.start_type\", \"orderAgg\": {\"params\": {\"field\": \"@timestamp\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4-orderAgg\", \"schema\": {\"group\": \"none\", \"name\": \"orderAgg\", \"min\": 0, \"aggFilter\": [\"!top_hits\", \"!percentiles\", \"!median\", \"!std_dev\", \"!derivative\", \"!moving_avg\", \"!serial_diff\", \"!cumulative_sum\", \"!avg_bucket\", \"!max_bucket\", \"!min_bucket\", \"!sum_bucket\"], \"max\": null, \"title\": \"Order Agg\", \"hideCustomLabel\": true, \"params\": [], \"editor\": false, \"deprecate\": false}}, \"order\": \"desc\", \"size\": 1}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"bucket\"}], \"title\": \"Service States [Metricbeat Windows]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "23a5fff0-c98e-11e7-9835-2f31fe08873b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b6b7ccc0-c98d-11e7-9835-2f31fe08873b",
+ "title": "Hosts [Metricbeat Windows]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"windows.service.id\", \"customLabel\": \"Total Services\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"beat.name\", \"customLabel\": \"Host\", \"order\": \"desc\", \"size\": 100}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Hosts [Metricbeat Windows]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "830c45f0-c991-11e7-9835-2f31fe08873b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b6b7ccc0-c98d-11e7-9835-2f31fe08873b",
+ "title": "Startup States [Metricbeat Windows]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"legendPosition\": \"right\", \"type\": \"pie\", \"isDonut\": true, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"windows.service.id\", \"customLabel\": \"Service Count\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"windows.service.start_type\", \"customLabel\": \"Startup Type\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"windows.service.state\", \"customLabel\": \"State\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Startup States [Metricbeat Windows]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "35f5ad60-c996-11e7-9835-2f31fe08873b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b6b7ccc0-c98d-11e7-9835-2f31fe08873b",
+ "title": "Unique Services [Metricbeat Windows]",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"params\": {\"gauge\": {\"useRange\": false, \"gaugeType\": \"Metric\", \"style\": {\"subText\": \"\", \"bgColor\": false, \"fontSize\": 60, \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"orientation\": \"vertical\", \"gaugeStyle\": \"Full\", \"autoExtend\": false, \"labels\": {\"color\": \"black\", \"show\": false}, \"backStyle\": \"Full\", \"colorsRange\": [{\"to\": 100, \"from\": 0}], \"scale\": {\"color\": \"#333\", \"width\": 2, \"labels\": false, \"show\": false}, \"verticalSplit\": false, \"percentageMode\": false, \"type\": \"simple\", \"gaugeColorMode\": \"None\"}, \"type\": \"gauge\", \"addTooltip\": true, \"addLegend\": false}, \"aggs\": [{\"params\": {\"field\": \"windows.service.id\", \"customLabel\": \"Services\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Unique Services [Metricbeat Windows]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c36b2ba0-ca29-11e7-9835-2f31fe08873b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"windows.service.exit_code\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"windows.service.exit_code\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"windows.service.exit_code\",\"negate\":true,\"params\":{\"query\":\"0\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"0\"},\"query\":{\"match\":{\"windows.service.exit_code\":{\"query\":\"0\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"windows.service.exit_code\",\"negate\":true,\"params\":{\"query\":\"ERROR_SERVICE_NEVER_STARTED\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ERROR_SERVICE_NEVER_STARTED\"},\"query\":{\"match\":{\"windows.service.exit_code\":{\"query\":\"ERROR_SERVICE_NEVER_STARTED\",\"type\":\"phrase\"}}}}],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b6b7ccc0-c98d-11e7-9835-2f31fe08873b",
+ "title": "Non-zero Service Exit Codes [Metricbeat Windows]",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"params\": {\"gauge\": {\"useRange\": false, \"gaugeType\": \"Metric\", \"style\": {\"subText\": \"\", \"bgColor\": false, \"fontSize\": 60, \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"orientation\": \"vertical\", \"gaugeStyle\": \"Full\", \"autoExtend\": false, \"labels\": {\"color\": \"black\", \"show\": false}, \"backStyle\": \"Full\", \"colorsRange\": [{\"to\": 100, \"from\": 0}], \"scale\": {\"color\": \"#333\", \"width\": 2, \"labels\": false, \"show\": false}, \"verticalSplit\": false, \"percentageMode\": false, \"type\": \"simple\", \"gaugeColorMode\": \"None\"}, \"type\": \"gauge\", \"addTooltip\": true, \"addLegend\": false}, \"aggs\": [{\"params\": {\"field\": \"windows.service.id\", \"customLabel\": \"Non-zero Exit Codes\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Non-zero Service Exit Codes [Metricbeat Windows]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "555df8a0-f1a1-11e7-a9ef-93c69af7b129",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Request Rate [Metricbeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Request rate\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.requests\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"396ec980-f1a1-11e7-95d0-8ddf041d42a2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Request Rate [Metricbeat Nginx]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a1d92240-f1a1-11e7-a9ef-93c69af7b129",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Accepts and Handled Rate [Metricbeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"annotations\":[{\"color\":\"#F00\",\"icon\":\"fa-tag\",\"id\":\"8644f980-f1a3-11e7-95d0-8ddf041d42a2\",\"ignore_global_filters\":1,\"ignore_panel_filters\":1,\"index_pattern\":\"*\",\"time_field\":\"@timestamp\"}],\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0.5\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Accepts rate\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.accepts\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"396ec980-f1a1-11e7-95d0-8ddf041d42a2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_color_mode\":\"gradient\",\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"0.9\",\"formatter\":\"number\",\"id\":\"56dd33b0-f1a3-11e7-95d0-8ddf041d42a2\",\"label\":\"Handled rate\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.handled\",\"id\":\"56dd33b1-f1a3-11e7-95d0-8ddf041d42a2\",\"type\":\"avg\"},{\"field\":\"56dd33b1-f1a3-11e7-95d0-8ddf041d42a2\",\"id\":\"56dd33b2-f1a3-11e7-95d0-8ddf041d42a2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":\"3\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Accepts and Handled Rate [Metricbeat Nginx]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d763a570-f1a1-11e7-a9ef-93c69af7b129",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Drops Rate [Metricbeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(188,0,65,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Drops rate\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.dropped\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"396ec980-f1a1-11e7-95d0-8ddf041d42a2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Drops Rate [Metricbeat Nginx]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "47a8e0f0-f1a4-11e7-a9ef-93c69af7b129",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Active connections [Metricbeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.active\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Active connections [Metricbeat Nginx]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dcbffe30-f1a4-11e7-a9ef-93c69af7b129",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Reading / Writing / Waiting Rates [Metricbeat Nginx]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Reading\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.reading\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"b1773680-f1a4-11e7-95d0-8ddf041d42a2\",\"label\":\"Writing\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.writing\",\"id\":\"b1773681-f1a4-11e7-95d0-8ddf041d42a2\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(252,220,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"b68aa6c0-f1a4-11e7-95d0-8ddf041d42a2\",\"label\":\"Waiting\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.waiting\",\"id\":\"b68aa6c1-f1a4-11e7-95d0-8ddf041d42a2\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Reading / Writing / Waiting Rates [Metricbeat Nginx]\",\"type\":\"metrics\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "825fdb80-4d1d-11e7-b5f2-2b7c1895bf32",
+ "_type": "visualization",
+ "_source": {
+ "title": "Disk used [Metricbeat System]",
+ "visState": "{\"title\":\"Disk used [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"\",\"gauge_color_rules\":[{\"value\":0,\"gauge\":\"rgba(104,188,0,1)\",\"id\":\"51921d10-4d1d-11e7-b5f2-2b7c1895bf32\",\"operator\":\"gte\",\"opperator\":\"gt\"},{\"value\":0.7,\"gauge\":\"rgba(251,158,0,1)\",\"id\":\"f26de750-4d54-11e7-b5f2-2b7c1895bf32\",\"operator\":\"gte\",\"opperator\":\"gte\"},{\"value\":0.85,\"gauge\":\"rgba(211,49,21,1)\",\"id\":\"fa31d190-4d54-11e7-b5f2-2b7c1895bf32\",\"operator\":\"gte\",\"opperator\":\"gte\"}],\"gauge_inner_width\":10,\"gauge_max\":\"1\",\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"4e4dc780-4d1d-11e7-b5f2-2b7c1895bf32\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"4e4dee90-4d1d-11e7-b5f2-2b7c1895bf32\",\"label\":\"Disk used\",\"line_width\":1,\"metrics\":[{\"field\":\"system.fsstat.total_size.used\",\"id\":\"4e4dee91-4d1d-11e7-b5f2-2b7c1895bf32\",\"type\":\"avg\"},{\"field\":\"system.fsstat.total_size.total\",\"id\":\"57c96ee0-4d54-11e7-b5f2-2b7c1895bf32\",\"type\":\"avg\"},{\"id\":\"6304cca0-4d54-11e7-b5f2-2b7c1895bf32\",\"script\":\"params.total != null && params.total > 0 ? params.used/params.total : null\",\"type\":\"calculation\",\"variables\":[{\"field\":\"4e4dee91-4d1d-11e7-b5f2-2b7c1895bf32\",\"id\":\"6da10430-4d54-11e7-b5f2-2b7c1895bf32\",\"name\":\"used\"},{\"field\":\"57c96ee0-4d54-11e7-b5f2-2b7c1895bf32\",\"id\":\"73b8c510-4d54-11e7-b5f2-2b7c1895bf32\",\"name\":\"total\"}]}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"gauge\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7cdb1330-4d1a-11e7-a196-69b9a7a020a9",
+ "_type": "visualization",
+ "_source": {
+ "title": "Hosts histogram by CPU usage [Metricbeat System]",
+ "visState": "{\"title\":\"Hosts histogram by CPU usage [Metricbeat System]\",\"type\":\"heatmap\",\"params\":{\"colorSchema\":\"Greens\",\"invertColors\":false,\"type\":\"heatmap\",\"legendPosition\":\"right\",\"addLegend\":true,\"colorsRange\":[],\"colorsNumber\":4,\"setColorRange\":false,\"percentageMode\":false,\"addTooltip\":true,\"valueAxes\":[{\"show\":false,\"labels\":{\"color\":\"#555\",\"rotate\":0,\"show\":true},\"type\":\"value\",\"id\":\"ValueAxis-1\",\"scale\":{\"defaultYExtents\":false,\"type\":\"linear\"}}],\"enableHover\":false,\"times\":[]},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.cpu.user.pct\",\"customLabel\":\"CPU usage\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"beat.hostname.keyword\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Hosts\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0% - 20%\":\"rgb(247,252,245)\",\"20% - 40%\":\"rgb(199,233,192)\",\"40% - 60%\":\"rgb(116,196,118)\",\"60% - 80%\":\"rgb(35,139,69)\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-lavalab-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\",\"default_field\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "83e12df0-1b91-11e7-bec4-a5e9ec5cab8b",
+ "_type": "visualization",
+ "_source": {
+ "title": "CPU Usage Gauge [Metricbeat System]",
+ "visState": "{\"title\":\"CPU Usage Gauge [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"\",\"gauge_color_rules\":[{\"value\":0,\"gauge\":\"rgba(104,188,0,1)\",\"id\":\"4ef2c3b0-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"opperator\":\"gt\"},{\"value\":0.7,\"gauge\":\"rgba(254,146,0,1)\",\"id\":\"e6561ae0-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"opperator\":\"gte\"},{\"value\":0.85,\"gauge\":\"rgba(211,49,21,1)\",\"id\":\"ec655040-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"opperator\":\"gt\"}],\"gauge_inner_width\":10,\"gauge_max\":\"1\",\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"4c9e2550-1b91-11e7-bec4-a5e9ec5cab8b\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"4c9e2551-1b91-11e7-bec4-a5e9ec5cab8b\",\"label\":\"CPU Usage\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.user.pct\",\"id\":\"4c9e2552-1b91-11e7-bec4-a5e9ec5cab8b\",\"type\":\"avg\"},{\"field\":\"system.cpu.system.pct\",\"id\":\"225c2140-5fd7-11e7-a63a-a937b7c1a7e1\",\"type\":\"avg\"},{\"field\":\"system.cpu.cores\",\"id\":\"837a30c0-5fd7-11e7-a63a-a937b7c1a7e1\",\"type\":\"avg\"},{\"id\":\"587aa510-1b91-11e7-bec4-a5e9ec5cab8b\",\"script\":\"params.n > 0 ? (params.user+params.system)/params.n : null\",\"type\":\"calculation\",\"variables\":[{\"field\":\"4c9e2552-1b91-11e7-bec4-a5e9ec5cab8b\",\"id\":\"5a19af10-1b91-11e7-bec4-a5e9ec5cab8b\",\"name\":\"user\"},{\"field\":\"225c2140-5fd7-11e7-a63a-a937b7c1a7e1\",\"id\":\"32b54f80-5fd7-11e7-a63a-a937b7c1a7e1\",\"name\":\"system\"},{\"field\":\"837a30c0-5fd7-11e7-a63a-a937b7c1a7e1\",\"id\":\"8ba6eef0-5fd7-11e7-a63a-a937b7c1a7e1\",\"name\":\"n\"}]}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"beat.hostname.keyword\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"gauge\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1aae9140-1b93-11e7-8ada-3df93aab833e",
+ "_type": "visualization",
+ "_source": {
+ "title": "Outbound Traffic [Metricbeat System]",
+ "visState": "{\"title\":\"Outbound Traffic [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"0e346760-1b92-11e7-bec4-a5e9ec5cab8b\"}],\"filter\":\"-system.network.name.keyword:l*\",\"id\":\"0c761590-1b92-11e7-bec4-a5e9ec5cab8b\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"0c761591-1b92-11e7-bec4-a5e9ec5cab8b\",\"label\":\"Outbound Traffic\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.out.bytes\",\"id\":\"0c761592-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"max\"},{\"unit\":\"1s\",\"function\":\"sum\",\"id\":\"a1737470-2c55-11e7-a0ad-277ce466684d\",\"type\":\"derivative\",\"field\":\"0c761592-1b92-11e7-bec4-a5e9ec5cab8b\"},{\"id\":\"5645de30-c2b5-11ea-a805-ed7a667554aa\",\"type\":\"series_agg\",\"function\":\"overall_sum\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name.keyword\",\"value_template\":\"{{value}}/s\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"37f70440-1b92-11e7-bec4-a5e9ec5cab8b\",\"label\":\"Total Transferred\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.out.bytes\",\"id\":\"37f72b50-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"max\"},{\"field\":\"37f72b50-1b92-11e7-bec4-a5e9ec5cab8b\",\"id\":\"37f72b51-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"f9da2dd0-1b92-11e7-a416-41f5ccdba2e6\",\"function\":\"overall_sum\",\"id\":\"3e63c2f0-1b92-11e7-bec4-a5e9ec5cab8b\",\"sigma\":\"\",\"type\":\"series_agg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"beat.hostname.keyword\",\"value_template\":\"{{value}}\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "522ee670-1b92-11e7-bec4-a5e9ec5cab8b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Inbound Traffic [Metricbeat System]",
+ "visState": "{\"title\":\"Inbound Traffic [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"0e346760-1b92-11e7-bec4-a5e9ec5cab8b\"}],\"filter\":\"-system.network.name:l*\",\"id\":\"0c761590-1b92-11e7-bec4-a5e9ec5cab8b\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"0c761591-1b92-11e7-bec4-a5e9ec5cab8b\",\"label\":\"Inbound Traffic\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.in.bytes\",\"id\":\"0c761592-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"max\"},{\"field\":\"0c761592-1b92-11e7-bec4-a5e9ec5cab8b\",\"id\":\"1d659060-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"function\":\"overall_sum\",\"id\":\"c40e18f0-2c55-11e7-a0ad-277ce466684d\",\"type\":\"series_agg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name.keyword\",\"value_template\":\"{{value}}/s\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"37f70440-1b92-11e7-bec4-a5e9ec5cab8b\",\"label\":\"Total Transferred\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.in.bytes\",\"id\":\"37f72b50-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"max\"},{\"field\":\"37f72b50-1b92-11e7-bec4-a5e9ec5cab8b\",\"id\":\"37f72b51-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"f9da2dd0-1b92-11e7-a416-41f5ccdba2e6\",\"function\":\"overall_sum\",\"id\":\"3e63c2f0-1b92-11e7-bec4-a5e9ec5cab8b\",\"sigma\":\"\",\"type\":\"series_agg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"beat.name.keyword\",\"value_template\":\"{{value}}\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4e4bb1e0-1b1b-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Disk IO (Bytes) [Metricbeat System]",
+ "visState": "{\"title\":\"Disk IO (Bytes) [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"\",\"id\":\"d3c67db0-1b1a-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(22,165,165,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"d3c67db1-1b1a-11e7-b09e-037021c4f8df\",\"label\":\"reads\",\"line_width\":1,\"metrics\":[{\"field\":\"system.diskio.read.bytes\",\"id\":\"d3c67db2-1b1a-11e7-b09e-037021c4f8df\",\"type\":\"max\"},{\"field\":\"d3c67db2-1b1a-11e7-b09e-037021c4f8df\",\"id\":\"f55b9910-1b1a-11e7-b09e-037021c4f8df\",\"type\":\"derivative\",\"unit\":\"1s\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"value_template\":\"{{value}}/s\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(251,158,0,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"144124d0-1b1b-11e7-b09e-037021c4f8df\",\"label\":\"writes\",\"line_width\":1,\"metrics\":[{\"field\":\"system.diskio.write.bytes\",\"id\":\"144124d1-1b1b-11e7-b09e-037021c4f8df\",\"type\":\"max\"},{\"field\":\"144124d1-1b1b-11e7-b09e-037021c4f8df\",\"id\":\"144124d2-1b1b-11e7-b09e-037021c4f8df\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"id\":\"144124d4-1b1b-11e7-b09e-037021c4f8df\",\"script\":\"params.rate > 0 ? params.rate * -1 : 0\",\"type\":\"calculation\",\"variables\":[{\"field\":\"144124d2-1b1b-11e7-b09e-037021c4f8df\",\"id\":\"144124d3-1b1b-11e7-b09e-037021c4f8df\",\"name\":\"rate\"}]}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"value_template\":\"{{value}}/s\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0fb2b0c0-c6c4-11ea-9cf6-c19e3a7fac53",
+ "_type": "visualization",
+ "_source": {
+ "title": "lava_queue_lkft_1day",
+ "visState": "{\"title\":\"lava_queue_lkft_1day\",\"type\":\"line\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"},\"valueAxis\":null},\"legendPosition\":\"right\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Max device.queue\"},\"drawLinesBetweenPoints\":true,\"mode\":\"normal\",\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Max device.queue\"},\"type\":\"value\"},{\"id\":\"ValueAxis-2\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"RightAxis-1\",\"position\":\"right\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Max device.queue\"},\"type\":\"value\"}]},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"m\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "7ca82c00-a60a-11e8-9dd0-e5c705b98d0d",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a8581090-a623-11e8-8538-f34fec203819",
+ "_type": "visualization",
+ "_source": {
+ "title": "lava_queue_lkft",
+ "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"device.queue\"},\"schema\":\"metric\",\"type\":\"max\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customInterval\":\"2h\",\"extended_bounds\":{},\"field\":\"device.timestamp\",\"interval\":\"h\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"device.type.keyword\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"},\"valueAxis\":null},\"legendPosition\":\"right\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Max device.queue\"},\"drawLinesBetweenPoints\":true,\"mode\":\"normal\",\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Max device.queue\"},\"type\":\"value\"},{\"id\":\"ValueAxis-2\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"RightAxis-1\",\"position\":\"right\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Max device.queue\"},\"type\":\"value\"}]},\"title\":\"lava_queue_lkft\",\"type\":\"line\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "7ca82c00-a60a-11e8-9dd0-e5c705b98d0d",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c6670080-a625-11e8-8538-f34fec203819",
+ "_type": "visualization",
+ "_source": {
+ "title": "lava_queue_validation",
+ "visState": "{\"title\":\"lava_queue_validation\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"h\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "20280fd0-a624-11e8-8538-f34fec203819",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e0e68790-b1ed-11e8-852d-55393e7ce617",
+ "_type": "visualization",
+ "_source": {
+ "title": "lava_queue_pwmg",
+ "visState": "{\"title\":\"lava_queue_pwmg\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"h\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "43f85670-a6da-11e8-83fb-2d7acaa76fd6",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "59e66790-847a-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_diskusage_percent",
+ "visState": "{\"title\":\"kisscache_diskusage_percent\",\"type\":\"gauge\",\"params\":{\"type\":\"gauge\",\"addTooltip\":true,\"addLegend\":true,\"isDisplayWarning\":false,\"gauge\":{\"verticalSplit\":true,\"extendRange\":true,\"percentageMode\":true,\"gaugeType\":\"Arc\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"Labels\",\"colorsRange\":[{\"from\":0,\"to\":50},{\"from\":50,\"to\":75},{\"from\":75,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":true,\"color\":\"black\"},\"scale\":{\"show\":true,\"labels\":false,\"color\":\"#333\"},\"type\":\"meter\",\"style\":{\"bgWidth\":0.9,\"width\":0.9,\"mask\":false,\"bgMask\":false,\"maskBars\":50,\"bgFill\":\"#eee\",\"bgColor\":false,\"subText\":\"\",\"fontSize\":60,\"labelColor\":true}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"disk_usage_percent\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"Disk usage\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(0,104,55)\",\"50 - 75\":\"rgb(255,255,190)\",\"75 - 100\":\"rgb(165,0,38)\"},\"colors\":{\"50 - 75\":\"#E0752D\",\"75 - 100\":\"#BF1B00\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7df7b9a0-8492-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_download_upload_total",
+ "visState": "{\"title\":\"kisscache_download_upload_total\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":34}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"statistics_download\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"Download\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"statistics_upload\",\"aggregate\":\"average\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"Upload\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "187dd8d0-848c-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_download_upload",
+ "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"upload\",\"customMetric\":{\"enabled\":true,\"id\":\"1-metric\",\"params\":{\"field\":\"statistics_upload\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!percentile_ranks\",\"!median\",\"!std_dev\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"metricAgg\",\"params\":[],\"title\":\"Metric Agg\"},\"type\":\"max\"},\"metricAgg\":\"custom\"},\"schema\":\"metric\",\"type\":\"derivative\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customInterval\":\"2h\",\"extended_bounds\":{},\"field\":\"timestamp\",\"interval\":\"auto\",\"min_doc_count\":0},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"download\",\"customMetric\":{\"enabled\":true,\"id\":\"3-metric\",\"params\":{\"field\":\"statistics_download\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!percentile_ranks\",\"!median\",\"!std_dev\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"metricAgg\",\"params\":[],\"title\":\"Metric Agg\"},\"type\":\"max\"},\"metricAgg\":\"custom\"},\"schema\":\"metric\",\"type\":\"derivative\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":true,\"style\":{\"color\":\"#eee\"},\"valueAxis\":null},\"legendPosition\":\"right\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"upload\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"normal\",\"show\":\"true\",\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"},{\"data\":{\"id\":\"3\",\"label\":\"download\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Size\"},\"type\":\"value\"}]},\"title\":\"kisscache_download_upload\",\"type\":\"line\"}",
+ "uiStateJSON": "{\"vis\":{\"colors\":{\"download\":\"#BF1B00\",\"upload\":\"#508642\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "70a79ef0-848d-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_requests",
+ "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"requests\",\"customMetric\":{\"enabled\":true,\"id\":\"1-metric\",\"params\":{\"field\":\"statistics_requests\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!percentile_ranks\",\"!median\",\"!std_dev\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"metricAgg\",\"params\":[],\"title\":\"Metric Agg\"},\"type\":\"max\"},\"metricAgg\":\"custom\"},\"schema\":\"metric\",\"type\":\"derivative\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customInterval\":\"2h\",\"extended_bounds\":{},\"field\":\"timestamp\",\"interval\":\"auto\",\"min_doc_count\":0},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"right\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"requests\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"normal\",\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"requests\"},\"type\":\"value\"}]},\"title\":\"kisscache_requests\",\"type\":\"line\"}",
+ "uiStateJSON": "{\"vis\":{\"colors\":{\"requests\":\"#447EBC\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "720a7fc0-848c-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_diskusage",
+ "visState": "{\"title\":\"kisscache_diskusage\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"usage\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"usage\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"cardinal\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"data\":{\"id\":\"3\",\"label\":\"quota\"},\"valueAxis\":\"ValueAxis-1\",\"interpolate\":\"cardinal\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"disk_usage\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"usage\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"disk_quota\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"quota\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"colors\":{\"quota\":\"#BF1B00\",\"usage\":\"#447EBC\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c6f2ffd0-4d17-11e7-a196-69b9a7a020a9",
+ "_type": "visualization",
+ "_source": {
+ "title": "Number of hosts [Metricbeat System]",
+ "visState": "{\n \"title\": \"Number of hosts [Metricbeat System]\",\n \"type\": \"metric\",\n \"params\": {\n \"type\": \"metric\",\n \"addTooltip\": true,\n \"addLegend\": false,\n \"metric\": {\n \"useRange\": false,\n \"style\": {\n \"bgFill\": \"#000\",\n \"bgColor\": false,\n \"fontSize\": \"63\",\n \"subText\": \"\",\n \"labelColor\": false\n },\n \"colorSchema\": \"Green to Red\",\n \"invertColors\": false,\n \"labels\": {\n \"color\": \"black\",\n \"show\": false\n },\n \"colorsRange\": [\n {\n \"to\": 100,\n \"from\": 0\n }\n ],\n \"percentageMode\": false,\n \"metricColorMode\": \"None\"\n }\n },\n \"aggs\": [\n {\n \"id\": \"1\",\n \"enabled\": true,\n \"type\": \"cardinality\",\n \"schema\": \"metric\",\n \"params\": {\n \"field\": \"beat.hostname\"\n }\n }\n ]\n}",
+ "uiStateJSON": "{\n \"vis\": {\n \"defaultColors\": {\n \"0 - 100\": \"rgb(0,104,55)\"\n }\n }\n}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\n \"filter\": [],\n \"index\": \"metricbeat-lavalab-*\",\n \"query\": {\n \"language\": \"lucene\",\n \"query\": {\n \"query_string\": {\n \"analyze_wildcard\": true,\n \"query\": \"*\",\n \"default_field\": \"*\"\n }\n }\n }\n}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5ed8f9f0-c2a2-11ea-9cf6-c19e3a7fac53",
+ "_type": "visualization",
+ "_source": {
+ "title": "[Linaro] Simple Host List",
+ "visState": "{\"title\":\"[Linaro] Simple Host List\",\"type\":\"table\",\"params\":{\"perPage\":25,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"@timestamp\",\"customLabel\":\"Last Check\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"beat.hostname\",\"size\":30,\"order\":\"asc\",\"orderBy\":\"_term\",\"customLabel\":\"Hostname\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"config\":{\"searchKeyword\":\"\"}}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"metricbeat-lavalab-*\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "550e1470-848e-11ea-a795-b501b684e6e8",
+ "_type": "visualization",
+ "_source": {
+ "title": "kisscache_resources",
+ "visState": "{\"title\":\"kisscache_resources\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"successes\"}},{\"id\":\"ValueAxis-2\",\"name\":\"RightAxis-1\",\"type\":\"value\",\"position\":\"right\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"scheduled\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"3\",\"label\":\"scheduled\"},\"valueAxis\":\"ValueAxis-2\"},{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"downloading\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-2\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"cardinal\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"4\",\"label\":\"failures\"},\"valueAxis\":\"ValueAxis-2\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"5\",\"label\":\"successes\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"resources_scheduled\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"scheduled\"}},{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"resources_downloading\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"downloading\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"resources_failures\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"failures\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"resources_successes\",\"aggregate\":\"max\",\"size\":1,\"sortField\":\"timestamp\",\"sortOrder\":\"desc\",\"customLabel\":\"successes\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"colors\":{\"Successes\":\"#629E51\",\"failures\":\"#BF1B00\",\"scheduled\":\"#64B0C8\",\"downloading\":\"#962D82\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"f26b34f0-c12e-11ea-9cf6-c19e3a7fac53\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "fe064790-1b1f-11e7-bec4-a5e9ec5cab8b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top Hosts By Memory (Realtime) [Metricbeat System]",
+ "visState": "{\"title\":\"Top Hosts By Memory (Realtime) [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"bar_color\":\"rgba(104,188,0,1)\",\"id\":\"33349dd0-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0},{\"bar_color\":\"rgba(254,146,0,1)\",\"id\":\"997dc440-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.6},{\"bar_color\":\"rgba(211,49,21,1)\",\"id\":\"a10d7f20-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.85}],\"drilldown_url\":\"../app/kibana#/dashboard/79ffd6e0-faa0-11e6-947f-177f697178b8?_a=(query:(query_string:(analyze_wildcard:!t,query:'beat.hostname:\\\"{{key}}\\\"')))\",\"filter\":\"\",\"id\":\"31e5afa0-1b1c-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"31e5afa1-1b1c-11e7-b09e-037021c4f8df\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.actual.used.pct\",\"id\":\"31e5afa2-1b1c-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"beat.hostname\",\"terms_order_by\":\"31e5afa2-1b1c-11e7-b09e-037021c4f8df\",\"terms_size\":\"10\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "855899e0-1b1c-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top Hosts By CPU (Realtime) [Metricbeat System]",
+ "visState": "{\"title\":\"Top Hosts By CPU (Realtime) [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"bar_color\":\"rgba(104,188,0,1)\",\"id\":\"33349dd0-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0},{\"bar_color\":\"rgba(254,146,0,1)\",\"id\":\"997dc440-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.6},{\"bar_color\":\"rgba(211,49,21,1)\",\"id\":\"a10d7f20-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.85}],\"drilldown_url\":\"../app/kibana#/dashboard/79ffd6e0-faa0-11e6-947f-177f697178b8?_a=(query:(query_string:(analyze_wildcard:!t,query:'beat.hostname:\\\"{{key}}\\\"')))\",\"filter\":\"\",\"id\":\"31e5afa0-1b1c-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"31e5afa1-1b1c-11e7-b09e-037021c4f8df\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.user.pct\",\"id\":\"31e5afa2-1b1c-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"beat.hostname\",\"terms_order_by\":\"31e5afa2-1b1c-11e7-b09e-037021c4f8df\",\"terms_size\":\"10\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d635d060-1f39-11eb-8c52-ad3754e13144",
+ "_type": "visualization",
+ "_source": {
+ "title": "Host List",
+ "visState": "{\"title\":\"Host List\",\"type\":\"metrics\",\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"table\",\"series\":[{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"count\"}],\"seperate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"color_rules\":[{\"id\":\"4a4a91d0-1f39-11eb-b84d-1ddab8f9c759\"}],\"aggregate_by\":\"@timestamp\",\"aggregate_function\":\"max\"}],\"time_field\":\"@timestamp\",\"index_pattern\":\"*\",\"interval\":\"auto\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"show_legend\":1,\"show_grid\":1,\"bar_color_rules\":[{\"id\":\"c80543f0-1f38-11eb-b84d-1ddab8f9c759\"}],\"pivot_id\":\"beat.hostname\",\"pivot_label\":\"Host\",\"pivot_rows\":\"25\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0a6c35a0-860e-11eb-ab35-ab7823fa4527",
+ "_type": "visualization",
+ "_source": {
+ "title": "lava_queue_morello",
+ "visState": "{\"title\":\"lava_queue_morello\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"h\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "a291c0d0-860d-11eb-ab35-ab7823fa4527",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "21bd8920-864f-11eb-ab35-ab7823fa4527",
+ "_type": "visualization",
+ "_source": {
+ "title": "lava_queue_ledge",
+ "visState": "{\"title\":\"lava_queue_ledge\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"h\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"device.lava_server: ledge.validation.linaro.org\",\"language\":\"lucene\"},\"index\":\"e7f71ed0-c12e-11ea-9cf6-c19e3a7fac53\",\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "02361660-a625-11e8-8538-f34fec203819",
+ "_type": "visualization",
+ "_source": {
+ "title": "lava_queue_lite",
+ "visState": "{\"title\":\"lava_queue_lite\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"h\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"device.lava_server: lite.validation.linaro.org\",\"language\":\"lucene\"},\"index\":\"e7f71ed0-c12e-11ea-9cf6-c19e3a7fac53\",\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d2128630-8286-11eb-b4ce-c7a87883d896",
+ "_type": "visualization",
+ "_source": {
+ "title": "lava_queue_tf",
+ "visState": "{\"title\":\"lava_queue_tf\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max device.queue\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max device.queue\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"device.queue\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"device.timestamp\",\"interval\":\"h\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"device.type.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"device.lava_server: tf.validation.linaro.org\",\"language\":\"lucene\"},\"index\":\"e7f71ed0-c12e-11ea-9cf6-c19e3a7fac53\",\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2e224660-1b19-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Processes By Memory [Metricbeat System]",
+ "visState": "{\"title\":\"Processes By Memory [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"bar_color\":\"rgba(104,188,0,1)\",\"id\":\"efb9b660-1b18-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0},{\"bar_color\":\"rgba(254,146,0,1)\",\"id\":\"17fcb820-1b19-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.7},{\"bar_color\":\"rgba(211,49,21,1)\",\"id\":\"1dd61070-1b19-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.85}],\"drilldown_url\":\"\",\"filter\":\"\",\"id\":\"edfceb30-1b18-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"edfceb31-1b18-11e7-b09e-037021c4f8df\",\"line_width\":1,\"metrics\":[{\"field\":\"system.process.memory.rss.pct\",\"id\":\"edfceb32-1b18-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.process.name\",\"terms_order_by\":\"edfceb32-1b18-11e7-b09e-037021c4f8df\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e0f001c0-1b18-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top Processes By CPU [Metricbeat System]",
+ "visState": "{\"title\":\"Top Processes By CPU [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"bar_color\":\"rgba(104,188,0,1)\",\"id\":\"60e11be0-1b18-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0}],\"drilldown_url\":\"\",\"filter\":\"\",\"id\":\"5f5b8d50-1b18-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"5f5b8d51-1b18-11e7-b09e-037021c4f8df\",\"line_width\":1,\"metrics\":[{\"field\":\"system.process.cpu.total.pct\",\"id\":\"5f5b8d52-1b18-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.process.name\",\"terms_order_by\":\"5f5b8d52-1b18-11e7-b09e-037021c4f8df\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "99381c80-4d60-11e7-9a4c-ed99bbcaa42b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Interfaces by Incoming traffic [Metricbeat System]",
+ "visState": "{\"title\":\"Interfaces by Incoming traffic [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"44596d40-4d60-11e7-9a4c-ed99bbcaa42b\"}],\"id\":\"42ceae90-4d60-11e7-9a4c-ed99bbcaa42b\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"42ced5a0-4d60-11e7-9a4c-ed99bbcaa42b\",\"label\":\"Interfaces by Incoming traffic\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.in.bytes\",\"id\":\"42ced5a1-4d60-11e7-9a4c-ed99bbcaa42b\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name\",\"terms_order_by\":\"42ced5a1-4d60-11e7-9a4c-ed99bbcaa42b\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c5e3cf90-4d60-11e7-9a4c-ed99bbcaa42b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Interfaces by Outgoing traffic [Metricbeat System]",
+ "visState": "{\"title\":\"Interfaces by Outgoing traffic [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"9db20be0-4d60-11e7-9a4c-ed99bbcaa42b\"}],\"id\":\"9cdba910-4d60-11e7-9a4c-ed99bbcaa42b\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"9cdba911-4d60-11e7-9a4c-ed99bbcaa42b\",\"label\":\"Interfaces by Outgoing traffic\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.out.bytes\",\"id\":\"9cdba912-4d60-11e7-9a4c-ed99bbcaa42b\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name\",\"terms_order_by\":\"9cdba912-4d60-11e7-9a4c-ed99bbcaa42b\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "34f97ee0-1b96-11e7-8ada-3df93aab833e",
+ "_type": "visualization",
+ "_source": {
+ "title": "Disk Usage [Metricbeat System]",
+ "visState": "{\"title\":\"Disk Usage [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"bar_color\":\"rgba(104,188,0,1)\",\"id\":\"bf525310-1b95-11e7-8ada-3df93aab833e\",\"operator\":\"gte\",\"value\":0},{\"bar_color\":\"rgba(254,146,0,1)\",\"id\":\"125fc4c0-1b96-11e7-8ada-3df93aab833e\",\"operator\":\"gte\",\"value\":0.7},{\"bar_color\":\"rgba(211,49,21,1)\",\"id\":\"1a5c7240-1b96-11e7-8ada-3df93aab833e\",\"operator\":\"gte\",\"value\":0.85}],\"drilldown_url\":\"\",\"filter\":\"-system.filesystem.mount_point:\\\\/run* AND -system.filesystem.mount_point:\\\\/sys* AND -system.filesystem.mount_point:\\\\/dev* AND -system.filesystem.mount_point:\\\\/proc* AND -system.filesystem.mount_point:\\\\/var* AND -system.filesystem.mount_point:\\\\/boot\",\"id\":\"9f7e48a0-1b95-11e7-8ada-3df93aab833e\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"9f7e48a1-1b95-11e7-8ada-3df93aab833e\",\"line_width\":1,\"metrics\":[{\"field\":\"system.filesystem.used.pct\",\"id\":\"9f7e48a2-1b95-11e7-8ada-3df93aab833e\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.filesystem.mount_point\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "6b7b9a40-faa1-11e6-86b1-cd7735ff7e23",
+ "_type": "visualization",
+ "_source": {
+ "title": "Network Traffic (Packets) [Metricbeat System]",
+ "visState": "{\"title\":\"Network Traffic (Packets) [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"-system.network.name:l*\",\"id\":\"da1046f0-faa0-11e6-86b1-cd7735ff7e23\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"1\",\"formatter\":\"0.[00]a\",\"id\":\"da1046f1-faa0-11e6-86b1-cd7735ff7e23\",\"label\":\"Inbound\",\"line_width\":\"0\",\"metrics\":[{\"field\":\"system.network.in.packets\",\"id\":\"da1046f2-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"max\"},{\"field\":\"da1046f2-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"f41f9280-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"function\":\"sum\",\"id\":\"ecaad010-2c2c-11e7-be71-3162da85303f\",\"type\":\"series_agg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name\",\"value_template\":\"{{value}}/s\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(250,40,255,1)\",\"fill\":\"1\",\"formatter\":\"0.[00]a\",\"id\":\"fbbd5720-faa0-11e6-86b1-cd7735ff7e23\",\"label\":\"Outbound\",\"line_width\":\"0\",\"metrics\":[{\"field\":\"system.network.out.packets\",\"id\":\"fbbd7e30-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"max\"},{\"field\":\"fbbd7e30-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"fbbd7e31-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"id\":\"17e597a0-faa1-11e6-86b1-cd7735ff7e23\",\"script\":\"params.rate != null && params.rate > 0 ? params.rate * -1 : null\",\"type\":\"calculation\",\"variables\":[{\"field\":\"fbbd7e31-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"1940bad0-faa1-11e6-86b1-cd7735ff7e23\",\"name\":\"rate\"}]},{\"function\":\"sum\",\"id\":\"fe5fbdc0-2c2c-11e7-be71-3162da85303f\",\"type\":\"series_agg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name\",\"value_template\":\"{{value}}/s\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\",\"show_grid\":1},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "089b85d0-1b16-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Network Traffic (Bytes) [Metricbeat System]",
+ "visState": "{\"title\":\"Network Traffic (Bytes) [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"-system.network.name:l*\",\"id\":\"da1046f0-faa0-11e6-86b1-cd7735ff7e23\",\"index_pattern\":\"metricbeat-lavalab-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"da1046f1-faa0-11e6-86b1-cd7735ff7e23\",\"label\":\"Inbound \",\"line_width\":\"0\",\"metrics\":[{\"field\":\"system.network.in.bytes\",\"id\":\"da1046f2-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"max\"},{\"field\":\"da1046f2-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"f41f9280-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"function\":\"sum\",\"id\":\"2d533df0-2c2d-11e7-be71-3162da85303f\",\"type\":\"series_agg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name\",\"value_template\":\"{{value}}/s\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(250,40,255,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"fbbd5720-faa0-11e6-86b1-cd7735ff7e23\",\"label\":\"Outbound \",\"line_width\":\"0\",\"metrics\":[{\"field\":\"system.network.out.bytes\",\"id\":\"fbbd7e30-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"max\"},{\"field\":\"fbbd7e30-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"fbbd7e31-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"id\":\"17e597a0-faa1-11e6-86b1-cd7735ff7e23\",\"script\":\"params.rate != null && params.rate > 0 ? params.rate * -1 : null\",\"type\":\"calculation\",\"variables\":[{\"field\":\"fbbd7e31-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"1940bad0-faa1-11e6-86b1-cd7735ff7e23\",\"name\":\"rate\"}]},{\"function\":\"sum\",\"id\":\"533da9b0-2c2d-11e7-be71-3162da85303f\",\"type\":\"series_agg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name\",\"value_template\":\"{{value}}/s\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\",\"show_grid\":1},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ }
+] \ No newline at end of file
diff --git a/roles/lava-elk-deps/files/morello_dashboard.json b/roles/lava-elk-deps/files/morello_dashboard.json
new file mode 100644
index 00000000..b44c8124
--- /dev/null
+++ b/roles/lava-elk-deps/files/morello_dashboard.json
@@ -0,0 +1,26 @@
+[
+ {
+ "_id": "60c70e00-25ad-11eb-bb21-bdd65cbe708e",
+ "_type": "dashboard",
+ "_source": {
+ "title": "Morello HTTPS Clone Dashboard",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"panelIndex\":\"1\",\"gridData\":{\"x\":0,\"y\":0,\"w\":12,\"h\":5,\"i\":\"1\"},\"id\":\"90cbf3a0-25ac-11eb-bb21-bdd65cbe708e\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"panelIndex\":\"2\",\"gridData\":{\"x\":4,\"y\":5,\"w\":3,\"h\":2,\"i\":\"2\"},\"id\":\"397f4a40-25af-11eb-bb21-bdd65cbe708e\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-15d",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ }
+ }
+] \ No newline at end of file
diff --git a/roles/lava-elk-deps/files/morello_visualization.json b/roles/lava-elk-deps/files/morello_visualization.json
new file mode 100644
index 00000000..bb54a278
--- /dev/null
+++ b/roles/lava-elk-deps/files/morello_visualization.json
@@ -0,0 +1,30 @@
+[
+ {
+ "_id": "90cbf3a0-25ac-11eb-bb21-bdd65cbe708e",
+ "_type": "visualization",
+ "_source": {
+ "title": "Morello HTTPS Clone Stats",
+ "visState": "{\"title\":\"Morello HTTPS Clone Stats\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"count\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"date\",\"interval\":\"d\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"project_name.keyword\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"47b5f8d0-250e-11eb-b5df-05d360d75584\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ }
+ },
+ {
+ "_id": "397f4a40-25af-11eb-bb21-bdd65cbe708e",
+ "_type": "visualization",
+ "_source": {
+ "title": "Morello Server Overview Navigation",
+ "visState": "{\"title\":\"Morello Server Overview Navigation\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"markdown\":\"[Morello Server Overview](https://systems-monitoring.linaro.org/goto/d17eeda445ccb68cb23490c69509685c)\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ }
+ }
+] \ No newline at end of file
diff --git a/roles/lava-elk-deps/files/systems-kibana.json b/roles/lava-elk-deps/files/systems-kibana.json
new file mode 100644
index 00000000..3c384b35
--- /dev/null
+++ b/roles/lava-elk-deps/files/systems-kibana.json
@@ -0,0 +1,7340 @@
+[
+ {
+ "_id": "f3e771c0-eb19-11e6-be20-559646f8b9ba",
+ "_type": "dashboard",
+ "_source": {
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}]}"
+ },
+ "optionsJSON": "{\"darkTheme\": false}",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"c65ef340-eb19-11e6-be20-559646f8b9ba\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 1, \"col\": 1, \"row\": 7}, {\"type\": \"visualization\", \"id\": \"920e8140-eb1a-11e6-be20-559646f8b9ba\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 2, \"col\": 9, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"1738dbc0-eb1d-11e6-be20-559646f8b9ba\", \"size_x\": 8, \"size_y\": 4, \"panelIndex\": 3, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"091c3a90-eb1e-11e6-be20-559646f8b9ba\", \"size_x\": 12, \"size_y\": 2, \"panelIndex\": 4, \"col\": 1, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"0f4c0560-eb20-11e6-9f11-159ff202874a\", \"size_x\": 12, \"size_y\": 5, \"panelIndex\": 5, \"col\": 1, \"row\": 11}]",
+ "timeRestore": false,
+ "title": "Heartbeat HTTP monitoring",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"defaultColors\": {\"8 - 9\": \"rgb(74,152,201)\", \"5 - 6\": \"rgb(148,196,223)\", \"11 - 12\": \"rgb(8,74,145)\", \"2 - 3\": \"rgb(227,238,249)\", \"3 - 4\": \"rgb(208,225,242)\", \"9 - 10\": \"rgb(46,126,188)\", \"4 - 5\": \"rgb(182,212,233)\", \"0 - 2\": \"rgb(247,251,255)\", \"10 - 11\": \"rgb(23,100,171)\", \"6 - 8\": \"rgb(107,174,214)\"}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d39f0980-1ff3-11e9-ae2a-939083c6a64e",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Iptables] Ubiquiti Firewall Overview",
+ "hits": 0,
+ "description": "Overview of the Ubiquiti Firewall iptables events dashboard.",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 15, \"y\": 0, \"w\": 33, \"x\": 0}, \"title\": \"Event Timeline\", \"panelIndex\": \"1\", \"embeddableConfig\": {\"vis\": {\"colors\": {\"deny\": \"#E24D42\", \"allow\": \"#64B0C8\"}, \"legendOpen\": true}}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"758b3620-1fda-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"2\", \"h\": 15, \"y\": 0, \"w\": 15, \"x\": 33}, \"title\": \"Top Blocked by source IP\", \"panelIndex\": \"2\", \"embeddableConfig\": {}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"1ba82fd0-1ff0-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"3\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 0}, \"title\": \"Allowed Traffic Map\", \"panelIndex\": \"3\", \"embeddableConfig\": {\"mapCenter\": [39.095962936305476, -22.148437500000004], \"mapZoom\": 2}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"5bd53050-1fe9-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 24}, \"title\": \"Blocked Traffic Map\", \"panelIndex\": \"4\", \"embeddableConfig\": {\"mapCenter\": [46.31658418182218, -34.10156250000001], \"mapZoom\": 2}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"8853aa20-1fef-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"5\", \"h\": 18, \"y\": 30, \"w\": 24, \"x\": 0}, \"title\": \"Traffic Breakdown by Protocol\", \"panelIndex\": \"5\", \"embeddableConfig\": {\"vis\": {\"colors\": {\"deny\": \"#E24D42\", \"udp\": \"#F2C96D\", \"tcp\": \"#447EBC\", \"ipv6-icmp\": \"#EA6460\", \"ipv4\": \"#65C5DB\", \"allow\": \"#7EB26D\", \"ipv6\": \"#D683CE\", \"icmp\": \"#F29191\"}}}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"fdea1ad0-1ff4-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"6\", \"h\": 27, \"y\": 48, \"w\": 48, \"x\": 0}, \"title\": \"Event View\", \"panelIndex\": \"6\", \"embeddableConfig\": {}, \"version\": \"6.6.0\", \"type\": \"search\", \"id\": \"c4e80aa0-1fd4-11e9-ae2a-939083c6a64e\"}, {\"gridData\": {\"i\": \"7\", \"h\": 18, \"y\": 30, \"w\": 24, \"x\": 24}, \"title\": \"Traffic Breakdown by Port\", \"panelIndex\": \"7\", \"embeddableConfig\": {}, \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"190bcb50-1ff6-11e9-ae2a-939083c6a64e\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "05268ee0-86d1-11e8-b59d-21efb914e65c",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Suricata] Alert Overview",
+ "hits": 0,
+ "description": "Overview of the Suricata Alerts dashboard.",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 10, \"y\": 0, \"w\": 23, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"1\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"494fa290-86d2-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"2\", \"h\": 22, \"y\": 0, \"w\": 25, \"x\": 23}, \"embeddableConfig\": {}, \"panelIndex\": \"2\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"16033310-86d3-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"3\", \"h\": 16, \"y\": 37, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"3\", \"version\": \"6.3.0\", \"type\": \"search\", \"id\": \"1c2bcec0-86d1-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 22, \"w\": 23, \"x\": 0}, \"embeddableConfig\": {\"mapCenter\": [38.548165423046584, -6.328125000000001], \"mapZoom\": 2}, \"panelIndex\": \"4\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"85fed080-86d7-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"5\", \"h\": 15, \"y\": 22, \"w\": 25, \"x\": 23}, \"embeddableConfig\": {\"mapCenter\": [41.77131167976407, 1.9335937500000002], \"mapZoom\": 2}, \"panelIndex\": \"5\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"a09ca070-86d7-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"7\", \"h\": 12, \"y\": 10, \"w\": 12, \"x\": 11}, \"embeddableConfig\": {}, \"panelIndex\": \"7\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"2ccdc1a0-86d8-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"8\", \"h\": 12, \"y\": 10, \"w\": 11, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"8\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"c7b8b8f0-86d8-11e8-b59d-21efb914e65c\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ceefb9e0-1f51-11e9-93ed-f7e068f4aebb",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Iptables] Overview",
+ "hits": 0,
+ "description": "Overview of the iptables events dashboard.",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 15, \"y\": 0, \"w\": 37, \"x\": 0}, \"embeddableConfig\": {\"vis\": {\"legendOpen\": false}}, \"panelIndex\": \"1\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"4c913eb0-1f51-11e9-93ed-f7e068f4aebb\"}, {\"gridData\": {\"i\": \"2\", \"h\": 15, \"y\": 0, \"w\": 11, \"x\": 37}, \"embeddableConfig\": {}, \"panelIndex\": \"2\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"2599f5e0-1e98-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"3\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 0}, \"embeddableConfig\": {\"mapCenter\": [47.15984001304432, -47.02148437500001], \"mapZoom\": 2}, \"panelIndex\": \"3\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"c4394ec0-1efd-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 24}, \"embeddableConfig\": {\"mapCenter\": [49.15296965617042, -27.949218750000004], \"mapZoom\": 2}, \"panelIndex\": \"4\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"d8cea010-1efd-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"5\", \"h\": 15, \"y\": 30, \"w\": 19, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"5\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"b57b7370-1f1d-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"6\", \"h\": 15, \"y\": 30, \"w\": 18, \"x\": 19}, \"embeddableConfig\": {}, \"panelIndex\": \"6\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"35fe0910-1f26-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"7\", \"h\": 15, \"y\": 30, \"w\": 11, \"x\": 37}, \"embeddableConfig\": {}, \"panelIndex\": \"7\", \"version\": \"6.6.0\", \"type\": \"visualization\", \"id\": \"683402b0-1f29-11e9-8ec4-cf5d91a864b3\"}, {\"gridData\": {\"i\": \"8\", \"h\": 19, \"y\": 45, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"8\", \"version\": \"6.6.0\", \"type\": \"search\", \"id\": \"b3f1b010-1f26-11e9-8ec4-cf5d91a864b3\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "943caca0-87ee-11e7-ad9c-db80de0bf8d3",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Kafka] Overview",
+ "hits": 0,
+ "description": "Filebeat Kafka module dashboard",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Number of Kafka stracktraces by class\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"Kafka stacktraces\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"columns\": [\"kafka.log.class\", \"kafka.log.trace.class\", \"kafka.log.trace.full\"], \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"All Kafka logs\", \"size_x\": 12, \"size_y\": 5, \"panelIndex\": 3, \"col\": 1, \"columns\": [\"kafka.log.level\", \"kafka.log.component\", \"kafka.log.message\"], \"row\": 6}, {\"type\": \"visualization\", \"id\": \"3f7c33c0-87ee-11e7-ad9c-db80de0bf8d3\", \"size_x\": 12, \"size_y\": 2, \"panelIndex\": 4, \"col\": 1, \"row\": 4}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e4c5f230-87f3-11e7-ad9c-db80de0bf8d3",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat PostgreSQL] Query Duration Overview",
+ "hits": 0,
+ "description": "Dashboard for analyzing the query durations of the Filebeat PostgreSQL module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"PostgreSQL Query Count and Duration\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"Slow PostgreSQL Queries\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"columns\": [\"postgresql.log.user\", \"postgresql.log.database\", \"postgresql.log.duration\", \"postgresql.log.query\"], \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"PostgreSQL Query Durations\", \"size_x\": 12, \"size_y\": 5, \"panelIndex\": 3, \"col\": 1, \"columns\": [\"postgresql.log.user\", \"postgresql.log.database\", \"postgresql.log.duration\", \"postgresql.log.query\"], \"row\": 4}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"postgresql.log.query:*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "158be870-87f4-11e7-ad9c-db80de0bf8d3",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat PostgreSQL] Overview",
+ "hits": 0,
+ "description": "Overview dashboard for the Filebeat PostgreSQL module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"PostgreSQL Log Level Count\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"PostgreSQL All Logs\", \"size_x\": 12, \"size_y\": 6, \"panelIndex\": 2, \"col\": 1, \"columns\": [\"postgresql.log.user\", \"postgresql.log.database\", \"postgresql.log.level\", \"postgresql.log.message\", \"postgresql.log.query\"], \"row\": 4}, {\"type\": \"visualization\", \"id\": \"3dbd5370-87f3-11e7-ad9c-db80de0bf8d3\", \"size_x\": 9, \"size_y\": 3, \"panelIndex\": 3, \"col\": 4, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "abcf35b0-0a82-11e8-bffe-ff7d4f68cf94",
+ "_type": "dashboard",
+ "_source": {
+ "title": "Overview [Filebeat MongoDB]",
+ "hits": 0,
+ "description": "Filebeat MongoDB module overview",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"0fef5710-0a82-11e8-bffe-ff7d4f68cf94\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"e49fe000-0a7e-11e8-bffe-ff7d4f68cf94\", \"size_x\": 8, \"size_y\": 3, \"panelIndex\": 2, \"col\": 5, \"columns\": [\"mongodb.log.timestamp\", \"mongodb.log.severity\", \"mongodb.log.component\", \"mongodb.log.context\", \"mongodb.log.message\"], \"row\": 1}, {\"sort\": [\"mongodb.log.timestamp\", \"asc\"], \"type\": \"search\", \"id\": \"bfc96a60-0a80-11e8-bffe-ff7d4f68cf94\", \"size_x\": 12, \"size_y\": 6, \"panelIndex\": 3, \"col\": 1, \"columns\": [\"mongodb.log.timestamp\", \"mongodb.log.severity\", \"mongodb.log.component\", \"mongodb.log.context\", \"mongodb.log.message\"], \"row\": 4}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "78289c40-86da-11e8-b59d-21efb914e65c",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Suricata] Events Overview",
+ "hits": 0,
+ "description": "Overview of the Surcata events dashboard.",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 10, \"y\": 0, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"1\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"c7d46c60-86da-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"2\", \"h\": 14, \"y\": 20, \"w\": 9, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"2\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"0a0aa630-86db-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"3\", \"h\": 14, \"y\": 20, \"w\": 11, \"x\": 19}, \"embeddableConfig\": {}, \"panelIndex\": \"3\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"728f64c0-86db-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"4\", \"h\": 10, \"y\": 10, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"4\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"9d5b5b50-86db-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"5\", \"h\": 19, \"y\": 34, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"5\", \"version\": \"6.3.0\", \"type\": \"search\", \"id\": \"13dd22f0-86cc-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"6\", \"h\": 14, \"y\": 20, \"w\": 9, \"x\": 30}, \"embeddableConfig\": {}, \"panelIndex\": \"6\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"5f99eb50-86dc-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"7\", \"h\": 14, \"y\": 20, \"w\": 9, \"x\": 39}, \"embeddableConfig\": {}, \"panelIndex\": \"7\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"8e7f88d0-86dc-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"8\", \"h\": 14, \"y\": 20, \"w\": 10, \"x\": 9}, \"embeddableConfig\": {}, \"panelIndex\": \"8\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"0a363820-86dd-11e8-b59d-21efb914e65c\"}, {\"gridData\": {\"i\": \"9\", \"h\": 16, \"y\": 53, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"9\", \"version\": \"6.3.0\", \"type\": \"search\", \"id\": \"d57a2db0-86ca-11e8-b59d-21efb914e65c\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Apache2-Dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Apache2] Access and error logs",
+ "hits": 0,
+ "description": "Filebeat Apache2 module dashboard",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Apache2-access-unique-IPs-map\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Apache2-response-codes-of-top-URLs\", \"size_x\": 8, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Apache2-browsers\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 3, \"col\": 9, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Apache2-operating-systems\", \"size_x\": 2, \"size_y\": 2, \"panelIndex\": 4, \"col\": 11, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"Apache2-error-logs-over-time\", \"size_x\": 12, \"size_y\": 2, \"panelIndex\": 5, \"col\": 1, \"row\": 9}, {\"type\": \"visualization\", \"id\": \"Apache2-response-codes-over-time\", \"size_x\": 10, \"size_y\": 2, \"panelIndex\": 6, \"col\": 1, \"row\": 4}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"Apache2-errors-log\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 7, \"col\": 1, \"columns\": [\"apache2.error.client\", \"apache2.error.level\", \"apache2.error.module\", \"apache2.error.message\"], \"row\": 11}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-1\": {\"mapCenter\": [40.713955826286046, -0.17578125], \"mapCollar\": {\"zoom\": 2, \"bottom_right\": {\"lat\": -39.667755, \"lon\": 180}, \"top_left\": {\"lat\": 90, \"lon\": -180}}, \"mapBounds\": {\"bottom_right\": {\"lat\": -3.864254615721396, \"lon\": 205.3125}, \"top_left\": {\"lat\": 67.7427590666639, \"lon\": -205.6640625}}, \"mapZoom\": 2}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dfbb49f0-0a0f-11e7-8a62-2d05eaaac5cb",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Auditd] Audit Events",
+ "hits": 0,
+ "description": "Dashboard for the Auditd Filebeat module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"6295bdd0-0a0e-11e7-825f-6748cda7d858\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"5ebdbe50-0a0f-11e7-825f-6748cda7d858\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 2, \"col\": 9, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"2bb0fa70-0a11-11e7-9e84-43da493ad0c7\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"d1726930-0a7f-11e7-8b04-eb22a5669f27\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 5, \"col\": 7, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"c5411910-0a87-11e7-8b04-eb22a5669f27\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 6, \"col\": 5, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"4ac0a370-0a11-11e7-8b04-eb22a5669f27\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 7, \"col\": 1, \"columns\": [\"auditd.log.record_type\", \"auditd.log.sequence\", \"auditd.log.acct\"], \"row\": 8}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-5\": {\"mapCollar\": {\"zoom\": 2, \"bottom_right\": {\"lat\": -87.16078, \"lon\": 180}, \"top_left\": {\"lat\": 87.16078, \"lon\": -180}}, \"mapZoom\": 2, \"mapBounds\": {\"bottom_right\": {\"lat\": -43.580390855607845, \"lon\": 102.65625}, \"top_left\": {\"lat\": 43.58039085560784, \"lon\": -102.3046875}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "277876d0-fa2c-11e6-bbd3-29c986c96e5a",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat System] Sudo commands",
+ "hits": 0,
+ "description": "Sudo commands dashboard from the Filebeat System module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"5c7af030-fa2a-11e6-bbd3-29c986c96e5a\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 1, \"col\": 1, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"51164310-fa2b-11e6-bbd3-29c986c96e5a\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"dc589770-fa2b-11e6-bbd3-29c986c96e5a\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 3, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"327417e0-8462-11e7-bab8-bd2f0fb42c54\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 4, \"col\": 1, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "26309570-2419-11e7-a83b-d5f4cebac9ff",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Icinga] Debug Log",
+ "hits": 0,
+ "description": "Filebeat Icinga module dashboard for the debug logs",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"0bc34b60-2419-11e7-a83b-d5f4cebac9ff\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"fb09d4b0-2418-11e7-a83b-d5f4cebac9ff\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"c876e6a0-2418-11e7-a83b-d5f4cebac9ff\", \"size_x\": 12, \"size_y\": 29, \"panelIndex\": 3, \"col\": 1, \"columns\": [\"icinga.debug.facility\", \"icinga.debug.severity\", \"icinga.debug.message\"], \"row\": 4}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "AV4REOpp5NkDleZmzKkE",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Docker] Overview",
+ "hits": 0,
+ "description": "Overview of docker containers",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Docker-containers\", \"size_x\": 7, \"size_y\": 5, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Docker-Number-of-Containers\", \"size_x\": 5, \"size_y\": 2, \"panelIndex\": 2, \"col\": 8, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Docker-containers-per-host\", \"size_x\": 2, \"size_y\": 3, \"panelIndex\": 3, \"col\": 8, \"row\": 3}, {\"type\": \"visualization\", \"id\": \"Docker-images-and-names\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 7, \"col\": 10, \"row\": 3}, {\"type\": \"visualization\", \"id\": \"Docker-CPU-usage\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 1, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Docker-memory-usage\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 5, \"col\": 7, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Docker-Network-IO\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 6, \"col\": 1, \"row\": 9}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"legendOpen\": true}}, \"P-7\": {\"vis\": {\"legendOpen\": true}}, \"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": 1, \"direction\": \"asc\"}}}}, \"P-2\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-3\": {\"vis\": {\"legendOpen\": true}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-Apache-HTTPD-server-status",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Apache] Overview",
+ "hits": 0,
+ "description": "Overview of Apache server status",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Apache-HTTPD-CPU\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 7, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Hostname-list\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Load1-slash-5-slash-15\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Scoreboard\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 4, \"col\": 1, \"row\": 7}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Total-accesses-and-kbytes\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 5, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Uptime\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 6, \"col\": 4, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Apache-HTTPD-Workers\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 7, \"col\": 1, \"row\": 4}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-6\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f2dc7320-f519-11e6-a3c9-9d1f7c42b045",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Golang] Overview",
+ "hits": 0,
+ "description": "Overview of Go profiling information",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"58000780-f529-11e6-844d-b170e2f0a07e\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 8, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"95388680-f52a-11e6-969c-518c48c913e4\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 9, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"b59a5200-f52a-11e6-969c-518c48c913e4\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 10, \"col\": 9, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"9a9a8bf0-f52a-11e6-969c-518c48c913e4\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 11, \"col\": 5, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"b046cb80-f52a-11e6-969c-518c48c913e4\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 12, \"col\": 7, \"row\": 8}, {\"type\": \"visualization\", \"id\": \"ab226b50-f52a-11e6-969c-518c48c913e4\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 13, \"col\": 1, \"row\": 8}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ea488d90-8e63-11e8-8fa2-3d5f811fbd0f",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Kafka] Overview",
+ "hits": 0,
+ "description": "Kafka analysis of topics and consumer groups",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 13, \"y\": 20, \"w\": 24, \"x\": 0}, \"title\": \"Kafka Topic & Consumer Offsets\", \"panelIndex\": \"1\", \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"b9d12c80-8e63-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"3\", \"h\": 6, \"y\": 0, \"w\": 16, \"x\": 0}, \"title\": \"Kafka Controls\", \"panelIndex\": \"3\", \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"8d2f79a0-8e65-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"6\", \"h\": 14, \"y\": 6, \"w\": 24, \"x\": 0}, \"title\": \"Consumer Group Lag by Topic\", \"panelIndex\": \"6\", \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"944188f0-8e79-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"10\", \"h\": 6, \"y\": 0, \"w\": 25, \"x\": 16}, \"title\": \"Kafka Metrics\", \"panelIndex\": \"10\", \"embeddableConfig\": {\"spy\": null}, \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"dc89f8d0-8e8e-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"12\", \"h\": 7, \"y\": 33, \"w\": 24, \"x\": 0}, \"title\": \"Consumer Partition Reassignments\", \"panelIndex\": \"12\", \"embeddableConfig\": {}, \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"587f2360-8f21-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"13\", \"h\": 6, \"y\": 0, \"w\": 7, \"x\": 41}, \"title\": \"Consumer Metrics\", \"panelIndex\": \"13\", \"embeddableConfig\": {}, \"version\": \"6.3.1\", \"type\": \"visualization\", \"id\": \"1681f1a0-90e7-11e8-8fa2-3d5f811fbd0f\"}, {\"gridData\": {\"i\": \"14\", \"h\": 13, \"y\": 27, \"w\": 24, \"x\": 24}, \"title\": \"Kafka Consumer Group Clients\", \"panelIndex\": \"14\", \"embeddableConfig\": {\"spy\": null, \"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"9a7576e0-d231-11e8-8766-dbbdc39e7ba9\"}, {\"gridData\": {\"i\": \"15\", \"h\": 10, \"y\": 6, \"w\": 24, \"x\": 24}, \"title\": \"Kafka Brokers\", \"panelIndex\": \"15\", \"embeddableConfig\": {}, \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"27dd5960-d2ed-11e8-8766-dbbdc39e7ba9\"}, {\"gridData\": {\"i\": \"16\", \"h\": 11, \"y\": 16, \"w\": 24, \"x\": 24}, \"title\": \"Kafka Topic Details\", \"panelIndex\": \"16\", \"embeddableConfig\": {\"table\": {\"sort\": {\"column\": \"26d2cd90-d2f5-11e8-9dd4-c5f03280d7b0\", \"order\": \"desc\"}}}, \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"491fee50-d2f5-11e8-8766-dbbdc39e7ba9\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9151c900-471d-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat HAProxy] Backend",
+ "hits": 0,
+ "description": "HAProxy backend metrics",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 2, \"y\": 0, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"1\", \"id\": \"a64b4fd0-471c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"2\", \"h\": 2, \"y\": 0, \"w\": 3, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"2\", \"id\": \"794b6cd0-471d-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"3\", \"h\": 4, \"y\": 2, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"3\", \"id\": \"bb0ab500-4735-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"4\", \"h\": 2, \"y\": 0, \"w\": 3, \"x\": 9}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"4\", \"id\": \"40bed190-473b-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"5\", \"h\": 2, \"y\": 2, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"0751ed00-479c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"6\", \"h\": 2, \"y\": 4, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"6\", \"id\": \"b3463670-47a1-11e8-bc13-1397384faad3\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7fea2930-478e-11e7-b1f0-cb29bac6bf8b",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Redis] Overview",
+ "hits": 0,
+ "description": "Overview dashboard for the FIlebeat Redis module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"78b9afe0-478f-11e7-b1f0-cb29bac6bf8b\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"d2864600-478f-11e7-be88-2ddb32f3df97\", \"size_x\": 9, \"size_y\": 3, \"panelIndex\": 3, \"col\": 4, \"row\": 5}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"73613570-4791-11e7-be88-2ddb32f3df97\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 4, \"col\": 1, \"columns\": [\"beat.name\", \"redis.log.level\", \"redis.log.role\", \"redis.log.message\"], \"row\": 8}, {\"type\": \"visualization\", \"id\": \"dcccaa80-4791-11e7-be88-2ddb32f3df97\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 5, \"col\": 7, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"0ab87b80-478e-11e7-b1f0-cb29bac6bf8b\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 6, \"col\": 1, \"columns\": [\"beat.name\", \"message\", \"redis.slowlog.duration.us\", \"redis.slowlog.key\"], \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"legendOpen\": false}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Logstash-Slowlog-Dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "title": "Slowlogs [Filebeat Logstash]",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"742e45d0-cbdd-11e7-9852-73e0a9df1bb6\", \"size_x\": 12, \"size_y\": 9, \"panelIndex\": 1, \"col\": 1, \"columns\": [\"logstash.slowlog.level\", \"logstash.slowlog.plugin_type\", \"logstash.slowlog.plugin_name\", \"logstash.slowlog.message\", \"logstash.slowlog.plugin_params\", \"logstash.slowlog.execution_time_ns\"], \"row\": 7}, {\"type\": \"visualization\", \"id\": \"0b1dace0-cbdb-11e7-9852-73e0a9df1bb6\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"e90b7240-cbda-11e7-9852-73e0a9df1bb6\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"b3315630-cbdf-11e7-9852-73e0a9df1bb6\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 4, \"col\": 1, \"row\": 4}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": 3, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0d3f2380-fa78-11e6-ae9b-81e5311e8cab",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat System] New users and groups",
+ "hits": 0,
+ "description": "New users and groups dashboard for the System module in Filebeat",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"f398d2f0-fa77-11e6-ae9b-81e5311e8cab\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"5dd15c00-fa78-11e6-ae9b-81e5311e8cab\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"e121b140-fa78-11e6-a1df-a78bd7504d38\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"d56ee420-fa79-11e6-a1df-a78bd7504d38\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"12667040-fa80-11e6-a1df-a78bd7504d38\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 5, \"col\": 1, \"row\": 8}, {\"type\": \"visualization\", \"id\": \"346bb290-fa80-11e6-a1df-a78bd7504d38\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 6, \"col\": 7, \"row\": 8}, {\"type\": \"visualization\", \"id\": \"327417e0-8462-11e7-bab8-bd2f0fb42c54\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 7, \"col\": 1, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5517a150-f9ce-11e6-8115-a7c18106d86a",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat System] SSH login attempts",
+ "hits": 0,
+ "description": "SSH dashboard for the System module in Filebeat",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"d16bb400-f9cc-11e6-8115-a7c18106d86a\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 5}, {\"type\": \"visualization\", \"id\": \"78b74f30-f9cd-11e6-8115-a7c18106d86a\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"341ffe70-f9ce-11e6-8115-a7c18106d86a\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 3, \"col\": 1, \"row\": 8}, {\"type\": \"visualization\", \"id\": \"3cec3eb0-f9d3-11e6-8a3e-2b904044ea1d\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 4, \"col\": 7, \"row\": 8}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"62439dc0-f9c9-11e6-a747-6121780e0414\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 5, \"col\": 1, \"columns\": [\"system.auth.ssh.event\", \"system.auth.ssh.method\", \"system.auth.user\", \"system.auth.ssh.ip\", \"system.auth.ssh.geoip.country_iso_code\"], \"row\": 12}, {\"type\": \"visualization\", \"id\": \"327417e0-8462-11e7-bab8-bd2f0fb42c54\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 6, \"col\": 1, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-4\": {\"mapCenter\": [39.774769485295465, 23.203125], \"mapCollar\": {\"zoom\": 3, \"bottom_right\": {\"lat\": -14.777884999999998, \"lon\": 125.771485}, \"top_left\": {\"lat\": 85.593335, \"lon\": -79.189455}}, \"mapBounds\": {\"bottom_right\": {\"lat\": 10.31491928581316, \"lon\": 74.53125}, \"top_left\": {\"lat\": 60.50052541051131, \"lon\": -27.94921875}}, \"mapZoom\": 3}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "046212a0-a2a1-11e7-928f-5dbe6f6f5519",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Nginx] Access and error logs",
+ "hits": 0,
+ "description": "Dashboard for the Filebeat Nginx module",
+ "panelsJSON": "[{\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"9eb25600-a1f0-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 11, \"col\": 1, \"columns\": [\"nginx.error.level\", \"nginx.error.message\"], \"row\": 5}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"6d9e66d0-a1f0-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 7, \"panelIndex\": 16, \"col\": 1, \"columns\": [\"nginx.access.url\", \"nginx.access.method\", \"nginx.access.response_code\", \"nginx.access.body_sent.bytes\"], \"row\": 8}, {\"type\": \"visualization\", \"id\": \"1cfb1a80-a1f4-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 18, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"97109780-a2a5-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 19, \"col\": 1, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-syslog-dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat System] Syslog dashboard",
+ "hits": 0,
+ "description": "Syslog dashboard from the Filebeat System module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Syslog-events-by-hostname\", \"size_x\": 8, \"size_y\": 4, \"panelIndex\": 1, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"Syslog-hostnames-and-processes\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 2, \"col\": 9, \"row\": 2}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"Syslog-system-logs\", \"size_x\": 12, \"size_y\": 7, \"panelIndex\": 3, \"col\": 1, \"columns\": [\"system.syslog.hostname\", \"system.syslog.program\", \"system.syslog.message\"], \"row\": 6}, {\"type\": \"visualization\", \"id\": \"327417e0-8462-11e7-bab8-bd2f0fb42c54\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 4, \"col\": 1, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Remote-IP-Count-Explorer",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Nginx] [ML] Remote IP Count Explorer",
+ "hits": 0,
+ "description": "Machine learning dashboard, for the Filebeat Nginx module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Remote-IP-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Response-Code-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Top-Remote-IPs-Table\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Map\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Top-URLs-Table\", \"size_x\": 12, \"size_y\": 9, \"panelIndex\": 5, \"col\": 1, \"row\": 7}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9458e6d0-1a79-11e9-98b1-8df03cb1ed5f",
+ "_type": "dashboard",
+ "_source": {
+ "title": "LKFT Dashboard",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"gridData\":{\"w\":24,\"h\":15,\"x\":0,\"y\":0,\"i\":\"1\"},\"version\":\"6.5.1\",\"panelIndex\":\"1\",\"type\":\"visualization\",\"id\":\"a8581090-a623-11e8-8538-f34fec203819\",\"embeddableConfig\":{}}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-7d",
+ "refreshInterval": {
+ "pause": true,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "27e87f10-83e1-11ea-a795-b501b684e6e8",
+ "_type": "dashboard",
+ "_source": {
+ "title": "Kisscache",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"gridData\":{\"h\":3,\"i\":\"3\",\"w\":6,\"x\":6,\"y\":0},\"id\":\"59e66790-847a-11ea-a795-b501b684e6e8\",\"panelIndex\":\"3\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"4\",\"w\":6,\"x\":0,\"y\":0},\"id\":\"720a7fc0-848c-11ea-a795-b501b684e6e8\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"5\",\"w\":6,\"x\":0,\"y\":3},\"id\":\"59e66790-847a-11ea-a795-b501b684e6e8\",\"panelIndex\":\"5\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"6\",\"w\":6,\"x\":6,\"y\":3},\"id\":\"187dd8d0-848c-11ea-a795-b501b684e6e8\",\"panelIndex\":\"6\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"7\",\"w\":6,\"x\":0,\"y\":6},\"id\":\"70a79ef0-848d-11ea-a795-b501b684e6e8\",\"panelIndex\":\"7\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"8\",\"w\":6,\"x\":6,\"y\":6},\"id\":\"8b13dac0-8491-11ea-a795-b501b684e6e8\",\"panelIndex\":\"8\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"9\",\"w\":6,\"x\":0,\"y\":9},\"id\":\"550e1470-848e-11ea-a795-b501b684e6e8\",\"panelIndex\":\"9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{\"P-3\":{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(0,104,55)\",\"50 - 75\":\"rgb(255,255,190)\",\"75 - 100\":\"rgb(165,0,38)\"}}},\"P-5\":{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(0,104,55)\",\"50 - 75\":\"rgb(255,255,190)\",\"75 - 100\":\"rgb(165,0,38)\"}}}}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-24h",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "861f0220-a625-11e8-8538-f34fec203819",
+ "_type": "dashboard",
+ "_source": {
+ "title": "LAVA Jobqueue Length",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"panelIndex\":\"2\",\"gridData\":{\"x\":5,\"y\":0,\"w\":5,\"h\":6,\"i\":\"2\"},\"embeddableConfig\":{},\"id\":\"02361660-a625-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue LEDGE\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"3\",\"gridData\":{\"x\":0,\"y\":0,\"w\":5,\"h\":6,\"i\":\"3\"},\"embeddableConfig\":{},\"id\":\"a8581090-a623-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue LKFT\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"4\",\"gridData\":{\"x\":0,\"y\":6,\"w\":5,\"h\":5,\"i\":\"4\"},\"embeddableConfig\":{},\"id\":\"c6670080-a625-11e8-8538-f34fec203819\",\"title\":\"LAVA Queue Validation\",\"type\":\"visualization\",\"version\":\"6.3.2\"},{\"panelIndex\":\"5\",\"gridData\":{\"x\":5,\"y\":6,\"w\":5,\"h\":5,\"i\":\"5\"},\"embeddableConfig\":{},\"id\":\"e0e68790-b1ed-11e8-852d-55393e7ce617\",\"title\":\"LAVA Queue PMWG\",\"type\":\"visualization\",\"version\":\"6.3.2\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "158314c0-70be-11e9-8ab9-1b38609ca045",
+ "_type": "dashboard",
+ "_source": {
+ "title": "LKFT Jobfailure",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"panelIndex\":\"1\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":4,\"i\":\"1\"},\"version\":\"6.1.4-1\",\"type\":\"visualization\",\"id\":\"daff3a10-725f-11e9-8ab9-1b38609ca045\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-4h",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3560d580-aa34-11e8-9c06-877f0445e3e0",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat HAProxy] Overview",
+ "hits": 0,
+ "description": "Filebeat HAProxy module dashboard",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 15, \"y\": 0, \"w\": 24, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"1\", \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"55251360-aa32-11e8-9c06-877f0445e3e0\"}, {\"gridData\": {\"i\": \"2\", \"h\": 15, \"y\": 0, \"w\": 24, \"x\": 24}, \"embeddableConfig\": {}, \"panelIndex\": \"2\", \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"7fb671f0-aa32-11e8-9c06-877f0445e3e0\"}, {\"gridData\": {\"i\": \"3\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"3\", \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"11f8b9c0-aa32-11e8-9c06-877f0445e3e0\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 24}, \"embeddableConfig\": {}, \"panelIndex\": \"4\", \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"68af8ef0-aa33-11e8-9c06-877f0445e3e0\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4278ad30-fe16-11e7-a3b0-d13028918f9f",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat IIS] Access and error logs",
+ "hits": 0,
+ "description": "Dashboard for the Filebeat IIS module",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 3, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"1\", \"id\": \"eb2db5b0-fe11-11e7-a3b0-d13028918f9f\"}, {\"gridData\": {\"i\": \"2\", \"h\": 3, \"y\": 3, \"w\": 7, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"2\", \"id\": \"f31414b0-fe14-11e7-a3b0-d13028918f9f\"}, {\"gridData\": {\"i\": \"4\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"4\", \"id\": \"63129c80-fe12-11e7-a3b0-d13028918f9f\"}, {\"gridData\": {\"i\": \"5\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"5\", \"id\": \"ccd3f9c0-fe12-11e7-a3b0-d13028918f9f\"}, {\"gridData\": {\"i\": \"6\", \"h\": 3, \"y\": 3, \"w\": 5, \"x\": 7}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"6\", \"id\": \"41f38230-fe17-11e7-a3b0-d13028918f9f\"}, {\"gridData\": {\"i\": \"7\", \"h\": 3, \"y\": 6, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.2\", \"panelIndex\": \"7\", \"id\": \"c0d02cd0-fe1b-11e7-a3b0-d13028918f9f\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b9163ea0-2417-11e7-a83b-d5f4cebac9ff",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Icinga] Startup Errors",
+ "hits": 0,
+ "description": "Filebeat Icinga module dashboard for startup errors",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"a59b5e00-2417-11e7-a83b-d5f4cebac9ff\", \"size_x\": 12, \"size_y\": 2, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"710043e0-2417-11e7-a83b-d5f4cebac9ff\", \"size_x\": 12, \"size_y\": 13, \"panelIndex\": 2, \"col\": 1, \"columns\": [\"icinga.startup.facility\", \"icinga.startup.severity\", \"icinga.startup.message\"], \"row\": 3}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "55a9e6e0-a29e-11e7-928f-5dbe6f6f5519",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Nginx] Overview",
+ "hits": 0,
+ "description": "Dashboard for the Filebeat Nginx module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Nginx-Access-Browsers\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 3, \"col\": 10, \"row\": 12}, {\"type\": \"visualization\", \"id\": \"Nginx-Access-OSes\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 12}, {\"type\": \"visualization\", \"id\": \"Nginx-Access-Map\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 8, \"col\": 1, \"row\": 2}, {\"type\": \"visualization\", \"id\": \"b70b1b20-a1f4-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 13, \"col\": 1, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"9184fa00-a1f5-11e7-928f-5dbe6f6f5519\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 14, \"col\": 7, \"row\": 9}, {\"type\": \"visualization\", \"id\": \"46322e50-a1f6-11e7-928f-5dbe6f6f5519\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 15, \"col\": 1, \"row\": 9}, {\"type\": \"visualization\", \"id\": \"0dd6f320-a29f-11e7-928f-5dbe6f6f5519\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 16, \"col\": 1, \"row\": 12}, {\"type\": \"visualization\", \"id\": \"97109780-a2a5-11e7-928f-5dbe6f6f5519\", \"size_x\": 12, \"size_y\": 1, \"panelIndex\": 17, \"col\": 1, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"legendOpen\": true}}, \"P-8\": {\"mapCenter\": [50.51342652633956, -0.17578125], \"mapCollar\": {\"zoom\": 2, \"bottom_right\": {\"lat\": -49.583095, \"lon\": 180}, \"top_left\": {\"lat\": 90, \"lon\": -180}}, \"mapBounds\": {\"bottom_right\": {\"lat\": -7.362466865535738, \"lon\": 245.39062500000003}, \"top_left\": {\"lat\": 77.07878389624943, \"lon\": -245.74218750000003}}, \"mapZoom\": 2}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-MySQL-Dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat MySQL] Overview",
+ "hits": 0,
+ "description": "Overview dashboard for the Filebeat MySQL module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"MySQL-slowest-queries\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 1, \"col\": 1, \"row\": 8}, {\"type\": \"visualization\", \"id\": \"MySQL-Slow-queries-over-time\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"MySQL-error-logs\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 7, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"Filebeat-MySQL-error-log\", \"size_x\": 6, \"size_y\": 5, \"panelIndex\": 4, \"col\": 7, \"columns\": [\"mysql.error.level\", \"mysql.error.message\"], \"row\": 8}, {\"type\": \"visualization\", \"id\": \"MySQL-Error-logs-levels\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 5, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"MySQL-Slow-logs-by-count\", \"size_x\": 6, \"size_y\": 4, \"panelIndex\": 6, \"col\": 1, \"row\": 4}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f693d260-2417-11e7-a83b-d5f4cebac9ff",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Icinga] Main Log",
+ "hits": 0,
+ "description": "Filebeat Icinga module dashboard for the main log files",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"d8e5dc40-2417-11e7-a83b-d5f4cebac9ff\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 7, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"ffaf5a30-2413-11e7-a0d9-39604d45ca7f\", \"size_x\": 12, \"size_y\": 25, \"panelIndex\": 2, \"col\": 1, \"columns\": [\"icinga.main.facility\", \"icinga.main.severity\", \"icinga.main.message\"], \"row\": 4}, {\"type\": \"visualization\", \"id\": \"2cf77780-2418-11e7-a83b-d5f4cebac9ff\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Logstash-Log-Dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "title": "Logstash Logs [Filebeat Logstash]",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"0b1dace0-cbdb-11e7-9852-73e0a9df1bb6\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"e90b7240-cbda-11e7-9852-73e0a9df1bb6\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 1}, {\"sort\": [\"@timestamp\", \"desc\"], \"type\": \"search\", \"id\": \"cfaba090-cbda-11e7-9852-73e0a9df1bb6\", \"size_x\": 12, \"size_y\": 10, \"panelIndex\": 4, \"col\": 1, \"columns\": [\"logstash.log.level\", \"logstash.log.module\", \"logstash.log.message\", \"source\"], \"row\": 4}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Remote-IP-URL-Explorer",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Traefik] [ML] Remote IP URL Explorer",
+ "hits": 0,
+ "description": "Machine Learning dashboard for the Filebeat Traefik module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Unique-Count-URL-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Response-Code-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Top-Remote-IPs-Table\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Map\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Top-URLs-Table\", \"size_x\": 12, \"size_y\": 8, \"panelIndex\": 5, \"col\": 1, \"row\": 7}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Remote-IP-URL-Explorer",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Nginx] [ML] Remote IP URL Explorer",
+ "hits": 0,
+ "description": "Machine Learning dashboard for the Filebeat Nginx module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Unique-Count-URL-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Response-Code-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Top-Remote-IPs-Table\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Map\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Nginx-Access-Top-URLs-Table\", \"size_x\": 12, \"size_y\": 8, \"panelIndex\": 5, \"col\": 1, \"row\": 7}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Traefik-Dashboard",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Traefik] Access logs",
+ "hits": 0,
+ "description": "Dashboard for the Filebeat Traefik module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Traefik-Access-Browsers\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 3, \"col\": 1, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"Traefik-Access-OSes\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 4, \"col\": 5, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"New-Visualization\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 5, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"Traefik-Access-Response-codes-by-top-URLs\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 6, \"col\": 1, \"row\": 7}, {\"type\": \"visualization\", \"id\": \"Sent-sizes\", \"size_x\": 4, \"size_y\": 4, \"panelIndex\": 7, \"col\": 9, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"Traefik-Access-Map\", \"size_x\": 12, \"size_y\": 3, \"panelIndex\": 8, \"col\": 1, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"legendOpen\": true}}, \"P-8\": {\"mapCenter\": [50.51342652633956, -0.17578125]}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c0a7ce90-f4aa-11e7-8647-534bb4c21040",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Osquery Result] OSSEC rootkit pack",
+ "hits": 0,
+ "description": "This dashboard shows data collected by the OSSEC rootkit pack from osquery",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 2, \"y\": 1, \"w\": 4, \"x\": 8}, \"type\": \"visualization\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"1\", \"id\": \"6ec10290-f4aa-11e7-8647-534bb4c21040\"}, {\"gridData\": {\"i\": \"2\", \"h\": 2, \"y\": 1, \"w\": 4, \"x\": 4}, \"type\": \"visualization\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"2\", \"id\": \"ffdbba50-f4a9-11e7-8647-534bb4c21040\"}, {\"gridData\": {\"i\": \"3\", \"h\": 2, \"y\": 1, \"w\": 4, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"3\", \"id\": \"ab587180-f4a9-11e7-8647-534bb4c21040\"}, {\"gridData\": {\"i\": \"4\", \"h\": 1, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"4\", \"id\": \"2d6e0760-f4ab-11e7-8647-534bb4c21040\"}, {\"gridData\": {\"i\": \"5\", \"h\": 4, \"y\": 3, \"w\": 12, \"x\": 0}, \"type\": \"search\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"5\", \"id\": \"0fe5dc00-f49b-11e7-8647-534bb4c21040\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "69f5ae20-eb02-11e7-8f04-51231daa5b05",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Osquery Result] Compliance pack",
+ "hits": 0,
+ "description": "Dashboard for visualizing the data collected by the Osquery compliance pack.",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 4, \"y\": 6, \"w\": 6, \"x\": 6}, \"type\": \"search\", \"version\": \"6.2.4\", \"panelIndex\": \"1\", \"id\": \"7a9482d0-eb00-11e7-8f04-51231daa5b05\"}, {\"gridData\": {\"i\": \"2\", \"h\": 5, \"y\": 1, \"w\": 7, \"x\": 5}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"2\", \"id\": \"a9fd8bb0-eb01-11e7-8f04-51231daa5b05\"}, {\"gridData\": {\"i\": \"3\", \"h\": 4, \"y\": 6, \"w\": 6, \"x\": 0}, \"type\": \"search\", \"version\": \"6.2.4\", \"panelIndex\": \"3\", \"id\": \"3824b080-eb02-11e7-8f04-51231daa5b05\"}, {\"gridData\": {\"i\": \"4\", \"h\": 3, \"y\": 1, \"w\": 5, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"4\", \"id\": \"1da1ed30-eb03-11e7-8f04-51231daa5b05\"}, {\"gridData\": {\"i\": \"5\", \"h\": 2, \"y\": 4, \"w\": 5, \"x\": 0}, \"embeddableConfig\": {\"vis\": {\"legendOpen\": false, \"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"panelIndex\": \"5\", \"version\": \"6.2.4\", \"type\": \"visualization\", \"id\": \"240f3630-eb05-11e7-8f04-51231daa5b05\"}, {\"gridData\": {\"i\": \"6\", \"h\": 1, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.1.0-SNAPSHOT\", \"panelIndex\": \"6\", \"id\": \"2d6e0760-f4ab-11e7-8647-534bb4c21040\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "af7225b0-5794-11e8-afa2-e9067ea62228",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Kubernetes] API server",
+ "hits": 0,
+ "description": "Kubernetes API server metrics",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 24, \"y\": 22, \"w\": 24, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"1\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"7cbeb750-5794-11e8-afa2-e9067ea62228\"}, {\"gridData\": {\"i\": \"3\", \"h\": 22, \"y\": 0, \"w\": 48, \"x\": 0}, \"embeddableConfig\": {}, \"panelIndex\": \"3\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"ec360ff0-57a0-11e8-afa2-e9067ea62228\"}, {\"gridData\": {\"i\": \"4\", \"h\": 24, \"y\": 22, \"w\": 24, \"x\": 24}, \"embeddableConfig\": {}, \"panelIndex\": \"4\", \"version\": \"6.3.0\", \"type\": \"visualization\", \"id\": \"95a7f110-57a2-11e8-afa2-e9067ea62228\"}]",
+ "optionsJSON": "{\"useMargins\": false, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0836a4b0-47bd-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat HAProxy] HTTP backend",
+ "hits": 0,
+ "description": "HAProxy HTTP backend metrics",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 2, \"y\": 5, \"w\": 4, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"1\", \"id\": \"a64b4fd0-471c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"2\", \"h\": 2, \"y\": 0, \"w\": 3, \"x\": 9}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"2\", \"id\": \"794b6cd0-471d-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"3\", \"h\": 3, \"y\": 2, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"3\", \"id\": \"bb0ab500-4735-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"4\", \"h\": 2, \"y\": 0, \"w\": 3, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"4\", \"id\": \"40bed190-473b-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"5\", \"h\": 2, \"y\": 5, \"w\": 4, \"x\": 4}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"0751ed00-479c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"6\", \"h\": 2, \"y\": 5, \"w\": 4, \"x\": 8}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"6\", \"id\": \"b3463670-47a1-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"7\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"7\", \"id\": \"fcbdfa60-47bd-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"8\", \"h\": 2, \"y\": 3, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"8\", \"id\": \"981d1040-47be-11e8-bc13-1397384faad3\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8cc50a50-47e0-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat HAProxy] HTTP server",
+ "hits": 0,
+ "description": "HAProxy metrics for HTTP mode",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"5\", \"h\": 2, \"y\": 5, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"0751ed00-479c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"6\", \"h\": 2, \"y\": 3, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"6\", \"id\": \"b3463670-47a1-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"7\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"7\", \"id\": \"fcbdfa60-47bd-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"8\", \"h\": 2, \"y\": 3, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"8\", \"id\": \"981d1040-47be-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"10\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"10\", \"id\": \"72e84b00-47e1-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"11\", \"h\": 2, \"y\": 5, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"11\", \"id\": \"976b0910-47e4-11e8-bc13-1397384faad3\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4b555c30-47dd-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat HAProxy] Overview",
+ "hits": 0,
+ "description": "HAProxy overview",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"2\", \"h\": 6, \"y\": 2, \"w\": 4, \"x\": 8}, \"title\": \"Servers\", \"panelIndex\": \"2\", \"version\": \"6.2.2\", \"type\": \"visualization\", \"id\": \"79350d50-47db-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"3\", \"h\": 6, \"y\": 2, \"w\": 4, \"x\": 4}, \"title\": \"Backends\", \"panelIndex\": \"3\", \"version\": \"6.2.2\", \"type\": \"visualization\", \"id\": \"8c8f0300-47dc-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"4\", \"h\": 6, \"y\": 2, \"w\": 4, \"x\": 0}, \"title\": \"Frontends\", \"panelIndex\": \"4\", \"version\": \"6.2.2\", \"type\": \"visualization\", \"id\": \"f1e27ed0-47dc-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"5\", \"h\": 2, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"a64b4fd0-471c-11e8-bc13-1397384faad3\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d5878d00-47c5-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat HAProxy] Frontend",
+ "hits": 0,
+ "description": "HAProxy frontend metrics",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"2\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"2\", \"id\": \"a64b4fd0-471c-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"3\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"3\", \"id\": \"86159190-47c5-11e8-bc13-1397384faad3\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e9057ae0-47c5-11e8-bc13-1397384faad3",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat HAProxy] HTTP frontend",
+ "hits": 0,
+ "description": "HAProxy frontend metrics",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"3\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"3\", \"id\": \"86159190-47c5-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"4\", \"h\": 3, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"4\", \"id\": \"fcbdfa60-47bd-11e8-bc13-1397384faad3\"}, {\"gridData\": {\"i\": \"5\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"30956d00-47d7-11e8-bc13-1397384faad3\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Remote-IP-Count-Explorer",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Filebeat Traefik] [ML] Remote IP Count Explorer",
+ "hits": 0,
+ "description": "Machine learning dashboard, for the Filebeat Traefik module",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Remote-IP-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Response-Code-Timechart\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Top-Remote-IPs-Table\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Map\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ML-Traefik-Access-Top-URLs-Table\", \"size_x\": 12, \"size_y\": 9, \"panelIndex\": 5, \"col\": 1, \"row\": 7}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-5\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "32fca290-f0af-11e7-b9ff-9f96241065de",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat uWSGI] Overview",
+ "hits": 0,
+ "description": "Overview of uWSGI service metrics",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"a5058e70-f0ae-11e7-b9ff-9f96241065de\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"ac7194b0-f0ae-11e7-b9ff-9f96241065de\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 7, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"8c5f96e0-f0ae-11e7-b9ff-9f96241065de\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"ba4a80b0-f0ae-11e7-b9ff-9f96241065de\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 4, \"col\": 7, \"row\": 4}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d9eba730-c991-11e7-9835-2f31fe08873b",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Windows] Services",
+ "hits": 0,
+ "description": "Overview of the Windows Service States",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"eb8277d0-c98c-11e7-9835-2f31fe08873b\", \"size_x\": 9, \"size_y\": 5, \"panelIndex\": 1, \"col\": 4, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"23a5fff0-c98e-11e7-9835-2f31fe08873b\", \"size_x\": 3, \"size_y\": 5, \"panelIndex\": 2, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"830c45f0-c991-11e7-9835-2f31fe08873b\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 3, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"35f5ad60-c996-11e7-9835-2f31fe08873b\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 4, \"col\": 5, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"c36b2ba0-ca29-11e7-9835-2f31fe08873b\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 5, \"col\": 9, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-5\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}, \"P-2\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-system-overview",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat System] Overview",
+ "hits": 0,
+ "description": "Overview of system metrics",
+ "panelsJSON": "[{\"gridData\":{\"h\":1,\"i\":\"9\",\"w\":12,\"x\":0,\"y\":0},\"id\":\"System-Navigation\",\"panelIndex\":\"9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"11\",\"w\":2,\"x\":0,\"y\":1},\"id\":\"c6f2ffd0-4d17-11e7-a196-69b9a7a020a9\",\"panelIndex\":\"11\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":5,\"i\":\"12\",\"w\":6,\"x\":6,\"y\":3},\"id\":\"fe064790-1b1f-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"12\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":5,\"i\":\"13\",\"w\":6,\"x\":0,\"y\":3},\"id\":\"855899e0-1b1c-11e7-b09e-037021c4f8df\",\"panelIndex\":\"13\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":6,\"i\":\"14\",\"w\":12,\"x\":0,\"y\":8},\"id\":\"7cdb1330-4d1a-11e7-a196-69b9a7a020a9\",\"panelIndex\":\"14\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"16\",\"w\":2,\"x\":8,\"y\":1},\"id\":\"522ee670-1b92-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"16\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"17\",\"w\":2,\"x\":10,\"y\":1},\"id\":\"1aae9140-1b93-11e7-8ada-3df93aab833e\",\"panelIndex\":\"17\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"18\",\"w\":2,\"x\":6,\"y\":1},\"id\":\"825fdb80-4d1d-11e7-b5f2-2b7c1895bf32\",\"panelIndex\":\"18\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"19\",\"w\":2,\"x\":4,\"y\":1},\"id\":\"d3166e80-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"19\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"20\",\"w\":2,\"x\":2,\"y\":1},\"id\":\"83e12df0-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"20\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}",
+ "uiStateJSON": "{\"P-11\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-12\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-14\":{\"vis\":{\"defaultColors\":{\"0% - 20%\":\"rgb(247,252,245)\",\"20% - 40%\":\"rgb(199,233,192)\",\"40% - 60%\":\"rgb(116,196,118)\",\"60% - 80%\":\"rgb(35,139,69)\"}}},\"P-16\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-2\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-3\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-7d",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "467207a0-231e-11e9-bb66-8baac426dfd4",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Zookeeper] Overview",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 15, \"y\": 15, \"w\": 15, \"x\": 0}, \"title\": \"Approximate data size\", \"panelIndex\": \"1\", \"embeddableConfig\": {}, \"version\": \"7.0.0-alpha2\", \"type\": \"visualization\", \"id\": \"8d3b7770-2319-11e9-bb66-8baac426dfd4\"}, {\"gridData\": {\"i\": \"2\", \"h\": 15, \"y\": 15, \"w\": 17, \"x\": 15}, \"title\": \"Latency\", \"panelIndex\": \"2\", \"embeddableConfig\": {}, \"version\": \"7.0.0-alpha2\", \"type\": \"visualization\", \"id\": \"c0be43c0-2319-11e9-bb66-8baac426dfd4\"}, {\"gridData\": {\"i\": \"3\", \"h\": 15, \"y\": 15, \"w\": 16, \"x\": 32}, \"title\": \"Alive Connections\", \"panelIndex\": \"3\", \"embeddableConfig\": {}, \"version\": \"7.0.0-alpha2\", \"type\": \"visualization\", \"id\": \"1c2f8930-231a-11e9-bb66-8baac426dfd4\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 0, \"w\": 25, \"x\": 23}, \"title\": \"Used file descriptors\", \"panelIndex\": \"4\", \"embeddableConfig\": {}, \"version\": \"7.0.0-alpha2\", \"type\": \"visualization\", \"id\": \"ddb13c60-231b-11e9-bb66-8baac426dfd4\"}, {\"gridData\": {\"i\": \"5\", \"h\": 15, \"y\": 0, \"w\": 23, \"x\": 0}, \"title\": \"Packets received / sent\", \"panelIndex\": \"5\", \"embeddableConfig\": {}, \"version\": \"7.0.0-alpha2\", \"type\": \"visualization\", \"id\": \"d2f52b50-231c-11e9-bb66-8baac426dfd4\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "023d2930-f1a5-11e7-a9ef-93c69af7b129",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Nginx] Overview",
+ "hits": 0,
+ "description": "Overview dashboard for the Nginx module in Metricbeat",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"1\", \"id\": \"555df8a0-f1a1-11e7-a9ef-93c69af7b129\"}, {\"gridData\": {\"i\": \"2\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"2\", \"id\": \"a1d92240-f1a1-11e7-a9ef-93c69af7b129\"}, {\"gridData\": {\"i\": \"3\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"3\", \"id\": \"d763a570-f1a1-11e7-a9ef-93c69af7b129\"}, {\"gridData\": {\"i\": \"4\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"4\", \"id\": \"47a8e0f0-f1a4-11e7-a9ef-93c69af7b129\"}, {\"gridData\": {\"i\": \"5\", \"h\": 3, \"y\": 6, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"5\", \"id\": \"dcbffe30-f1a4-11e7-a9ef-93c69af7b129\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "79ffd6e0-faa0-11e6-947f-177f697178b8",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat System] Host overview",
+ "hits": 0,
+ "description": "Overviw of host metrics",
+ "panelsJSON": "[{\"gridData\":{\"h\":3,\"i\":\"1\",\"w\":6,\"x\":0,\"y\":11},\"id\":\"6b7b9a40-faa1-11e6-86b1-cd7735ff7e23\",\"panelIndex\":\"1\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"2\",\"w\":6,\"x\":6,\"y\":5},\"id\":\"4d546850-1b15-11e7-b09e-037021c4f8df\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"3\",\"w\":6,\"x\":6,\"y\":11},\"id\":\"089b85d0-1b16-11e7-b09e-037021c4f8df\",\"panelIndex\":\"3\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"4\",\"w\":6,\"x\":0,\"y\":8},\"id\":\"bfa5e400-1b16-11e7-b09e-037021c4f8df\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"5\",\"w\":6,\"x\":6,\"y\":14},\"id\":\"e0f001c0-1b18-11e7-b09e-037021c4f8df\",\"panelIndex\":\"5\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"6\",\"w\":6,\"x\":0,\"y\":14},\"id\":\"2e224660-1b19-11e7-b09e-037021c4f8df\",\"panelIndex\":\"6\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"7\",\"w\":6,\"x\":0,\"y\":5},\"id\":\"ab2d1e90-1b1a-11e7-b09e-037021c4f8df\",\"panelIndex\":\"7\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"8\",\"w\":6,\"x\":6,\"y\":8},\"id\":\"4e4bb1e0-1b1b-11e7-b09e-037021c4f8df\",\"panelIndex\":\"8\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"9\",\"w\":2,\"x\":4,\"y\":1},\"id\":\"26732e20-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"10\",\"w\":2,\"x\":0,\"y\":1},\"id\":\"83e12df0-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"10\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"11\",\"w\":2,\"x\":2,\"y\":1},\"id\":\"d3166e80-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"11\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"12\",\"w\":2,\"x\":6,\"y\":1},\"id\":\"522ee670-1b92-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"12\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"13\",\"w\":2,\"x\":8,\"y\":1},\"id\":\"1aae9140-1b93-11e7-8ada-3df93aab833e\",\"panelIndex\":\"13\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"14\",\"w\":4,\"x\":8,\"y\":3},\"id\":\"34f97ee0-1b96-11e7-8ada-3df93aab833e\",\"panelIndex\":\"14\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":1,\"i\":\"16\",\"w\":6,\"x\":0,\"y\":0},\"id\":\"System-Navigation\",\"panelIndex\":\"16\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"21\",\"w\":2,\"x\":0,\"y\":3},\"id\":\"19e123b0-4d5a-11e7-aee5-fdc812cc3bec\",\"panelIndex\":\"21\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"22\",\"w\":2,\"x\":2,\"y\":3},\"id\":\"d2e80340-4d5c-11e7-aa29-87a97a796de6\",\"panelIndex\":\"22\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"23\",\"w\":2,\"x\":6,\"y\":3},\"id\":\"825fdb80-4d1d-11e7-b5f2-2b7c1895bf32\",\"panelIndex\":\"23\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"25\",\"w\":2,\"x\":10,\"y\":1},\"id\":\"96976150-4d5d-11e7-aa29-87a97a796de6\",\"panelIndex\":\"25\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"27\",\"w\":6,\"x\":0,\"y\":17},\"id\":\"99381c80-4d60-11e7-9a4c-ed99bbcaa42b\",\"panelIndex\":\"27\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"28\",\"w\":6,\"x\":6,\"y\":17},\"id\":\"c5e3cf90-4d60-11e7-9a4c-ed99bbcaa42b\",\"panelIndex\":\"28\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"29\",\"w\":2,\"x\":4,\"y\":3},\"id\":\"590a60f0-5d87-11e7-8884-1bb4c3b890e4\",\"panelIndex\":\"29\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":1,\"i\":\"30\",\"w\":6,\"x\":6,\"y\":0},\"id\":\"3d65d450-a9c3-11e7-af20-67db8aecb295\",\"panelIndex\":\"30\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}",
+ "uiStateJSON": "{\"P-29\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-7d",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"beat.name:\\\"lkft-master.systems\\\"\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "AV4RGUqo5NkDleZmzKuZ",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Kubernetes] Overview",
+ "hits": 0,
+ "description": "Overview of Kubernetes cluster metrics",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 3, \"y\": 0, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"1\", \"id\": \"022a54c0-2bf5-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"2\", \"h\": 3, \"y\": 6, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"2\", \"id\": \"44f12b40-2bf4-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"5\", \"h\": 3, \"y\": 0, \"w\": 3, \"x\": 3}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"5\", \"id\": \"cd059410-2bfb-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"6\", \"h\": 3, \"y\": 3, \"w\": 2, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"6\", \"id\": \"e1018b90-2bfb-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"7\", \"h\": 3, \"y\": 6, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"7\", \"id\": \"d6564360-2bfc-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"8\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"8\", \"id\": \"16fa4470-2bfd-11e7-859b-f78b612cde28\"}, {\"gridData\": {\"i\": \"9\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"9\", \"id\": \"294546b0-30d6-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"10\", \"h\": 3, \"y\": 0, \"w\": 3, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"10\", \"id\": \"408fccf0-30d6-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"11\", \"h\": 3, \"y\": 12, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"11\", \"id\": \"58e644f0-30d6-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"12\", \"h\": 3, \"y\": 12, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"12\", \"id\": \"a4c9d360-30df-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"13\", \"h\": 3, \"y\": 3, \"w\": 2, \"x\": 4}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"13\", \"id\": \"174a6ad0-30e0-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"14\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"14\", \"id\": \"7aac4fd0-30e0-11e7-8df8-6d3604a72912\"}, {\"gridData\": {\"i\": \"15\", \"h\": 3, \"y\": 3, \"w\": 2, \"x\": 2}, \"type\": \"visualization\", \"version\": \"6.2.2\", \"panelIndex\": \"15\", \"id\": \"da1ff7c0-30ed-11e7-b9e5-2b5b07213ab3\"}]",
+ "optionsJSON": "{\"darkTheme\": false, \"useMargins\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-MongoDB",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat MongoDB] Overview",
+ "hits": 0,
+ "description": "Overview of MongoDB server status",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"MongoDB-hosts\", \"size_x\": 8, \"size_y\": 3, \"panelIndex\": 1, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"MongoDB-Engine-ampersand-Version\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 4, \"col\": 9, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"MongoDB-operation-counters\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"MongoDB-Concurrent-transactions-Read\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 6, \"col\": 7, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"MongoDB-Concurrent-transactions-Write\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 7, \"col\": 10, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"MongoDB-memory-stats\", \"size_x\": 12, \"size_y\": 4, \"panelIndex\": 5, \"col\": 1, \"row\": 10}, {\"type\": \"visualization\", \"id\": \"MongoDB-asserts\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 3, \"col\": 7, \"row\": 7}, {\"type\": \"visualization\", \"id\": \"MongoDB-WiredTiger-Cache\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 8, \"col\": 1, \"row\": 7}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-1\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "AV4YjZ5pux-M-tCAunxK",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Redis] Overview",
+ "hits": 0,
+ "description": "Overview of Redis server metrics",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"Redis-Clients-Metrics\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 2, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Redis-Connected-clients\", \"size_x\": 5, \"size_y\": 3, \"panelIndex\": 1, \"col\": 4, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Redis-hosts\", \"size_x\": 12, \"size_y\": 2, \"panelIndex\": 3, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"Redis-Server-Versions\", \"size_x\": 4, \"size_y\": 2, \"panelIndex\": 4, \"col\": 1, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Redis-server-mode\", \"size_x\": 4, \"size_y\": 2, \"panelIndex\": 5, \"col\": 5, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Redis-multiplexing-API\", \"size_x\": 3, \"size_y\": 2, \"panelIndex\": 6, \"col\": 9, \"row\": 6}, {\"type\": \"visualization\", \"id\": \"Redis-Keyspaces\", \"size_x\": 4, \"size_y\": 3, \"panelIndex\": 7, \"col\": 9, \"row\": 1}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-4\": {\"vis\": {\"legendOpen\": true}}, \"P-2\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}, \"P-3\": {\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "28969190-0511-11e9-9c60-d582a238e2c5",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat Redis] Keys",
+ "hits": 0,
+ "description": "Redis keys metrics",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"1\", \"h\": 5, \"y\": 0, \"w\": 12, \"x\": 0}, \"title\": \"Keyspace selector\", \"panelIndex\": \"1\", \"embeddableConfig\": {}, \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"00d39210-050d-11e9-9c60-d582a238e2c5\"}, {\"gridData\": {\"i\": \"2\", \"h\": 15, \"y\": 0, \"w\": 36, \"x\": 12}, \"title\": \"Lists length\", \"panelIndex\": \"2\", \"embeddableConfig\": {}, \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"7f4bc7d0-050c-11e9-9c60-d582a238e2c5\"}, {\"gridData\": {\"i\": \"3\", \"h\": 10, \"y\": 5, \"w\": 12, \"x\": 0}, \"title\": \"Keys by type\", \"panelIndex\": \"3\", \"embeddableConfig\": {\"vis\": {\"legendOpen\": false}}, \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"4435ac40-050e-11e9-9c60-d582a238e2c5\"}, {\"gridData\": {\"i\": \"4\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 0}, \"title\": \"Average size of string keys\", \"panelIndex\": \"4\", \"embeddableConfig\": {}, \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"8541a4a0-0513-11e9-9c60-d582a238e2c5\"}, {\"gridData\": {\"i\": \"5\", \"h\": 15, \"y\": 15, \"w\": 24, \"x\": 24}, \"title\": \"Average keys TTL\", \"panelIndex\": \"5\", \"embeddableConfig\": {}, \"version\": \"6.5.2\", \"type\": \"visualization\", \"id\": \"517a5fd0-0514-11e9-9c60-d582a238e2c5\"}]",
+ "optionsJSON": "{\"useMargins\": true, \"darkTheme\": false, \"hidePanelTitles\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"controlledBy\":\"1545388837304\",\"disabled\":false,\"index\":\"bc2e8280-0509-11e9-9c60-d582a238e2c5\",\"key\":\"redis.keyspace.id\",\"negate\":false,\"params\":[\"db0\",\"db1\"],\"type\":\"phrases\",\"value\":\"db0, db1\"},\"query\":{\"bool\":{\"minimum_should_match\":1,\"should\":[{\"match_phrase\":{\"redis.keyspace.id\":\"db0\"}},{\"match_phrase\":{\"redis.keyspace.id\":\"db1\"}}]}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "66881e90-0006-11e7-bf7f-c9acc3d3e306",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat MySQL] Overview",
+ "hits": 0,
+ "description": "Overview of MySQL server",
+ "panelsJSON": "[{\"gridData\": {\"i\": \"10\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"10\", \"id\": \"d7e6bee0-f1f3-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"11\", \"h\": 3, \"y\": 0, \"w\": 12, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"11\", \"id\": \"695a4f90-f1f4-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"13\", \"h\": 3, \"y\": 3, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"13\", \"id\": \"124dce60-f1f5-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"14\", \"h\": 3, \"y\": 6, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"14\", \"id\": \"aaa326b0-f1f5-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"15\", \"h\": 3, \"y\": 6, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"15\", \"id\": \"fb1f3f20-f1f5-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"16\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 6}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"16\", \"id\": \"f5b35930-f1f6-11e7-85ab-594b1652e0d1\"}, {\"gridData\": {\"i\": \"17\", \"h\": 3, \"y\": 9, \"w\": 6, \"x\": 0}, \"type\": \"visualization\", \"version\": \"6.2.4\", \"panelIndex\": \"17\", \"id\": \"7404feb0-f1f7-11e7-85ab-594b1652e0d1\"}]",
+ "optionsJSON": "{\"darkTheme\": false, \"useMargins\": false}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "AV4YobKIge1VCbKU_qVo",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat RabbitMQ] Overview",
+ "hits": 0,
+ "description": "Overview of RabbitMQ status",
+ "panelsJSON": "[{\"type\": \"visualization\", \"id\": \"RabbitMQ-Memory-Usage\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 8, \"col\": 1, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"Rabbitmq-Number-of-Nodes\", \"size_x\": 3, \"size_y\": 3, \"panelIndex\": 2, \"col\": 8, \"row\": 1}, {\"type\": \"visualization\", \"id\": \"RabbitMQ-Erlang-Process-Usage\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 10, \"col\": 1, \"row\": 4}, {\"type\": \"visualization\", \"id\": \"RabbitMQ-Queue-Index-Operations\", \"size_x\": 6, \"size_y\": 3, \"panelIndex\": 9, \"col\": 7, \"row\": 4}]",
+ "optionsJSON": "{\"darkTheme\": false}",
+ "uiStateJSON": "{\"P-2\": {\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "git-protocol-mlplatform",
+ "_type": "dashboard",
+ "_source": {
+ "title": "git-protocol-mlplatform",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"panelIndex\":\"11\",\"gridData\":{\"x\":0,\"y\":0,\"w\":6,\"h\":5,\"i\":\"11\"},\"id\":\"0b343080-6bf5-11e9-acbc-09dcf1b097d9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"panelIndex\":\"12\",\"gridData\":{\"x\":6,\"y\":0,\"w\":6,\"h\":5,\"i\":\"12\"},\"id\":\"68bc1660-6bf4-11e9-acbc-09dcf1b097d9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"panelIndex\":\"14\",\"gridData\":{\"x\":0,\"y\":5,\"w\":6,\"h\":6,\"i\":\"14\"},\"version\":\"6.1.4-1\",\"type\":\"visualization\",\"id\":\"c5f8b280-70c1-11e9-8c1d-734f928b6f03\"},{\"panelIndex\":\"15\",\"gridData\":{\"x\":6,\"y\":5,\"w\":6,\"h\":6,\"i\":\"15\"},\"version\":\"6.1.4-1\",\"type\":\"visualization\",\"id\":\"e82a7ec0-b91d-11e9-a1f4-0fc233ae73cb\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}",
+ "uiStateJSON": "{\"P-1\":{\"vis\":{\"params\":{\"config\":{\"searchKeyword\":\"\"},\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"P-11\":{\"vis\":{\"params\":{\"config\":{\"searchKeyword\":\"\"},\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"P-2\":{\"vis\":{\"params\":{\"config\":{\"searchKeyword\":\"\"},\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"P-3\":{\"spy\":{\"mode\":{\"fill\":false,\"name\":null}}},\"P-13\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"config\":{\"searchKeyword\":\"\"}}}},\"P-14\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"config\":{\"searchKeyword\":\"\"}}}}}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-7d",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"meta\":{\"index\":\"fcb828f0-6db0-11e9-8943-b9c8a07bb3fc\",\"type\":\"phrase\",\"key\":\"clientip.keyword\",\"value\":\"172.31.43.253\",\"params\":{\"query\":\"172.31.43.253\",\"type\":\"phrase\"},\"disabled\":false,\"negate\":true,\"alias\":null},\"query\":{\"match\":{\"clientip.keyword\":{\"query\":\"172.31.43.253\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "CPU-slash-Memory-per-container",
+ "_type": "dashboard",
+ "_source": {
+ "title": "[Metricbeat System] Containers overview",
+ "hits": 0,
+ "description": "Overview of container metrics",
+ "panelsJSON": "[{\"gridData\":{\"h\":3,\"i\":\"2\",\"w\":12,\"x\":0,\"y\":1},\"id\":\"Container-CPU-usage\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":1,\"i\":\"3\",\"w\":12,\"x\":0,\"y\":0},\"id\":\"System-Navigation\",\"panelIndex\":\"3\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":3,\"i\":\"4\",\"w\":12,\"x\":0,\"y\":4},\"id\":\"Container-Memory-stats\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":4,\"i\":\"5\",\"w\":12,\"x\":0,\"y\":7},\"id\":\"Container-Block-IO\",\"panelIndex\":\"5\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}",
+ "uiStateJSON": "{\"P-2\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"config\":{\"searchKeyword\":\"\"}}}},\"P-4\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"config\":{\"searchKeyword\":\"\"}}}},\"P-5\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"config\":{\"searchKeyword\":\"\"}}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\",\"default_field\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "60c70e00-25ad-11eb-bb21-bdd65cbe708e",
+ "_type": "dashboard",
+ "_source": {
+ "title": "Morello HTTPS Clone Dashboard",
+ "hits": 0,
+ "description": "",
+ "panelsJSON": "[{\"panelIndex\":\"1\",\"gridData\":{\"x\":0,\"y\":0,\"w\":12,\"h\":5,\"i\":\"1\"},\"id\":\"90cbf3a0-25ac-11eb-bb21-bdd65cbe708e\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"panelIndex\":\"2\",\"gridData\":{\"x\":4,\"y\":5,\"w\":3,\"h\":2,\"i\":\"2\"},\"id\":\"397f4a40-25af-11eb-bb21-bdd65cbe708e\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "timeRestore": true,
+ "timeTo": "now",
+ "timeFrom": "now-15d",
+ "refreshInterval": {
+ "display": "Off",
+ "pause": false,
+ "value": 0
+ },
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Overview",
+ "_type": "dashboard",
+ "_source": {
+ "title": "Overview",
+ "hits": 0,
+ "description": "Overview of system metrics",
+ "panelsJSON": "[{\"gridData\":{\"h\":1,\"i\":\"9\",\"w\":12,\"x\":0,\"y\":0},\"id\":\"System-Navigation\",\"panelIndex\":\"9\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"11\",\"w\":2,\"x\":0,\"y\":1},\"id\":\"c6f2ffd0-4d17-11e7-a196-69b9a7a020a9\",\"panelIndex\":\"11\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":4,\"i\":\"12\",\"w\":6,\"x\":6,\"y\":3},\"id\":\"fe064790-1b1f-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"12\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":4,\"i\":\"13\",\"w\":6,\"x\":0,\"y\":3},\"id\":\"855899e0-1b1c-11e7-b09e-037021c4f8df\",\"panelIndex\":\"13\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":6,\"i\":\"14\",\"w\":12,\"x\":0,\"y\":7},\"id\":\"7cdb1330-4d1a-11e7-a196-69b9a7a020a9\",\"panelIndex\":\"14\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"16\",\"w\":2,\"x\":8,\"y\":1},\"id\":\"522ee670-1b92-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"16\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"17\",\"w\":2,\"x\":10,\"y\":1},\"id\":\"1aae9140-1b93-11e7-8ada-3df93aab833e\",\"panelIndex\":\"17\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"18\",\"w\":2,\"x\":6,\"y\":1},\"id\":\"825fdb80-4d1d-11e7-b5f2-2b7c1895bf32\",\"panelIndex\":\"18\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"19\",\"w\":2,\"x\":4,\"y\":1},\"id\":\"d3166e80-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"19\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"},{\"gridData\":{\"h\":2,\"i\":\"20\",\"w\":2,\"x\":2,\"y\":1},\"id\":\"83e12df0-1b91-11e7-bec4-a5e9ec5cab8b\",\"panelIndex\":\"20\",\"type\":\"visualization\",\"version\":\"6.1.4-1\"}]",
+ "optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}",
+ "uiStateJSON": "{\"P-11\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-12\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-14\":{\"vis\":{\"defaultColors\":{\"0 - 10\":\"rgb(247,252,245)\",\"10 - 100\":\"rgb(199,233,192)\",\"100 - 200\":\"rgb(116,196,118)\",\"200 - 0\":\"rgb(35,139,69)\"}}},\"P-16\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-2\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-3\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}}",
+ "version": 1,
+ "timeRestore": false,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "02014c80-29d2-11e7-a68f-bfaa2341cc52",
+ "_type": "search",
+ "_source": {
+ "columns": [
+ "monitor.id",
+ "http.url",
+ "monitor.status",
+ "http.response.status_code",
+ "monitor.duration.us",
+ "tcp.rtt.connect.us",
+ "tls.rtt.handshake.us",
+ "resolve.rtt.us",
+ "http.rtt.content.us"
+ ],
+ "description": "",
+ "hits": 0,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"heartbeat-*\",\"key\":\"monitor.type\",\"negate\":false,\"value\":\"http\"},\"query\":{\"match\":{\"monitor.type\":{\"query\":\"http\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"heartbeat-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}"
+ },
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "title": "Heartbeat HTTP pings",
+ "version": 1
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b6b7ccc0-c98d-11e7-9835-2f31fe08873b",
+ "_type": "search",
+ "_source": {
+ "title": "Services [Metricbeat Windows]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "beat.name",
+ "windows.service.display_name",
+ "windows.service.state",
+ "windows.service.start_type",
+ "windows.service.uptime.ms",
+ "windows.service.pid",
+ "windows.service.exit_code"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"metricset.module\",\"negate\":false,\"params\":{\"query\":\"windows\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"windows\"},\"query\":{\"match\":{\"metricset.module\":{\"query\":\"windows\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"metricset.name\",\"negate\":false,\"params\":{\"query\":\"service\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"service\"},\"query\":{\"match\":{\"metricset.name\":{\"query\":\"service\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c4e80aa0-1fd4-11e9-ae2a-939083c6a64e",
+ "_type": "search",
+ "_source": {
+ "title": "Ubiquiti Firewall Events [Filebeat Iptables]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"iptables.ubiquiti.rule_set :*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9f7d97c0-1fe9-11e9-ae2a-939083c6a64e",
+ "_type": "search",
+ "_source": {
+ "title": "Ubiquiti Firewall Blocked Events [Filebeat Iptables]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"iptables.ubiquiti.rule_set :* and event.outcome : \\\"deny\\\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7862cab0-1fdb-11e9-ae2a-939083c6a64e",
+ "_type": "search",
+ "_source": {
+ "title": "Ubiquiti Firewall Allowed Events [Filebeat Iptables]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"iptables.ubiquiti.rule_set :* and event.outcome : \\\"allow\\\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "_type": "search",
+ "_source": {
+ "title": "Alerts [Suricata]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "host.name",
+ "suricata.eve.flow_id",
+ "suricata.eve.src_ip",
+ "suricata.eve.src_port",
+ "suricata.eve.dest_ip",
+ "suricata.eve.dest_port",
+ "source_ecs.geo.country_iso_code",
+ "destination.geo.country_iso_code"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"event.type\",\"negate\":false,\"params\":{\"query\":\"alert\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"alert\"},\"query\":{\"match\":{\"event.type\":{\"query\":\"alert\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"suricata\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"suricata\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"suricata\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "_type": "search",
+ "_source": {
+ "title": "Events Search [Filebeat Iptables]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length :*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-Docker",
+ "_type": "search",
+ "_source": {
+ "title": "Metricbeat Docker",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:docker\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD",
+ "_type": "search",
+ "_source": {
+ "title": "Apache HTTPD",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module: apache\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-search",
+ "_type": "search",
+ "_source": {
+ "title": "MongoDB search",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:mongodb\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-Redis",
+ "_type": "search",
+ "_source": {
+ "title": "Metricbeat Redis",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:redis\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat-Rabbitmq",
+ "_type": "search",
+ "_source": {
+ "title": "Metricbeat-Rabbitmq",
+ "description": "",
+ "hits": 0,
+ "columns": [],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:rabbitmq\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Metricbeat uWSGI status",
+ "_type": "search",
+ "_source": {
+ "title": "Metricbeat uWSGI status",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"metricset.module: uwsgi\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "bfc96a60-0a80-11e8-bffe-ff7d4f68cf94",
+ "_type": "search",
+ "_source": {
+ "title": "All logs [Filebeat MongoDB]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "mongodb.log.timestamp",
+ "mongodb.log.severity",
+ "mongodb.log.component",
+ "mongodb.log.context",
+ "mongodb.log.message"
+ ],
+ "sort": [
+ "mongodb.log.timestamp",
+ "asc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"mongodb.log.severity: *\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "_type": "search",
+ "_source": {
+ "title": "Events [Suricata]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "host.name",
+ "event.type",
+ "suricata.eve.flow_id",
+ "suricata.eve.proto",
+ "source_ecs.ip",
+ "suricata.eve.src_port",
+ "suricata.eve.dest_ip",
+ "suricata.eve.dest_port",
+ "destination.geo.region_name",
+ "destination.geo.country_iso_code"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"event.type\",\"negate\":true,\"params\":{\"query\":\"stats\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"stats\"},\"query\":{\"match\":{\"event.type\":{\"query\":\"stats\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"suricata\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"suricata\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"suricata\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d57a2db0-86ca-11e8-b59d-21efb914e65c",
+ "_type": "search",
+ "_source": {
+ "title": "Host Stats [Suricata]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "host.name",
+ "suricata.eve.stats.detect.alert",
+ "suricata.eve.stats.app_layer.flow.dns_udp",
+ "suricata.eve.stats.app_layer.flow.tls",
+ "suricata.eve.stats.app_layer.flow.http",
+ "suricata.eve.stats.app_layer.flow.ssh",
+ "suricata.eve.stats.tcp.sessions"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"suricata\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"suricata\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"suricata\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"event.type\",\"negate\":false,\"params\":{\"query\":\"stats\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"stats\"},\"query\":{\"match\":{\"event.type\":{\"query\":\"stats\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-errors-log",
+ "_type": "search",
+ "_source": {
+ "title": "Apache errors log [Filebeat Apache2]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "apache2.error.client",
+ "apache2.error.level",
+ "apache2.error.module",
+ "apache2.error.message"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:apache2.error\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-access-logs",
+ "_type": "search",
+ "_source": {
+ "title": "Apache access logs [Filebeat Apache2]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "apache2.access.remote_ip",
+ "apache2.access.method",
+ "apache2.access.url",
+ "apache2.access.response_code"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:apache2.access\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4ac0a370-0a11-11e7-8b04-eb22a5669f27",
+ "_type": "search",
+ "_source": {
+ "title": "Audit Events [Filebeat Auditd]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "auditd.log.record_type",
+ "auditd.log.sequence",
+ "auditd.log.acct"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:auditd.log\"}},\"language\":\"lucene\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-MySQL-Slow-log",
+ "_type": "search",
+ "_source": {
+ "title": "Slow logs [Filebeat MySQL]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"mysql\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"mysql\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"mysql\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"slowlog\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"slowlog\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"slowlog\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "73613570-4791-11e7-be88-2ddb32f3df97",
+ "_type": "search",
+ "_source": {
+ "title": "Logs [Filebeat Redis]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "beat.name",
+ "redis.log.level",
+ "redis.log.role",
+ "redis.log.message"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"redis\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"redis\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"redis\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"log\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"log\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"log\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0ab87b80-478e-11e7-b1f0-cb29bac6bf8b",
+ "_type": "search",
+ "_source": {
+ "title": "Slow logs [Filebeat Redis]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "beat.name",
+ "message",
+ "redis.slowlog.duration.us",
+ "redis.slowlog.key"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:redis.slowlog\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "742e45d0-cbdd-11e7-9852-73e0a9df1bb6",
+ "_type": "search",
+ "_source": {
+ "title": "Slow logs [Filebeat Logstash]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "logstash.slowlog.level",
+ "logstash.slowlog.plugin_type",
+ "logstash.slowlog.plugin_name",
+ "logstash.slowlog.message",
+ "logstash.slowlog.plugin_params",
+ "logstash.slowlog.execution_time_ns"
+ ],
+ "sort": [
+ "logstash.slowlog.level",
+ "asc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"logstash\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"logstash\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"logstash\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"slowlog\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"slowlog\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"slowlog\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "cfaba090-cbda-11e7-9852-73e0a9df1bb6",
+ "_type": "search",
+ "_source": {
+ "title": "logs [Filebeat Logstash]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "logstash.log.level",
+ "logstash.log.module",
+ "logstash.log.message",
+ "source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"logstash\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"logstash\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"logstash\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"log\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"log\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"log\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8030c1b0-fa77-11e6-ae9b-81e5311e8cab",
+ "_type": "search",
+ "_source": {
+ "title": "useradd logs [Filebeat System]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "system.auth.useradd.name",
+ "system.auth.useradd.uid",
+ "system.auth.useradd.gid",
+ "system.auth.useradd.home",
+ "system.auth.useradd.shell"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.auth.useradd\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b6f321e0-fa25-11e6-bbd3-29c986c96e5a",
+ "_type": "search",
+ "_source": {
+ "title": "Sudo commands [Filebeat System]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "system.auth.user",
+ "system.auth.sudo.user",
+ "system.auth.sudo.pwd",
+ "system.auth.sudo.command"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.auth.sudo\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c876e6a0-2418-11e7-a83b-d5f4cebac9ff",
+ "_type": "search",
+ "_source": {
+ "title": "Debug Log [Filebeat Icinga]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "icinga.debug.facility",
+ "icinga.debug.severity",
+ "icinga.debug.message"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"icinga\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"icinga\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"icinga\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"debug\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"debug\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"debug\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ffaf5a30-2413-11e7-a0d9-39604d45ca7f",
+ "_type": "search",
+ "_source": {
+ "title": "Main Log [Filebeat Icinga]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "icinga.main.facility",
+ "icinga.main.severity",
+ "icinga.main.message"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"icinga\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"icinga\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"icinga\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"main\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"main\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"main\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "710043e0-2417-11e7-a83b-d5f4cebac9ff",
+ "_type": "search",
+ "_source": {
+ "title": "Startup Errors [Filebeat Icinga]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "icinga.startup.facility",
+ "icinga.startup.severity",
+ "icinga.startup.message"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"icinga.startup.severity:critical\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Nginx-module",
+ "_type": "search",
+ "_source": {
+ "title": "Nginx logs [Filebeat Nginx]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "nginx.access.url",
+ "nginx.access.method",
+ "nginx.access.response_code",
+ "nginx.access.referrer",
+ "nginx.access.body_sent.bytes"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:nginx\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-MySQL-error-log",
+ "_type": "search",
+ "_source": {
+ "title": "Error logs [Filebeat MySQL]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "mysql.error.level",
+ "mysql.error.message"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"mysql\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"mysql\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"mysql\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"error\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"error\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"error\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Filebeat-Nginx-Access",
+ "_type": "search",
+ "_source": {
+ "title": "ML Access Data [Filebeat Nginx]",
+ "description": "Filebeat Nginx Access Data",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:nginx.access\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Filebeat-Traefik-module",
+ "_type": "search",
+ "_source": {
+ "title": "Traefik logs [Filebeat Traefik]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:traefik\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7a9482d0-eb00-11e7-8f04-51231daa5b05",
+ "_type": "search",
+ "_source": {
+ "title": "Mounts [Osquery results]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "osquery.result.columns.path",
+ "osquery.result.columns.type",
+ "osquery.result.columns.flags"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"osquery.result.name\",\"negate\":false,\"params\":{\"query\":\"pack_it-compliance_mounts\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"pack_it-compliance_mounts\"},\"query\":{\"match\":{\"osquery.result.name\":{\"query\":\"pack_it-compliance_mounts\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3824b080-eb02-11e7-8f04-51231daa5b05",
+ "_type": "search",
+ "_source": {
+ "title": "DEB packages installed [Osquery results]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "osquery.result.columns.name",
+ "osquery.result.columns.version",
+ "osquery.result.columns.revision"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"osquery.result.name\",\"negate\":false,\"params\":{\"query\":\"pack_it-compliance_deb_packages\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"pack_it-compliance_deb_packages\"},\"query\":{\"match\":{\"osquery.result.name\":{\"query\":\"pack_it-compliance_deb_packages\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b5d6baa0-eb02-11e7-8f04-51231daa5b05",
+ "_type": "search",
+ "_source": {
+ "title": "OS versions [Osquery results]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "osquery.result.name"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"osquery.result.name\",\"negate\":false,\"params\":{\"query\":\"pack_it-compliance_os_version\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"pack_it-compliance_os_version\"},\"query\":{\"match\":{\"osquery.result.name\":{\"query\":\"pack_it-compliance_os_version\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f59e21e0-eb03-11e7-8f04-51231daa5b05",
+ "_type": "search",
+ "_source": {
+ "title": "Kernel modules [Osquery results]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "osquery.result.name",
+ "osquery.result.columns.name",
+ "osquery.result.columns.status"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"osquery.result.name\",\"negate\":false,\"params\":{\"query\":\"pack_it-compliance_kernel_modules\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"pack_it-compliance_kernel_modules\"},\"query\":{\"match\":{\"osquery.result.name\":{\"query\":\"pack_it-compliance_kernel_modules\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "eb0039f0-fa7f-11e6-a1df-a78bd7504d38",
+ "_type": "search",
+ "_source": {
+ "title": "groupadd logs [Filebeat System]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "system.auth.groupadd.name",
+ "system.auth.groupadd.gid"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.auth.groupadd\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "62439dc0-f9c9-11e6-a747-6121780e0414",
+ "_type": "search",
+ "_source": {
+ "title": "SSH login attempts [Filebeat System]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "system.auth.ssh.event",
+ "system.auth.ssh.method",
+ "system.auth.user",
+ "system.auth.ssh.ip",
+ "system.auth.ssh.geoip.country_iso_code"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.auth.ssh.event\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Syslog-system-logs",
+ "_type": "search",
+ "_source": {
+ "title": "Syslog logs [Filebeat System]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "system.syslog.hostname",
+ "system.syslog.program",
+ "system.syslog.message"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.syslog\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9eb25600-a1f0-11e7-928f-5dbe6f6f5519",
+ "_type": "search",
+ "_source": {
+ "title": "Nginx error logs [Filebeat Nginx]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "nginx.error.level",
+ "nginx.error.message"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"_exists_:nginx AND _exists_:nginx.error.message\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "6d9e66d0-a1f0-11e7-928f-5dbe6f6f5519",
+ "_type": "search",
+ "_source": {
+ "title": "Nginx access logs [Filebeat Nginx]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "nginx.access.url",
+ "nginx.access.method",
+ "nginx.access.response_code",
+ "nginx.access.body_sent.bytes"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"_exists_:nginx AND _exists_:nginx.access.url\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Filebeat-Traefik-Access",
+ "_type": "search",
+ "_source": {
+ "title": "ML Access Data [Filebeat Traefik]",
+ "description": "Filebeat Traefik Access Data",
+ "hits": 0,
+ "columns": [
+ "_source"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:traefik.access\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Kafka stacktraces",
+ "_type": "search",
+ "_source": {
+ "title": "Stacktraces [Filebeat Kafka]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "kafka.log.class",
+ "kafka.log.trace.class",
+ "kafka.log.trace.full"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"_exists_:kafka.log.trace.class\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "PostgreSQL All Logs",
+ "_type": "search",
+ "_source": {
+ "title": "All Logs [Filebeat PostgreSQL]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "postgresql.log.user",
+ "postgresql.log.database",
+ "postgresql.log.level",
+ "postgresql.log.message",
+ "postgresql.log.query"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"postgresql\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"postgresql\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"postgresql\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Slow PostgreSQL Queries",
+ "_type": "search",
+ "_source": {
+ "title": "Slow Queries [Filebeat PostgreSQL]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "postgresql.log.user",
+ "postgresql.log.database",
+ "postgresql.log.duration",
+ "postgresql.log.query"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"postgresql.log.duration:>30\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0fe5dc00-f49b-11e7-8647-534bb4c21040",
+ "_type": "search",
+ "_source": {
+ "title": "OSSEC Rootkits [Osquery Result]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "osquery.result.name",
+ "osquery.result.columns.path",
+ "beat.hostname"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"query\",\"negate\":false,\"type\":\"custom\",\"value\":\"{\\\"prefix\\\":{\\\"osquery.result.name\\\":\\\"pack_ossec-rootkit\\\"}}\"},\"query\":{\"prefix\":{\"osquery.result.name\":\"pack_ossec-rootkit\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"osquery\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"osquery\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"osquery\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"result\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"result\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"result\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e49fe000-0a7e-11e8-bffe-ff7d4f68cf94",
+ "_type": "search",
+ "_source": {
+ "title": "Error logs [Filebeat MongoDB]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "mongodb.log.timestamp",
+ "mongodb.log.severity",
+ "mongodb.log.component",
+ "mongodb.log.context",
+ "mongodb.log.message"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"mongodb.log.severity: F or mongodb.log.severity: W\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "PostgreSQL Query Durations",
+ "_type": "search",
+ "_source": {
+ "title": "Query Durations [Filebeat PostgreSQL]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "postgresql.log.user",
+ "postgresql.log.database",
+ "postgresql.log.duration",
+ "postgresql.log.query"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"postgresql.log.duration:*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "All Kafka logs",
+ "_type": "search",
+ "_source": {
+ "title": "All logs [Filebeat Kafka]",
+ "description": "",
+ "hits": 0,
+ "columns": [
+ "kafka.log.level",
+ "kafka.log.component",
+ "kafka.log.message"
+ ],
+ "sort": [
+ "@timestamp",
+ "desc"
+ ],
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.module\",\"negate\":false,\"params\":{\"query\":\"kafka\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"kafka\"},\"query\":{\"match\":{\"fileset.module\":{\"query\":\"kafka\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"fileset.name\",\"negate\":false,\"params\":{\"query\":\"log\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"log\"},\"query\":{\"match\":{\"fileset.name\":{\"query\":\"log\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "758b3620-1fda-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "c4e80aa0-1fd4-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Event Timeline [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"deny\": \"#E24D42\", \"allow\": \"#64B0C8\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"top\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"timeRange\": {\"to\": \"2019-01-24T15:47:52.785Z\", \"from\": \"2019-01-24T15:47:12.171Z\", \"mode\": \"absolute\"}, \"extended_bounds\": {}, \"field\": \"@timestamp\", \"interval\": \"auto\", \"time_zone\": \"Europe/Berlin\", \"useNormalizedEsInterval\": true, \"drop_partials\": false, \"min_doc_count\": 1, \"customInterval\": \"2h\"}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"_key\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"event.outcome\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Ubiquiti Firewall Event Timeline [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1ba82fd0-1ff0-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "9f7d97c0-1fe9-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Top Blocked IPs [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Source IP\", \"missingBucketLabel\": \"Missing\", \"field\": \"source_ecs.ip\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Ubiquiti Firewall Top Blocked IPs [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5bd53050-1fe9-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "7862cab0-1fdb-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Allowed Traffic Map [Filebeat Iptables]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"maxZoom\": 18, \"origin\": \"elastic_maps_service\", \"minZoom\": 0, \"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"id\": \"road_map\"}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"source_ecs.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Ubiquiti Firewall Allowed Traffic Map [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8853aa20-1fef-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "9f7d97c0-1fe9-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Blocked Traffic Map [Filebeat Iptables]",
+ "uiStateJSON": "{\"mapCenter\": [19.228176737766262, -22.851562500000004], \"mapZoom\": 3}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"maxZoom\": 18, \"origin\": \"elastic_maps_service\", \"minZoom\": 0, \"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"id\": \"road_map\"}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"source_ecs.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Ubiquiti Firewall Blocked Traffic Map [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "fdea1ad0-1ff4-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "c4e80aa0-1fd4-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Traffic Breakdown [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"deny\": \"#E24D42\", \"udp\": \"#F2C96D\", \"tcp\": \"#447EBC\", \"ipv6-icmp\": \"#EA6460\", \"ipv4\": \"#65C5DB\", \"ipv6\": \"#D683CE\", \"icmp\": \"#F29191\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": false, \"last_level\": false, \"truncate\": 100, \"show\": true}, \"legendPosition\": \"top\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"event.outcome\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"network.type\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"network.transport\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"segment\"}], \"title\": \"Ubiquiti Firewall Traffic Breakdown [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "190bcb50-1ff6-11e9-ae2a-939083c6a64e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "c4e80aa0-1fd4-11e9-ae2a-939083c6a64e",
+ "title": "Ubiquiti Firewall Traffic by Port [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"event.outcome\", \"missingBucketLabel\": \"Missing\", \"field\": \"event.outcome\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"size\": 5, \"order\": \"desc\", \"row\": false}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"split\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Destination port\", \"missingBucketLabel\": \"Missing\", \"field\": \"destination.port\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}], \"title\": \"Ubiquiti Firewall Traffic by Port [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "16033310-86d3-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Top Alert Signatures [Suricata]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Alert Signature\", \"missingBucketLabel\": \"Missing\", \"field\": \"suricata.eve.alert.signature\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Alert Category\", \"missingBucketLabel\": \"Missing\", \"field\": \"suricata.eve.alert.category\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}], \"title\": \"Top Alert Signatures [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "85fed080-86d7-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Alert - Source Location [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"url\": \"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.3.0&license=fc9de2c1-5f06-4080-8dd0-8a334171d89a\", \"subdomains\": [], \"minZoom\": 0, \"maxZoom\": 18, \"id\": \"road_map\"}, \"baseLayersAreLoaded\": {}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}, \"tmsLayers\": [{\"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"url\": \"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.3.0&license=fc9de2c1-5f06-4080-8dd0-8a334171d89a\", \"subdomains\": [], \"minZoom\": 0, \"maxZoom\": 18, \"id\": \"road_map\"}]}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"source_ecs.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Alert - Source Location [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a09ca070-86d7-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Alert - Destination Location [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"url\": \"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.3.0&license=fc9de2c1-5f06-4080-8dd0-8a334171d89a\", \"subdomains\": [], \"minZoom\": 0, \"maxZoom\": 18, \"id\": \"road_map\"}, \"baseLayersAreLoaded\": {}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}, \"tmsLayers\": [{\"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"url\": \"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.3.0&license=fc9de2c1-5f06-4080-8dd0-8a334171d89a\", \"subdomains\": [], \"minZoom\": 0, \"maxZoom\": 18, \"id\": \"road_map\"}]}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"destination.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Alert - Destination Location [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2ccdc1a0-86d8-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Alerts - Top Destination Countries [Suricata]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 5, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Source Country\", \"missingBucketLabel\": \"Missing\", \"field\": \"destination.geo.country_iso_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Alerts - Top Destination Countries [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c7b8b8f0-86d8-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "title": "Alerts - Top Source Countries [Suricata]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 5, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Source Country\", \"missingBucketLabel\": \"Missing\", \"field\": \"source_ecs.geo.country_iso_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Alerts - Top Source Countries [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2599f5e0-1e98-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Top Source Countries [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Country\", \"missingBucketLabel\": \"Missing\", \"field\": \"source_ecs.geo.country_iso_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Top Source Countries [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c4394ec0-1efd-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Source Map [Filebeat Iptables]",
+ "uiStateJSON": "{\"mapCenter\": [45.02695045318546, -44.82421875000001], \"mapZoom\": 3}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"maxZoom\": 18, \"origin\": \"elastic_maps_service\", \"minZoom\": 0, \"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"id\": \"road_map\"}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"source_ecs.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Source Map [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d8cea010-1efd-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Destination Map [Filebeat Iptables]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"params\": {\"mapCenter\": [0, 0], \"mapZoom\": 2, \"colorSchema\": \"Yellow to Red\", \"wms\": {\"selectedTmsLayer\": {\"maxZoom\": 18, \"origin\": \"elastic_maps_service\", \"minZoom\": 0, \"attribution\": \"<p>&#169; <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p>&#10;\", \"id\": \"road_map\"}, \"enabled\": false, \"options\": {\"transparent\": true, \"format\": \"image/png\"}}, \"legendPosition\": \"bottomright\", \"heatClusterSize\": 1.5, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"mapCenter\": [0, 0], \"useGeocentroid\": true, \"isFilteredByCollar\": true, \"precision\": 2, \"mapZoom\": 2, \"field\": \"destination.geo.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Destination Map [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b57b7370-1f1d-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Network Type Breakdown [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"legendOpen\": false}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": true}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"network.type\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Network Type Breakdown [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "35fe0910-1f26-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Network Transport Breakdown [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"legendOpen\": false}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": true}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": true, \"missingBucketLabel\": \"Missing\", \"field\": \"network.transport\", \"otherBucketLabel\": \"Other\", \"otherBucket\": true, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Network Transport Breakdown [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "683402b0-1f29-11e9-8ec4-cf5d91a864b3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"iptables.length:*\"}}"
+ },
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "title": "Top Destination Ports [Filebeat Iptables]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Port\", \"missingBucketLabel\": \"Missing\", \"field\": \"destination.port\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Top Destination Ports [Filebeat Iptables]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c7d46c60-86da-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Activity Types over Time [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"event.type\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 20}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Activity Types over Time [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0a0aa630-86db-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Event Types [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"bottom\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"event.type\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 20}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Event Types [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "728f64c0-86db-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Top Application Protocols [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"bottom\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"suricata.eve.app_proto\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Top Application Protocols [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5f99eb50-86dc-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Top Connection Source Countries [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tagcloud\", \"params\": {\"maxFontSize\": 72, \"showLabel\": true, \"minFontSize\": 18, \"orientation\": \"single\", \"scale\": \"linear\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Top Connection Source Countries\", \"missingBucketLabel\": \"Missing\", \"field\": \"source_ecs.geo.country_iso_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Top Connection Source Countries [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8e7f88d0-86dc-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Top Connection Destination Countries [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"tagcloud\", \"params\": {\"maxFontSize\": 72, \"showLabel\": true, \"minFontSize\": 18, \"orientation\": \"single\", \"scale\": \"linear\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"customLabel\": \"Top Connection Destination Countries\", \"missingBucketLabel\": \"Missing\", \"field\": \"destination.geo.country_iso_code\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Top Connection Destination Countries [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0a363820-86dd-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "title": "Top Network Protocols [Suricata]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"bottom\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"suricata.eve.proto\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Top Network Protocols [Suricata]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Number of Kafka stracktraces by class",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Kafka stacktraces",
+ "title": "Number of stracktraces by class [Filebeat Kafka]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per 30 minutes\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"kafka.log.trace.class\", \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Number of Kafka stracktraces by class [Filebeat Kafka]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3f7c33c0-87ee-11e7-ad9c-db80de0bf8d3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "All Kafka logs",
+ "title": "Log levels over time [Filebeat Kafka]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per day\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"kafka.log.level\", \"customLabel\": \"Log Level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Log levels over time [Filebeat Kafka]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "PostgreSQL Log Level Count",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "PostgreSQL All Logs",
+ "title": "Log Level Count [Filebeat PostgreSQL]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"postgresql.log.level\", \"order\": \"desc\", \"size\": 12}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Log Level Count [Filebeat PostgreSQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3dbd5370-87f3-11e7-ad9c-db80de0bf8d3",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "PostgreSQL All Logs",
+ "title": "Logs by level over time [Filebeat PostgreSQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per month\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"postgresql.log.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Logs by level over time [Filebeat PostgreSQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "PostgreSQL Query Count and Duration",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\"}}"
+ },
+ "savedSearchId": "PostgreSQL Query Durations",
+ "title": "Query count and cumulated duration [Filebeat PostgreSQL]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Number of queries\": \"#0A437C\", \"Sum of query duration\": \"#6ED0E0\"}, \"legendOpen\": true}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": true, \"type\": \"histogram\", \"interpolate\": \"linear\", \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"lineWidth\": 2, \"data\": {\"id\": \"4\", \"label\": \"Number of queries\"}}, {\"showCircles\": true, \"show\": true, \"type\": \"histogram\", \"interpolate\": \"linear\", \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"lineWidth\": 2, \"data\": {\"id\": \"2\", \"label\": \"Sum of query duration\"}}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per 3 hours\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}, {\"params\": {\"customLabel\": \"Number of queries\"}, \"type\": \"count\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"postgresql.log.duration\", \"customLabel\": \"Sum of query duration\"}, \"type\": \"sum\", \"enabled\": true, \"id\": \"2\", \"schema\": \"metric\"}], \"title\": \"Query count and cumulated duration [Filebeat PostgreSQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0fef5710-0a82-11e8-bffe-ff7d4f68cf94",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "bfc96a60-0a80-11e8-bffe-ff7d4f68cf94",
+ "title": "Logs Severity [Filebeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"legendPosition\": \"right\", \"type\": \"pie\", \"isDonut\": true, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mongodb.log.severity\", \"customLabel\": \"Log severity\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Logs Severity [Filebeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-access-unique-IPs-map",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-access-logs",
+ "title": "Unique IPs map [Filebeat Apache2]",
+ "uiStateJSON": "{\"mapCenter\": [14.944784875088372, 5.09765625]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {\"field\": \"apache2.access.remote_ip\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"apache2.access.geoip.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Apache2 access unique IPs map\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-response-codes-of-top-URLs",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-access-logs",
+ "title": "Top URLs by response code [Filebeat Apache2]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#7EB26D\", \"404\": \"#EF843C\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"customLabel\": \"URL\", \"field\": \"apache2.access.url\", \"row\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"split\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Apache2 response codes of top URLs\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-browsers",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-access-logs",
+ "title": "Browsers breakdown [Filebeat Apache2]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"apache2.access.remote_ip\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.user_agent.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.user_agent.major\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Apache2 browsers\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-operating-systems",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-access-logs",
+ "title": "Operating systems breakdown [Filebeat Apache2]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"apache2.access.remote_ip\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.user_agent.os_name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.user_agent.os_major\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Apache2 operating systems\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-error-logs-over-time",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-errors-log",
+ "title": "Error logs over time [Filebeat Apache2]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.error.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Apache2 error logs over time\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache2-response-codes-over-time",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache2-access-logs",
+ "title": "Response codes over time [Filebeat Apache2]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#629E51\", \"404\": \"#EF843C\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"apache2.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Apache2 response codes over time\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2bb0fa70-0a11-11e7-9e84-43da493ad0c7",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Event Results [Filebeat Auditd]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"auto\", \"expression\": \".es(q=\\\"_exists_:auditd.log NOT auditd.log.res:failure\\\").label(\\\"Success\\\"), .es(q=\\\"auditd.log.res:failed\\\").label(\\\"Failure\\\").title(\\\"Audit Event Results\\\")\"}, \"aggs\": [], \"title\": \"Event Results [Filebeat Auditd]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5c7af030-fa2a-11e6-bbd3-29c986c96e5a",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "b6f321e0-fa25-11e6-bbd3-29c986c96e5a",
+ "title": "Sudo commands by user [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.user\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Sudo commands by user\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dc589770-fa2b-11e6-bbd3-29c986c96e5a",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "b6f321e0-fa25-11e6-bbd3-29c986c96e5a",
+ "title": "Top sudo commands [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.sudo.command\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.user\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}], \"title\": \"Top sudo commands\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0bc34b60-2419-11e7-a83b-d5f4cebac9ff",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "c876e6a0-2418-11e7-a83b-d5f4cebac9ff",
+ "title": "Debuglog Facility [Filebeat Icinga]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"icinga.debug.facility\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Icinga Debuglog Facility\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "fb09d4b0-2418-11e7-a83b-d5f4cebac9ff",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "c876e6a0-2418-11e7-a83b-d5f4cebac9ff",
+ "title": "Debuglog Severity [Filebeat Icinga]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"debug\": \"#BA43A9\", \"information\": \"#629E51\", \"notice\": \"#6ED0E0\", \"warning\": \"#E5AC0E\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"icinga.debug.severity\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Icinga Debuglog Severity\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d8e5dc40-2417-11e7-a83b-d5f4cebac9ff",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ffaf5a30-2413-11e7-a0d9-39604d45ca7f",
+ "title": "Mainlog Severity [Filebeat Icinga]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"critical\": \"#BF1B00\", \"warning\": \"#E5AC0E\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"icinga.main.severity\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Icinga Mainlog Severity\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2cf77780-2418-11e7-a83b-d5f4cebac9ff",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ffaf5a30-2413-11e7-a0d9-39604d45ca7f",
+ "title": "Mainlog Facility [Filebeat Icinga]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"icinga.main.facility\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Icinga Mainlog Facility\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Nginx-Access-Map",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-Nginx-module",
+ "title": "Access Map [Filebeat Nginx]",
+ "uiStateJSON": "{\"mapCenter\": [12.039320557540572, -0.17578125]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"nginx.access.geoip.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Nginx Access Map\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MySQL-slowest-queries",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-MySQL-Slow-log",
+ "title": "Top slowest queries [Filebeat MySQL]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"mysql.slowlog.query_time.sec\", \"customLabel\": \"Query time\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mysql.slowlog.query\", \"customLabel\": \"Query\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mysql.slowlog.user\", \"customLabel\": \"User\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}], \"title\": \"Top slowest queries [Filebeat MySQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MySQL-Error-logs-levels",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-MySQL-error-log",
+ "title": "Error logs levels breakdown [Filebeat MySQL]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Note\": \"#9AC48A\", \"Warning\": \"#F9934E\", \"ERROR\": \"#E24D42\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"addTooltip\": true, \"isDonut\": false, \"legendPosition\": \"bottom\", \"addLegend\": true, \"shareYAxis\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mysql.error.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Error logs levels breakdown [Filebeat MySQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MySQL-Slow-logs-by-count",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-MySQL-Slow-log",
+ "title": "Slow logs breakdown [Filebeat MySQL]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"addTooltip\": true, \"isDonut\": false, \"legendPosition\": \"bottom\", \"addLegend\": true, \"shareYAxis\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mysql.slowlog.query\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Slow logs breakdown [Filebeat MySQL]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "New-Visualization",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-Traefik-module",
+ "title": "Response codes over time [Filebeat Traefik]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#7EB26D\", \"404\": \"#614D93\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"New Visualization\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Traefik-Access-Map",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Filebeat-Traefik-module",
+ "title": "Access Map [Filebeat Traefik]",
+ "uiStateJSON": "{\"mapCenter\": [12.039320557540572, -0.17578125]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"traefik.access.geoip.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Traefik Access Map\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dcccaa80-4791-11e7-be88-2ddb32f3df97",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "0ab87b80-478e-11e7-b1f0-cb29bac6bf8b",
+ "title": "Top slowest commands [Filebeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": true, \"data\": {\"id\": \"1\", \"label\": \"Command\"}, \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"Duration (microseconds)\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 200, \"show\": true}, \"position\": \"left\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Command\"}, \"labels\": {\"filter\": true, \"rotate\": 75, \"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {\"field\": \"redis.slowlog.duration.us\", \"customLabel\": \"Command\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.slowlog.cmd\", \"customLabel\": \"Duration (microseconds)\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Top slowest commands [Filebeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0b1dace0-cbdb-11e7-9852-73e0a9df1bb6",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "cfaba090-cbda-11e7-9852-73e0a9df1bb6",
+ "title": "Logs Severity [Filebeat Logstash]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"legendPosition\": \"right\", \"type\": \"pie\", \"isDonut\": true, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"logstash.log.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Logs Severity [Filebeat Logstash]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e90b7240-cbda-11e7-9852-73e0a9df1bb6",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "cfaba090-cbda-11e7-9852-73e0a9df1bb6",
+ "title": "logs over time [Filebeat Logstash]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"params\": {\"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"type\": \"histogram\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"times\": [], \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}]}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"logstash.log.level\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"logs over time [Filebeat Logstash]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b3315630-cbdf-11e7-9852-73e0a9df1bb6",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "742e45d0-cbdd-11e7-9852-73e0a9df1bb6",
+ "title": "Slowest plugins [Filebeat Logstash]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": 3, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"logstash.slowlog.took_in_millis\", \"customLabel\": \"Average\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"logstash.slowlog.took_in_millis\", \"customLabel\": \"Min\"}, \"type\": \"min\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"5\", \"field\": \"logstash.slowlog.plugin_name\", \"customLabel\": \"Plugin Name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"8\", \"schema\": \"bucket\"}, {\"params\": {\"field\": \"logstash.slowlog.took_in_millis\", \"customLabel\": \"Max\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"7\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"5\", \"field\": \"logstash.slowlog.plugin_type\", \"customLabel\": \"Plugin Type\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"9\", \"schema\": \"bucket\"}], \"title\": \"Slowest plugins [Filebeat Logstash]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f398d2f0-fa77-11e6-ae9b-81e5311e8cab",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "8030c1b0-fa77-11e6-ae9b-81e5311e8cab",
+ "title": "New users [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.hostname\", \"customLabel\": \"Host\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.name\", \"customLabel\": \"User\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.uid\", \"customLabel\": \"UID\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.gid\", \"customLabel\": \"GID\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"5\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.home\", \"customLabel\": \"Home\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"6\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.shell\", \"customLabel\": \"Shell\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"7\", \"schema\": \"bucket\"}], \"title\": \"New users\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5dd15c00-fa78-11e6-ae9b-81e5311e8cab",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "8030c1b0-fa77-11e6-ae9b-81e5311e8cab",
+ "title": "New users over time [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"New users over time\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e121b140-fa78-11e6-a1df-a78bd7504d38",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "8030c1b0-fa77-11e6-ae9b-81e5311e8cab",
+ "title": "New users by shell [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"/sbin/nologin\": \"#7EB26D\", \"/bin/false\": \"#508642\", \"/bin/bash\": \"#E24D42\"}, \"legendOpen\": true}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.shell\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"New users by shell\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d56ee420-fa79-11e6-a1df-a78bd7504d38",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "8030c1b0-fa77-11e6-ae9b-81e5311e8cab",
+ "title": "New users by home directory [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"/nonexistent\": \"#629E51\", \"/sbin/nologin\": \"#7EB26D\", \"/bin/false\": \"#508642\", \"/bin/bash\": \"#E24D42\"}, \"legendOpen\": true}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.home\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.useradd.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"New users by home directory\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "12667040-fa80-11e6-a1df-a78bd7504d38",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "eb0039f0-fa7f-11e6-a1df-a78bd7504d38",
+ "title": "New groups [Filebeat System]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.groupadd.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.groupadd.gid\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"bucket\"}], \"title\": \"New groups\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "346bb290-fa80-11e6-a1df-a78bd7504d38",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "eb0039f0-fa7f-11e6-a1df-a78bd7504d38",
+ "title": "New groups over time [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.auth.groupadd.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"New groups over time\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Syslog-events-by-hostname",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Syslog-system-logs",
+ "title": "Syslog events by hostname [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.syslog.hostname\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Syslog events by hostname\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Syslog-hostnames-and-processes",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Syslog-system-logs",
+ "title": "Syslog hostnames and processes [Filebeat System]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": true, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.syslog.hostname\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"system.syslog.program\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Syslog hostnames and processes\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c65ef340-eb19-11e6-be20-559646f8b9ba",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "02014c80-29d2-11e7-a68f-bfaa2341cc52",
+ "title": "HTTP ping times",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"resolve.rtt.us\", \"customLabel\": \"\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"tcp.rtt.connect.us\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"tls.rtt.handshake.us\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"http.rtt.response_header.us\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"HTTP ping times\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "920e8140-eb1a-11e6-be20-559646f8b9ba",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "02014c80-29d2-11e7-a68f-bfaa2341cc52",
+ "title": "HTTP monitors status",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"monitor.status: down\": \"#E24D42\", \"200\": \"#B7DBAB\", \"monitor.status: up\": \"#629E51\"}, \"legendOpen\": true}}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"bottom\", \"isDonut\": false, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"monitor.id\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"filters\": [{\"input\": {\"query\": {\"query_string\": {\"analyze_wildcard\": true, \"query\": \"monitor.status: up\"}}}, \"label\": \"\"}, {\"input\": {\"query\": {\"query_string\": {\"analyze_wildcard\": true, \"query\": \"monitor.status: down\"}}}}]}, \"type\": \"filters\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"http.response.status_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"HTTP monitors status\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1738dbc0-eb1d-11e6-be20-559646f8b9ba",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "02014c80-29d2-11e7-a68f-bfaa2341cc52",
+ "title": "HTTP monitors",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMetricsAtAllLevels\": false, \"totalFunc\": \"sum\", \"showTotal\": false}, \"aggs\": [{\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"monitor.id\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"aggregate\": \"concat\", \"field\": \"monitor.status\", \"sortOrder\": \"desc\", \"sortField\": \"@timestamp\", \"size\": 1}, \"type\": \"top_hits\", \"enabled\": true, \"id\": \"9\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"monitor.duration.us\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"resolve.rtt.us\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"tcp.rtt.connect.us\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"tls.rtt.handshake.us\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"7\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"http.rtt.response_header.us\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"8\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"missingBucket\": false, \"missingBucketLabel\": \"Missing\", \"field\": \"monitor.ip\", \"otherBucketLabel\": \"Other\", \"otherBucket\": false, \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"10\", \"schema\": \"bucket\"}], \"title\": \"HTTP monitors\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "091c3a90-eb1e-11e6-be20-559646f8b9ba",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "02014c80-29d2-11e7-a68f-bfaa2341cc52",
+ "title": "HTTP up status",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"monitor.status: down\": \"#E24D42\", \"monitor.status: up\": \"#629E51\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Percentage of Count\"}, \"interpolate\": \"linear\", \"mode\": \"stacked\", \"valueAxis\": \"ValueAxis-1\", \"type\": \"area\"}], \"yAxis\": {\"max\": 100, \"min\": 0}, \"type\": \"area\", \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"percentage\", \"defaultYExtents\": false, \"setYExtents\": true, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"min\": 0, \"max\": 100, \"mode\": \"percentage\", \"defaultYExtents\": false, \"setYExtents\": true, \"type\": \"linear\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Percentage of Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"filters\": [{\"input\": {\"query\": \"monitor.status: down\"}, \"label\": \"\"}, {\"input\": {\"query\": \"monitor.status: up\"}}]}, \"type\": \"filters\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"HTTP up status\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0f4c0560-eb20-11e6-9f11-159ff202874a",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "02014c80-29d2-11e7-a68f-bfaa2341cc52",
+ "title": "HTTP duration heatmap",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"8 - 9\": \"rgb(74,152,201)\", \"5 - 6\": \"rgb(148,196,223)\", \"11 - 12\": \"rgb(8,74,145)\", \"2 - 3\": \"rgb(227,238,249)\", \"3 - 4\": \"rgb(208,225,242)\", \"9 - 10\": \"rgb(46,126,188)\", \"4 - 5\": \"rgb(182,212,233)\", \"0 - 2\": \"rgb(247,251,255)\", \"10 - 11\": \"rgb(23,100,171)\", \"6 - 8\": \"rgb(107,174,214)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"heatmap\", \"listeners\": {}, \"params\": {\"colorSchema\": \"Blues\", \"invertColors\": false, \"legendPosition\": \"right\", \"addLegend\": true, \"colorsRange\": [], \"colorsNumber\": 10, \"setColorRange\": false, \"percentageMode\": false, \"addTooltip\": true, \"valueAxes\": [{\"show\": false, \"labels\": {\"color\": \"#555\", \"rotate\": 0, \"show\": false}, \"type\": \"value\", \"id\": \"ValueAxis-1\", \"scale\": {\"defaultYExtents\": false, \"type\": \"linear\"}}], \"enableHover\": false, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"monitor.duration.us\", \"interval\": 50000, \"extended_bounds\": {}}, \"type\": \"histogram\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"HTTP duration heatmap\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Unique-Count-URL-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Unique Count URL Timechart [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": true, \"type\": \"line\", \"interpolate\": \"linear\", \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"lineWidth\": 2, \"data\": {\"id\": \"1\", \"label\": \"Unique count of traefik.access.url\"}}], \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per day\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Unique count of traefik.access.url\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {\"field\": \"traefik.access.url\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"ML Traefik Access Unique Count URL Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Response-Code-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Response Code Timechart [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#7EB26D\", \"404\": \"#614D93\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"ML Traefik Access Response Code Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Top-Remote-IPs-Table",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Top Remote IPs [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.remote_ip\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"ML Traefik Access Top Remote IPs Table\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Map",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Access Map [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{\"mapCenter\": [12.039320557540572, -0.17578125]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"traefik.access.geoip.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"ML Traefik Access Map\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Top-URLs-Table",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Top URLs [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 100, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.url\", \"order\": \"desc\", \"size\": 1000}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"ML Traefik Access Top URLs Table\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Unique-Count-URL-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Unique Count URL Timechart [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": true, \"type\": \"line\", \"interpolate\": \"linear\", \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"lineWidth\": 2, \"data\": {\"id\": \"1\", \"label\": \"Unique count of nginx.access.url\"}}], \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per day\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Unique count of nginx.access.url\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {\"field\": \"nginx.access.url\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"ML Nginx Access Unique Count URL Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Response-Code-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Response Code Timechart [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#7EB26D\", \"404\": \"#614D93\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"yAxis\": {}, \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.response_code\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"ML Nginx Access Response Code Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Top-Remote-IPs-Table",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Top Remote IPs [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.remote_ip\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"ML Nginx Access Top Remote IPs Table\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Map",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Access Map [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{\"mapCenter\": [12.039320557540572, -0.17578125]}",
+ "version": 1,
+ "visState": "{\"type\": \"tile_map\", \"listeners\": {}, \"params\": {\"mapCenter\": [15, 5], \"heatMaxZoom\": 16, \"wms\": {\"url\": \"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\", \"enabled\": false, \"options\": {\"layers\": \"0\", \"styles\": \"\", \"attribution\": \"Maps provided by USGS\", \"format\": \"image/png\", \"version\": \"1.3.0\", \"transparent\": true}}, \"heatBlur\": 15, \"heatRadius\": 25, \"heatMinOpacity\": 0.1, \"legendPosition\": \"bottomright\", \"mapZoom\": 2, \"heatNormalizeData\": true, \"mapType\": \"Scaled Circle Markers\", \"isDesaturated\": true, \"addTooltip\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"nginx.access.geoip.location\", \"autoPrecision\": true}, \"type\": \"geohash_grid\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"ML Nginx Access Map\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Top-URLs-Table",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Top URLs [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 100, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.url\", \"order\": \"desc\", \"size\": 1000}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"ML Nginx Access Top URLs Table\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a9fd8bb0-eb01-11e7-8f04-51231daa5b05",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "7a9482d0-eb00-11e7-8f04-51231daa5b05",
+ "title": "Mounts by type [Osquery Result]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"osquery.result.columns.path\", \"order\": \"desc\", \"size\": 10}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"osquery.result.columns.type\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Mounts by type [Osquery Result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1da1ed30-eb03-11e7-8f04-51231daa5b05",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b5d6baa0-eb02-11e7-8f04-51231daa5b05",
+ "title": "OS versions [Osquery result]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"isDonut\": true, \"addTooltip\": true, \"labels\": {\"values\": true, \"last_level\": true, \"truncate\": 100, \"show\": false}, \"legendPosition\": \"right\", \"addLegend\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {\"field\": \"osquery.result.host_identifier\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"osquery.result.columns.platform_like\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"osquery.result.columns.name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"osquery.result.columns.version\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"OS versions [Osquery result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "240f3630-eb05-11e7-8f04-51231daa5b05",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"filebeat-*\",\"key\":\"osquery.result.columns.status\",\"negate\":false,\"params\":{\"query\":\"Live\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"Live\"},\"query\":{\"match\":{\"osquery.result.columns.status\":{\"query\":\"Live\",\"type\":\"phrase\"}}}}],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "f59e21e0-eb03-11e7-8f04-51231daa5b05",
+ "title": "Number of Kernel modules [Osquery Result]",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"gauge\", \"params\": {\"gauge\": {\"gaugeType\": \"Arc\", \"style\": {\"bgWidth\": 0.9, \"subText\": \"\", \"maskBars\": 50, \"labelColor\": true, \"mask\": false, \"bgFill\": \"#eee\", \"bgColor\": false, \"fontSize\": 60, \"bgMask\": false, \"width\": 0.9}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"orientation\": \"vertical\", \"gaugeStyle\": \"Full\", \"type\": \"meter\", \"labels\": {\"color\": \"black\", \"show\": true}, \"gaugeColorMode\": \"Labels\", \"colorsRange\": [{\"to\": 100, \"from\": 0}], \"scale\": {\"color\": \"#333\", \"labels\": false, \"show\": true}, \"verticalSplit\": false, \"percentageMode\": false, \"extendRange\": true, \"backStyle\": \"Full\"}, \"type\": \"gauge\", \"addTooltip\": true, \"isDisplayWarning\": false, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"osquery.result.columns.name\", \"customLabel\": \"Live Kernel modules\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Number of Kernel modules [Osquery Result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ffdbba50-f4a9-11e7-8647-534bb4c21040",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "0fe5dc00-f49b-11e7-8647-534bb4c21040",
+ "title": "Number of rootkits found [Osquery Result]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"params\": {\"type\": \"metric\", \"metric\": {\"style\": {\"bgFill\": \"#000\", \"bgColor\": false, \"fontSize\": 40, \"subText\": \"\", \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"labels\": {\"show\": true}, \"useRanges\": false, \"percentageMode\": false, \"colorsRange\": [{\"to\": 10000, \"from\": 0}], \"metricColorMode\": \"None\"}, \"addTooltip\": true, \"addLegend\": false}, \"aggs\": [{\"params\": {\"field\": \"osquery.result.name\", \"customLabel\": \"Rootkits\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Number of rootkits found [Osquery Result]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Traefik-Access-Remote-IP-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Traefik-Access",
+ "title": "Remote IP Timechart [Filebeat Traefik] [ML]",
+ "uiStateJSON": "{\"vis\": {\"legendOpen\": false}}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per 5 minutes\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"traefik.access.remote_ip\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"ML Traefik Access Remote IP Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ML-Nginx-Access-Remote-IP-Timechart",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "savedSearchId": "ML-Filebeat-Nginx-Access",
+ "title": "Remote IP Timechart [Filebeat Nginx] [ML]",
+ "uiStateJSON": "{\"vis\": {\"legendOpen\": false}}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {\"text\": \"@timestamp per 5 minutes\"}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {}, \"type\": \"count\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"nginx.access.remote_ip\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"ML Nginx Access Remote IP Timechart\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-CPU",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "CPU usage [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": true, \"yAxis\": {}, \"smoothLines\": false, \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"type\": \"avg\", \"params\": {\"field\": \"apache.status.cpu.load\", \"customLabel\": \"CPU load\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"date_histogram\", \"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"id\": \"2\", \"schema\": \"segment\"}, {\"type\": \"terms\", \"params\": {\"orderBy\": \"1\", \"field\": \"apache.status.hostname\", \"size\": 5, \"order\": \"desc\", \"row\": true}, \"id\": \"3\", \"schema\": \"split\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.cpu.user\", \"customLabel\": \"CPU user\"}, \"id\": \"4\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.cpu.system\", \"customLabel\": \"CPU system\"}, \"id\": \"5\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.cpu.children_user\", \"customLabel\": \"CPU children user\"}, \"id\": \"6\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.cpu.children_system\", \"customLabel\": \"CPU children system\"}, \"id\": \"7\", \"schema\": \"metric\"}], \"title\": \"Apache HTTPD - CPU\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Hostname-list",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Hostname list [Metricbeat Apache]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"type\": \"count\", \"params\": {\"customLabel\": \"Events count\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"terms\", \"params\": {\"orderBy\": \"1\", \"field\": \"apache.status.hostname\", \"customLabel\": \"Apache HTTD Hostname\", \"order\": \"desc\", \"size\": 5}, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Apache HTTPD - Hostname list\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Load1-slash-5-slash-15",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Load1/5/15 [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": true, \"yAxis\": {}, \"smoothLines\": false, \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"type\": \"avg\", \"params\": {\"field\": \"apache.status.load.5\", \"customLabel\": \"Load 5\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"date_histogram\", \"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"id\": \"2\", \"schema\": \"segment\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.load.1\", \"customLabel\": \"Load 1\"}, \"id\": \"3\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.load.15\", \"customLabel\": \"Load 15\"}, \"id\": \"4\", \"schema\": \"metric\"}, {\"type\": \"terms\", \"params\": {\"orderBy\": \"1\", \"customLabel\": \"Hostname\", \"field\": \"apache.status.hostname\", \"row\": true, \"order\": \"desc\", \"size\": 5}, \"id\": \"5\", \"schema\": \"split\"}], \"title\": \"Apache HTTPD - Load1/5/15\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Scoreboard",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Scoreboard [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": true, \"yAxis\": {}, \"smoothLines\": false, \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.closing_connection\", \"customLabel\": \"Closing connection\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"date_histogram\", \"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"id\": \"2\", \"schema\": \"segment\"}, {\"type\": \"terms\", \"params\": {\"orderBy\": \"1\", \"customLabel\": \"Hostname\", \"field\": \"apache.status.hostname\", \"row\": true, \"order\": \"desc\", \"size\": 5}, \"id\": \"3\", \"schema\": \"split\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.dns_lookup\", \"customLabel\": \"DNS lookup\"}, \"id\": \"4\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.gracefully_finishing\", \"customLabel\": \"Gracefully finishing\"}, \"id\": \"5\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.idle_cleanup\", \"customLabel\": \"Idle cleanup\"}, \"id\": \"6\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.keepalive\", \"customLabel\": \"Keepalive\"}, \"id\": \"7\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.logging\", \"customLabel\": \"Logging\"}, \"id\": \"8\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.open_slot\", \"customLabel\": \"Open slot\"}, \"id\": \"9\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.reading_request\", \"customLabel\": \"Reading request\"}, \"id\": \"10\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.sending_reply\", \"customLabel\": \"Sending reply\"}, \"id\": \"11\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.starting_up\", \"customLabel\": \"Starting up\"}, \"id\": \"12\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.total\", \"customLabel\": \"Total\"}, \"id\": \"13\", \"schema\": \"metric\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.scoreboard.waiting_for_connection\", \"customLabel\": \"Waiting for connection\"}, \"id\": \"14\", \"schema\": \"metric\"}], \"title\": \"Apache HTTPD - Scoreboard\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Total-accesses-and-kbytes",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Total accesses and kbytes [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"listeners\": {}, \"params\": {\"handleNoResults\": true, \"fontSize\": 60}, \"aggs\": [{\"type\": \"max\", \"params\": {\"field\": \"apache.status.total_kbytes\", \"customLabel\": \"Total kbytes\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"max\", \"params\": {\"field\": \"apache.status.total_accesses\", \"customLabel\": \"Total accesses\"}, \"id\": \"2\", \"schema\": \"metric\"}], \"title\": \"Apache HTTPD - Total accesses and kbytes\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Uptime",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Uptime [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"listeners\": {}, \"params\": {\"handleNoResults\": true, \"fontSize\": 60}, \"aggs\": [{\"type\": \"max\", \"params\": {\"field\": \"apache.status.uptime.uptime\", \"customLabel\": \"Uptime\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"max\", \"params\": {\"field\": \"apache.status.uptime.server_uptime\", \"customLabel\": \"Server uptime\"}, \"id\": \"2\", \"schema\": \"metric\"}], \"title\": \"Apache HTTPD - Uptime\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Apache-HTTPD-Workers",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Apache-HTTPD",
+ "title": "Workers [Metricbeat Apache]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": true, \"yAxis\": {}, \"smoothLines\": false, \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"type\": \"avg\", \"params\": {\"field\": \"apache.status.workers.busy\", \"customLabel\": \"Busy workers\"}, \"id\": \"1\", \"schema\": \"metric\"}, {\"type\": \"date_histogram\", \"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"id\": \"2\", \"schema\": \"segment\"}, {\"type\": \"terms\", \"params\": {\"orderBy\": \"1\", \"customLabel\": \"Hostname\", \"field\": \"apache.status.hostname\", \"row\": true, \"order\": \"desc\", \"size\": 5}, \"id\": \"3\", \"schema\": \"split\"}, {\"type\": \"avg\", \"params\": {\"field\": \"apache.status.workers.idle\", \"customLabel\": \"Idle workers\"}, \"id\": \"4\", \"schema\": \"metric\"}], \"title\": \"Apache HTTPD - Workers\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "58000780-f529-11e6-844d-b170e2f0a07e",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "Heap Summary [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.system.total\\\").label(\\\"System Total Memory\\\").yaxis(label=\\\"Bytes\\\",units=bytes),.es(index=\\\"metricbeat*\\\",metric=\\\"min:golang.heap.allocations.allocated\\\").label(\\\"Bytes Allocated(min)\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.allocations.allocated\\\").label(\\\"Bytes Allocated(max)\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.gc.next_gc_limit\\\").label(\\\"GC Limit\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.gc.pause.count\\\").condition(lt,1, null).points().label(\\\"GC Cycles(count)\\\").yaxis(2,label=\\\"Count\\\")\"}, \"aggs\": [], \"title\": \"Heap Summary [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "95388680-f52a-11e6-969c-518c48c913e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "Heap [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.allocations.total\\\").label(\\\"Heap Total\\\").derivative().movingaverage(30).yaxis(label=\\\"Bytes\\\",units=bytes),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.allocations.active\\\").label(\\\"Heap Inuse\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.allocations.allocated\\\").label(\\\"Heap Allocated\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.allocations.idle\\\").label(\\\"Heap Idle\\\").movingaverage(30)\"}, \"aggs\": [], \"title\": \"Heap [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b59a5200-f52a-11e6-969c-518c48c913e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "Objects [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.allocations.objects\\\").label(\\\"Object Count(avg)\\\").yaxis(1,label=\\\"Count\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.allocations.total\\\").derivative().label(\\\"Allocation Rate\\\").yaxis(2,label=\\\"Rate\\\").movingaverage(30)\"}, \"aggs\": [], \"title\": \"Objects [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9a9a8bf0-f52a-11e6-969c-518c48c913e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "System [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.system.total\\\").label(\\\"System Total\\\").yaxis(label=\\\"Bytes\\\",units=bytes),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.system.obtained\\\").label(\\\"System Obtained\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.system.stack\\\").label(\\\"System Stack\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.system.released\\\").label(\\\"System Released\\\")\"}, \"aggs\": [], \"title\": \"System [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b046cb80-f52a-11e6-969c-518c48c913e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "GC count [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.pause.count\\\").label(\\\"GC Count\\\").bars().yaxis(label=\\\"Count\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.total_count\\\").label(\\\"GC Rate\\\").derivative().movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.cpu_fraction\\\").label(\\\"CPU Fraction\\\").yaxis(2,label=\\\"Fraction\\\")\"}, \"aggs\": [], \"title\": \"GC count [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ab226b50-f52a-11e6-969c-518c48c913e4",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ },
+ "title": "GC durations [Metricbeat Golang]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"10s\", \"expression\": \".es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.pause.sum.ns\\\").bars().label(\\\"sum of GC Pause durations(ns)\\\").yaxis(label=\\\"Durations(ns)\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.total_pause.ns\\\").derivative().movingaverage(30).label(\\\"Total GC Pause(ns) Rate\\\"),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.pause.max.ns\\\").label(\\\"Max GC Pause(ns)\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"avg:golang.heap.gc.pause.avg.ns\\\").label(\\\"Avg GC Pause(ns)\\\").movingaverage(30),.es(index=\\\"metricbeat*\\\",metric=\\\"max:golang.heap.gc.pause.count\\\").condition(lt,1, null).label(\\\"GC Pause count\\\").points().yaxis(2,label=\\\"Count\\\")\"}, \"aggs\": [], \"title\": \"GC durations [Metricbeat Golang]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-hosts",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Hosts [Metricbeat MongoDB]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.connections.current\", \"customLabel\": \"Number of connections\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"metricset.host\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"field\": \"mongodb.status.memory.bits\", \"customLabel\": \"Arch\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.memory.resident.mb\", \"customLabel\": \"Resident memory\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.memory.virtual.mb\", \"customLabel\": \"Virtual memory\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}], \"title\": \"Hosts [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-Engine-ampersand-Version",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Engine & Version [Metricbeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"addTooltip\": true, \"isDonut\": true, \"legendPosition\": \"bottom\", \"addLegend\": true, \"shareYAxis\": true, \"type\": \"pie\"}, \"aggs\": [{\"params\": {\"field\": \"metricset.host\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mongodb.status.storage_engine.name\", \"customLabel\": \"Engine\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"mongodb.status.version\", \"customLabel\": \"Version\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Engine & Version [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-operation-counters",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Operation counters [Metricbeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"type\": \"area\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.ops.counters.command\", \"customLabel\": \"command\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.ops.counters.delete\", \"customLabel\": \"delete\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.ops.counters.getmore\", \"customLabel\": \"getmore\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.ops.counters.insert\", \"customLabel\": \"insert\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.ops.counters.query\", \"customLabel\": \"query\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.ops.replicated.update\", \"customLabel\": \"update\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"7\", \"schema\": \"metric\"}], \"title\": \"Operation counters [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-Concurrent-transactions-Read",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Concurrent transactions Read [Metricbeat MongoDB]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Read Used\": \"#BF1B00\", \"Read Available\": \"#508642\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"type\": \"area\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.wired_tiger.concurrent_transactions.read.available\", \"customLabel\": \"Read Available\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.wired_tiger.concurrent_transactions.read.out\", \"customLabel\": \"Read Used\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}], \"title\": \"Concurrent transactions Read [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-Concurrent-transactions-Write",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Concurrent transactions Write [Metricbeat MongoDB]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Write Used\": \"#BF1B00\", \"Write Available\": \"#629E51\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"type\": \"area\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.wired_tiger.concurrent_transactions.write.available\", \"customLabel\": \"Write Available\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.wired_tiger.concurrent_transactions.write.out\", \"customLabel\": \"Write Used\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}], \"title\": \"Concurrent transactions Write [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-memory-stats",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Memory stats [Metricbeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"params\": {\"scale\": \"log\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"line\"}], \"yAxis\": {}, \"smoothLines\": false, \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"type\": \"line\", \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": true}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.memory.mapped.mb\", \"customLabel\": \"Mapped\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.memory.mapped_with_journal.mb\", \"customLabel\": \"Mapped with journal\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.memory.resident.mb\", \"customLabel\": \"Rezident\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.memory.virtual.mb\", \"customLabel\": \"Virtual\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}], \"title\": \"Memory stats [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-asserts",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "Asserts [Metricbeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"type\": \"area\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.asserts.msg\", \"customLabel\": \"message\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.asserts.regular\", \"customLabel\": \"regular\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.asserts.rollovers\", \"customLabel\": \"rollover\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.asserts.user\", \"customLabel\": \"user\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.asserts.warning\", \"customLabel\": \"warning\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}], \"title\": \"Asserts [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MongoDB-WiredTiger-Cache",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "MongoDB-search",
+ "title": "WiredTiger Cache [Metricbeat MongoDB]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"bottom\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"overlap\", \"type\": \"area\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"mongodb.status.wired_tiger.cache.maximum.bytes\", \"customLabel\": \"max\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"mongodb.status.wired_tiger.cache.used.bytes\", \"customLabel\": \"used\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"mongodb.status.wired_tiger.cache.dirty.bytes\", \"customLabel\": \"dirty\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}], \"title\": \"WiredTiger Cache [Metricbeat MongoDB]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-Clients-Metrics",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Clients [Metricbeat Redis]",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"listeners\": {}, \"params\": {\"addTooltip\": true, \"addLegend\": false, \"fontSize\": 60, \"handleNoResults\": true, \"gauge\": {\"useRange\": false, \"gaugeType\": \"Metric\", \"style\": {\"subText\": \"\", \"bgColor\": false, \"fontSize\": 60, \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"orientation\": \"vertical\", \"gaugeStyle\": \"Full\", \"autoExtend\": false, \"labels\": {\"color\": \"black\", \"show\": true}, \"backStyle\": \"Full\", \"colorsRange\": [{\"to\": 100, \"from\": 0}], \"scale\": {\"color\": \"#333\", \"width\": 2, \"labels\": false, \"show\": false}, \"verticalSplit\": false, \"percentageMode\": false, \"type\": \"simple\", \"gaugeColorMode\": \"None\"}, \"type\": \"gauge\"}, \"aggs\": [{\"params\": {\"field\": \"redis.info.clients.connected\", \"customLabel\": \"Connected clients\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Clients [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-Connected-clients",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Connected clients [Metricbeat Redis]",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Blocked\": \"#C15C17\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"histogram\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"histogram\"}], \"yAxis\": {}, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"grouped\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"redis.info.clients.connected\", \"customLabel\": \"Connected\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"redis.info.clients.blocked\", \"customLabel\": \"Blocked\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}], \"title\": \"Connected clients [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-hosts",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Hosts [Metricbeat Redis]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"listeners\": {}, \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"orderBy\": \"1\", \"field\": \"metricset.host\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}, {\"params\": {\"field\": \"redis.info.server.uptime\", \"customLabel\": \"Uptime (s)\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"redis.info.server.process_id\", \"customLabel\": \"PID\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"6\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"redis.info.memory.used.peak\", \"customLabel\": \"Memory\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"redis.info.cpu.used.user\", \"customLabel\": \"CPU used (user)\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"redis.info.cpu.used.sys\", \"customLabel\": \"CPU used (system)\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"5\", \"schema\": \"metric\"}], \"title\": \"Hosts [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-Server-Versions",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Server Versions [Metricbeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"metricset.host\", \"customLabel\": \"Hosts\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.info.server.version\", \"customLabel\": \"Multiplexing API\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Server Versions [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-server-mode",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Server mode [Metricbeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"metricset.host\", \"customLabel\": \"Hosts\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.info.server.mode\", \"customLabel\": \"Server mode\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Server mode [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-multiplexing-API",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Multiplexing API [Metricbeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"listeners\": {}, \"params\": {\"legendPosition\": \"right\", \"isDonut\": false, \"addTooltip\": true, \"shareYAxis\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"metricset.host\", \"customLabel\": \"Hosts\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.info.server.multiplexing_api\", \"customLabel\": \"Multiplexing API\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}], \"title\": \"Multiplexing API [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Redis-Keyspaces",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Redis",
+ "title": "Keyspaces [Metricbeat Redis]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"area\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"type\": \"area\", \"interpolate\": \"linear\", \"mode\": \"stacked\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}}], \"yAxis\": {}, \"smoothLines\": false, \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"right\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"mode\": \"stacked\", \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"redis.keyspace.keys\", \"customLabel\": \"Number of keys\"}, \"type\": \"avg\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"2h\", \"field\": \"@timestamp\", \"interval\": \"auto\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"redis.keyspace.id\", \"customLabel\": \"Keyspaces\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"group\"}], \"title\": \"Keyspaces [Metricbeat Redis]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "RabbitMQ-Memory-Usage",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Rabbitmq",
+ "title": "Memory Usage [Metricbeat RabbitMQ]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": false, \"yAxis\": {}, \"smoothLines\": true, \"legendPosition\": \"top\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": true, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"rabbitmq.node.mem.used.bytes\", \"customLabel\": \"Used memory\", \"json\": \"\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"30s\", \"field\": \"@timestamp\", \"interval\": \"custom\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"rabbitmq.node.name\", \"customLabel\": \"Node name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"group\"}], \"title\": \"RabbitMQ Memory Usage\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Rabbitmq-Number-of-Nodes",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Rabbitmq",
+ "title": "Number of Nodes [Metricbeat RabbitMQ]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"listeners\": {}, \"params\": {\"handleNoResults\": true, \"fontSize\": 60}, \"aggs\": [{\"params\": {\"field\": \"rabbitmq.node.name\", \"customLabel\": \"RabbitMQ Nodes\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Rabbitmq-Number-of-Nodes\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "RabbitMQ-Erlang-Process-Usage",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Rabbitmq",
+ "title": "Erlang Process Usage [Metricbeat RabbitMQ]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"listeners\": {}, \"params\": {\"scale\": \"linear\", \"showCircles\": false, \"yAxis\": {}, \"smoothLines\": true, \"legendPosition\": \"top\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"radiusRatio\": 9, \"drawLinesBetweenPoints\": true, \"defaultYExtents\": false, \"setYExtents\": false, \"addTooltip\": true, \"times\": []}, \"aggs\": [{\"params\": {\"field\": \"rabbitmq.node.proc.used\", \"customLabel\": \"Used Process\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"30s\", \"field\": \"@timestamp\", \"interval\": \"custom\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"rabbitmq.node.name\", \"customLabel\": \"Node name\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"group\"}], \"title\": \"RabbitMQ Erlang Process Usage\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "RabbitMQ-Queue-Index-Operations",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ },
+ "savedSearchId": "Metricbeat-Rabbitmq",
+ "title": "Queue Index Operations [Metricbeat RabbitMQ]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"line\", \"params\": {\"scale\": \"linear\", \"seriesParams\": [{\"showCircles\": true, \"show\": \"true\", \"data\": {\"id\": \"1\", \"label\": \"Count\"}, \"mode\": \"normal\", \"drawLinesBetweenPoints\": true, \"valueAxis\": \"ValueAxis-1\", \"type\": \"line\"}], \"yAxis\": {}, \"smoothLines\": false, \"times\": [], \"categoryAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\"}, \"show\": true, \"title\": {}, \"labels\": {\"truncate\": 100, \"show\": true}, \"position\": \"bottom\", \"type\": \"category\", \"id\": \"CategoryAxis-1\"}], \"legendPosition\": \"top\", \"addTimeMarker\": false, \"interpolate\": \"linear\", \"addLegend\": true, \"shareYAxis\": true, \"grid\": {\"style\": {\"color\": \"#eee\"}, \"categoryLines\": false}, \"drawLinesBetweenPoints\": true, \"type\": \"line\", \"defaultYExtents\": false, \"radiusRatio\": 9, \"setYExtents\": false, \"addTooltip\": true, \"valueAxes\": [{\"style\": {}, \"scale\": {\"type\": \"linear\", \"mode\": \"normal\"}, \"name\": \"LeftAxis-1\", \"show\": true, \"title\": {\"text\": \"Count\"}, \"labels\": {\"filter\": false, \"rotate\": 0, \"truncate\": 100, \"show\": true}, \"position\": \"left\", \"type\": \"value\", \"id\": \"ValueAxis-1\"}], \"showCircles\": false}, \"aggs\": [{\"params\": {\"field\": \"rabbitmq.node.queue.index.read.count\", \"customLabel\": \"Queue Index Read\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"customInterval\": \"30s\", \"field\": \"@timestamp\", \"interval\": \"custom\", \"min_doc_count\": 1, \"extended_bounds\": {}}, \"type\": \"date_histogram\", \"enabled\": true, \"id\": \"2\", \"schema\": \"segment\"}, {\"params\": {\"field\": \"rabbitmq.node.queue.index.journal_write.count\", \"customLabel\": \"Queue Index Jornal Write\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"3\", \"schema\": \"metric\"}, {\"params\": {\"field\": \"rabbitmq.node.queue.index.write.count\", \"customLabel\": \"Queue Index Write\"}, \"type\": \"max\", \"enabled\": true, \"id\": \"4\", \"schema\": \"metric\"}], \"title\": \"Queue Index Operations [Metricbeat RabbitMQ]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a5058e70-f0ae-11e7-b9ff-9f96241065de",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Overview [Metricbeat uWSGI]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"15s\", \"expression\": \".es(metric=avg:uwsgi.status.total.requests).derivative().label('Requests').title('Overview of requests per period'),\\n.es(metric=avg:uwsgi.status.total.exceptions).derivative().label('Exceptions'),\\n.es(metric=max:uwsgi.status.worker.avg_rt).label('Average response time').yaxis(2)\"}, \"title\": \"Overview [Metricbeat uWSGI]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ac7194b0-f0ae-11e7-b9ff-9f96241065de",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Memory usage [Metricbeat uWSGI]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"15s\", \"expression\": \".es(metric=max:uwsgi.status.worker.rss).label('Currently used (rss)').title('Memory usage'),\\n.es(metric=max:uwsgi.status.worker.vsz).label('Assigned (vsz)').yaxis(2)\"}, \"title\": \"Memory usage [Metricbeat uWSGI]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8c5f96e0-f0ae-11e7-b9ff-9f96241065de",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Workers [Metricbeat uWSGI]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"15s\", \"expression\": \".es(split=uwsgi.status.core.id:16,metric=max:uwsgi.status.core.requests.total).derivative().bars().title('Requests handled by each thread (core) per period')\"}, \"title\": \"Workers [Metricbeat uWSGI]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ba4a80b0-f0ae-11e7-b9ff-9f96241065de",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ },
+ "title": "Errors [Metricbeat uWSGI]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"timelion\", \"params\": {\"interval\": \"15s\", \"expression\": \".es(metric=max:uwsgi.status.total.read_errors).label('Read errors').title('Errors'),\\n.es(metric=max:uwsgi.status.total.write_errors).label('Write errors'),\\n.es(metric=max:uwsgi.status.worker.harakiri_count).label('Timeouted requests')\"}, \"title\": \"Errors [Metricbeat uWSGI]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "23a5fff0-c98e-11e7-9835-2f31fe08873b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b6b7ccc0-c98d-11e7-9835-2f31fe08873b",
+ "title": "Hosts [Metricbeat Windows]",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "version": 1,
+ "visState": "{\"type\": \"table\", \"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}, \"perPage\": 10, \"showPartialRows\": false, \"totalFunc\": \"sum\", \"showTotal\": false, \"showMeticsAtAllLevels\": false}, \"aggs\": [{\"params\": {\"field\": \"windows.service.id\", \"customLabel\": \"Total Services\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"beat.name\", \"customLabel\": \"Host\", \"order\": \"desc\", \"size\": 100}, \"type\": \"terms\", \"enabled\": true, \"id\": \"2\", \"schema\": \"bucket\"}], \"title\": \"Hosts [Metricbeat Windows]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "830c45f0-c991-11e7-9835-2f31fe08873b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b6b7ccc0-c98d-11e7-9835-2f31fe08873b",
+ "title": "Startup States [Metricbeat Windows]",
+ "uiStateJSON": "{}",
+ "version": 1,
+ "visState": "{\"type\": \"pie\", \"params\": {\"legendPosition\": \"right\", \"type\": \"pie\", \"isDonut\": true, \"addTooltip\": true, \"addLegend\": true}, \"aggs\": [{\"params\": {\"field\": \"windows.service.id\", \"customLabel\": \"Service Count\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"windows.service.start_type\", \"customLabel\": \"Startup Type\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"4\", \"schema\": \"segment\"}, {\"params\": {\"orderBy\": \"1\", \"field\": \"windows.service.state\", \"customLabel\": \"State\", \"order\": \"desc\", \"size\": 5}, \"type\": \"terms\", \"enabled\": true, \"id\": \"3\", \"schema\": \"segment\"}], \"title\": \"Startup States [Metricbeat Windows]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "35f5ad60-c996-11e7-9835-2f31fe08873b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b6b7ccc0-c98d-11e7-9835-2f31fe08873b",
+ "title": "Unique Services [Metricbeat Windows]",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"params\": {\"gauge\": {\"useRange\": false, \"gaugeType\": \"Metric\", \"style\": {\"subText\": \"\", \"bgColor\": false, \"fontSize\": 60, \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"orientation\": \"vertical\", \"gaugeStyle\": \"Full\", \"autoExtend\": false, \"labels\": {\"color\": \"black\", \"show\": false}, \"backStyle\": \"Full\", \"colorsRange\": [{\"to\": 100, \"from\": 0}], \"scale\": {\"color\": \"#333\", \"width\": 2, \"labels\": false, \"show\": false}, \"verticalSplit\": false, \"percentageMode\": false, \"type\": \"simple\", \"gaugeColorMode\": \"None\"}, \"type\": \"gauge\", \"addTooltip\": true, \"addLegend\": false}, \"aggs\": [{\"params\": {\"field\": \"windows.service.id\", \"customLabel\": \"Services\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Unique Services [Metricbeat Windows]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c36b2ba0-ca29-11e7-9835-2f31fe08873b",
+ "_type": "visualization",
+ "_source": {
+ "description": "",
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"windows.service.exit_code\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"windows.service.exit_code\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"windows.service.exit_code\",\"negate\":true,\"params\":{\"query\":\"0\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"0\"},\"query\":{\"match\":{\"windows.service.exit_code\":{\"query\":\"0\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"windows.service.exit_code\",\"negate\":true,\"params\":{\"query\":\"ERROR_SERVICE_NEVER_STARTED\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ERROR_SERVICE_NEVER_STARTED\"},\"query\":{\"match\":{\"windows.service.exit_code\":{\"query\":\"ERROR_SERVICE_NEVER_STARTED\",\"type\":\"phrase\"}}}}],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ },
+ "savedSearchId": "b6b7ccc0-c98d-11e7-9835-2f31fe08873b",
+ "title": "Non-zero Service Exit Codes [Metricbeat Windows]",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "version": 1,
+ "visState": "{\"type\": \"metric\", \"params\": {\"gauge\": {\"useRange\": false, \"gaugeType\": \"Metric\", \"style\": {\"subText\": \"\", \"bgColor\": false, \"fontSize\": 60, \"labelColor\": false}, \"colorSchema\": \"Green to Red\", \"invertColors\": false, \"orientation\": \"vertical\", \"gaugeStyle\": \"Full\", \"autoExtend\": false, \"labels\": {\"color\": \"black\", \"show\": false}, \"backStyle\": \"Full\", \"colorsRange\": [{\"to\": 100, \"from\": 0}], \"scale\": {\"color\": \"#333\", \"width\": 2, \"labels\": false, \"show\": false}, \"verticalSplit\": false, \"percentageMode\": false, \"type\": \"simple\", \"gaugeColorMode\": \"None\"}, \"type\": \"gauge\", \"addTooltip\": true, \"addLegend\": false}, \"aggs\": [{\"params\": {\"field\": \"windows.service.id\", \"customLabel\": \"Non-zero Exit Codes\"}, \"type\": \"cardinality\", \"enabled\": true, \"id\": \"1\", \"schema\": \"metric\"}], \"title\": \"Non-zero Service Exit Codes [Metricbeat Windows]\"}"
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dc89f8d0-8e8e-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kafka Metrics [Metricbeat Kafka]",
+ "visState": "{\"type\":\"metric\",\"params\":{\"type\":\"metric\",\"metric\":{\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"fontSize\":32,\"subText\":\"\",\"labelColor\":false},\"colorSchema\":\"Green to Red\",\"invertColors\":false,\"labels\":{\"show\":true},\"useRanges\":false,\"percentageMode\":false,\"colorsRange\":[{\"to\":10000,\"from\":0}],\"metricColorMode\":\"None\"},\"addTooltip\":true,\"addLegend\":false},\"aggs\":[{\"params\":{\"field\":\"kafka.topic.name\",\"customLabel\":\"Topics\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"field\":\"kafka.partition.broker.id\",\"customLabel\":\"Brokers\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"3\",\"schema\":\"metric\"},{\"params\":{\"field\":\"kafka.partition.topic_id\",\"customLabel\":\"Partitions\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"5\",\"schema\":\"metric\"},{\"params\":{\"field\":\"kafka.partition.topic_broker_id\",\"customLabel\":\"Replicas\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"6\",\"schema\":\"metric\"}],\"title\":\"Kafka Metrics [Metricbeat Kafka]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Partition Metricset\",\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"metricset.name\",\"negate\":false,\"params\":{\"query\":\"partition\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"partition\"},\"query\":{\"match\":{\"metricset.name\":{\"query\":\"partition\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"kafka.topic.name\",\"negate\":true,\"params\":{\"query\":\"__consumer_offsets\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"__consumer_offsets\"},\"query\":{\"match\":{\"kafka.topic.name\":{\"query\":\"__consumer_offsets\",\"type\":\"phrase\"}}}}],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d16bb400-f9cc-11e6-8115-a7c18106d86a",
+ "_type": "visualization",
+ "_source": {
+ "title": "Successful SSH logins [Filebeat System]",
+ "visState": "{\"type\":\"histogram\",\"listeners\":{},\"params\":{\"scale\":\"linear\",\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"mode\":\"stacked\",\"defaultYExtents\":false,\"setYExtents\":false,\"addTooltip\":true,\"times\":[]},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"system.auth.ssh.method\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"Successful SSH logins\"}",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Failed\": \"#F9934E\", \"password\": \"#BF1B00\", \"Accepted\": \"#3F6833\", \"Invalid\": \"#447EBC\", \"publickey\": \"#629E51\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"system.auth.ssh.event:Accepted\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "78b74f30-f9cd-11e6-8115-a7c18106d86a",
+ "_type": "visualization",
+ "_source": {
+ "title": "SSH login attempts [Filebeat System]",
+ "visState": "{\"type\":\"histogram\",\"listeners\":{},\"params\":{\"scale\":\"linear\",\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"mode\":\"stacked\",\"defaultYExtents\":false,\"setYExtents\":false,\"addTooltip\":true,\"times\":[]},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"system.auth.ssh.event\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"SSH login attempts\"}",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Failed\": \"#F9934E\", \"Accepted\": \"#3F6833\", \"Invalid\": \"#447EBC\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\"}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3cec3eb0-f9d3-11e6-8a3e-2b904044ea1d",
+ "_type": "visualization",
+ "_source": {
+ "title": "SSH failed login attempts source locations [Filebeat System]",
+ "visState": "{\"type\":\"tile_map\",\"listeners\":{},\"params\":{\"mapCenter\":[15,5],\"heatMaxZoom\":16,\"wms\":{\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"enabled\":false,\"options\":{\"layers\":\"0\",\"styles\":\"\",\"attribution\":\"Maps provided by USGS\",\"format\":\"image/png\",\"version\":\"1.3.0\",\"transparent\":true}},\"heatBlur\":15,\"heatRadius\":25,\"heatMinOpacity\":0.1,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"heatNormalizeData\":true,\"mapType\":\"Shaded Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"field\":\"system.auth.ssh.geoip.location\",\"precision\":2,\"autoPrecision\":true},\"type\":\"geohash_grid\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"SSH failed login attempts source locations\"}",
+ "uiStateJSON": "{\"mapCenter\": [17.602139123350838, 69.697265625], \"mapZoom\": 2}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"system.auth.ssh.event:Failed OR system.auth.ssh.event:Invalid\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Traefik-Access-Browsers",
+ "_type": "visualization",
+ "_source": {
+ "title": "Browsers breakdown [Filebeat Traefik]",
+ "visState": "{\"type\":\"pie\",\"listeners\":{},\"params\":{\"legendPosition\":\"bottom\",\"isDonut\":true,\"addTooltip\":true,\"shareYAxis\":true,\"addLegend\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"traefik.access.user_agent.name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"traefik.access.user_agent.major\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Traefik Access Browsers\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d2864600-478f-11e7-be88-2ddb32f3df97",
+ "_type": "visualization",
+ "_source": {
+ "title": "Logs over time [Filebeat Redis]",
+ "visState": "{\"type\":\"histogram\",\"params\":{\"scale\":\"linear\",\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"histogram\"}],\"type\":\"histogram\",\"times\":[],\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{\"text\":\"@timestamp per month\"},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"interpolate\":\"linear\",\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"drawLinesBetweenPoints\":true,\"defaultYExtents\":false,\"radiusRatio\":9,\"setYExtents\":false,\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Count\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}],\"showCircles\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"redis.log.level\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"Logs over time [Filebeat Redis]\"}",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"notice\": \"#629E51\", \"warning\": \"#EF843C\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:redis.log\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "341ffe70-f9ce-11e6-8115-a7c18106d86a",
+ "_type": "visualization",
+ "_source": {
+ "title": "SSH users of failed login attempts [Filebeat System]",
+ "visState": "{\"type\":\"tagcloud\",\"listeners\":{},\"params\":{\"maxFontSize\":72,\"minFontSize\":18,\"orientation\":\"single\",\"scale\":\"linear\"},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"system.auth.user\",\"order\":\"desc\",\"size\":50},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"SSH users of failed login attempts\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"system.auth.ssh.event:Failed OR system.auth.ssh.event:Invalid\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7fb671f0-aa32-11e8-9c06-877f0445e3e0",
+ "_type": "visualization",
+ "_source": {
+ "title": "Frontend breakdown [Filebeat HAProxy]",
+ "visState": "{\"type\":\"pie\",\"params\":{\"isDonut\":true,\"addTooltip\":true,\"labels\":{\"values\":true,\"last_level\":true,\"truncate\":100,\"show\":false},\"legendPosition\":\"right\",\"addLegend\":true,\"type\":\"pie\"},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"field\":\"haproxy.frontend_name\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Frontend breakdown [Filebeat HAProxy]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "11f8b9c0-aa32-11e8-9c06-877f0445e3e0",
+ "_type": "visualization",
+ "_source": {
+ "title": "IP Geohashes [Filebeat HAProxy]",
+ "visState": "{\"type\":\"tile_map\",\"params\":{\"mapCenter\":[15,5],\"heatMaxZoom\":16,\"wms\":{\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"enabled\":false,\"options\":{\"layers\":\"0\",\"styles\":\"\",\"attribution\":\"Maps provided by USGS\",\"format\":\"image/png\",\"version\":\"1.3.0\",\"transparent\":true}},\"heatBlur\":15,\"heatRadius\":25,\"heatMinOpacity\":0.1,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"heatNormalizeData\":true,\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true},\"aggs\":[{\"params\":{\"field\":\"haproxy.client.ip\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"field\":\"haproxy.geoip.location\",\"isFilteredByCollar\":true,\"precision\":2,\"autoPrecision\":true,\"useGeocentroid\":true},\"type\":\"geohash_grid\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"IP Geohashes [Filebeat HAProxy]\"}",
+ "uiStateJSON": "{\"mapCenter\": [14.944784875088372, 5.09765625]}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "68af8ef0-aa33-11e8-9c06-877f0445e3e0",
+ "_type": "visualization",
+ "_source": {
+ "title": "Response codes over time [Filebeat HAProxy]",
+ "visState": "{\"type\":\"histogram\",\"params\":{\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"histogram\"}],\"type\":\"histogram\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"times\":[],\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Count\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}]},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"_term\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"field\":\"haproxy.http.response.status_code\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"Response codes over time [Filebeat HAProxy]\"}",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#508642\", \"302\": \"#6ED0E0\", \"404\": \"#EAB839\", \"204\": \"#629E51\", \"503\": \"#705DA0\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Nginx-Access-Browsers",
+ "_type": "visualization",
+ "_source": {
+ "title": "Browsers breakdown [Filebeat Nginx]",
+ "visState": "{\"type\":\"pie\",\"listeners\":{},\"params\":{\"legendPosition\":\"bottom\",\"isDonut\":true,\"addTooltip\":true,\"shareYAxis\":true,\"addLegend\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"nginx.access.user_agent.name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"nginx.access.user_agent.major\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Nginx Access Browsers\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Nginx-Access-OSes",
+ "_type": "visualization",
+ "_source": {
+ "title": "Operating systems breakdown [Filebeat Nginx]",
+ "visState": "{\"type\":\"pie\",\"listeners\":{},\"params\":{\"legendPosition\":\"bottom\",\"isDonut\":true,\"addTooltip\":true,\"shareYAxis\":true,\"addLegend\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"nginx.access.user_agent.os_name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"nginx.access.user_agent.os_major\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Nginx Access OSes\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "78b9afe0-478f-11e7-b1f0-cb29bac6bf8b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Log levels and roles breakdown [Filebeat Redis]",
+ "visState": "{\"type\":\"pie\",\"params\":{\"legendPosition\":\"bottom\",\"type\":\"pie\",\"isDonut\":false,\"addTooltip\":true,\"addLegend\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"redis.log.role\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"redis.log.level\",\"customLabel\":\"Log level\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Log levels and roles breakdown [Filebeat Redis]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:redis.log\"}}},\"version\":true}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Traefik-Access-OSes",
+ "_type": "visualization",
+ "_source": {
+ "title": "Operating systems breakdown [Filebeat Traefik]",
+ "visState": "{\"type\":\"pie\",\"listeners\":{},\"params\":{\"legendPosition\":\"bottom\",\"isDonut\":true,\"addTooltip\":true,\"shareYAxis\":true,\"addLegend\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"traefik.access.user_agent.os_name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"traefik.access.user_agent.os_major\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Traefik Access OSes\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Traefik-Access-Response-codes-by-top-URLs",
+ "_type": "visualization",
+ "_source": {
+ "title": "Response codes by top URLs [Filebeat Traefik]",
+ "visState": "{\"type\":\"pie\",\"listeners\":{},\"params\":{\"legendPosition\":\"right\",\"isDonut\":false,\"addTooltip\":true,\"shareYAxis\":true,\"addLegend\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"traefik.access.url\",\"size\":5,\"order\":\"desc\",\"row\":false},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"split\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"traefik.access.response_code\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Traefik Access Response codes by top URLs\"}",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"200\": \"#629E51\", \"404\": \"#0A50A1\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Sent-sizes",
+ "_type": "visualization",
+ "_source": {
+ "title": "Sent Byte Size [Filebeat Traefik]",
+ "visState": "{\"type\":\"line\",\"listeners\":{},\"params\":{\"scale\":\"linear\",\"showCircles\":true,\"yAxis\":{},\"smoothLines\":true,\"legendPosition\":\"right\",\"addTimeMarker\":false,\"interpolate\":\"linear\",\"addLegend\":true,\"shareYAxis\":true,\"radiusRatio\":\"17\",\"drawLinesBetweenPoints\":true,\"defaultYExtents\":false,\"setYExtents\":false,\"addTooltip\":true,\"times\":[]},\"aggs\":[{\"params\":{\"field\":\"traefik.access.body_sent.bytes\",\"customLabel\":\"Data sent\"},\"type\":\"sum\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"3\",\"schema\":\"radius\"}],\"title\":\"Sent sizes\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:traefik.access\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "6295bdd0-0a0e-11e7-825f-6748cda7d858",
+ "_type": "visualization",
+ "_source": {
+ "title": "Event types breakdown [Filebeat Auditd]",
+ "visState": "{\"type\":\"pie\",\"listeners\":{},\"params\":{\"legendPosition\":\"right\",\"isDonut\":true,\"addTooltip\":true,\"addLegend\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"auditd.log.record_type\",\"order\":\"desc\",\"size\":50},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Audit Event Types\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5ebdbe50-0a0f-11e7-825f-6748cda7d858",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top Exec Commands [Filebeat Auditd]",
+ "visState": "{\"type\":\"table\",\"listeners\":{},\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"perPage\":10,\"showPartialRows\":false,\"totalFunc\":\"sum\",\"showTotal\":false,\"showMeticsAtAllLevels\":false},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"auditd.log.a0\",\"customLabel\":\"Command (arg 0)\",\"order\":\"desc\",\"size\":30},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"bucket\"}],\"title\":\"Audit Top Exec Commands\"}",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"auditd.log.record_type:EXECVE\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d1726930-0a7f-11e7-8b04-eb22a5669f27",
+ "_type": "visualization",
+ "_source": {
+ "title": "Event Address Geo Location [Filebeat Auditd]",
+ "visState": "{\"type\":\"tile_map\",\"listeners\":{},\"params\":{\"mapCenter\":[15,5],\"heatMaxZoom\":16,\"wms\":{\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"enabled\":false,\"options\":{\"layers\":\"0\",\"styles\":\"\",\"attribution\":\"Maps provided by USGS\",\"format\":\"image/png\",\"version\":\"1.3.0\",\"transparent\":true}},\"heatBlur\":15,\"heatRadius\":25,\"heatMinOpacity\":0.1,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"heatNormalizeData\":true,\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"field\":\"auditd.log.geoip.location\",\"precision\":2,\"autoPrecision\":true},\"type\":\"geohash_grid\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Audit Event Address Geo Location\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c5411910-0a87-11e7-8b04-eb22a5669f27",
+ "_type": "visualization",
+ "_source": {
+ "title": "Event Account Tag Cloud [Filebeat Auditd]",
+ "visState": "{\"type\":\"tagcloud\",\"listeners\":{},\"params\":{\"maxFontSize\":42,\"scale\":\"linear\",\"hideLabel\":false,\"orientation\":\"single\",\"minFontSize\":15},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"auditd.log.acct\",\"order\":\"desc\",\"size\":15},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Audit Event Account Tag Cloud\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "51164310-fa2b-11e6-bbd3-29c986c96e5a",
+ "_type": "visualization",
+ "_source": {
+ "title": "Sudo errors [Filebeat System]",
+ "visState": "{\"type\":\"histogram\",\"listeners\":{},\"params\":{\"scale\":\"linear\",\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"mode\":\"stacked\",\"defaultYExtents\":false,\"setYExtents\":false,\"addTooltip\":true,\"times\":[]},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"system.auth.sudo.error\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"Sudo errors\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"index\":\"filebeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"_exists_:system.auth.sudo.error\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "eb2db5b0-fe11-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Access map [Filebeat IIS]",
+ "visState": "{\"type\":\"tile_map\",\"params\":{\"mapCenter\":[0,0],\"mapZoom\":2,\"wms\":{\"enabled\":false,\"options\":{\"transparent\":true,\"format\":\"image/png\"}},\"legendPosition\":\"bottomright\",\"heatClusterSize\":1.5,\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"field\":\"iis.access.geoip.location\",\"isFilteredByCollar\":true,\"precision\":2,\"autoPrecision\":true,\"useGeocentroid\":true},\"type\":\"geohash_grid\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Access map [Filebeat IIS]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f31414b0-fe14-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Response codes over time [Filebeat IIS]",
+ "visState": "{\"type\":\"histogram\",\"params\":{\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"histogram\"}],\"type\":\"histogram\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"times\":[],\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Count\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}]},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"iis.access.response_code\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"Response codes over time [Filebeat IIS]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "63129c80-fe12-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Browsers breakdown [Filebeat IIS]",
+ "visState": "{\"type\":\"pie\",\"params\":{\"isDonut\":true,\"addTooltip\":true,\"labels\":{\"values\":true,\"last_level\":true,\"truncate\":100,\"show\":false},\"legendPosition\":\"right\",\"addLegend\":true,\"type\":\"pie\"},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"iis.access.user_agent.name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"iis.access.user_agent.major\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Browsers breakdown [Filebeat IIS]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ccd3f9c0-fe12-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Operating systems breakdown [Filebeat IIS]",
+ "visState": "{\"type\":\"pie\",\"params\":{\"isDonut\":true,\"addTooltip\":true,\"labels\":{\"values\":true,\"last_level\":true,\"truncate\":100,\"show\":false},\"legendPosition\":\"right\",\"addLegend\":true,\"type\":\"pie\"},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"iis.access.user_agent.os_name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"iis.access.user_agent.os_major\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Operating systems breakdown [Filebeat IIS]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "41f38230-fe17-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Error logs over time [Filebeat IIS]",
+ "visState": "{\"type\":\"histogram\",\"params\":{\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"histogram\"}],\"type\":\"histogram\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"times\":[],\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Count\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}]},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"iis.error.response_code\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"Error logs over time [Filebeat IIS]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c0d02cd0-fe1b-11e7-a3b0-d13028918f9f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top URLs by response code [Filebeat IIS]",
+ "visState": "{\"type\":\"pie\",\"params\":{\"isDonut\":false,\"addTooltip\":true,\"labels\":{\"values\":true,\"last_level\":true,\"truncate\":100,\"show\":false},\"legendPosition\":\"right\",\"addLegend\":true,\"type\":\"pie\"},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"customLabel\":\"URL\",\"field\":\"iis.access.url\",\"row\":false,\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"split\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"iis.access.response_code\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Top URLs by response code [Filebeat IIS]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "55251360-aa32-11e8-9c06-877f0445e3e0",
+ "_type": "visualization",
+ "_source": {
+ "title": "Backend breakdown [Filebeat HAProxy]",
+ "visState": "{\"type\":\"pie\",\"params\":{\"isDonut\":true,\"addTooltip\":true,\"labels\":{\"values\":true,\"last_level\":true,\"truncate\":100,\"show\":false},\"legendPosition\":\"right\",\"addLegend\":true,\"type\":\"pie\"},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"field\":\"haproxy.backend_name\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Backend breakdown [Filebeat HAProxy]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"filebeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1681f1a0-90e7-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Consumer Metrics [Metricbeat Kafka]",
+ "visState": "{\"type\":\"metric\",\"params\":{\"type\":\"metric\",\"metric\":{\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"fontSize\":32,\"subText\":\"\",\"labelColor\":false},\"colorSchema\":\"Green to Red\",\"invertColors\":false,\"labels\":{\"show\":true},\"useRanges\":false,\"percentageMode\":false,\"colorsRange\":[{\"to\":10000,\"from\":0}],\"metricColorMode\":\"None\"},\"addTooltip\":true,\"addLegend\":false},\"aggs\":[{\"params\":{\"field\":\"kafka.consumergroup.id\",\"customLabel\":\"Consumer Groups\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"}],\"title\":\"Consumer Metrics [Metricbeat Kafka]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"metricbeat-*\",\"key\":\"kafka.topic.name\",\"negate\":true,\"params\":{\"query\":\"__consumer_offsets\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"__consumer_offsets\"},\"query\":{\"match\":{\"kafka.topic.name\":{\"query\":\"__consumer_offsets\",\"type\":\"phrase\"}}}}],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9a7576e0-d231-11e8-8766-dbbdc39e7ba9",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kafka Consumer Group Clients [Metricbeat Kafka]",
+ "visState": "{\"type\":\"table\",\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"perPage\":10,\"showPartialRows\":false,\"totalFunc\":\"sum\",\"showTotal\":false,\"showMeticsAtAllLevels\":false},\"aggs\":[{\"params\":{\"field\":\"kafka.consumergroup.offset\",\"customLabel\":\"Newest Offset\"},\"type\":\"max\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"_term\",\"missingBucket\":false,\"customLabel\":\"Consumer group client\",\"missingBucketLabel\":\"Missing\",\"field\":\"kafka.consumergroup.client.id\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":64},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"bucket\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"customLabel\":\"Topic\",\"missingBucketLabel\":\"Missing\",\"field\":\"kafka.topic.name\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":64},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"bucket\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"customLabel\":\"Partition\",\"missingBucketLabel\":\"Missing\",\"field\":\"kafka.partition.id\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":256},\"type\":\"terms\",\"enabled\":true,\"id\":\"4\",\"schema\":\"bucket\"}],\"title\":\"Kafka Consumer Group Clients [Metricbeat Kafka]\"}",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7f4bc7d0-050c-11e9-9c60-d582a238e2c5",
+ "_type": "visualization",
+ "_source": {
+ "title": "Lists length [Redis]",
+ "visState": "{\"type\":\"line\",\"params\":{\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"type\":\"line\",\"interpolate\":\"linear\",\"mode\":\"normal\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"data\":{\"id\":\"1\",\"label\":\"Number of elements\"}}],\"type\":\"line\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"times\":[],\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Number of elements\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}]},\"aggs\":[{\"params\":{\"field\":\"redis.key.length\",\"customLabel\":\"Number of elements\"},\"type\":\"max\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"customLabel\":\"Keyspace\",\"missingBucketLabel\":\"Missing\",\"field\":\"redis.keyspace.id\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":16},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"customLabel\":\"Key name\",\"missingBucketLabel\":\"Missing\",\"field\":\"redis.key.name\",\"otherBucketLabel\":\"Other\",\"otherBucket\":true,\"order\":\"desc\",\"size\":20},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"group\"},{\"params\":{\"timeRange\":{\"to\":\"now\",\"from\":\"now-15m\",\"mode\":\"quick\"},\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"time_zone\":\"Europe/Berlin\",\"useNormalizedEsInterval\":true,\"drop_partials\":false,\"min_doc_count\":1,\"customInterval\":\"2h\"},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"4\",\"schema\":\"segment\"}],\"title\":\"Lists length [Redis]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"bc2e8280-0509-11e9-9c60-d582a238e2c5\",\"key\":\"redis.key.type\",\"negate\":false,\"params\":{\"query\":\"list\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"list\"},\"query\":{\"match\":{\"redis.key.type\":{\"query\":\"list\",\"type\":\"phrase\"}}}}],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4435ac40-050e-11e9-9c60-d582a238e2c5",
+ "_type": "visualization",
+ "_source": {
+ "title": "Keys by type [Redis]",
+ "visState": "{\"type\":\"line\",\"params\":{\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Number of keys\"},\"mode\":\"normal\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"line\"}],\"type\":\"line\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"times\":[],\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Number of keys\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}]},\"aggs\":[{\"params\":{\"field\":\"redis.key.id\",\"customLabel\":\"Number of keys\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"customLabel\":\"Key type\",\"missingBucketLabel\":\"Missing\",\"field\":\"redis.key.type\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"group\"},{\"params\":{\"timeRange\":{\"to\":\"now\",\"from\":\"now-15m\",\"mode\":\"quick\"},\"min_doc_count\":1,\"field\":\"@timestamp\",\"customLabel\":\"\",\"interval\":\"auto\",\"time_zone\":\"Europe/Berlin\",\"useNormalizedEsInterval\":true,\"drop_partials\":false,\"extended_bounds\":{},\"customInterval\":\"2h\"},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Keys by type [Redis]\"}",
+ "uiStateJSON": "{\"vis\": {\"legendOpen\": false}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8541a4a0-0513-11e9-9c60-d582a238e2c5",
+ "_type": "visualization",
+ "_source": {
+ "title": "Average string key size [Redis]",
+ "visState": "{\"type\":\"line\",\"params\":{\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Average key size\"},\"mode\":\"normal\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"line\"}],\"type\":\"line\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"times\":[],\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Average key size\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}]},\"aggs\":[{\"params\":{\"field\":\"redis.key.length\",\"customLabel\":\"Average key size\"},\"type\":\"avg\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"customLabel\":\"Keyspace\",\"missingBucketLabel\":\"Missing\",\"field\":\"redis.keyspace.id\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"},{\"params\":{\"timeRange\":{\"to\":\"now\",\"from\":\"now-15m\",\"mode\":\"quick\"},\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"time_zone\":\"Europe/Berlin\",\"useNormalizedEsInterval\":true,\"drop_partials\":false,\"min_doc_count\":1,\"customInterval\":\"2h\"},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Average string key size [Redis]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"bc2e8280-0509-11e9-9c60-d582a238e2c5\",\"key\":\"redis.key.type\",\"negate\":false,\"params\":{\"query\":\"string\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"string\"},\"query\":{\"match\":{\"redis.key.type\":{\"query\":\"string\",\"type\":\"phrase\"}}}}],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "517a5fd0-0514-11e9-9c60-d582a238e2c5",
+ "_type": "visualization",
+ "_source": {
+ "title": "Average keys TTL [Redis]",
+ "visState": "{\"type\":\"line\",\"params\":{\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Average TTL\"},\"mode\":\"normal\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"line\"}],\"type\":\"line\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"times\":[],\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Average TTL\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}]},\"aggs\":[{\"params\":{\"field\":\"redis.key.expire.ttl\",\"customLabel\":\"Average TTL\"},\"type\":\"avg\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"customLabel\":\"Keyspace\",\"missingBucketLabel\":\"Missing\",\"field\":\"redis.keyspace.id\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"4\",\"schema\":\"group\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"customLabel\":\"Key type\",\"missingBucketLabel\":\"Missing\",\"field\":\"redis.key.type\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"group\"},{\"params\":{\"timeRange\":{\"to\":\"now\",\"from\":\"now-15m\",\"mode\":\"quick\"},\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"time_zone\":\"Europe/Berlin\",\"useNormalizedEsInterval\":true,\"drop_partials\":false,\"min_doc_count\":1,\"customInterval\":\"2h\"},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Average keys TTL [Redis]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"bc2e8280-0509-11e9-9c60-d582a238e2c5\",\"key\":\"redis.key.expire.ttl\",\"negate\":false,\"params\":{\"gte\":0,\"lt\":null},\"type\":\"range\",\"value\":\"0 to +∞\"},\"range\":{\"redis.key.expire.ttl\":{\"gte\":0,\"lt\":null}}}],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "eb8277d0-c98c-11e7-9835-2f31fe08873b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Service States [Metricbeat Windows]",
+ "visState": "{\"type\":\"table\",\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"perPage\":10,\"showPartialRows\":false,\"totalFunc\":\"sum\",\"showTotal\":false,\"showMeticsAtAllLevels\":false},\"aggs\":[{\"params\":{\"sortField\":\"@timestamp\",\"customLabel\":\"Latest Report\",\"field\":\"@timestamp\",\"sortOrder\":\"desc\",\"aggregate\":\"concat\",\"size\":1},\"type\":\"top_hits\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"_term\",\"field\":\"windows.service.display_name\",\"customLabel\":\"Service\",\"order\":\"asc\",\"size\":100},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"bucket\"},{\"params\":{\"orderBy\":\"_term\",\"field\":\"beat.name\",\"customLabel\":\"Host\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"5\",\"schema\":\"bucket\"},{\"params\":{\"orderBy\":\"custom\",\"customLabel\":\"State\",\"field\":\"windows.service.state\",\"orderAgg\":{\"params\":{\"field\":\"@timestamp\"},\"type\":\"max\",\"enabled\":true,\"id\":\"3-orderAgg\",\"schema\":{\"group\":\"none\",\"name\":\"orderAgg\",\"min\":0,\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket\",\"!min_bucket\",\"!sum_bucket\"],\"max\":null,\"title\":\"Order Agg\",\"hideCustomLabel\":true,\"params\":[],\"editor\":false,\"deprecate\":false}},\"order\":\"desc\",\"size\":1},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"bucket\"},{\"params\":{\"orderBy\":\"custom\",\"customLabel\":\"Startup Type\",\"field\":\"windows.service.start_type\",\"orderAgg\":{\"params\":{\"field\":\"@timestamp\"},\"type\":\"max\",\"enabled\":true,\"id\":\"4-orderAgg\",\"schema\":{\"group\":\"none\",\"name\":\"orderAgg\",\"min\":0,\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket\",\"!min_bucket\",\"!sum_bucket\"],\"max\":null,\"title\":\"Order Agg\",\"hideCustomLabel\":true,\"params\":[],\"editor\":false,\"deprecate\":false}},\"order\":\"desc\",\"size\":1},\"type\":\"terms\",\"enabled\":true,\"id\":\"4\",\"schema\":\"bucket\"}],\"title\":\"Service States [Metricbeat Windows]\"}",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": null, \"direction\": null}}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8d2f79a0-8e65-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kafka Controls [Metricbeat Kafka]",
+ "visState": "{\"type\":\"input_control_vis\",\"params\":{\"pinFilters\":false,\"useTimeFilter\":false,\"updateFiltersOnChange\":true,\"controls\":[{\"parent\":\"\",\"id\":\"1532342651170\",\"fieldName\":\"kafka.topic.name\",\"indexPattern\":\"metricbeat-*\",\"label\":\"Topic Name\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"order\":\"desc\",\"size\":10}},{\"parent\":\"1532342651170\",\"id\":\"1539799686678\",\"fieldName\":\"kafka.partition.id\",\"indexPattern\":\"metricbeat-*\",\"label\":\"Partition\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"order\":\"desc\",\"size\":5}}]},\"aggs\":[],\"title\":\"Kafka Controls [Metricbeat Kafka]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "944188f0-8e79-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kafka Consumer Group Lag vs Time [Metricbeat Kafka]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"((metricset.name: partition AND kafka.partition.partition.is_leader: true) OR metricset.name: consumergroup) AND NOT kafka.topic.name:__consumer_offsets\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"0.2\",\"formatter\":\"number\",\"id\":\"0dcb8020-8e6d-11e8-bfab-6f29bad3a6f2\",\"label\":\"Consumer Groups\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.offset.newest\",\"id\":\"0dcb8021-8e6d-11e8-bfab-6f29bad3a6f2\",\"type\":\"max\"},{\"field\":\"kafka.consumergroup.offset\",\"id\":\"4bd11db0-8e6f-11e8-bfab-6f29bad3a6f2\",\"type\":\"max\"},{\"id\":\"e0742d50-8e78-11e8-abb3-cf57ca7a810c\",\"script\":\"def lag = params.partition - params.consumergroup; if (lag < 0) { return 0 } return lag\",\"type\":\"calculation\",\"variables\":[{\"field\":\"0dcb8021-8e6d-11e8-bfab-6f29bad3a6f2\",\"id\":\"e20d6af0-8e78-11e8-abb3-cf57ca7a810c\",\"name\":\"partition\"},{\"field\":\"4bd11db0-8e6f-11e8-bfab-6f29bad3a6f2\",\"id\":\"e6cc2b80-8e78-11e8-abb3-cf57ca7a810c\",\"name\":\"consumergroup\"}]}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_color_mode\":\"rainbow\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kafka.topic.name\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Kafka Consumer Group Lag vs Time [Metricbeat Kafka]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "587f2360-8f21-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Consumer Partition Reassignments [Metricbeat Kafka]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_max\":\"1\",\"axis_min\":\"-1\",\"axis_position\":\"right\",\"filter\":\"NOT kafka.topic.name:__consumer_offsets\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0\",\"formatter\":\"number\",\"hide_in_legend\":0,\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Consumer -> Partition Reassignment\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"kafka.consumergroup.partition\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"6b69c760-8f20-11e8-8927-d7e991b5b6ab\",\"type\":\"derivative\",\"unit\":\"\"},{\"id\":\"976f9d80-8f20-11e8-8927-d7e991b5b6ab\",\"script\":\"if (params.sum_partition < 0) { return -1 } else if (params.sum_partition > 0) { return 1 }\",\"type\":\"calculation\",\"variables\":[{\"field\":\"6b69c760-8f20-11e8-8927-d7e991b5b6ab\",\"id\":\"99cc2b20-8f20-11e8-8927-d7e991b5b6ab\",\"name\":\"sum_partition\"}]}],\"point_size\":\"20\",\"seperate_axis\":0,\"split_color_mode\":\"rainbow\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kafka.consumergroup.id\",\"value_template\":\"\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Consumer Partition Reassignments [Metricbeat Kafka]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "27dd5960-d2ed-11e8-8766-dbbdc39e7ba9",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kafka Broker Details [Metricbeat Kafka]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"7fb31e00-d2ec-11e8-88c8-af5b2a9ee6b2\"}],\"filter\":\"\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"pivot_id\":\"kafka.partition.partition.replica\",\"pivot_label\":\"Broker ID\",\"pivot_rows\":\"256\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Topics\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.topic.name\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kafka.broker.id\",\"terms_size\":\"100\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"7e9ee780-d2ef-11e8-9dd4-c5f03280d7b0\"}],\"fill\":0.5,\"filter\":\"kafka.partition.partition.is_leader: true\",\"formatter\":\"number\",\"id\":\"b38e91a0-d2ec-11e8-88c8-af5b2a9ee6b2\",\"label\":\"Leader Partitions\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.topic_id\",\"id\":\"b38eb8b0-d2ec-11e8-88c8-af5b2a9ee6b2\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"d4d9d2c0-d2ec-11e8-88c8-af5b2a9ee6b2\"}],\"fill\":0.5,\"filter\":\"\",\"formatter\":\"number\",\"id\":\"cf09c940-d2ec-11e8-88c8-af5b2a9ee6b2\",\"label\":\"Replicas\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.topic_broker_id\",\"id\":\"cf09f050-d2ec-11e8-88c8-af5b2a9ee6b2\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"table\"},\"title\":\"Kafka Broker Details [Metricbeat Kafka]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{\"table\": {\"sort\": {\"column\": \"cf09c940-d2ec-11e8-88c8-af5b2a9ee6b2\", \"order\": \"asc\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "491fee50-d2f5-11e8-8766-dbbdc39e7ba9",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kafka Topic Details [Metricbeat Kafka]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"f81e47a0-d2f3-11e8-9dd4-c5f03280d7b0\"}],\"filter\":\"NOT kafka.topic.name: __consumer_offsets\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"pivot_id\":\"kafka.topic.name\",\"pivot_label\":\"Topic Name\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"f07881d0-d2f5-11e8-95b9-eb9260148efc\"}],\"fill\":0.5,\"filter\":\" metricset.name: partition\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Brokers\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.broker.id\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"fb759e10-d2f5-11e8-95b9-eb9260148efc\"}],\"fill\":0.5,\"filter\":\" metricset.name: partition\",\"formatter\":\"number\",\"id\":\"7d640440-d2f4-11e8-9dd4-c5f03280d7b0\",\"label\":\"Partitions\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.id\",\"id\":\"7d640441-d2f4-11e8-9dd4-c5f03280d7b0\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"fdb1ab60-d2f5-11e8-95b9-eb9260148efc\"}],\"fill\":0.5,\"filter\":\" metricset.name: partition\",\"formatter\":\"number\",\"id\":\"ad26e260-d2f4-11e8-9dd4-c5f03280d7b0\",\"label\":\"Replicas\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.topic_broker_id\",\"id\":\"ad26e261-d2f4-11e8-9dd4-c5f03280d7b0\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"ff90f2b0-d2f5-11e8-95b9-eb9260148efc\"}],\"fill\":0.5,\"filter\":\" metricset.name: consumergroup\",\"formatter\":\"number\",\"id\":\"26d2cd90-d2f5-11e8-9dd4-c5f03280d7b0\",\"label\":\"Consumers\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.consumergroup.client.id\",\"id\":\"26d2cd91-d2f5-11e8-9dd4-c5f03280d7b0\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"ea4984e0-d2f4-11e8-9dd4-c5f03280d7b0\"}],\"fill\":0.5,\"filter\":\" metricset.name: partition\",\"formatter\":\"number\",\"id\":\"dc390e20-d2f4-11e8-9dd4-c5f03280d7b0\",\"label\":\"Newest Offset\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.offset.newest\",\"id\":\"dc393530-d2f4-11e8-9dd4-c5f03280d7b0\",\"type\":\"max\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"color_rules\":[{\"id\":\"043b67f0-d2f6-11e8-95b9-eb9260148efc\"}],\"fill\":0.5,\"filter\":\" metricset.name: partition\",\"formatter\":\"number\",\"id\":\"11366c80-d2f5-11e8-9dd4-c5f03280d7b0\",\"label\":\"Oldest Offset\",\"line_width\":1,\"metrics\":[{\"field\":\"kafka.partition.offset.oldest\",\"id\":\"11366c81-d2f5-11e8-9dd4-c5f03280d7b0\",\"type\":\"min\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"table\"},\"title\":\"Kafka Topic Details [Metricbeat Kafka]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{\"table\": {\"sort\": {\"column\": \"_default_\", \"order\": \"asc\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a64b4fd0-471c-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Connections [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"4e35d500-471b-11e8-a520-3f46123ab5eb\"}],\"bar_color_rules\":[{\"id\":\"69899960-4719-11e8-a520-3f46123ab5eb\"}],\"filter\":\"haproxy.stat.component_type:(0 OR 1)\",\"gauge_color_rules\":[{\"id\":\"6f171ba0-4719-11e8-a520-3f46123ab5eb\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Number of connections\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"41ff3940-4719-11e8-a520-3f46123ab5eb\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"41ff3940-4719-11e8-a520-3f46123ab5eb\",\"id\":\"456a5fa0-4738-11e8-8633-8f8b3acf1566\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"series_drop_last_bucket\":1,\"split_color_mode\":\"rainbow\",\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"0ceb7740-471a-11e8-a520-3f46123ab5eb\"}],\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.proxy.name\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Connections [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "794b6cd0-471d-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Active servers in backend [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"color\":\"rgba(255,0,6,1)\",\"id\":\"1ec0dde0-471d-11e8-9876-09cc6c85f5f2\",\"operator\":\"lte\",\"value\":0}],\"bar_color_rules\":[{\"id\":\"297160c0-471d-11e8-9876-09cc6c85f5f2\"}],\"filter\":\"haproxy.stat.component_type:(2 OR 3)\",\"gauge_color_rules\":[{\"gauge\":\"rgba(255,0,5,1)\",\"id\":\"4ce156a0-471d-11e8-9876-09cc6c85f5f2\",\"operator\":\"lte\",\"text\":null,\"value\":0},{\"gauge\":\"rgba(255,196,0,1)\",\"id\":\"f8458a80-4721-11e8-b854-2f6d2b452362\",\"operator\":\"lte\",\"value\":0.5}],\"gauge_inner_width\":10,\"gauge_max\":\"1\",\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"haproxy.stat.status:UP\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Active servers\",\"line_width\":1,\"metrics\":[{\"denominator\":\"*\",\"field\":\"haproxy.stat.server.id\",\"id\":\"b754d060-471e-11e8-9876-09cc6c85f5f2\",\"metric_agg\":\"count\",\"numerator\":\"*\",\"script\":\"params.up / (params.down + params.up)\",\"type\":\"cardinality\",\"variables\":[{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"cfd51780-471e-11e8-9d35-6baabcdce3dc\",\"name\":\"down\"},{\"field\":\"a049c420-471e-11e8-9876-09cc6c85f5f2\",\"id\":\"45e6ec00-471f-11e8-9d35-6baabcdce3dc\",\"name\":\"up\"}]}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.proxy.name\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"2cba9420-4724-11e8-b854-2f6d2b452362\",\"label\":\"Total servers\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.server.id\",\"id\":\"2cba9421-4724-11e8-b854-2f6d2b452362\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Active servers in backend [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "bb0ab500-4735-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Connections per server [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"978f2660-4735-11e8-b619-8f82b8185e96\"}],\"drilldown_url\":\"../app/kibana#/dashboard/8cc50a50-47e0-11e8-bc13-1397384faad3?_a=(query:(language:lucene,query:'haproxy.stat.service_name:\\\"{{ key }}\\\"'))\",\"filter\":\"haproxy.stat.component_type:(2 OR 3)\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Connections per server\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"3ea29000-4735-11e8-b619-8f82b8185e96\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.service_name\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Connections per server [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "40bed190-473b-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Downtime seconds [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"c86b8e00-4739-11e8-8953-55bbe33e1362\"}],\"filter\":\"haproxy.stat.component_type:1\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,0,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Downtime\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.downtime\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"91aa6a20-473a-11e8-8953-55bbe33e1362\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"91aa6a20-473a-11e8-8953-55bbe33e1362\",\"id\":\"a8ce7ca0-473a-11e8-8953-55bbe33e1362\",\"sigma\":\"\",\"type\":\"sum_bucket\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.proxy.name\",\"value_template\":\"{{value}}s\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Downtime seconds [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b3463670-47a1-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Average time in queue [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Average time in queue\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.queue.time.avg\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Average time in queue [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "86159190-47c5-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Traffic volume [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(164,221,0,1)\",\"fill\":\"0.5\",\"formatter\":\"bytes\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Incoming\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"haproxy.stat.in.bytes\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"9814c420-47c4-11e8-994c-81d2daeb7c86\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":\"1\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(25,77,51,1)\",\"fill\":\"0.5\",\"formatter\":\"bytes\",\"id\":\"c89d1520-47c4-11e8-994c-81d2daeb7c86\",\"label\":\"Outgoing\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"haproxy.stat.out.bytes\",\"id\":\"c89d6340-47c4-11e8-994c-81d2daeb7c86\",\"type\":\"sum\"},{\"field\":\"c89d6340-47c4-11e8-994c-81d2daeb7c86\",\"id\":\"c89d6341-47c4-11e8-994c-81d2daeb7c86\",\"type\":\"derivative\",\"unit\":\"\"}],\"override_index_pattern\":0,\"point_size\":\"1\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Traffic volume [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "fcbdfa60-47bd-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "HTTP response codes [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"200s\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.http.2xx\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"973a6de0-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"973a6de0-47bd-11e8-b7ab-dff70b15977c\",\"id\":\"4971d580-47e5-11e8-b45e-f10c3845381c\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(64,240,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"aafd05e0-47bd-11e8-b7ab-dff70b15977c\",\"label\":\"300s\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.http.3xx\",\"id\":\"aafd05e1-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"sum\"},{\"field\":\"aafd05e1-47bd-11e8-b7ab-dff70b15977c\",\"id\":\"aafd05e2-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,246,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"c77191a0-47bd-11e8-b7ab-dff70b15977c\",\"label\":\"400s\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.http.4xx\",\"id\":\"c77191a1-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"sum\"},{\"field\":\"c77191a1-47bd-11e8-b7ab-dff70b15977c\",\"id\":\"c77191a2-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,0,4,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"d574e900-47bd-11e8-b7ab-dff70b15977c\",\"label\":\"500s\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.http.5xx\",\"id\":\"d574e901-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"sum\"},{\"field\":\"d574e901-47bd-11e8-b7ab-dff70b15977c\",\"id\":\"d5753720-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,251,255,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"e3b8a4c0-47bd-11e8-b7ab-dff70b15977c\",\"label\":\"Other\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.http.other\",\"id\":\"e3b8a4c1-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"sum\"},{\"field\":\"e3b8a4c1-47bd-11e8-b7ab-dff70b15977c\",\"id\":\"e3b8a4c2-47bd-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(15,20,25,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"f9217d40-47be-11e8-b7ab-dff70b15977c\",\"label\":\"Response errors\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.errors\",\"id\":\"f9217d41-47be-11e8-b7ab-dff70b15977c\",\"type\":\"sum\"},{\"field\":\"f9217d41-47be-11e8-b7ab-dff70b15977c\",\"id\":\"1b7d4400-47bf-11e8-b7ab-dff70b15977c\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"HTTP response codes [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d3166e80-1b91-11e7-bec4-a5e9ec5cab8b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Memory Usage Gauge [Metricbeat System]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"\",\"gauge_color_rules\":[{\"gauge\":\"rgba(104,188,0,1)\",\"id\":\"a0d522e0-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"value\":0},{\"gauge\":\"rgba(254,146,0,1)\",\"id\":\"b45ad8f0-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"value\":0.7},{\"gauge\":\"rgba(211,49,21,1)\",\"id\":\"c06e9550-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"value\":0.85}],\"gauge_inner_width\":10,\"gauge_max\":\"1\",\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"9f51b730-1b91-11e7-bec4-a5e9ec5cab8b\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"9f51b731-1b91-11e7-bec4-a5e9ec5cab8b\",\"label\":\"Memory Usage\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.actual.used.pct\",\"id\":\"9f51b732-1b91-11e7-bec4-a5e9ec5cab8b\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"gauge\"},\"title\":\"Memory Usage Gauge [Metricbeat System]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "022a54c0-2bf5-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "title": "Available pods per deployment [Metricbeat Kubernetes]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"id\":\"117fadf0-30df-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,188,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"64456840-30df-11e7-8df8-6d3604a72912\",\"label\":\"Available pods\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.replicas.available\",\"id\":\"64456841-30df-11e7-8df8-6d3604a72912\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"53d35ad0-30df-11e7-8df8-6d3604a72912\"}],\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.deployment.name\",\"terms_size\":\"10000\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Available pods per deployment [Metricbeat Kubernetes]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "44f12b40-2bf4-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "title": "CPU usage by node [Metricbeat Kubernetes]",
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"12c1f2f0-2bf2-11e7-859b-f78b612cde28\"}],\"bar_color_rules\":[{\"id\":\"1373ddd0-2bf2-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND (metricset.name:container OR metricset.name:state_node)\",\"gauge_color_rules\":[{\"id\":\"140e4910-2bf2-11e7-859b-f78b612cde28\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"0d5c6b10-2bf2-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0.5\",\"formatter\":\"0.0a\",\"id\":\"0d5c9220-2bf2-11e7-859b-f78b612cde28\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.container.cpu.usage.nanocores\",\"id\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"type\":\"sum\"}],\"override_index_pattern\":0,\"point_size\":1,\"seperate_axis\":0,\"series_interval\":\"10s\",\"series_time_field\":\"@timestamp\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"terms_size\":\"10000\",\"value_template\":\"{{value}} nanocores\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(211,49,21,1)\",\"fill\":\"0\",\"formatter\":\"0.0a\",\"hide_in_legend\":1,\"id\":\"22f65d40-31a7-11e7-84cc-096d2b38e6e5\",\"label\":\"\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.node.cpu.capacity.cores\",\"id\":\"22f65d41-31a7-11e7-84cc-096d2b38e6e5\",\"type\":\"avg\"},{\"id\":\"4af4c390-34d6-11e7-be88-cb6a123dc1bb\",\"script\":\"params.cores * 1000000000\",\"type\":\"calculation\",\"variables\":[{\"field\":\"22f65d41-31a7-11e7-84cc-096d2b38e6e5\",\"id\":\"4cd32080-34d6-11e7-be88-cb6a123dc1bb\",\"name\":\"cores\"}]}],\"override_index_pattern\":0,\"point_size\":\"0\",\"seperate_axis\":0,\"series_interval\":\"10s\",\"series_time_field\":\"@timestamp\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"22f65d41-31a7-11e7-84cc-096d2b38e6e5\",\"terms_size\":\"10000\",\"value_template\":\"{{value}} nanocores\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"CPU usage by node [Metricbeat Kubernetes]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "cd059410-2bfb-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kubernetes - Deployments",
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"67ee7da0-30e0-11e7-8df8-6d3604a72912\"}],\"bar_color_rules\":[{\"id\":\"68cdba10-30e0-11e7-8df8-6d3604a72912\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"gauge_color_rules\":[{\"id\":\"69765620-30e0-11e7-8df8-6d3604a72912\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"4c4690b0-30e0-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"4c4690b1-30e0-11e7-8df8-6d3604a72912\",\"label\":\"Deployments\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.name\",\"id\":\"4c4690b2-30e0-11e7-8df8-6d3604a72912\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.deployment.name\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Kubernetes - Deployments\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e1018b90-2bfb-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kubernetes - Desired pods",
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"508ffb30-30d5-11e7-8df8-6d3604a72912\"}],\"bar_color_rules\":[{\"id\":\"674d83b0-30d5-11e7-8df8-6d3604a72912\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"gauge_color_rules\":[{\"id\":\"50f9b980-30d5-11e7-8df8-6d3604a72912\"}],\"gauge_inner_width\":\"10\",\"gauge_max\":\"5\",\"gauge_style\":\"half\",\"gauge_width\":\"10\",\"id\":\"2fe9d3b0-30d5-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"2fe9d3b1-30d5-11e7-8df8-6d3604a72912\",\"label\":\"Desired Pods\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.replicas.desired\",\"id\":\"54cf79a0-30d5-11e7-8df8-6d3604a72912\",\"type\":\"sum\"}],\"override_index_pattern\":1,\"point_size\":1,\"seperate_axis\":0,\"series_interval\":\"10s\",\"series_time_field\":\"@timestamp\",\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Kubernetes - Desired pods\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d6564360-2bfc-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "title": "Memory usage by node [Metricbeat Kubernetes]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"12c1f2f0-2bf2-11e7-859b-f78b612cde28\"}],\"bar_color_rules\":[{\"id\":\"1373ddd0-2bf2-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND (metricset.name:container OR metricset.name:state_node)\",\"gauge_color_rules\":[{\"id\":\"140e4910-2bf2-11e7-859b-f78b612cde28\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"0d5c6b10-2bf2-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"0d5c9220-2bf2-11e7-859b-f78b612cde28\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.container.memory.usage.bytes\",\"id\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"type\":\"sum\"},{\"field\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"id\":\"9f0cf900-1ffb-11e8-81f2-43be86397500\",\"type\":\"cumulative_sum\"},{\"field\":\"9f0cf900-1ffb-11e8-81f2-43be86397500\",\"id\":\"a926e130-1ffb-11e8-81f2-43be86397500\",\"type\":\"derivative\",\"unit\":\"10s\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"terms_size\":\"10000\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(211,49,21,1)\",\"fill\":\"0\",\"formatter\":\"bytes\",\"hide_in_legend\":1,\"id\":\"8ba3b270-31a7-11e7-84cc-096d2b38e6e5\",\"label\":\"Node capacity\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.node.memory.capacity.bytes\",\"id\":\"8ba3b271-31a7-11e7-84cc-096d2b38e6e5\",\"type\":\"sum\"},{\"field\":\"8ba3b271-31a7-11e7-84cc-096d2b38e6e5\",\"id\":\"d1fb2670-1ffb-11e8-81f2-43be86397500\",\"type\":\"cumulative_sum\"},{\"field\":\"d1fb2670-1ffb-11e8-81f2-43be86397500\",\"id\":\"dc8b01f0-1ffb-11e8-81f2-43be86397500\",\"type\":\"derivative\",\"unit\":\"10s\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"8ba3b271-31a7-11e7-84cc-096d2b38e6e5\",\"terms_size\":\"10000\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Memory usage by node [Metricbeat Kubernetes]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1cfb1a80-a1f4-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "title": "Access logs over time [Filebeat Nginx]",
+ "visState": "{\"aggs\":[],\"params\":{\"annotations\":[{\"color\":\"#F00\",\"icon\":\"fa-tag\",\"id\":\"970b1420-a1f3-11e7-a062-a1c3587f4874\",\"ignore_global_filters\":1,\"ignore_panel_filters\":1,\"index_pattern\":\"filebeat-*\",\"time_field\":\"@timestamp\"}],\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"3189aa80-a1f3-11e7-a062-a1c3587f4874\"}],\"filter\":\"fileset.module:nginx AND fileset.name:access\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"filebeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Access logs\",\"line_width\":1,\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"count\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"1db649a0-a1f3-11e7-a062-a1c3587f4874\"}],\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"nginx.access.url\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Access logs over time [Filebeat Nginx]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ab2d1e90-1b1a-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "CPU Usage [Metricbeat System]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"80a04950-1b19-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"80a04951-1b19-11e7-b09e-037021c4f8df\",\"label\":\"user\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.user.pct\",\"id\":\"80a04952-1b19-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(211,49,21,1)\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"993acf30-1b19-11e7-b09e-037021c4f8df\",\"label\":\"system\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.system.pct\",\"id\":\"993acf31-1b19-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(123,100,255,1)\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"65ca35e0-1b1a-11e7-b09e-037021c4f8df\",\"label\":\"nice\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.nice.pct\",\"id\":\"65ca5cf0-1b1a-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(226,115,0,1)\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"741b5f20-1b1a-11e7-b09e-037021c4f8df\",\"label\":\"irq\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.irq.pct\",\"id\":\"741b5f21-1b1a-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(176,188,0,1)\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"2efc5d40-1b1a-11e7-b09e-037021c4f8df\",\"label\":\"softirq\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.softirq.pct\",\"id\":\"2efc5d41-1b1a-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(15,20,25,1)\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"ae644a30-1b19-11e7-b09e-037021c4f8df\",\"label\":\"iowait\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.iowait.pct\",\"id\":\"ae644a31-1b19-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"CPU Usage [Metricbeat System]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "6ec10290-f4aa-11e7-8647-534bb4c21040",
+ "_type": "visualization",
+ "_source": {
+ "title": "Info OSSEC rootkit [Osquery Result]",
+ "visState": "{\"type\":\"markdown\",\"params\":{\"markdown\":\"This dashboard shows data collected by the ossec-rootkit pack from osquery.\",\"fontSize\":12},\"aggs\":[],\"title\":\"Info OSSEC rootkit [Osquery Result]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2d6e0760-f4ab-11e7-8647-534bb4c21040",
+ "_type": "visualization",
+ "_source": {
+ "title": "Navigation [Osquery Result]",
+ "visState": "{\"type\":\"markdown\",\"params\":{\"markdown\":\"[Compilance](#/dashboard/69f5ae20-eb02-11e7-8f04-51231daa5b05) | [OSSEC Rootkit](#/dashboard/c0a7ce90-f4aa-11e7-8647-534bb4c21040)\",\"fontSize\":10},\"aggs\":[],\"title\":\"Navigation [Osquery Result]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4d546850-1b15-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "System Load [Metricbeat System]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"f6264ad0-1b14-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(115,216,255,1)\",\"fill\":\"0\",\"formatter\":\"number\",\"id\":\"f62671e0-1b14-11e7-b09e-037021c4f8df\",\"label\":\"1m\",\"line_width\":\"3\",\"metrics\":[{\"field\":\"system.load.1\",\"id\":\"f62671e1-1b14-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"0\",\"formatter\":\"number\",\"id\":\"1c324850-1b15-11e7-b09e-037021c4f8df\",\"label\":\"5m\",\"line_width\":\"3\",\"metrics\":[{\"field\":\"system.load.5\",\"id\":\"1c324851-1b15-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,98,177,1)\",\"fill\":\"0\",\"formatter\":\"number\",\"id\":\"3287e740-1b15-11e7-b09e-037021c4f8df\",\"label\":\"15m\",\"line_width\":\"3\",\"metrics\":[{\"field\":\"system.load.15\",\"id\":\"32880e50-1b15-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"System Load [Metricbeat System]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "bfa5e400-1b16-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Memory Usage [Metricbeat System]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"32f46f40-1b16-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(211,49,21,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"4ff61fd0-1b16-11e7-b09e-037021c4f8df\",\"label\":\"Used\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.actual.used.bytes\",\"id\":\"4ff61fd1-1b16-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"753a6080-1b16-11e7-b09e-037021c4f8df\",\"label\":\"Cache\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.actual.used.bytes\",\"id\":\"753a6081-1b16-11e7-b09e-037021c4f8df\",\"type\":\"avg\"},{\"field\":\"system.memory.used.bytes\",\"id\":\"7c9d3f00-1b16-11e7-b09e-037021c4f8df\",\"type\":\"avg\"},{\"id\":\"869cc160-1b16-11e7-b09e-037021c4f8df\",\"script\":\"params.actual != null && params.used != null ? params.used - params.actual : null\",\"type\":\"calculation\",\"variables\":[{\"field\":\"753a6081-1b16-11e7-b09e-037021c4f8df\",\"id\":\"890f9620-1b16-11e7-b09e-037021c4f8df\",\"name\":\"actual\"},{\"field\":\"7c9d3f00-1b16-11e7-b09e-037021c4f8df\",\"id\":\"8f3ab7f0-1b16-11e7-b09e-037021c4f8df\",\"name\":\"used\"}]}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"32f46f41-1b16-11e7-b09e-037021c4f8df\",\"label\":\"Free\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.free\",\"id\":\"32f46f42-1b16-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"stacked\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Memory Usage [Metricbeat System]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b9d12c80-8e63-11e8-8fa2-3d5f811fbd0f",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kafka Topic & Consumer Offsets [Metricbeat Kafka]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"8b27e6a0-8e61-11e8-b741-c3e458b74a68\"}],\"filter\":\"NOT kafka.topic.name:__consumer_offsets\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"bar\",\"color\":\"rgba(244,78,59,1)\",\"fill\":\"0.1\",\"filter\":\"metricset.name: partition AND kafka.partition.partition.is_leader: true\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Topic Offsets\",\"line_width\":\"0.5\",\"metrics\":[{\"field\":\"kafka.partition.offset.newest\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_color_mode\":\"rainbow\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kafka.topic.name\",\"terms_order_by\":\"_term\",\"value_template\":\"{{value}}\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(244,78,59,0.52)\",\"fill\":\"0\",\"filter\":\"metricset.name: consumergroup\",\"formatter\":\"number\",\"id\":\"d43034c0-8f1e-11e8-8784-cd0acd161a28\",\"label\":\"Consumer Offsets\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"kafka.consumergroup.offset\",\"id\":\"d43034c1-8f1e-11e8-8784-cd0acd161a28\",\"type\":\"sum\"}],\"point_size\":\"1.5\",\"seperate_axis\":0,\"split_color_mode\":\"rainbow\",\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"dd41ada0-8f1e-11e8-8784-cd0acd161a28\"}],\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kafka.consumergroup.id\",\"terms_order_by\":\"_term\",\"value_template\":\"{{value}}\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Kafka Topic & Consumer Offsets [Metricbeat Kafka]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "26732e20-1b91-11e7-bec4-a5e9ec5cab8b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Load Gauge [Metricbeat System]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"feefabd0-1b90-11e7-bec4-a5e9ec5cab8b\"}],\"gauge_color_rules\":[{\"id\":\"ffd94880-1b90-11e7-bec4-a5e9ec5cab8b\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"fdcc6180-1b90-11e7-bec4-a5e9ec5cab8b\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"fdcc6181-1b90-11e7-bec4-a5e9ec5cab8b\",\"label\":\"5m Load\",\"line_width\":1,\"metrics\":[{\"field\":\"system.load.5\",\"id\":\"fdcc6182-1b90-11e7-bec4-a5e9ec5cab8b\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"gauge\"},\"title\":\"Load Gauge [Metricbeat System]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "19e123b0-4d5a-11e7-aee5-fdc812cc3bec",
+ "_type": "visualization",
+ "_source": {
+ "title": "Swap usage [Metricbeat System]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"\",\"gauge_color_rules\":[{\"gauge\":\"rgba(104,188,0,1)\",\"id\":\"d17c1e90-4d59-11e7-aee5-fdc812cc3bec\",\"operator\":\"gte\",\"value\":0},{\"gauge\":\"rgba(251,158,0,1)\",\"id\":\"fc1d3490-4d59-11e7-aee5-fdc812cc3bec\",\"operator\":\"gte\",\"value\":0.7},{\"gauge\":\"rgba(211,49,21,1)\",\"id\":\"0e204240-4d5a-11e7-aee5-fdc812cc3bec\",\"operator\":\"gte\",\"value\":0.85}],\"gauge_inner_width\":10,\"gauge_max\":\"\",\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"cee2fd20-4d59-11e7-aee5-fdc812cc3bec\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"cee2fd21-4d59-11e7-aee5-fdc812cc3bec\",\"label\":\"Swap usage\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.swap.used.pct\",\"id\":\"cee2fd22-4d59-11e7-aee5-fdc812cc3bec\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"gauge\"},\"title\":\"Swap usage [Metricbeat System]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d2e80340-4d5c-11e7-aa29-87a97a796de6",
+ "_type": "visualization",
+ "_source": {
+ "title": "Memory usage vs total",
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"6f7618b0-4d5c-11e7-aa29-87a97a796de6\"}],\"id\":\"6bc65720-4d5c-11e7-aa29-87a97a796de6\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"6bc65721-4d5c-11e7-aa29-87a97a796de6\",\"label\":\"Memory usage\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.actual.used.bytes\",\"id\":\"6bc65722-4d5c-11e7-aa29-87a97a796de6\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"b8fe6820-4d5c-11e7-aa29-87a97a796de6\",\"label\":\"Total Memory\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.total\",\"id\":\"b8fe6821-4d5c-11e7-aa29-87a97a796de6\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Memory usage vs total\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "96976150-4d5d-11e7-aa29-87a97a796de6",
+ "_type": "visualization",
+ "_source": {
+ "title": "Packetloss [Metricbeat System]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"6ba9b1f0-4d5d-11e7-aa29-87a97a796de6\"}],\"id\":\"6984af10-4d5d-11e7-aa29-87a97a796de6\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"6984af11-4d5d-11e7-aa29-87a97a796de6\",\"label\":\"In Packetloss\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.in.dropped\",\"id\":\"6984af12-4d5d-11e7-aa29-87a97a796de6\",\"type\":\"max\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"ac2e6b30-4d5d-11e7-aa29-87a97a796de6\",\"label\":\"Out Packetloss\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.out.dropped\",\"id\":\"ac2e6b31-4d5d-11e7-aa29-87a97a796de6\",\"type\":\"max\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Packetloss [Metricbeat System]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "3d65d450-a9c3-11e7-af20-67db8aecb295",
+ "_type": "visualization",
+ "_source": {
+ "title": "Tip [Metricbeat System]",
+ "visState": "{\"type\":\"markdown\",\"params\":{\"markdown\":\"**TIP:** To select another host, go to the [System Overview](#/dashboard/Metricbeat-system-overview) dashboard and double-click a host name.\",\"fontSize\":12},\"aggs\":[],\"title\":\"Tip [Metricbeat System]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "981d1040-47be-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Average response time [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"ms,ms,0\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Average response time\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.response.time.avg\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"value_template\":\"{{value}}ms\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Average response time [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "30956d00-47d7-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Requests [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Requests\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.request.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"ad38e2c0-47d6-11e8-994c-81d2daeb7c86\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"ad38e2c0-47d6-11e8-994c-81d2daeb7c86\",\"id\":\"b1ca03a0-47d6-11e8-994c-81d2daeb7c86\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,0,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"c2f30500-47d6-11e8-994c-81d2daeb7c86\",\"label\":\"Request errors\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.request.errors\",\"id\":\"c2f30501-47d6-11e8-994c-81d2daeb7c86\",\"type\":\"max\"},{\"field\":\"c2f30501-47d6-11e8-994c-81d2daeb7c86\",\"id\":\"c2f30502-47d6-11e8-994c-81d2daeb7c86\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"c2f30502-47d6-11e8-994c-81d2daeb7c86\",\"id\":\"c2f30503-47d6-11e8-994c-81d2daeb7c86\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,0,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"11968ce0-47d7-11e8-994c-81d2daeb7c86\",\"label\":\"Denied requests\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.request.denied\",\"id\":\"11968ce1-47d7-11e8-994c-81d2daeb7c86\",\"type\":\"max\"},{\"field\":\"11968ce1-47d7-11e8-994c-81d2daeb7c86\",\"id\":\"11968ce2-47d7-11e8-994c-81d2daeb7c86\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"11968ce2-47d7-11e8-994c-81d2daeb7c86\",\"id\":\"11968ce3-47d7-11e8-994c-81d2daeb7c86\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Requests [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0751ed00-479c-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Average connection time [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0.1\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Percentile\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"haproxy.stat.connection.time.avg\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"percentiles\":[{\"id\":\"9fa517e0-479b-11e8-9590-e34c5ed2dd95\",\"mode\":\"line\",\"percentile\":\"\",\"shade\":0.2,\"value\":\"99\"},{\"id\":\"daafd6e0-479b-11e8-9590-e34c5ed2dd95\",\"mode\":\"line\",\"percentile\":\"\",\"shade\":0.2,\"value\":\"90\"},{\"id\":\"e006b8c0-479b-11e8-9590-e34c5ed2dd95\",\"mode\":\"line\",\"percentile\":\"\",\"shade\":0.2,\"value\":\"50\"}],\"type\":\"percentile\"}],\"point_size\":1,\"seperate_axis\":0,\"split_color_mode\":\"gradient\",\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.service_name\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Average connection time [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "72e84b00-47e1-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Number of server connections [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"haproxy.stat.component_type:(2 OR 3)\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Number of connections\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"22668d40-47e1-11e8-96ee-d767c73d008a\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"22668d40-47e1-11e8-96ee-d767c73d008a\",\"id\":\"2a1d0a00-47e1-11e8-96ee-d767c73d008a\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.service_name\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Number of server connections [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "976b0910-47e4-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Healthcheck [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,0,4,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"198f56e0-47e4-11e8-b45e-f10c3845381c\",\"label\":\"Down\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.downtime\",\"id\":\"198f56e1-47e4-11e8-b45e-f10c3845381c\",\"type\":\"sum\"},{\"field\":\"198f56e1-47e4-11e8-b45e-f10c3845381c\",\"id\":\"dbf38560-47e6-11e8-b45e-f10c3845381c\",\"sigma\":\"\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"dbf38560-47e6-11e8-b45e-f10c3845381c\",\"id\":\"62274b80-47e7-11e8-b45e-f10c3845381c\",\"type\":\"positive_only\",\"unit\":\"\"},{\"id\":\"7b7a7300-47e7-11e8-b45e-f10c3845381c\",\"script\":\"(params.down > 0) ? 1 : 0\",\"type\":\"calculation\",\"variables\":[{\"field\":\"62274b80-47e7-11e8-b45e-f10c3845381c\",\"id\":\"7e577b40-47e7-11e8-b45e-f10c3845381c\",\"name\":\"down\"}]}],\"point_size\":1,\"seperate_axis\":1,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(255,218,0,1)\",\"fill\":0.5,\"formatter\":\"ms,ms,0\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Duration (ms)\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.check.duration\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Healthcheck [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "79350d50-47db-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Servers per connection [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"50830800-47d9-11e8-9db9-274c7a5e25e4\"}],\"drilldown_url\":\"../app/kibana#/dashboard/8cc50a50-47e0-11e8-bc13-1397384faad3?_a=(query:(language:lucene,query:'haproxy.stat.service_name:\\\"{{ key }}\\\"'))\",\"filter\":\"\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"ignore_global_filter\":0,\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"markdown\":\"{{#each _all}}\\n{{ label }}\\n\\n{{/each}}\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"haproxy.stat.component_type:(2 OR 3)\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Servers\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.service_name\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"20\",\"var_name\":\"\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Servers per connection [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8c8f0300-47dc-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Backends per connection [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"4aeddd40-47dc-11e8-9db9-274c7a5e25e4\"}],\"drilldown_url\":\"../app/kibana#/dashboard/0836a4b0-47bd-11e8-bc13-1397384faad3?_a=(query:(language:lucene,query:'haproxy.stat.proxy.name:\\\"{{ key }}\\\"'))\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"haproxy.stat.component_type:1\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Backends\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.proxy.name\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"20\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Backends per connection [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f1e27ed0-47dc-11e8-bc13-1397384faad3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Frontends per connection [Metricbeat HAProxy]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"b81d8640-47dc-11e8-9a25-99b107967d82\"}],\"drilldown_url\":\"../app/kibana#/dashboard/e9057ae0-47c5-11e8-bc13-1397384faad3?_a=(query:(language:lucene,query:'haproxy.stat.proxy.name:\\\"{{ key }}\\\"'))\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":\"haproxy.stat.component_type:0\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Frontends\",\"line_width\":1,\"metrics\":[{\"field\":\"haproxy.stat.connection.total\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"haproxy.stat.proxy.name\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"20\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Frontends per connection [Metricbeat HAProxy]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7cbeb750-5794-11e8-afa2-e9067ea62228",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kubernetes API Server: Top clients by number of requests",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"61a13010-5794-11e8-8bd0-2180975e72dd\"}],\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"5m\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,188,0,1)\",\"fill\":0.5,\"filter\":\"\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Top clients by number of requests (5m)\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.apiserver.request.count\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"0e6ff4a0-5792-11e8-8bd0-2180975e72dd\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"9e4b8030-5792-11e8-8bd0-2180975e72dd\"}],\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.apiserver.request.client\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"10\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Kubernetes API Server: Top clients by number of requests\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ec360ff0-57a0-11e8-afa2-e9067ea62228",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kubernetes API Server: Requests",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(159,5,0,1)\",\"fill\":\"0\",\"filter\":\"NOT (kubernetes.apiserver.request.verb: WATCH or kubernetes.apiserver.request.verb: CONNECT)\",\"formatter\":\"us,ms,2\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Avg response time\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.apiserver.request.latency.sum\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"kubernetes.apiserver.request.count\",\"id\":\"a2185e50-57a0-11e8-af57-a1d645d2b569\",\"type\":\"sum\"},{\"id\":\"b09133d0-57a0-11e8-af57-a1d645d2b569\",\"script\":\"params.sum / params.count\",\"type\":\"calculation\",\"variables\":[{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"b27c8910-57a0-11e8-af57-a1d645d2b569\",\"name\":\"sum\"},{\"field\":\"a2185e50-57a0-11e8-af57-a1d645d2b569\",\"id\":\"b5fc8810-57a0-11e8-af57-a1d645d2b569\",\"name\":\"count\"}]}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"value_template\":\"{{value}} ms\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(22,165,165,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"c0019340-57a1-11e8-a049-ff54cef064a2\",\"label\":\"Requests rate\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.apiserver.request.count\",\"id\":\"c001ba50-57a1-11e8-a049-ff54cef064a2\",\"type\":\"sum\"},{\"field\":\"c001ba50-57a1-11e8-a049-ff54cef064a2\",\"id\":\"dc83b390-57a1-11e8-a049-ff54cef064a2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":1,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Kubernetes API Server: Requests\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "95a7f110-57a2-11e8-afa2-e9067ea62228",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kubernetes API Server: Top clients by resource",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"61a13010-5794-11e8-8bd0-2180975e72dd\"}],\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"5m\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,188,0,1)\",\"fill\":0.5,\"filter\":\"\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Top clients by number of requests (5m)\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.apiserver.request.count\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"0e6ff4a0-5792-11e8-8bd0-2180975e72dd\",\"type\":\"derivative\",\"unit\":\"\"}],\"override_index_pattern\":0,\"point_size\":1,\"seperate_axis\":0,\"series_drop_last_bucket\":1,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"9e4b8030-5792-11e8-8bd0-2180975e72dd\"}],\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.apiserver.request.resource\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"10\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Kubernetes API Server: Top clients by resource\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "System-Navigation",
+ "_type": "visualization",
+ "_source": {
+ "title": "System Navigation [Metricbeat System]",
+ "visState": "{\"type\":\"markdown\",\"params\":{\"markdown\":\"[System Overview](#/dashboard/Metricbeat-system-overview) | [Host Overview](#/dashboard/79ffd6e0-faa0-11e6-947f-177f697178b8) |\\n[Containers overview](#/dashboard/CPU-slash-Memory-per-container)\",\"fontSize\":12},\"aggs\":[],\"title\":\"System Navigation [Metricbeat System]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-Network-IO",
+ "_type": "visualization",
+ "_source": {
+ "title": "Network IO [Metricbeat Docker]",
+ "visState": "{\"type\":\"area\",\"listeners\":{},\"params\":{\"scale\":\"linear\",\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"type\":\"area\",\"interpolate\":\"linear\",\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"data\":{\"id\":\"1\",\"label\":\"Count\"}}],\"yAxis\":{},\"smoothLines\":true,\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"top\",\"addTimeMarker\":false,\"interpolate\":\"linear\",\"addLegend\":true,\"shareYAxis\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"mode\":\"stacked\",\"defaultYExtents\":false,\"setYExtents\":false,\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Count\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}],\"times\":[]},\"aggs\":[{\"params\":{\"field\":\"docker.network.in.bytes\",\"customLabel\":\"IN bytes\"},\"type\":\"max\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"docker.container.name\",\"customLabel\":\"Container name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"},{\"params\":{\"field\":\"docker.network.out.bytes\",\"customLabel\":\"OUT bytes\"},\"type\":\"max\",\"enabled\":true,\"id\":\"4\",\"schema\":\"metric\"}],\"title\":\"Network IO [Metricbeat Docker]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:docker AND metricset.name:network\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "590a60f0-5d87-11e7-8884-1bb4c3b890e4",
+ "_type": "visualization",
+ "_source": {
+ "title": "Number of processes [Metricbeat System]",
+ "visState": "{\"type\":\"metric\",\"listeners\":{},\"params\":{\"gauge\":{\"useRange\":false,\"gaugeType\":\"Metric\",\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"fontSize\":60,\"subText\":\"\",\"labelColor\":false},\"colorSchema\":\"Green to Red\",\"invertColors\":false,\"orientation\":\"vertical\",\"gaugeStyle\":\"Full\",\"autoExtend\":false,\"labels\":{\"color\":\"black\",\"show\":true},\"backStyle\":\"Full\",\"colorsRange\":[{\"to\":100,\"from\":0}],\"scale\":{\"color\":\"#333\",\"width\":2,\"labels\":false,\"show\":false},\"verticalSplit\":false,\"percentageMode\":false,\"type\":\"simple\",\"gaugeColorMode\":\"None\"},\"type\":\"gauge\",\"addTooltip\":true,\"addLegend\":false},\"aggs\":[{\"params\":{\"field\":\"system.process.pid\",\"customLabel\":\"Processes\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"}],\"title\":\"Number of processes [Metricbeat System]\"}",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4e4bb1e0-1b1b-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Disk IO (Bytes) [Metricbeat System]",
+ "visState": "{\"title\":\"Disk IO (Bytes) [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"\",\"id\":\"d3c67db0-1b1a-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(22,165,165,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"d3c67db1-1b1a-11e7-b09e-037021c4f8df\",\"label\":\"reads\",\"line_width\":1,\"metrics\":[{\"field\":\"system.diskio.read.bytes\",\"id\":\"d3c67db2-1b1a-11e7-b09e-037021c4f8df\",\"type\":\"max\"},{\"field\":\"d3c67db2-1b1a-11e7-b09e-037021c4f8df\",\"id\":\"f55b9910-1b1a-11e7-b09e-037021c4f8df\",\"type\":\"derivative\",\"unit\":\"1s\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"value_template\":\"{{value}}/s\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(251,158,0,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"144124d0-1b1b-11e7-b09e-037021c4f8df\",\"label\":\"writes\",\"line_width\":1,\"metrics\":[{\"field\":\"system.diskio.write.bytes\",\"id\":\"144124d1-1b1b-11e7-b09e-037021c4f8df\",\"type\":\"max\"},{\"field\":\"144124d1-1b1b-11e7-b09e-037021c4f8df\",\"id\":\"144124d2-1b1b-11e7-b09e-037021c4f8df\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"id\":\"144124d4-1b1b-11e7-b09e-037021c4f8df\",\"script\":\"params.rate > 0 ? params.rate * -1 : 0\",\"type\":\"calculation\",\"variables\":[{\"field\":\"144124d2-1b1b-11e7-b09e-037021c4f8df\",\"id\":\"144124d3-1b1b-11e7-b09e-037021c4f8df\",\"name\":\"rate\"}]}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"value_template\":\"{{value}}/s\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-CPU-usage",
+ "_type": "visualization",
+ "_source": {
+ "title": "CPU usage [Metricbeat Docker]",
+ "visState": "{\"type\":\"area\",\"listeners\":{},\"params\":{\"scale\":\"linear\",\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"type\":\"area\",\"interpolate\":\"linear\",\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"data\":{\"id\":\"1\",\"label\":\"Count\"}}],\"yAxis\":{},\"smoothLines\":true,\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"top\",\"addTimeMarker\":false,\"interpolate\":\"linear\",\"addLegend\":true,\"shareYAxis\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"mode\":\"stacked\",\"defaultYExtents\":false,\"setYExtents\":false,\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Count\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}],\"times\":[]},\"aggs\":[{\"params\":{\"field\":\"docker.cpu.total.pct\",\"customLabel\":\"Total CPU time\",\"percents\":[75]},\"type\":\"percentiles\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1.75\",\"field\":\"docker.container.name\",\"customLabel\":\"Container name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"CPU usage [Metricbeat Docker]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:docker AND metricset.name:cpu\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-memory-usage",
+ "_type": "visualization",
+ "_source": {
+ "title": "Memory usage [Metricbeat Docker]",
+ "visState": "{\"type\":\"area\",\"listeners\":{},\"params\":{\"scale\":\"linear\",\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"type\":\"area\",\"interpolate\":\"linear\",\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"data\":{\"id\":\"1\",\"label\":\"Count\"}}],\"yAxis\":{},\"smoothLines\":false,\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"top\",\"addTimeMarker\":false,\"interpolate\":\"linear\",\"addLegend\":true,\"shareYAxis\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"mode\":\"stacked\",\"defaultYExtents\":false,\"setYExtents\":false,\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Count\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}],\"times\":[]},\"aggs\":[{\"params\":{\"field\":\"docker.memory.usage.total\",\"customLabel\":\"Memory\"},\"type\":\"max\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"docker.container.name\",\"customLabel\":\"Container name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"Memory usage [Metricbeat Docker]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"index\":\"metricbeat-systems-*\",\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"metricset.module:docker AND metricset.name:memory\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "83e12df0-1b91-11e7-bec4-a5e9ec5cab8b",
+ "_type": "visualization",
+ "_source": {
+ "title": "CPU Usage Gauge [Metricbeat System]",
+ "visState": "{\"title\":\"CPU Usage Gauge [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"\",\"gauge_color_rules\":[{\"value\":0,\"gauge\":\"rgba(104,188,0,1)\",\"id\":\"4ef2c3b0-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"opperator\":\"gt\"},{\"value\":0.7,\"gauge\":\"rgba(254,146,0,1)\",\"id\":\"e6561ae0-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"opperator\":\"gte\"},{\"value\":0.85,\"gauge\":\"rgba(211,49,21,1)\",\"id\":\"ec655040-1b91-11e7-bec4-a5e9ec5cab8b\",\"operator\":\"gte\",\"opperator\":\"gt\"}],\"gauge_inner_width\":10,\"gauge_max\":\"1\",\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"4c9e2550-1b91-11e7-bec4-a5e9ec5cab8b\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"4c9e2551-1b91-11e7-bec4-a5e9ec5cab8b\",\"label\":\"CPU Usage\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.user.pct\",\"id\":\"4c9e2552-1b91-11e7-bec4-a5e9ec5cab8b\",\"type\":\"avg\"},{\"field\":\"system.cpu.system.pct\",\"id\":\"225c2140-5fd7-11e7-a63a-a937b7c1a7e1\",\"type\":\"avg\"},{\"field\":\"system.cpu.cores\",\"id\":\"837a30c0-5fd7-11e7-a63a-a937b7c1a7e1\",\"type\":\"avg\"},{\"id\":\"587aa510-1b91-11e7-bec4-a5e9ec5cab8b\",\"script\":\"params.n > 0 ? (params.user+params.system)/params.n : null\",\"type\":\"calculation\",\"variables\":[{\"field\":\"4c9e2552-1b91-11e7-bec4-a5e9ec5cab8b\",\"id\":\"5a19af10-1b91-11e7-bec4-a5e9ec5cab8b\",\"name\":\"user\"},{\"field\":\"225c2140-5fd7-11e7-a63a-a937b7c1a7e1\",\"id\":\"32b54f80-5fd7-11e7-a63a-a937b7c1a7e1\",\"name\":\"system\"},{\"field\":\"837a30c0-5fd7-11e7-a63a-a937b7c1a7e1\",\"id\":\"8ba6eef0-5fd7-11e7-a63a-a937b7c1a7e1\",\"name\":\"n\"}]}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"beat.hostname.keyword\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"gauge\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "6b7b9a40-faa1-11e6-86b1-cd7735ff7e23",
+ "_type": "visualization",
+ "_source": {
+ "title": "Network Traffic (Packets) [Metricbeat System]",
+ "visState": "{\"title\":\"Network Traffic (Packets) [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"-system.network.name:l*\",\"id\":\"da1046f0-faa0-11e6-86b1-cd7735ff7e23\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"1\",\"formatter\":\"0.[00]a\",\"id\":\"da1046f1-faa0-11e6-86b1-cd7735ff7e23\",\"label\":\"Inbound\",\"line_width\":\"0\",\"metrics\":[{\"field\":\"system.network.in.packets\",\"id\":\"da1046f2-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"max\"},{\"field\":\"da1046f2-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"f41f9280-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"function\":\"sum\",\"id\":\"ecaad010-2c2c-11e7-be71-3162da85303f\",\"type\":\"series_agg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name.keyword\",\"value_template\":\"{{value}}/s\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(250,40,255,1)\",\"fill\":\"1\",\"formatter\":\"0.[00]a\",\"id\":\"fbbd5720-faa0-11e6-86b1-cd7735ff7e23\",\"label\":\"Outbound\",\"line_width\":\"0\",\"metrics\":[{\"field\":\"system.network.out.packets\",\"id\":\"fbbd7e30-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"max\"},{\"field\":\"fbbd7e30-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"fbbd7e31-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"id\":\"17e597a0-faa1-11e6-86b1-cd7735ff7e23\",\"script\":\"params.rate != null && params.rate > 0 ? params.rate * -1 : null\",\"type\":\"calculation\",\"variables\":[{\"field\":\"fbbd7e31-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"1940bad0-faa1-11e6-86b1-cd7735ff7e23\",\"name\":\"rate\"}]},{\"function\":\"sum\",\"id\":\"fe5fbdc0-2c2c-11e7-be71-3162da85303f\",\"type\":\"series_agg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name.keyword\",\"value_template\":\"{{value}}/s\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\",\"show_grid\":1},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "089b85d0-1b16-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Network Traffic (Bytes) [Metricbeat System]",
+ "visState": "{\"title\":\"Network Traffic (Bytes) [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"-system.network.name:l*\",\"id\":\"da1046f0-faa0-11e6-86b1-cd7735ff7e23\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"da1046f1-faa0-11e6-86b1-cd7735ff7e23\",\"label\":\"Inbound \",\"line_width\":\"0\",\"metrics\":[{\"field\":\"system.network.in.bytes\",\"id\":\"da1046f2-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"max\"},{\"field\":\"da1046f2-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"f41f9280-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"function\":\"sum\",\"id\":\"2d533df0-2c2d-11e7-be71-3162da85303f\",\"type\":\"series_agg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name.keyword\",\"value_template\":\"{{value}}/s\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(250,40,255,1)\",\"fill\":\"1\",\"formatter\":\"bytes\",\"id\":\"fbbd5720-faa0-11e6-86b1-cd7735ff7e23\",\"label\":\"Outbound \",\"line_width\":\"0\",\"metrics\":[{\"field\":\"system.network.out.bytes\",\"id\":\"fbbd7e30-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"max\"},{\"field\":\"fbbd7e30-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"fbbd7e31-faa0-11e6-86b1-cd7735ff7e23\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"id\":\"17e597a0-faa1-11e6-86b1-cd7735ff7e23\",\"script\":\"params.rate != null && params.rate > 0 ? params.rate * -1 : null\",\"type\":\"calculation\",\"variables\":[{\"field\":\"fbbd7e31-faa0-11e6-86b1-cd7735ff7e23\",\"id\":\"1940bad0-faa1-11e6-86b1-cd7735ff7e23\",\"name\":\"rate\"}]},{\"function\":\"sum\",\"id\":\"533da9b0-2c2d-11e7-be71-3162da85303f\",\"type\":\"series_agg\"}],\"point_size\":\"0\",\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name.keyword\",\"value_template\":\"{{value}}/s\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\",\"show_grid\":1},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7aac4fd0-30e0-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "title": "Unavailable pods per deployment [Metricbeat Kubernetes]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"id\":\"117fadf0-30df-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(254,146,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"64456840-30df-11e7-8df8-6d3604a72912\",\"label\":\"Unavailable pods\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.replicas.unavailable\",\"id\":\"64456841-30df-11e7-8df8-6d3604a72912\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"53d35ad0-30df-11e7-8df8-6d3604a72912\"}],\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.deployment.name\",\"terms_size\":\"10000\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Unavailable pods per deployment [Metricbeat Kubernetes]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "da1ff7c0-30ed-11e7-b9e5-2b5b07213ab3",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kubernetes - Available pods",
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"508ffb30-30d5-11e7-8df8-6d3604a72912\"}],\"bar_color_rules\":[{\"id\":\"674d83b0-30d5-11e7-8df8-6d3604a72912\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"gauge_color_rules\":[{\"id\":\"50f9b980-30d5-11e7-8df8-6d3604a72912\"}],\"gauge_inner_width\":\"10\",\"gauge_max\":\"5\",\"gauge_style\":\"half\",\"gauge_width\":\"10\",\"id\":\"2fe9d3b0-30d5-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"2fe9d3b1-30d5-11e7-8df8-6d3604a72912\",\"label\":\"Available Pods\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.replicas.available\",\"id\":\"54cf79a0-30d5-11e7-8df8-6d3604a72912\",\"type\":\"sum\"}],\"override_index_pattern\":1,\"point_size\":1,\"seperate_axis\":0,\"series_index_pattern\":\"*\",\"series_interval\":\"10s\",\"series_time_field\":\"@timestamp\",\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Kubernetes - Available pods\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "00d39210-050d-11e9-9c60-d582a238e2c5",
+ "_type": "visualization",
+ "_source": {
+ "title": "Keyspace selector [Redis]",
+ "visState": "{\"type\":\"input_control_vis\",\"params\":{\"pinFilters\":false,\"useTimeFilter\":false,\"updateFiltersOnChange\":true,\"controls\":[{\"parent\":\"\",\"id\":\"1545388837304\",\"fieldName\":\"redis.keyspace.id\",\"indexPattern\":\"bc2e8280-0509-11e9-9c60-d582a238e2c5\",\"label\":\"Keyspace\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"size\":5,\"multiselect\":true,\"dynamicOptions\":true,\"order\":\"desc\"}}]},\"aggs\":[],\"title\":\"Keyspace selector [Redis]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d7e6bee0-f1f3-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "title": "Connections rate [Metricbeat MySQL]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Connections rate\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.connections\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"aee9bbf0-f1f3-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Connections rate [Metricbeat MySQL]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "124dce60-f1f5-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "title": "Running threads [Metricbeat MySQL]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(174,161,255,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Running threads\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.threads.running\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Running threads [Metricbeat MySQL]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "695a4f90-f1f4-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "title": "Command rates [Metricbeat MySQL]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0.2\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"SELECT\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.command.select\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"2d149f90-f1f4-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,204,202,1)\",\"fill\":\"0.2\",\"formatter\":\"number\",\"id\":\"3c2a2a40-f1f4-11e7-a752-236fe3270d99\",\"label\":\"INSERT\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.command.insert\",\"id\":\"3c2a2a41-f1f4-11e7-a752-236fe3270d99\",\"type\":\"avg\"},{\"field\":\"3c2a2a41-f1f4-11e7-a752-236fe3270d99\",\"id\":\"3c2a2a42-f1f4-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(252,220,0,1)\",\"fill\":\"0.2\",\"formatter\":\"number\",\"id\":\"485ce050-f1f4-11e7-a752-236fe3270d99\",\"label\":\"UPDATE\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.command.update\",\"id\":\"485ce051-f1f4-11e7-a752-236fe3270d99\",\"type\":\"avg\"},{\"field\":\"485ce051-f1f4-11e7-a752-236fe3270d99\",\"id\":\"485ce052-f1f4-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(244,78,59,1)\",\"fill\":\"0.2\",\"formatter\":\"number\",\"id\":\"543a4a70-f1f4-11e7-a752-236fe3270d99\",\"label\":\"DELETE\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.command.delete\",\"id\":\"543a4a71-f1f4-11e7-a752-236fe3270d99\",\"type\":\"avg\"},{\"field\":\"543a4a71-f1f4-11e7-a752-236fe3270d99\",\"id\":\"543a4a72-f1f4-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Command rates [Metricbeat MySQL]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "dcbffe30-f1a4-11e7-a9ef-93c69af7b129",
+ "_type": "visualization",
+ "_source": {
+ "title": "Reading / Writing / Waiting Rates [Metricbeat Nginx]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Reading\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.reading\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"b1773680-f1a4-11e7-95d0-8ddf041d42a2\",\"label\":\"Writing\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.writing\",\"id\":\"b1773681-f1a4-11e7-95d0-8ddf041d42a2\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(252,220,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"b68aa6c0-f1a4-11e7-95d0-8ddf041d42a2\",\"label\":\"Waiting\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.waiting\",\"id\":\"b68aa6c1-f1a4-11e7-95d0-8ddf041d42a2\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Reading / Writing / Waiting Rates [Metricbeat Nginx]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "825fdb80-4d1d-11e7-b5f2-2b7c1895bf32",
+ "_type": "visualization",
+ "_source": {
+ "title": "Disk used [Metricbeat System]",
+ "visState": "{\"title\":\"Disk used [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"\",\"gauge_color_rules\":[{\"value\":0,\"gauge\":\"rgba(104,188,0,1)\",\"id\":\"51921d10-4d1d-11e7-b5f2-2b7c1895bf32\",\"operator\":\"gte\",\"opperator\":\"gt\"},{\"value\":0.7,\"gauge\":\"rgba(251,158,0,1)\",\"id\":\"f26de750-4d54-11e7-b5f2-2b7c1895bf32\",\"operator\":\"gte\",\"opperator\":\"gte\"},{\"value\":0.85,\"gauge\":\"rgba(211,49,21,1)\",\"id\":\"fa31d190-4d54-11e7-b5f2-2b7c1895bf32\",\"operator\":\"gte\",\"opperator\":\"gte\"}],\"gauge_inner_width\":10,\"gauge_max\":\"1\",\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"4e4dc780-4d1d-11e7-b5f2-2b7c1895bf32\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"4e4dee90-4d1d-11e7-b5f2-2b7c1895bf32\",\"label\":\"Disk used\",\"line_width\":1,\"metrics\":[{\"field\":\"system.fsstat.total_size.used\",\"id\":\"4e4dee91-4d1d-11e7-b5f2-2b7c1895bf32\",\"type\":\"avg\"},{\"field\":\"system.fsstat.total_size.total\",\"id\":\"57c96ee0-4d54-11e7-b5f2-2b7c1895bf32\",\"type\":\"avg\"},{\"id\":\"6304cca0-4d54-11e7-b5f2-2b7c1895bf32\",\"script\":\"params.total != null && params.total > 0 ? params.used/params.total : null\",\"type\":\"calculation\",\"variables\":[{\"field\":\"4e4dee91-4d1d-11e7-b5f2-2b7c1895bf32\",\"id\":\"6da10430-4d54-11e7-b5f2-2b7c1895bf32\",\"name\":\"used\"},{\"field\":\"57c96ee0-4d54-11e7-b5f2-2b7c1895bf32\",\"id\":\"73b8c510-4d54-11e7-b5f2-2b7c1895bf32\",\"name\":\"total\"}]}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"gauge\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "16fa4470-2bfd-11e7-859b-f78b612cde28",
+ "_type": "visualization",
+ "_source": {
+ "title": "Network in by node [Metricbeat Kubernetes]",
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"12c1f2f0-2bf2-11e7-859b-f78b612cde28\"}],\"bar_color_rules\":[{\"id\":\"1373ddd0-2bf2-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:pod\",\"gauge_color_rules\":[{\"id\":\"140e4910-2bf2-11e7-859b-f78b612cde28\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"0d5c6b10-2bf2-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,188,0,1)\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"0d5c9220-2bf2-11e7-859b-f78b612cde28\",\"label\":\"\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.pod.network.rx.bytes\",\"id\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"type\":\"sum\"},{\"field\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"id\":\"494fc310-2bf7-11e7-859b-f78b612cde28\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"494fc310-2bf7-11e7-859b-f78b612cde28\",\"id\":\"37c72a70-3598-11e7-aa4a-8313a0c92a88\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"terms_size\":\"100000\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Network in by node [Metricbeat Kubernetes]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "294546b0-30d6-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "title": "Network out by node [Metricbeat Kubernetes]",
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"12c1f2f0-2bf2-11e7-859b-f78b612cde28\"}],\"bar_color_rules\":[{\"id\":\"1373ddd0-2bf2-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:pod\",\"gauge_color_rules\":[{\"id\":\"140e4910-2bf2-11e7-859b-f78b612cde28\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"0d5c6b10-2bf2-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(104,188,0,1)\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"0d5c9220-2bf2-11e7-859b-f78b612cde28\",\"label\":\"\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.pod.network.tx.bytes\",\"id\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"type\":\"sum\"},{\"field\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"id\":\"494fc310-2bf7-11e7-859b-f78b612cde28\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"494fc310-2bf7-11e7-859b-f78b612cde28\",\"id\":\"244c70e0-3598-11e7-aa4a-8313a0c92a88\",\"type\":\"positive_only\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"stacked\",\"terms_field\":\"kubernetes.node.name\",\"terms_order_by\":\"0d5c9221-2bf2-11e7-859b-f78b612cde28\",\"terms_size\":\"10000\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Network out by node [Metricbeat Kubernetes]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "408fccf0-30d6-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kubernetes - Nodes",
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"67ee7da0-30e0-11e7-8df8-6d3604a72912\"}],\"bar_color_rules\":[{\"id\":\"68cdba10-30e0-11e7-8df8-6d3604a72912\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:state_node\",\"gauge_color_rules\":[{\"id\":\"69765620-30e0-11e7-8df8-6d3604a72912\"}],\"gauge_inner_width\":10,\"gauge_style\":\"half\",\"gauge_width\":10,\"id\":\"4c4690b0-30e0-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"4c4690b1-30e0-11e7-8df8-6d3604a72912\",\"label\":\"Nodes\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.node.name\",\"id\":\"4c4690b2-30e0-11e7-8df8-6d3604a72912\",\"type\":\"cardinality\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.deployment.name\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Kubernetes - Nodes\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "58e644f0-30d6-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top CPU intensive pods [Metricbeat Kubernetes]",
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"802104d0-2bfc-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:container\",\"id\":\"5d3692a0-2bfc-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"0.0 a\",\"id\":\"5d3692a1-2bfc-11e7-859b-f78b612cde28\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.container.cpu.usage.core.ns\",\"id\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"type\":\"sum\"},{\"field\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"id\":\"6c905240-2bfc-11e7-859b-f78b612cde28\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"field\":\"6c905240-2bfc-11e7-859b-f78b612cde28\",\"id\":\"9a51f710-359d-11e7-aa4a-8313a0c92a88\",\"type\":\"positive_only\",\"unit\":\"\"}],\"offset_time\":\"\",\"override_index_pattern\":0,\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.pod.name\",\"terms_order_by\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"value_template\":\"{{value}} ns\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Top CPU intensive pods [Metricbeat Kubernetes]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a4c9d360-30df-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top memory intensive pods [Metricbeat Kubernetes]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"802104d0-2bfc-11e7-859b-f78b612cde28\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:container\",\"id\":\"5d3692a0-2bfc-11e7-859b-f78b612cde28\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"5d3692a1-2bfc-11e7-859b-f78b612cde28\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.container.memory.usage.bytes\",\"id\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"type\":\"sum\"},{\"field\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"id\":\"3972e9f0-256f-11e8-84e6-87221f87ae3b\",\"type\":\"cumulative_sum\"},{\"field\":\"3972e9f0-256f-11e8-84e6-87221f87ae3b\",\"id\":\"3e9fd5a0-256f-11e8-84e6-87221f87ae3b\",\"type\":\"derivative\",\"unit\":\"10s\"}],\"offset_time\":\"\",\"override_index_pattern\":0,\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"kubernetes.pod.name\",\"terms_order_by\":\"5d3692a2-2bfc-11e7-859b-f78b612cde28\",\"terms_size\":\"10\",\"value_template\":\"\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Top memory intensive pods [Metricbeat Kubernetes]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "174a6ad0-30e0-11e7-8df8-6d3604a72912",
+ "_type": "visualization",
+ "_source": {
+ "title": "Kubernetes - Unavailable pods",
+ "visState": "{\"aggs\":[],\"listeners\":{},\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"508ffb30-30d5-11e7-8df8-6d3604a72912\"}],\"bar_color_rules\":[{\"id\":\"674d83b0-30d5-11e7-8df8-6d3604a72912\"}],\"filter\":\"metricset.module:kubernetes AND metricset.name:state_deployment\",\"gauge_color_rules\":[{\"id\":\"50f9b980-30d5-11e7-8df8-6d3604a72912\"}],\"gauge_inner_width\":\"10\",\"gauge_max\":\"\",\"gauge_style\":\"half\",\"gauge_width\":\"10\",\"id\":\"2fe9d3b0-30d5-11e7-8df8-6d3604a72912\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"2fe9d3b1-30d5-11e7-8df8-6d3604a72912\",\"label\":\"Unavailable Pods\",\"line_width\":1,\"metrics\":[{\"field\":\"kubernetes.deployment.replicas.unavailable\",\"id\":\"54cf79a0-30d5-11e7-8df8-6d3604a72912\",\"type\":\"sum\"}],\"override_index_pattern\":1,\"point_size\":1,\"seperate_axis\":0,\"series_interval\":\"10s\",\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"title\":\"Kubernetes - Unavailable pods\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1c2f8930-231a-11e9-bb66-8baac426dfd4",
+ "_type": "visualization",
+ "_source": {
+ "title": "Alive Connections [Metricbeat Zookeeper]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_min\":\"0\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"0,0.[00]\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Alive connections\",\"line_width\":1,\"metrics\":[{\"field\":\"zookeeper.mntr.num_alive_connections\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"separate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Alive Connections [Metricbeat Zookeeper]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ddb13c60-231b-11e9-bb66-8baac426dfd4",
+ "_type": "visualization",
+ "_source": {
+ "title": "Used file descriptors [Metricbeat Zookeeper]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_min\":\"0\",\"axis_position\":\"left\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0.1\",\"formatter\":\"percent\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Used file descriptors\",\"line_width\":1,\"metrics\":[{\"field\":\"zookeeper.mntr.open_file_descriptor_count\",\"id\":\"b92e4550-231a-11e9-9e57-679640dc0c7c\",\"metric_agg\":\"avg\",\"type\":\"avg\"},{\"field\":\"zookeeper.mntr.max_file_descriptor_count\",\"id\":\"918d0c60-231b-11e9-9e57-679640dc0c7c\",\"type\":\"avg\"},{\"id\":\"7e4d11e0-231b-11e9-9e57-679640dc0c7c\",\"script\":\"params.a/params.b\",\"type\":\"math\",\"variables\":[{\"field\":\"b92e4550-231a-11e9-9e57-679640dc0c7c\",\"id\":\"81c03fa0-231b-11e9-9e57-679640dc0c7c\",\"name\":\"a\"},{\"field\":\"918d0c60-231b-11e9-9e57-679640dc0c7c\",\"id\":\"8a3af6c0-231b-11e9-9e57-679640dc0c7c\",\"name\":\"b\"}]}],\"point_size\":1,\"separate_axis\":1,\"split_mode\":\"everything\",\"stacked\":\"none\",\"value_template\":\"{{value}}\"},{\"axis_min\":\"0\",\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,98,177,1)\",\"fill\":\"0\",\"formatter\":\"0,0.[00]\",\"id\":\"dffaffe0-23cc-11e9-b1ff-37c851471450\",\"label\":\"Open file descriptors\",\"line_width\":\"1\",\"metrics\":[{\"field\":\"zookeeper.mntr.open_file_descriptor_count\",\"id\":\"dffaffe1-23cc-11e9-b1ff-37c851471450\",\"type\":\"avg\"}],\"point_size\":1,\"separate_axis\":1,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Used file descriptors [Metricbeat Zookeeper]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d2f52b50-231c-11e9-bb66-8baac426dfd4",
+ "_type": "visualization",
+ "_source": {
+ "title": "Packets received / sent [Metricbeat Zookeeper]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_min\":\"0\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0\",\"formatter\":\"0,0.[00]\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Packets received\",\"line_width\":\"2\",\"metrics\":[{\"field\":\"zookeeper.mntr.packets.received\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"34949540-231c-11e9-9707-f128cdaa3bf2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":\"0\",\"separate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"5811d190-231c-11e9-9707-f128cdaa3bf2\"}],\"split_mode\":\"terms\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(115,216,255,1)\",\"fill\":\"0\",\"formatter\":\"0,0.[00]\",\"id\":\"753b2e60-231c-11e9-9707-f128cdaa3bf2\",\"label\":\"Packets sent\",\"line_width\":\"2\",\"metrics\":[{\"field\":\"zookeeper.mntr.packets.sent\",\"id\":\"753b2e61-231c-11e9-9707-f128cdaa3bf2\",\"type\":\"avg\"},{\"field\":\"753b2e61-231c-11e9-9707-f128cdaa3bf2\",\"id\":\"7ed33c60-231c-11e9-9707-f128cdaa3bf2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":\"0\",\"separate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Packets received / sent [Metricbeat Zookeeper]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "555df8a0-f1a1-11e7-a9ef-93c69af7b129",
+ "_type": "visualization",
+ "_source": {
+ "title": "Request Rate [Metricbeat Nginx]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Request rate\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.requests\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"396ec980-f1a1-11e7-95d0-8ddf041d42a2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Request Rate [Metricbeat Nginx]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a1d92240-f1a1-11e7-a9ef-93c69af7b129",
+ "_type": "visualization",
+ "_source": {
+ "title": "Accepts and Handled Rate [Metricbeat Nginx]",
+ "visState": "{\"aggs\":[],\"params\":{\"annotations\":[{\"color\":\"#F00\",\"icon\":\"fa-tag\",\"id\":\"8644f980-f1a3-11e7-95d0-8ddf041d42a2\",\"ignore_global_filters\":1,\"ignore_panel_filters\":1,\"index_pattern\":\"*\",\"time_field\":\"@timestamp\"}],\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"0.5\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Accepts rate\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.accepts\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"396ec980-f1a1-11e7-95d0-8ddf041d42a2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_color_mode\":\"gradient\",\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,156,224,1)\",\"fill\":\"0.9\",\"formatter\":\"number\",\"id\":\"56dd33b0-f1a3-11e7-95d0-8ddf041d42a2\",\"label\":\"Handled rate\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.handled\",\"id\":\"56dd33b1-f1a3-11e7-95d0-8ddf041d42a2\",\"type\":\"avg\"},{\"field\":\"56dd33b1-f1a3-11e7-95d0-8ddf041d42a2\",\"id\":\"56dd33b2-f1a3-11e7-95d0-8ddf041d42a2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":\"3\",\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Accepts and Handled Rate [Metricbeat Nginx]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "d763a570-f1a1-11e7-a9ef-93c69af7b129",
+ "_type": "visualization",
+ "_source": {
+ "title": "Drops Rate [Metricbeat Nginx]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(188,0,65,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Drops rate\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.dropped\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"396ec980-f1a1-11e7-95d0-8ddf041d42a2\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Drops Rate [Metricbeat Nginx]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "b70b1b20-a1f4-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "title": "Response codes over time [Filebeat Nginx]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"fileset.module:nginx AND fileset.name:access\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"filebeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"bar\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"\",\"line_width\":1,\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"count\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"filter\":\"nginx.access.response_code:[200 TO 299]\",\"id\":\"5acdc750-a29d-11e7-a062-a1c3587f4874\",\"label\":\"200s\"},{\"color\":\"rgba(252,196,0,1)\",\"filter\":\"nginx.access.response_code:[300 TO 399]\",\"id\":\"6efd2ae0-a29d-11e7-a062-a1c3587f4874\",\"label\":\"300s\"},{\"color\":\"rgba(211,49,21,1)\",\"filter\":\"nginx.access.response_code:[400 TO 499]\",\"id\":\"76089a90-a29d-11e7-a062-a1c3587f4874\",\"label\":\"400s\"},{\"color\":\"rgba(171,20,158,1)\",\"filter\":\"nginx.access.response_code:[500 TO 599]\",\"id\":\"7c7929d0-a29d-11e7-a062-a1c3587f4874\",\"label\":\"500s\"}],\"split_mode\":\"filters\",\"stacked\":\"stacked\",\"terms_field\":\"nginx.access.response_code\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Response codes over time [Filebeat Nginx]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9184fa00-a1f5-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top pages [Filebeat Nginx]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"6252c320-a1f5-11e7-92ba-5d0b8663aece\"}],\"filter\":\"fileset.module:nginx AND fileset.name:access\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"filebeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"line_width\":1,\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"count\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"nginx.access.url\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"value_template\":\"\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"title\":\"Top pages [Filebeat Nginx]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "46322e50-a1f6-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "title": "Errors over time [Filebeat Nginx]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"fileset.module:nginx AND fileset.name:error\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"filebeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"bar\",\"color\":\"rgba(211,49,21,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"line_width\":1,\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"count\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"nginx.error.level\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Errors over time [Filebeat Nginx]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0dd6f320-a29f-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "title": "Data Volume [Filebeat Nginx]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"filter\":\"fileset.module: nginx AND fileset.name: access\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"filebeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.access.body_sent.bytes\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"sum\"}],\"point_size\":1,\"seperate_axis\":0,\"split_filters\":[{\"color\":\"#68BC00\",\"filter\":\"nginx.access.response_code:[200 TO 299]\",\"id\":\"7c343c20-a29e-11e7-a062-a1c3587f4874\",\"label\":\"200s\"}],\"split_mode\":\"everything\",\"stacked\":\"none\",\"terms_field\":null}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Data Volume [Filebeat Nginx]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "97109780-a2a5-11e7-928f-5dbe6f6f5519",
+ "_type": "visualization",
+ "_source": {
+ "title": "Dashboards [Filebeat Nginx]",
+ "visState": "{\"type\":\"markdown\",\"params\":{\"markdown\":\"[Nginx logs overview](#/dashboard/55a9e6e0-a29e-11e7-928f-5dbe6f6f5519) | [Nginx access and error logs](#/dashboard/046212a0-a2a1-11e7-928f-5dbe6f6f5519)\",\"fontSize\":12},\"aggs\":[],\"title\":\"Dashboards [Filebeat Nginx]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "327417e0-8462-11e7-bab8-bd2f0fb42c54",
+ "_type": "visualization",
+ "_source": {
+ "title": "Dashboards [Filebeat System]",
+ "visState": "{\"type\":\"markdown\",\"params\":{\"markdown\":\"[Syslog](#/dashboard/Filebeat-syslog-dashboard) | [Sudo commands](#/dashboard/277876d0-fa2c-11e6-bbd3-29c986c96e5a) | [SSH logins](#/dashboard/5517a150-f9ce-11e6-8115-a7c18106d86a) | [New users and groups](#/dashboard/0d3f2380-fa78-11e6-ae9b-81e5311e8cab)\",\"fontSize\":12},\"aggs\":[],\"title\":\"Dashboards [Filebeat System]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "aaa326b0-f1f5-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "title": "Opened tables rate [Metricbeat MySQL]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(252,196,0,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Opened tables rate\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.opened_tables\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"9972d250-f1f5-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Opened tables rate [Metricbeat MySQL]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "fb1f3f20-f1f5-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "title": "Threads created rate [Metricbeat MySQL]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(123,100,255,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Threads created rate\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.threads.created\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"9972d250-f1f5-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Threads created rate [Metricbeat MySQL]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "f5b35930-f1f6-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "title": "Open files [Metricbeat MySQL]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(22,165,165,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Open files\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.open.files\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Open files [Metricbeat MySQL]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7404feb0-f1f7-11e7-85ab-594b1652e0d1",
+ "_type": "visualization",
+ "_source": {
+ "title": "Sent and received bytes rates [Metricbeat MySQL]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(0,98,177,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"2b1c2390-f1f7-11e7-a752-236fe3270d99\",\"label\":\"Received bytes\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.bytes.received\",\"id\":\"2b1c2391-f1f7-11e7-a752-236fe3270d99\",\"type\":\"avg\"},{\"field\":\"2b1c2391-f1f7-11e7-a752-236fe3270d99\",\"id\":\"2b1c2392-f1f7-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Sent bytes\",\"line_width\":1,\"metrics\":[{\"field\":\"mysql.status.bytes.sent\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"},{\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"id\":\"23cfda50-f1f7-11e7-a752-236fe3270d99\",\"type\":\"derivative\",\"unit\":\"\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Sent and received bytes rates [Metricbeat MySQL]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "8d3b7770-2319-11e9-bb66-8baac426dfd4",
+ "_type": "visualization",
+ "_source": {
+ "title": "Approximate data size [Metricbeat Zookeeper]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_min\":\"0\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Approximate data size\",\"line_width\":1,\"metrics\":[{\"field\":\"zookeeper.mntr.approximate_data_size\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"separate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Approximate data size [Metricbeat Zookeeper]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c0be43c0-2319-11e9-bb66-8baac426dfd4",
+ "_type": "visualization",
+ "_source": {
+ "title": "Latency [Metricbeat Zookeeper]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_min\":\"0\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"ms,ms,2\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"Latency\",\"line_width\":1,\"metrics\":[{\"field\":\"zookeeper.mntr.latency.avg\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"separate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Latency [Metricbeat Zookeeper]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "494fa290-86d2-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top Alerting Hosts [Suricata]",
+ "visState": "{\"type\":\"histogram\",\"params\":{\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"histogram\"}],\"type\":\"histogram\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"times\":[],\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Count\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}]},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"field\":\"host.name\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":10},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"Top Alerting Hosts [Suricata]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "1c2bcec0-86d1-11e8-b59d-21efb914e65c",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "4c913eb0-1f51-11e9-93ed-f7e068f4aebb",
+ "_type": "visualization",
+ "_source": {
+ "title": "Events Timeline [Filebeat Iptables]",
+ "visState": "{\"type\":\"area\",\"params\":{\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"type\":\"area\",\"interpolate\":\"linear\",\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"data\":{\"id\":\"1\",\"label\":\"Count\"}}],\"type\":\"area\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"times\":[],\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Count\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}]},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"time_zone\":\"Europe/Berlin\",\"useNormalizedEsInterval\":true,\"drop_partials\":false,\"min_doc_count\":1,\"customInterval\":\"2h\"},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Events Timeline [Filebeat Iptables]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "b3f1b010-1f26-11e9-8ec4-cf5d91a864b3",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "a59b5e00-2417-11e7-a83b-d5f4cebac9ff",
+ "_type": "visualization",
+ "_source": {
+ "title": "Startup Errors [Filebeat Icinga]",
+ "visState": "{\"type\":\"histogram\",\"listeners\":{},\"params\":{\"scale\":\"linear\",\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"mode\":\"stacked\",\"defaultYExtents\":false,\"setYExtents\":false,\"addTooltip\":true,\"times\":[]},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Startup Errors [Filebeat Icinga]\"}",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Count\": \"#BF1B00\"}}}",
+ "description": "",
+ "savedSearchId": "710043e0-2417-11e7-a83b-d5f4cebac9ff",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MySQL-Slow-queries-over-time",
+ "_type": "visualization",
+ "_source": {
+ "title": "Slow queries over time [Filebeat MySQL]",
+ "visState": "{\"type\":\"histogram\",\"params\":{\"scale\":\"linear\",\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Slow queries\"},\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"histogram\"}],\"yAxis\":{},\"type\":\"histogram\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{\"text\":\"@timestamp per 30 seconds\"},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"shareYAxis\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"mode\":\"stacked\",\"defaultYExtents\":false,\"setYExtents\":false,\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Slow queries\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}],\"times\":[]},\"aggs\":[{\"params\":{\"customLabel\":\"Slow queries\"},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Slow queries over time [Filebeat MySQL]\"}",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Slow queries\": \"#EF843C\"}}}",
+ "description": "",
+ "savedSearchId": "Filebeat-MySQL-Slow-log",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "9d5b5b50-86db-11e8-b59d-21efb914e65c",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top Hosts Generating Events [Suricata]",
+ "visState": "{\"type\":\"histogram\",\"params\":{\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"histogram\"}],\"type\":\"histogram\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"times\":[],\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Count\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}]},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"field\":\"host.name\",\"otherBucketLabel\":\"Other\",\"otherBucket\":false,\"order\":\"desc\",\"size\":10},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"group\"}],\"title\":\"Top Hosts Generating Events [Suricata]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "13dd22f0-86cc-11e8-b59d-21efb914e65c",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "MySQL-error-logs",
+ "_type": "visualization",
+ "_source": {
+ "title": "Error logs over time [Filebeat MySQL]",
+ "visState": "{\"type\":\"histogram\",\"params\":{\"scale\":\"linear\",\"seriesParams\":[{\"showCircles\":true,\"show\":\"true\",\"data\":{\"id\":\"1\",\"label\":\"Error logs\"},\"mode\":\"stacked\",\"drawLinesBetweenPoints\":true,\"valueAxis\":\"ValueAxis-1\",\"type\":\"histogram\"}],\"yAxis\":{},\"type\":\"histogram\",\"categoryAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\"},\"show\":true,\"title\":{\"text\":\"@timestamp per 30 seconds\"},\"labels\":{\"truncate\":100,\"show\":true},\"position\":\"bottom\",\"type\":\"category\",\"id\":\"CategoryAxis-1\"}],\"legendPosition\":\"right\",\"addTimeMarker\":false,\"addLegend\":true,\"shareYAxis\":true,\"grid\":{\"style\":{\"color\":\"#eee\"},\"categoryLines\":false},\"mode\":\"stacked\",\"defaultYExtents\":false,\"setYExtents\":false,\"addTooltip\":true,\"valueAxes\":[{\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"name\":\"LeftAxis-1\",\"show\":true,\"title\":{\"text\":\"Error logs\"},\"labels\":{\"filter\":false,\"rotate\":0,\"truncate\":100,\"show\":true},\"position\":\"left\",\"type\":\"value\",\"id\":\"ValueAxis-1\"}],\"times\":[]},\"aggs\":[{\"params\":{\"customLabel\":\"Error logs\"},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"customInterval\":\"2h\",\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}},\"type\":\"date_histogram\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Error logs over time [Filebeat MySQL]\"}",
+ "uiStateJSON": "{\"vis\": {\"colors\": {\"Count\": \"#447EBC\", \"Error logs\": \"#1F78C1\"}}}",
+ "description": "",
+ "savedSearchId": "Filebeat-MySQL-error-log",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ab587180-f4a9-11e7-8647-534bb4c21040",
+ "_type": "visualization",
+ "_source": {
+ "title": "Number of hosts infected [Osquery Result]",
+ "visState": "{\"type\":\"metric\",\"params\":{\"type\":\"metric\",\"metric\":{\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"fontSize\":40,\"subText\":\"\",\"labelColor\":false},\"colorSchema\":\"Green to Red\",\"invertColors\":false,\"labels\":{\"show\":true},\"useRanges\":false,\"percentageMode\":false,\"colorsRange\":[{\"to\":10000,\"from\":0}],\"metricColorMode\":\"None\"},\"addTooltip\":true,\"addLegend\":false},\"aggs\":[{\"params\":{\"field\":\"beat.hostname\",\"customLabel\":\"Hosts\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"}],\"title\":\"Number of hosts infected [Osquery Result]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "0fe5dc00-f49b-11e7-8647-534bb4c21040",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-containers",
+ "_type": "visualization",
+ "_source": {
+ "title": "Docker containers [Metricbeat Docker]",
+ "visState": "{\"type\":\"table\",\"listeners\":{},\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"perPage\":8,\"showPartialRows\":false,\"totalFunc\":\"sum\",\"showTotal\":true,\"showMeticsAtAllLevels\":false},\"aggs\":[{\"params\":{\"orderBy\":\"1\",\"field\":\"docker.container.name\",\"customLabel\":\"Name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"bucket\"},{\"params\":{\"field\":\"docker.cpu.total.pct\",\"customLabel\":\"CPU usage (%)\"},\"type\":\"max\",\"enabled\":true,\"id\":\"3\",\"schema\":\"metric\"},{\"params\":{\"field\":\"docker.diskio.total\",\"customLabel\":\"DiskIO\"},\"type\":\"max\",\"enabled\":true,\"id\":\"4\",\"schema\":\"metric\"},{\"params\":{\"field\":\"docker.memory.usage.pct\",\"customLabel\":\"Mem (%)\"},\"type\":\"max\",\"enabled\":true,\"id\":\"5\",\"schema\":\"metric\"},{\"params\":{\"field\":\"docker.memory.rss.total\",\"customLabel\":\"Mem RSS\"},\"type\":\"max\",\"enabled\":true,\"id\":\"6\",\"schema\":\"metric\"},{\"params\":{\"field\":\"docker.container.id\",\"customLabel\":\"Number of Containers\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"}],\"title\":\"Docker containers [Metricbeat Docker]\"}",
+ "uiStateJSON": "{\"vis\": {\"params\": {\"sort\": {\"columnIndex\": 1, \"direction\": \"asc\"}}}}",
+ "description": "",
+ "savedSearchId": "Metricbeat-Docker",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-Number-of-Containers",
+ "_type": "visualization",
+ "_source": {
+ "title": "Number of Containers [Metricbeat Docker]",
+ "visState": "{\"type\":\"metric\",\"listeners\":{},\"params\":{\"addTooltip\":true,\"addLegend\":false,\"fontSize\":\"36\",\"handleNoResults\":true,\"gauge\":{\"useRange\":false,\"gaugeType\":\"Metric\",\"style\":{\"subText\":\"\",\"bgColor\":false,\"fontSize\":60,\"labelColor\":false},\"colorSchema\":\"Green to Red\",\"invertColors\":false,\"orientation\":\"vertical\",\"gaugeStyle\":\"Full\",\"autoExtend\":false,\"labels\":{\"color\":\"black\",\"show\":true},\"backStyle\":\"Full\",\"colorsRange\":[{\"to\":100,\"from\":0}],\"scale\":{\"color\":\"#333\",\"width\":2,\"labels\":false,\"show\":false},\"verticalSplit\":false,\"percentageMode\":false,\"type\":\"simple\",\"gaugeColorMode\":\"None\"},\"type\":\"gauge\"},\"aggs\":[{\"params\":{\"field\":\"docker.info.containers.running\",\"customLabel\":\"Running\"},\"type\":\"max\",\"enabled\":true,\"id\":\"2\",\"schema\":\"metric\"},{\"params\":{\"field\":\"docker.info.containers.paused\",\"customLabel\":\"Paused\"},\"type\":\"max\",\"enabled\":true,\"id\":\"3\",\"schema\":\"metric\"},{\"params\":{\"field\":\"docker.info.containers.stopped\",\"customLabel\":\"Stopped\"},\"type\":\"max\",\"enabled\":true,\"id\":\"4\",\"schema\":\"metric\"}],\"title\":\"Number of Containers [Metricbeat Docker]\"}",
+ "uiStateJSON": "{\"vis\": {\"defaultColors\": {\"0 - 100\": \"rgb(0,104,55)\"}}}",
+ "description": "",
+ "savedSearchId": "Metricbeat-Docker",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-images-and-names",
+ "_type": "visualization",
+ "_source": {
+ "title": "Docker images and names [Metricbeat Docker]",
+ "visState": "{\"type\":\"pie\",\"listeners\":{},\"params\":{\"legendPosition\":\"bottom\",\"isDonut\":true,\"addTooltip\":true,\"shareYAxis\":true,\"addLegend\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"docker.container.image\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"docker.container.name\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Docker images and names [Metricbeat Docker]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "Metricbeat-Docker",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Docker-containers-per-host",
+ "_type": "visualization",
+ "_source": {
+ "title": "Docker containers per host [Metricbeat Docker]",
+ "visState": "{\"type\":\"pie\",\"listeners\":{},\"params\":{\"legendPosition\":\"bottom\",\"isDonut\":true,\"addTooltip\":true,\"shareYAxis\":true,\"addLegend\":true},\"aggs\":[{\"params\":{\"field\":\"docker.container.id\",\"customLabel\":\"Number of containers\"},\"type\":\"cardinality\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"beat.hostname\",\"customLabel\":\"Hosts\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"}],\"title\":\"Docker containers per host [Metricbeat Docker]\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "savedSearchId": "Metricbeat-Docker",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[]}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Container-Memory-stats",
+ "_type": "visualization",
+ "_source": {
+ "title": "Container Memory stats [Metricbeat System]",
+ "visState": "{\"title\":\"Container Memory stats [Metricbeat System]\",\"type\":\"table\",\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"perPage\":10,\"showPartialRows\":false,\"totalFunc\":\"sum\",\"showTotal\":false,\"showMeticsAtAllLevels\":false},\"aggs\":[{\"id\":\"13\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.mem.usage.bytes\",\"customLabel\":\"Usage\"}},{\"id\":\"14\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.mem.usage.max.bytes\",\"customLabel\":\"Max usage\"}},{\"id\":\"1\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.stats.page_faults\",\"customLabel\":\"Page faults\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.stats.pages_in\",\"customLabel\":\"Pages in memory\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.stats.pages_out\",\"customLabel\":\"Pages out of memory\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"docker.container.name.keyword\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Container ID\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.stats.inactive_file.bytes\",\"customLabel\":\"Inactive files\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.stats.major_page_faults\",\"customLabel\":\"# Major page faults\"}},{\"id\":\"8\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"docker.container.command.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Process name\"}},{\"id\":\"12\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.mem.failures\",\"customLabel\":\"Failures\"}},{\"id\":\"10\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.kmem_tcp.usage.bytes\",\"customLabel\":\"TCP buffers\"}},{\"id\":\"11\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.stats.rss_huge.bytes\",\"customLabel\":\"Huge pages\"}},{\"id\":\"7\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.stats.rss.bytes\",\"customLabel\":\"Swap caches\"}},{\"id\":\"15\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.memory.stats.swap.bytes\",\"customLabel\":\"Swap usage\"}},{\"id\":\"16\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.blkio.total.ios\",\"customLabel\":\"Block I/O\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"config\":{\"searchKeyword\":\"\"}}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\",\"default_field\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "ed18abb0-c6c7-11ea-9509-2f615d5f26bc",
+ "_type": "visualization",
+ "_source": {
+ "title": "Systems Full",
+ "visState": "{\"title\":\"Systems Full\",\"type\":\"metrics\",\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"table\",\"series\":[{\"id\":\"94afeb50-c6c7-11ea-9c16-09f8bdd48f2a\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"metrics\":[{\"id\":\"94afeb51-c6c7-11ea-9c16-09f8bdd48f2a\",\"type\":\"max\",\"field\":\"system.load.norm.1\"}],\"seperate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"label\":\"CPU load\",\"color_rules\":[{\"id\":\"ab003310-c6c7-11ea-9c16-09f8bdd48f2a\"}],\"filter\":\"\",\"aggregate_by\":\"system.load.norm.1\",\"aggregate_function\":\"max\",\"trend_arrows\":1},{\"id\":\"35935bb0-c6c8-11ea-9c16-09f8bdd48f2a\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"metrics\":[{\"id\":\"35935bb1-c6c8-11ea-9c16-09f8bdd48f2a\",\"type\":\"max\",\"field\":\"system.memory.actual.used.pct\"}],\"seperate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"label\":\"Mem Used\",\"color_rules\":[{\"id\":\"f6ecfbe0-c826-11ea-9c16-09f8bdd48f2a\"}],\"aggregate_by\":\"system.memory.actual.used.pct\",\"aggregate_function\":\"max\",\"trend_arrows\":1},{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\",\"field\":\"system.diskio.iostat.busy\"}],\"seperate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"color_rules\":[{\"id\":\"6e1653d0-c6c7-11ea-9c16-09f8bdd48f2a\"}],\"aggregate_by\":\"system.diskio.iostat.busy\",\"label\":\"Disk I/O Busy\",\"trend_arrows\":1,\"aggregate_function\":\"max\"}],\"time_field\":\"@timestamp\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"show_legend\":1,\"show_grid\":1,\"bar_color_rules\":[{\"id\":\"33e4b6c0-c6c7-11ea-9c16-09f8bdd48f2a\"}],\"pivot_id\":\"beat.hostname.keyword\",\"pivot_label\":\"Hosts\",\"pivot_rows\":\"50\"},\"aggs\":[]}",
+ "uiStateJSON": "{\"table\":{\"sort\":{\"column\":\"_default_\",\"order\":\"asc\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Container-CPU-usage",
+ "_type": "visualization",
+ "_source": {
+ "title": "Container CPU usage [Metricbeat System]",
+ "visState": "{\"title\":\"Container CPU usage [Metricbeat System]\",\"type\":\"table\",\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"perPage\":10,\"showPartialRows\":false,\"totalFunc\":\"sum\",\"showTotal\":false,\"showMeticsAtAllLevels\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.cpuacct.stats.user.ns\",\"customLabel\":\"CPU user\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.cpu.cfs.quota.us\",\"customLabel\":\"CPU quota\"}},{\"id\":\"7\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"beat.hostname.keyword\",\"size\":30,\"order\":\"asc\",\"orderBy\":\"_term\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.cpu.stats.throttled.ns\",\"customLabel\":\"CPU throttling\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"docker.container.name.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Container ID\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"docker.container.command.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Process name\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.cpuacct.stats.system.ns\",\"customLabel\":\"CPU kernel\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"config\":{\"searchKeyword\":\"\"}}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\",\"default_field\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "Container-Block-IO",
+ "_type": "visualization",
+ "_source": {
+ "title": "Container Block IO [Metricbeat System]",
+ "visState": "{\"title\":\"Container Block IO [Metricbeat System]\",\"type\":\"table\",\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"perPage\":10,\"showPartialRows\":false,\"totalFunc\":\"sum\",\"showTotal\":false,\"showMeticsAtAllLevels\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.blkio.total.bytes\",\"customLabel\":\"Total\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.process.cgroup.blkio.total.ios\",\"customLabel\":\"I/O\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"docker.container.name.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Container ID\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"docker.container.command.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Process name\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"config\":{\"searchKeyword\":\"\"}}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\",\"default_field\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "5ed8f9f0-c2a2-11ea-9cf6-c19e3a7fac53",
+ "_type": "visualization",
+ "_source": {
+ "title": "[Linaro] Simple Host List",
+ "visState": "{\"title\":\"[Linaro] Simple Host List\",\"type\":\"table\",\"params\":{\"perPage\":50,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"@timestamp\",\"customLabel\":\"Last Check\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"significant_terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"beat.hostname.keyword\",\"size\":50,\"customLabel\":\"Hostname\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":0,\"direction\":\"asc\"},\"config\":{\"searchKeyword\":\"\"}}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"filebeat-systems-*\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "47a8e0f0-f1a4-11e7-a9ef-93c69af7b129",
+ "_type": "visualization",
+ "_source": {
+ "title": "Active connections [Metricbeat Nginx]",
+ "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"legend_position\":\"bottom\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"line_width\":1,\"metrics\":[{\"field\":\"nginx.stubstatus.active\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\"},\"title\":\"Active connections [Metricbeat Nginx]\",\"type\":\"metrics\"}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c5f8b280-70c1-11e9-8c1d-734f928b6f03",
+ "_type": "visualization",
+ "_source": {
+ "title": "apache_metrics_geo_ip_geo",
+ "visState": "{\"title\":\"apache_metrics_geo_ip_geo\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"clientip.keyword\",\"size\":30,\"order\":\"desc\",\"orderBy\":\"1\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"geoip.country_name.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"geoip.city_name.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null},\"config\":{\"searchKeyword\":\"\"}}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"filebeat-systems-*\",\"filter\":[],\"query\":{\"query\":\"\\\"git-upload-pack\\\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e82a7ec0-b91d-11e9-a1f4-0fc233ae73cb",
+ "_type": "visualization",
+ "_source": {
+ "title": "apache_metric_timeseries",
+ "visState": "{\"title\":\"apache_metric_timeseries\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"git_repo_name.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"filebeat-systems-*\",\"filter\":[],\"query\":{\"query\":\"\\\"git-upload-pack\\\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "0b343080-6bf5-11e9-acbc-09dcf1b097d9",
+ "_type": "visualization",
+ "_source": {
+ "title": "apache_metrics_geo_ip",
+ "visState": "{\"title\":\"apache_metrics_geo_ip\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"git_repo_name.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"_term\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"clientip.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"_term\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"config\":{\"searchKeyword\":\"\"}}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"filebeat-systems-*\",\"filter\":[],\"query\":{\"query\":\"\\\"git-upload-pack\\\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "68bc1660-6bf4-11e9-acbc-09dcf1b097d9",
+ "_type": "visualization",
+ "_source": {
+ "title": "apache_metrics_git_repo",
+ "visState": "{\"title\":\"apache_metrics_git_repo\",\"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\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"git_repo_name.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"filebeat-systems-*\",\"filter\":[],\"query\":{\"query\":\"\\\"git-upload-pack\\\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "90cbf3a0-25ac-11eb-bb21-bdd65cbe708e",
+ "_type": "visualization",
+ "_source": {
+ "title": "Morello HTTPS Clone Stats",
+ "visState": "{\"title\":\"Morello HTTPS Clone Stats\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"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\":\"Max count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Max count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"count\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"date\",\"interval\":\"d\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"project_name.keyword\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"index\":\"47b5f8d0-250e-11eb-b5df-05d360d75584\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "397f4a40-25af-11eb-bb21-bdd65cbe708e",
+ "_type": "visualization",
+ "_source": {
+ "title": "Morello Server Overview Navigation",
+ "visState": "{\"title\":\"Morello Server Overview Navigation\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"markdown\":\"[Morello Server Overview](https://systems-monitoring.linaro.org/goto/d17eeda445ccb68cb23490c69509685c)\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "522ee670-1b92-11e7-bec4-a5e9ec5cab8b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Inbound Traffic [Metricbeat System]",
+ "visState": "{\"title\":\"Inbound Traffic [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"0e346760-1b92-11e7-bec4-a5e9ec5cab8b\"}],\"filter\":\"-system.network.name:l*\",\"id\":\"0c761590-1b92-11e7-bec4-a5e9ec5cab8b\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"0c761591-1b92-11e7-bec4-a5e9ec5cab8b\",\"label\":\"Inbound Traffic\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.in.bytes\",\"id\":\"0c761592-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"max\"},{\"field\":\"0c761592-1b92-11e7-bec4-a5e9ec5cab8b\",\"id\":\"1d659060-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"derivative\",\"unit\":\"1s\"},{\"function\":\"overall_sum\",\"id\":\"c40e18f0-2c55-11e7-a0ad-277ce466684d\",\"type\":\"series_agg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name\",\"value_template\":\"{{value}}/s\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"37f70440-1b92-11e7-bec4-a5e9ec5cab8b\",\"label\":\"Total Transferred\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.in.bytes\",\"id\":\"37f72b50-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"max\"},{\"field\":\"37f72b50-1b92-11e7-bec4-a5e9ec5cab8b\",\"id\":\"37f72b51-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"f9da2dd0-1b92-11e7-a416-41f5ccdba2e6\",\"function\":\"overall_sum\",\"id\":\"3e63c2f0-1b92-11e7-bec4-a5e9ec5cab8b\",\"sigma\":\"\",\"type\":\"series_agg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"beat.name\",\"value_template\":\"{{value}}\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "fe064790-1b1f-11e7-bec4-a5e9ec5cab8b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top Hosts By Memory (Realtime) [Metricbeat System]",
+ "visState": "{\"title\":\"Top Hosts By Memory (Realtime) [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"bar_color\":\"rgba(104,188,0,1)\",\"id\":\"33349dd0-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0},{\"bar_color\":\"rgba(254,146,0,1)\",\"id\":\"997dc440-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.6},{\"bar_color\":\"rgba(211,49,21,1)\",\"id\":\"a10d7f20-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.85}],\"drilldown_url\":\"../app/kibana#/dashboard/79ffd6e0-faa0-11e6-947f-177f697178b8?_a=(query:(query_string:(analyze_wildcard:!t,query:'beat.name:\\\"{{key}}\\\"')))\",\"filter\":\"\",\"id\":\"31e5afa0-1b1c-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"31e5afa1-1b1c-11e7-b09e-037021c4f8df\",\"line_width\":1,\"metrics\":[{\"field\":\"system.memory.actual.used.pct\",\"id\":\"31e5afa2-1b1c-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"beat.hostname\",\"terms_order_by\":\"31e5afa2-1b1c-11e7-b09e-037021c4f8df\",\"terms_size\":\"10\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "855899e0-1b1c-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top Hosts By CPU (Realtime) [Metricbeat System]",
+ "visState": "{\"title\":\"Top Hosts By CPU (Realtime) [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"bar_color\":\"rgba(104,188,0,1)\",\"id\":\"33349dd0-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0},{\"bar_color\":\"rgba(254,146,0,1)\",\"id\":\"997dc440-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.6},{\"bar_color\":\"rgba(211,49,21,1)\",\"id\":\"a10d7f20-1b1c-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.85}],\"drilldown_url\":\"../app/kibana#/dashboard/79ffd6e0-faa0-11e6-947f-177f697178b8?_a=(query:(query_string:(analyze_wildcard:!t,query:'beat.name:\\\"{{key}}\\\"')))\",\"filter\":\"\",\"id\":\"31e5afa0-1b1c-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"31e5afa1-1b1c-11e7-b09e-037021c4f8df\",\"line_width\":1,\"metrics\":[{\"field\":\"system.cpu.user.pct\",\"id\":\"31e5afa2-1b1c-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"beat.name\",\"terms_order_by\":\"31e5afa2-1b1c-11e7-b09e-037021c4f8df\",\"terms_size\":\"10\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c6f2ffd0-4d17-11e7-a196-69b9a7a020a9",
+ "_type": "visualization",
+ "_source": {
+ "title": "Number of hosts [Metricbeat System]",
+ "visState": "{\"title\":\"Number of hosts [Metricbeat System]\",\"type\":\"metric\",\"params\":{\"type\":\"metric\",\"addTooltip\":true,\"addLegend\":false,\"metric\":{\"useRange\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"fontSize\":\"63\",\"subText\":\"\",\"labelColor\":false},\"colorSchema\":\"Green to Red\",\"invertColors\":false,\"labels\":{\"color\":\"black\",\"show\":false},\"colorsRange\":[{\"to\":100,\"from\":0}],\"percentageMode\":false,\"metricColorMode\":\"None\"}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"beat.hostname\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\",\"default_field\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "1aae9140-1b93-11e7-8ada-3df93aab833e",
+ "_type": "visualization",
+ "_source": {
+ "title": "Outbound Traffic [Metricbeat System]",
+ "visState": "{\"title\":\"Outbound Traffic [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"0e346760-1b92-11e7-bec4-a5e9ec5cab8b\"}],\"filter\":\"-system.network.name.keyword:l*\",\"id\":\"0c761590-1b92-11e7-bec4-a5e9ec5cab8b\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"0c761591-1b92-11e7-bec4-a5e9ec5cab8b\",\"label\":\"Outbound Traffic\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.out.bytes\",\"id\":\"0c761592-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"max\"},{\"unit\":\"1s\",\"function\":\"sum\",\"id\":\"a1737470-2c55-11e7-a0ad-277ce466684d\",\"type\":\"derivative\",\"field\":\"0c761592-1b92-11e7-bec4-a5e9ec5cab8b\"},{\"id\":\"5645de30-c2b5-11ea-a805-ed7a667554aa\",\"type\":\"series_agg\",\"function\":\"overall_sum\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name\",\"value_template\":\"{{value}}/s\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"37f70440-1b92-11e7-bec4-a5e9ec5cab8b\",\"label\":\"Total Transferred\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.out.bytes\",\"id\":\"37f72b50-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"max\"},{\"field\":\"37f72b50-1b92-11e7-bec4-a5e9ec5cab8b\",\"id\":\"37f72b51-1b92-11e7-bec4-a5e9ec5cab8b\",\"type\":\"derivative\",\"unit\":\"\"},{\"field\":\"f9da2dd0-1b92-11e7-a416-41f5ccdba2e6\",\"function\":\"overall_sum\",\"id\":\"3e63c2f0-1b92-11e7-bec4-a5e9ec5cab8b\",\"sigma\":\"\",\"type\":\"series_agg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"beat.hostname\",\"value_template\":\"{{value}}\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"metric\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "7cdb1330-4d1a-11e7-a196-69b9a7a020a9",
+ "_type": "visualization",
+ "_source": {
+ "title": "Hosts histogram by CPU usage [Metricbeat System]",
+ "visState": "{\"title\":\"Hosts histogram by CPU usage [Metricbeat System]\",\"type\":\"heatmap\",\"params\":{\"colorSchema\":\"Greens\",\"invertColors\":false,\"type\":\"heatmap\",\"legendPosition\":\"right\",\"addLegend\":true,\"colorsRange\":[{\"from\":0,\"to\":10},{\"from\":10,\"to\":100},{\"from\":100,\"to\":200},{\"from\":200,\"to\":0}],\"colorsNumber\":4,\"setColorRange\":true,\"percentageMode\":false,\"addTooltip\":true,\"valueAxes\":[{\"show\":false,\"labels\":{\"color\":\"#555\",\"rotate\":270,\"show\":true},\"type\":\"value\",\"id\":\"ValueAxis-1\",\"scale\":{\"defaultYExtents\":true,\"type\":\"linear\"}}],\"enableHover\":false,\"times\":[]},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"system.cpu.user.pct\",\"customLabel\":\"CPU usage\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"beat.hostname\",\"exclude\":\"\",\"size\":6,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Hosts\"}}]}",
+ "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 10\":\"rgb(247,252,245)\",\"10 - 100\":\"rgb(199,233,192)\",\"100 - 200\":\"rgb(116,196,118)\",\"200 - 0\":\"rgb(35,139,69)\"},\"colors\":{\"0 - 10\":\"#E0F9D7\",\"10 - 100\":\"#508642\",\"100 - 200\":\"#E5AC0E\",\"200 - 500\":\"#BF1B00\",\"200 - -1\":\"#BF1B00\",\"200 - 0\":\"#BF1B00\"}}}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"index\":\"metricbeat-systems-*\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\",\"default_field\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "34f97ee0-1b96-11e7-8ada-3df93aab833e",
+ "_type": "visualization",
+ "_source": {
+ "title": "Disk Usage [Metricbeat System]",
+ "visState": "{\"title\":\"Disk Usage [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"bar_color\":\"rgba(104,188,0,1)\",\"id\":\"bf525310-1b95-11e7-8ada-3df93aab833e\",\"operator\":\"gte\",\"value\":0},{\"bar_color\":\"rgba(254,146,0,1)\",\"id\":\"125fc4c0-1b96-11e7-8ada-3df93aab833e\",\"operator\":\"gte\",\"value\":0.7},{\"bar_color\":\"rgba(211,49,21,1)\",\"id\":\"1a5c7240-1b96-11e7-8ada-3df93aab833e\",\"operator\":\"gte\",\"value\":0.85}],\"drilldown_url\":\"\",\"filter\":\"-system.filesystem.mount_point:\\\\/run* AND -system.filesystem.mount_point:\\\\/sys* AND -system.filesystem.mount_point:\\\\/dev* AND -system.filesystem.mount_point:\\\\/proc* AND -system.filesystem.mount_point:\\\\/var* AND -system.filesystem.mount_point:\\\\/boot AND -system.filesystem.mount_point:\\\\/snap*\",\"id\":\"9f7e48a0-1b95-11e7-8ada-3df93aab833e\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"9f7e48a1-1b95-11e7-8ada-3df93aab833e\",\"line_width\":1,\"metrics\":[{\"field\":\"system.filesystem.used.pct\",\"id\":\"9f7e48a2-1b95-11e7-8ada-3df93aab833e\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.filesystem.mount_point\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "2e224660-1b19-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Processes By Memory [Metricbeat System]",
+ "visState": "{\"title\":\"Processes By Memory [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"bar_color\":\"rgba(104,188,0,1)\",\"id\":\"efb9b660-1b18-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0},{\"bar_color\":\"rgba(254,146,0,1)\",\"id\":\"17fcb820-1b19-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.7},{\"bar_color\":\"rgba(211,49,21,1)\",\"id\":\"1dd61070-1b19-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0.85}],\"drilldown_url\":\"\",\"filter\":\"\",\"id\":\"edfceb30-1b18-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"edfceb31-1b18-11e7-b09e-037021c4f8df\",\"line_width\":1,\"metrics\":[{\"field\":\"system.process.memory.rss.pct\",\"id\":\"edfceb32-1b18-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.process.name\",\"terms_order_by\":\"edfceb32-1b18-11e7-b09e-037021c4f8df\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "99381c80-4d60-11e7-9a4c-ed99bbcaa42b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Interfaces by Incoming traffic [Metricbeat System]",
+ "visState": "{\"title\":\"Interfaces by Incoming traffic [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"44596d40-4d60-11e7-9a4c-ed99bbcaa42b\"}],\"id\":\"42ceae90-4d60-11e7-9a4c-ed99bbcaa42b\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"42ced5a0-4d60-11e7-9a4c-ed99bbcaa42b\",\"label\":\"Interfaces by Incoming traffic\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.in.bytes\",\"id\":\"42ced5a1-4d60-11e7-9a4c-ed99bbcaa42b\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name\",\"terms_order_by\":\"42ced5a1-4d60-11e7-9a4c-ed99bbcaa42b\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "c5e3cf90-4d60-11e7-9a4c-ed99bbcaa42b",
+ "_type": "visualization",
+ "_source": {
+ "title": "Interfaces by Outgoing traffic [Metricbeat System]",
+ "visState": "{\"title\":\"Interfaces by Outgoing traffic [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"id\":\"9db20be0-4d60-11e7-9a4c-ed99bbcaa42b\"}],\"id\":\"9cdba910-4d60-11e7-9a4c-ed99bbcaa42b\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"bytes\",\"id\":\"9cdba911-4d60-11e7-9a4c-ed99bbcaa42b\",\"label\":\"Interfaces by Outgoing traffic\",\"line_width\":1,\"metrics\":[{\"field\":\"system.network.out.bytes\",\"id\":\"9cdba912-4d60-11e7-9a4c-ed99bbcaa42b\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.network.name\",\"terms_order_by\":\"9cdba912-4d60-11e7-9a4c-ed99bbcaa42b\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ },
+ {
+ "_id": "e0f001c0-1b18-11e7-b09e-037021c4f8df",
+ "_type": "visualization",
+ "_source": {
+ "title": "Top Processes By CPU [Metricbeat System]",
+ "visState": "{\"title\":\"Top Processes By CPU [Metricbeat System]\",\"type\":\"metrics\",\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"bar_color_rules\":[{\"bar_color\":\"rgba(104,188,0,1)\",\"id\":\"60e11be0-1b18-11e7-b09e-037021c4f8df\",\"operator\":\"gte\",\"value\":0}],\"drilldown_url\":\"\",\"filter\":\"\",\"id\":\"5f5b8d50-1b18-11e7-b09e-037021c4f8df\",\"index_pattern\":\"metricbeat-systems-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"percent\",\"id\":\"5f5b8d51-1b18-11e7-b09e-037021c4f8df\",\"line_width\":1,\"metrics\":[{\"field\":\"system.process.cpu.total.pct\",\"id\":\"5f5b8d52-1b18-11e7-b09e-037021c4f8df\",\"type\":\"avg\"}],\"point_size\":1,\"seperate_axis\":0,\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"system.process.name\",\"terms_order_by\":\"5f5b8d52-1b18-11e7-b09e-037021c4f8df\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"top_n\"},\"aggs\":[]}",
+ "uiStateJSON": "{}",
+ "description": "",
+ "version": 1,
+ "kibanaSavedObjectMeta": {
+ "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"query\":\"*\"}}}}"
+ }
+ },
+ "_meta": {
+ "savedObjectVersion": 2
+ }
+ }
+] \ No newline at end of file
diff --git a/roles/lava-elk-deps/tasks/main.yml b/roles/lava-elk-deps/tasks/main.yml
index e73ce25b..ea8f6ec5 100644
--- a/roles/lava-elk-deps/tasks/main.yml
+++ b/roles/lava-elk-deps/tasks/main.yml
@@ -1,8 +1,9 @@
---
- name: install apt packages
- apt: pkg={{item}} update_cache=yes
- with_items:
+ apt: name={{packages}} update_cache=yes
+ vars:
+ packages:
- python3-pip
- git
@@ -13,16 +14,54 @@
- name: Install python deps
pip:
- name: elasticsearch
+ name: "{{modules}}"
virtualenv: "{{scripts_dir}}/.venv"
- virtualenv_python: python3.5
+ virtualenv_python: python3
+ vars:
+ modules:
+ - elasticsearch
+ - elasticsearch-loader
+ - requests
+ - python-gitlab
+
+- name: Clone lava repo
+ git:
+ repo: https://git.linaro.org/lava/lava-lab.git
+ dest: "{{scripts_dir}}/lava-lab"
+
+- name: Clone elasticsearch-scripts repo
+ git:
+ repo: https://git.linaro.org/infrastructure/es-scripts.git
+ dest: "{{scripts_dir}}/es-scripts"
+
- name: Install lava job queue python
template:
src: jobqueue_production.py.j2
dest: "{{scripts_dir}}/jobqueue_production.py"
+- name: Install lava devicehealth check python script
+ template:
+ src: devicehealth.py.j2
+ dest: "{{scripts_dir}}/devicehealth.py"
+
+- name: Install kisscache script
+ template:
+ src: kisscache.py.j2
+ dest: "{{scripts_dir}}/kisscache.py"
+
+- name: Install gitlab https clone stats script
+ template:
+ src: gitlab_clone_stats.py.j2
+ dest: "{{scripts_dir}}/gitlab_clone_stats.py"
+
- name: Install lava job crontab
template:
src: crond.j2
dest: /etc/cron.d/lava-elk
+
+- name: Install elasticsearch crontab
+ template:
+ src: es-crond.j2
+ dest: /etc/cron.d/elasticsearch-check
+ mode: 0755
diff --git a/roles/lava-elk-deps/templates/crond.j2 b/roles/lava-elk-deps/templates/crond.j2
index 88e0945d..d4319824 100644
--- a/roles/lava-elk-deps/templates/crond.j2
+++ b/roles/lava-elk-deps/templates/crond.j2
@@ -1,3 +1,19 @@
+MAILTO=linaro-infrastructure-errors@lists.linaro.org
+
{% for item in lava_servers %}
-* * * * * root {{scripts_dir}}/.venv/bin/python {{scripts_dir}}/jobqueue_production.py --username '{{item.username}}' --token '{{item.token}}' --server '{{item.host}}' --elastic_port '{{docker_port_elasticsearch}}'
+* * * * * root {{scripts_dir}}/.venv/bin/python {{scripts_dir}}/jobqueue_production.py --server '{{item.host}}' --elastic_port '{{docker_port_elasticsearch}}' --elastic_host '{{docker_container_elasticsearch_name}}' >/dev/null 2>&1
+*/5 * * * * root {{scripts_dir}}/.venv/bin/python {{scripts_dir}}/devicehealth.py --server '{{item.host}}' --elastic_port '{{docker_port_elasticsearch}}' --elastic_host '{{docker_container_elasticsearch_name}}' >/dev/null 2>&1
+{% if item.jobreport is defined %}
+# needs a new token
+#@hourly root {{scripts_dir}}/.venv/bin/python {{scripts_dir}}/lava-lab/shared/monitoring/instance-reporting/jobreport -u '{{item.username}}' -t '{{item.token}}' -m {{scripts_dir}}/lava-lab/shared/monitoring/instance-reporting/lavamsgmap.json -h '{{item.host}}' -f /tmp/jobfailure -p 1440 && {{scripts_dir}}/.venv/bin/elasticsearch_loader --es-host http://{{docker_container_elasticsearch_name}}:9200 --index jobfailure json /tmp/jobfailure >> /tmp/jobfailure.log 2>&1
+{% endif %}
+{% endfor %}
+
+{% for item in kisscache_servers %}
+*/5 * * * * root {{scripts_dir}}/.venv/bin/python {{scripts_dir}}/kisscache.py --server '{{item.host}}' --elastic_port '{{docker_port_elasticsearch}}' --elastic_host '{{docker_container_elasticsearch_name}}' >/dev/null 2>&1
+{% endfor %}
+
+
+{% for item in gitlab_servers %}
+@daily root {{scripts_dir}}/.venv/bin/python {{scripts_dir}}/gitlab_clone_stats.py --server '{{item.host}}' --elastic_port '{{docker_port_elasticsearch}}' --elastic_host '{{docker_container_elasticsearch_name}}' -t {{item.token}} >/dev/null 2>&1
{% endfor %}
diff --git a/roles/lava-elk-deps/templates/devicehealth.py.j2 b/roles/lava-elk-deps/templates/devicehealth.py.j2
new file mode 100755
index 00000000..3821439a
--- /dev/null
+++ b/roles/lava-elk-deps/templates/devicehealth.py.j2
@@ -0,0 +1,78 @@
+#!/usr/bin/python3
+
+import requests
+import json
+import argparse
+from elasticsearch import Elasticsearch, TransportError
+from datetime import datetime
+import sys
+
+index_mappings = {
+ "settings": {
+ "index.mapping.ignore_malformed": True,
+ "dynamic": False,
+ "number_of_shards":1,
+ "number_of_replicas":0,
+ },
+}
+
+def main():
+
+ parser = argparse.ArgumentParser(description='Get device health status from LAVA server')
+
+ parser.add_argument("-s", "--server", type=str,
+ help="LAVA server to get the info from")
+ parser.add_argument("-t", "--token", type=str,
+ help="User authentication token")
+ parser.add_argument("-u", "--username", type=str,
+ help="Username to use for query")
+ parser.add_argument("-e_host", "--elastic_host", type=str,
+ help="Elasticsearch server hostname",
+ default='localhost')
+ parser.add_argument("-e_port", "--elastic_port", type=str,
+ help="Elasticsearch server port",
+ default='9200')
+ parser.add_argument("-e_index", "--elastic_index", type=str,
+ help="Elasticsearch index to store results",
+ default='devicehealth')
+ parser.add_argument("-n", "--dry_run", action='store_true',
+ help="Do not execute elasticsearch commands",
+ default=False)
+ parser.add_argument("-d", "--debug", action='store_true',
+ help="Print debugging information",
+ default=False)
+ options = parser.parse_args()
+
+ es = Elasticsearch([
+ {'host': options.elastic_host, 'port': options.elastic_port},
+ ])
+ index_name = options.elastic_index
+ doc_type = options.elastic_index
+ if not options.debug:
+ print("Index set to: %s" % index_name)
+ if not options.dry_run:
+ es.indices.create(index=index_name, ignore=400, body=index_mappings)
+
+
+ devices_url = 'https://{}/api/v0.2/devices/'.format(options.server)
+
+ next_page = devices_url
+ while next_page is not None:
+ r = requests.get(next_page)
+
+ for device in r.json()["results"]:
+ doc = {'device':{}}
+ for key in device:
+ doc['device'][key] = device[key]
+ doc['server'] = options.server
+ doc['@timestamp'] = datetime.utcnow()
+
+ if options.debug:
+ print("%s" % doc)
+ if not options.dry_run:
+ es.index(index=index_name,doc_type=doc_type, body=doc)
+ if "next" in r.json():
+ next_page = r.json()["next"]
+
+if __name__ == '__main__':
+ main()
diff --git a/roles/lava-elk-deps/templates/es-crond.j2 b/roles/lava-elk-deps/templates/es-crond.j2
new file mode 100644
index 00000000..6722987e
--- /dev/null
+++ b/roles/lava-elk-deps/templates/es-crond.j2
@@ -0,0 +1,5 @@
+MAILTO=linaro-infrastructure-errors@lists.linaro.org
+
+*/15 * * * * root {{scripts_dir}}/.venv/bin/python {{scripts_dir}}/es-scripts/status-autoclear.py
+0 6,12,18 * * * root {{scripts_dir}}/.venv/bin/python {{scripts_dir}}/es-scripts/preseed-beats.py
+@hourly root {{scripts_dir}}/.venv/bin/python {{scripts_dir}}/es-scripts/check-query.py
diff --git a/roles/lava-elk-deps/templates/gitlab_clone_stats.py.j2 b/roles/lava-elk-deps/templates/gitlab_clone_stats.py.j2
new file mode 100644
index 00000000..76e3abd6
--- /dev/null
+++ b/roles/lava-elk-deps/templates/gitlab_clone_stats.py.j2
@@ -0,0 +1,105 @@
+#!/usr/bin/python3
+
+import gitlab
+import xmlrpc.client
+import argparse
+from elasticsearch import Elasticsearch, TransportError
+from datetime import datetime
+
+index_mappings = {
+ "settings": {
+ "index.mapping.ignore_malformed": True,
+ "dynamic": False,
+ "number_of_shards": 1,
+ "number_of_replicas": 0,
+ },
+}
+
+
+def main():
+
+ parser = argparse.ArgumentParser(
+ description="Get Morello stats for HTTPS Clones"
+ )
+
+ parser.add_argument(
+ "-s",
+ "--server",
+ type=str,
+ help="Gitlab server",
+ default="https://git.morello-project.org",
+ )
+ parser.add_argument(
+ "-t", "--token", type=str, help="User authentication token"
+ )
+ parser.add_argument(
+ "-e_host",
+ "--elastic_host",
+ type=str,
+ help="Elasticsearch server hostname",
+ default="localhost",
+ )
+ parser.add_argument(
+ "-e_port",
+ "--elastic_port",
+ type=str,
+ help="Elasticsearch server port",
+ default="9200",
+ )
+ parser.add_argument(
+ "-e_index",
+ "--elastic_index",
+ type=str,
+ help="Elasticsearch index to store results",
+ default="gitlab_morello_stats",
+ )
+ parser.add_argument(
+ "-n",
+ "--dry_run",
+ action="store_true",
+ help="Do not execute elasticsearch commands",
+ default=False,
+ )
+ parser.add_argument(
+ "-d",
+ "--debug",
+ action="store_true",
+ help="Print debugging information",
+ default=False,
+ )
+ options = parser.parse_args()
+
+ es = Elasticsearch(
+ [
+ {"host": options.elastic_host, "port": options.elastic_port},
+ ]
+ )
+ index_name = options.elastic_index
+ doc_type = options.elastic_index
+ if not options.debug:
+ print("Index set to: %s" % index_name)
+ if not options.dry_run:
+ es.indices.create(index=index_name, ignore=400, body=index_mappings)
+
+ gl = gitlab.Gitlab(options.server, options.token)
+
+ gl.auth()
+
+ projects = gl.projects.list(all=True, visibility="public")
+
+ for p in projects:
+ for d in p.additionalstatistics.get().fetches["days"]:
+ doc = {
+ "project_name": p.name,
+ "project_id": p.id,
+ "count": list(d.values())[0],
+ "date": list(d.values())[1],
+ }
+ if options.debug:
+ print("%s" % doc)
+ if not options.dry_run:
+ es.index(index=index_name, doc_type=doc_type, body=doc)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/roles/lava-elk-deps/templates/jobqueue_production.py.j2 b/roles/lava-elk-deps/templates/jobqueue_production.py.j2
index 95184319..95ceddcc 100644
--- a/roles/lava-elk-deps/templates/jobqueue_production.py.j2
+++ b/roles/lava-elk-deps/templates/jobqueue_production.py.j2
@@ -1,63 +1,84 @@
#!/usr/bin/python3
-import xmlrpc.client
+import requests
+import json
import argparse
from elasticsearch import Elasticsearch, TransportError
from datetime import datetime
+import sys
index_mappings = {
"settings": {
"index.mapping.ignore_malformed": True,
- "dynamic": False
+ "dynamic": False,
+ "number_of_shards": 1,
+ "number_of_replicas": 0,
},
}
def main():
- parser = argparse.ArgumentParser(description='Get a LAVA server job queue')
+ parser = argparse.ArgumentParser(description='Get job queue status from LAVA server')
parser.add_argument("-s", "--server", type=str,
- help="LAVA server to get the info from")
+ help="lava server")
parser.add_argument("-t", "--token", type=str,
help="User authentication token")
parser.add_argument("-u", "--username", type=str,
help="Username to use for query")
parser.add_argument("-e_host", "--elastic_host", type=str,
- help="Username to use for query",
+ help="Elasticsearch server hostname",
default='localhost')
parser.add_argument("-e_port", "--elastic_port", type=str,
- help="Username to use for query",
+ help="Elasticsearch server port",
default='9200')
parser.add_argument("-e_index", "--elastic_index", type=str,
- help="Username to use for query",
+ help="Elasticsearch index to store results",
default='jobqueue')
- options = parser.parse_args()
+ parser.add_argument("-n", "--dry_run", action='store_true',
- server = xmlrpc.client.ServerProxy("https://%s:%s@%s/RPC2"
- % (options.username, options.token, options.server))
+ help="Do not execute elasticsearch commands",
+ default=False)
+ parser.add_argument("-d", "--debug", action='store_true',
+ help="Print debugging information",
+ default=False)
+ options = parser.parse_args()
es = Elasticsearch([
{'host': options.elastic_host, 'port': options.elastic_port},
])
index_name = options.elastic_index
doc_type = options.elastic_index
- print(index_name)
- es.indices.create(index=index_name, ignore=400, body=index_mappings)
+ if not options.debug:
+ print("Index set to: %s" % index_name)
+ if not options.dry_run:
+ es.indices.create(index=index_name, ignore=400, body=index_mappings)
+
+ devices_url = 'https://{}/api/v0.2/devicetypes/?display=true'.format(options.server)
+ r = requests.get(devices_url)
+ devices = [ x["name"] for x in r.json()["results"]]
+
+ for device in devices:
+ status_url = 'https://{}/api/v0.2/jobs/?requested_device_type={}&state=Submitted'.format(options.server, device)
+ req = requests.get(status_url)
+ queue = req.json()["count"]
+ if options.debug:
+ print('{} - {}'.format(device,queue))
- jobs = server.scheduler.pending_jobs_by_device_type()
- for k, v in jobs.items():
doc = {
'device': {
- 'type': k,
- 'queue': v,
+ 'type': device,
+ 'queue': queue,
'lava_server': options.server,
'timestamp': datetime.utcnow()
},
- }
-
- print(doc)
+ '@timestamp': datetime.utcnow(),
+ }
- es.index(index=index_name, doc_type=doc_type, body=doc)
+ if options.debug:
+ print("%s" % doc)
+ if not options.dry_run:
+ es.index(index=index_name,doc_type=doc_type, body=doc)
if __name__ == '__main__':
main()
diff --git a/roles/lava-elk-deps/templates/kisscache.py.j2 b/roles/lava-elk-deps/templates/kisscache.py.j2
new file mode 100644
index 00000000..ffac67c2
--- /dev/null
+++ b/roles/lava-elk-deps/templates/kisscache.py.j2
@@ -0,0 +1,66 @@
+#!/usr/bin/python3
+
+import requests
+import json
+import argparse
+from elasticsearch import Elasticsearch, TransportError
+from datetime import datetime
+import sys
+
+index_mappings = {
+ "settings": {
+ "index.mapping.ignore_malformed": True,
+ "dynamic": False,
+ "number_of_shards": 1,
+ "number_of_replicas": 0,
+ },
+}
+
+def main():
+
+ parser = argparse.ArgumentParser(description='Get device health status from LAVA server')
+
+ parser.add_argument("-s", "--server", type=str,
+ help="kisscache server")
+ parser.add_argument("-t", "--token", type=str,
+ help="User authentication token")
+ parser.add_argument("-u", "--username", type=str,
+ help="Username to use for query")
+ parser.add_argument("-e_host", "--elastic_host", type=str,
+ help="Elasticsearch server hostname",
+ default='localhost')
+ parser.add_argument("-e_port", "--elastic_port", type=str,
+ help="Elasticsearch server port",
+ default='9200')
+ parser.add_argument("-e_index", "--elastic_index", type=str,
+ help="Elasticsearch index to store results",
+ default='kisscache')
+ parser.add_argument("-n", "--dry_run", action='store_true',
+ help="Do not execute elasticsearch commands",
+ default=False)
+ parser.add_argument("-d", "--debug", action='store_true',
+ help="Print debugging information",
+ default=False)
+ options = parser.parse_args()
+
+ r = requests.get(options.server)
+ json_output = r.json()
+
+ es = Elasticsearch([
+ {'host': options.elastic_host, 'port': options.elastic_port},
+ ])
+ index_name = options.elastic_index
+ doc_type = options.elastic_index
+ if not options.debug:
+ print("Index set to: %s" % index_name)
+ if not options.dry_run:
+ es.indices.create(index=index_name, ignore=400, body=index_mappings)
+
+
+ if options.debug:
+ print("%s" % doc)
+ if not options.dry_run:
+ es.index(index=index_name,doc_type=doc_type, body=json_output)
+
+if __name__ == '__main__':
+ main()
diff --git a/roles/lava-remote-worker/tasks/main.yml b/roles/lava-remote-worker/tasks/main.yml
new file mode 100644
index 00000000..d8dd8571
--- /dev/null
+++ b/roles/lava-remote-worker/tasks/main.yml
@@ -0,0 +1,21 @@
+- name: Clone lava-remote-worker
+ git: repo=https://github.com/bhcopeland/lava-remote-worker
+ dest=/srv/lava-remote-worker
+ update=yes
+ accept_hostkey=yes
+
+- name: copy env secrets
+ template:
+ src: files/lava-remote-worker/env
+ dest: /srv/lava-remote-worker/.env
+
+- name: copy token
+ template:
+ src: files/lava-remote-worker/token
+ dest: /srv/lava-remote-worker/overlays/var/lib/lava/dispatcher/worker/token
+
+
+- name: deploy docker-compose stack
+ docker_compose:
+ project_src: /srv/lava-remote-worker
+ restarted: yes
diff --git a/roles/letsencrypt/tasks/main.yml b/roles/letsencrypt/tasks/main.yml
index 9b981e8d..d6c2358c 100644
--- a/roles/letsencrypt/tasks/main.yml
+++ b/roles/letsencrypt/tasks/main.yml
@@ -14,7 +14,9 @@
- python-certbot-apache
when: ansible_distribution_release == "stretch"
-- name: Install cert for {{hostname}}
+# violates the 303 lint check (command used instead of module)
+# suggests using the 'acme_certificate' module
+- name: Install cert for {{hostname}} # noqa 303
command: letsencrypt -n --apache --agree-tos --email "{{email}}" -d "{{hostname}}"
args:
creates: /etc/letsencrypt/live/{{hostname}}/fullchain.pem
diff --git a/roles/linaro-git-tools/tasks/main.yml b/roles/linaro-git-tools/tasks/main.yml
index 974be802..6afc851d 100644
--- a/roles/linaro-git-tools/tasks/main.yml
+++ b/roles/linaro-git-tools/tasks/main.yml
@@ -9,7 +9,7 @@
- name: Clone linaro-git-tools repository
git: name=http://{{linaro_git_server}}/git/infrastructure/linaro-git-tools.git
dest={{tools_checkout_dir}}/linaro-git-tools
- version="HEAD"
+ version=origin/master
- name: Configure ldap.conf
when: ssh_ldap_bindpw is defined
diff --git a/roles/metricbeat/defaults/main.yml b/roles/metricbeat/defaults/main.yml
deleted file mode 100644
index 8d561f1a..00000000
--- a/roles/metricbeat/defaults/main.yml
+++ /dev/null
@@ -1,40 +0,0 @@
----
-logstash_host: elk.linaro.org:5044
-logstash_cert: logstash-beats.crt
-metricbeat_config_modules: |
- metricbeat.modules:
- - module: system
- metricsets:
- - cpu
- #- load
- #- core
- - diskio
- - filesystem
- #- fsstat
- - memory
- - network
- - process
- enabled: true
- period: 10s
- processes: ['.*']
- cpu_ticks: false
-metricbeat_config_general: |
- name: {{ ansible_hostname }}
- fields_under_root: false
-metricbeat_config_processors: |
- processors:
-metricbeat_config_output: |
- output.logstash:
- hosts: ["{{logstash_host}}"]
- ssl:
- certificate_authorities: ["/etc/filebeat/{{logstash_cert}}"]
-metricbeat_config_logging: |
- logging:
- level: warning
- to_syslog: true
-metricbeat_config: |
- {{metricbeat_config_modules}}
- {{metricbeat_config_general}}
- {{metricbeat_config_processors}}
- {{metricbeat_config_output}}
- {{metricbeat_config_logging}}
diff --git a/roles/metricbeat/handlers/main.yml b/roles/metricbeat/handlers/main.yml
deleted file mode 100644
index 23588977..00000000
--- a/roles/metricbeat/handlers/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-- name: restart-metricbeat
- service: name=metricbeat state=restarted
diff --git a/roles/metricbeat/tasks/main.yml b/roles/metricbeat/tasks/main.yml
deleted file mode 100644
index f211409a..00000000
--- a/roles/metricbeat/tasks/main.yml
+++ /dev/null
@@ -1,35 +0,0 @@
----
-- name: add elastic.co GPG pkg key
- apt_key:
- url: https://artifacts.elastic.co/GPG-KEY-elasticsearch
-
-- name: add beats repository
- apt_repository:
- repo: "deb https://artifacts.elastic.co/packages/6.x/apt stable main"
- state: present
- update_cache: yes
-
-- name: install metricbeat packages
- apt:
- name: "{{packages}}"
- vars:
- packages:
- - metricbeat
- notify: restart-metricbeat
-
-- name: install metricbeat configuration
- template:
- src=metricbeat.yml.j2
- dest=/etc/metricbeat/metricbeat.yml
- owner=root
- group=root
- mode=0640
- notify: restart-metricbeat
-
-- name: copy logstash cert
- copy:
- src={{secrets_dir}}/files/elk/{{logstash_cert}}
- dest=/etc/metricbeat/{{logstash_cert}}
-
-- name: enable metricbeat service
- service: name=metricbeat enabled=yes state=started
diff --git a/roles/metricbeat/templates/metricbeat.yml.j2 b/roles/metricbeat/templates/metricbeat.yml.j2
deleted file mode 100644
index 5e56e0c9..00000000
--- a/roles/metricbeat/templates/metricbeat.yml.j2
+++ /dev/null
@@ -1 +0,0 @@
-{{metricbeat_config}}
diff --git a/roles/mirroring-gerrit/files/git-us.linaro.org.conf b/roles/mirroring-gerrit/files/git-us.linaro.org.conf
index fd84d7c3..567c933f 100644
--- a/roles/mirroring-gerrit/files/git-us.linaro.org.conf
+++ b/roles/mirroring-gerrit/files/git-us.linaro.org.conf
@@ -12,21 +12,6 @@ $repo_root = /srv/repositories
$grok_manifest = /srv/repositories/manifest.js.gz
$grok_repo_root = /srv/repositories/
-[http://llvm.org]
-git/llvm = toolchain/llvm/llvm
-git/clang = toolchain/llvm/clang
-git/compiler-rt = toolchain/llvm/compiler-rt
-git/openmp = toolchain/llvm/openmp
-git/libcxx = toolchain/llvm/libcxx
-git/libcxxabi = toolchain/llvm/libcxxabi
-git/test-suite = toolchain/llvm/test-suite
-git/clang-tools-extra = toolchain/llvm/clang-tools-extra
-git/libunwind = toolchain/llvm/libunwind
-git/lld = toolchain/llvm/lld
-git/lldb = toolchain/llvm/lldb
-git/lnt = toolchain/llvm/lnt
-git/zorg = toolchain/llvm/zorg
-
[git://sourceware.org]
git/binutils-gdb = toolchain/binutils-gdb
git/newlib-cygwin = toolchain/newlib
@@ -38,9 +23,11 @@ git/gcc = toolchain/gcc
[git://git.sv.gnu.org]
dejagnu = toolchain/dejagnu
-[https://git.kernel.org]
+[http://git.kernel.org]
pub/scm/linux/kernel/git/next/linux-next = kernel-org/linux-next
pub/scm/linux/kernel/git/torvalds/linux = kernel-org/linux
+pub/scm/linux/kernel/git/stable/linux = kernel-org/linux-stable
+[https://git.kernel.org]
pub/scm/linux/kernel/git/next/linux-next = toolchain/linux-next
pub/scm/linux/kernel/git/torvalds/linux = toolchain/linux
@@ -54,3 +41,6 @@ micropython/micropython = lite/micropython
Linaro/odp = lng/odp
Linaro/odp-dpdk = lng/odp-dpdk
Linaro/test-definitions = qa/test-definitions
+andersson/qdl = landing-teams/working/qualcomm/qdl
+Linaro/vixl = arm/vixl
+llvm/llvm-lnt = toolchain/llvm-lnt
diff --git a/roles/mirroring-gerrit/files/git.trustedfirmware.org.conf b/roles/mirroring-gerrit/files/git.trustedfirmware.org.conf
new file mode 100644
index 00000000..b045a237
--- /dev/null
+++ b/roles/mirroring-gerrit/files/git.trustedfirmware.org.conf
@@ -0,0 +1,27 @@
+[DESTINATION]
+$repo_root = /srv/repositories
+
+[DESTINATION-local]
+# For direct filesystem pushing
+$repo_root = /srv/repositories
+
+[https://github.com]
+ARMmbed/mbed-crypto = mirror/mbed-crypto
+ARMmbed/mbedtls = mirror/mbed-tls
+ARM-software/CMSIS_5 = mirror/ARM-software/CMSIS_5
+mcu-tools/mcuboot = mirror/mcuboot
+ARM-software/psa-arch-tests = mirror/psa-arch-tests
+laurencelundblade/QCBOR = mirror/QCBOR
+OP-TEE/build = OP-TEE/build
+OP-TEE/manifest = OP-TEE/manifest
+OP-TEE/optee_client = OP-TEE/optee_client
+OP-TEE/optee_os = OP-TEE/optee_os
+OP-TEE/optee_test = OP-TEE/optee_test
+OP-TEE/optee_docs = OP-TEE/optee_docs
+linaro-swg/optee_examples = OP-TEE/optee_example
+
+[https://git.trustedfirmware.org]
+TF-M/trusted-firmware-m = next/TF-M/trusted-firmware-m
+TF-A/trusted-firmware-a = next/TF-A/trusted-firmware-a
+ci/tf-a-ci-scripts = next/ci/tf-a-ci-scripts
+ci/tf-m-ci-scripts = next/ci/tf-m-ci-scripts
diff --git a/roles/mirroring-gerrit/files/lhg-review.linaro.org.conf b/roles/mirroring-gerrit/files/lhg-review.linaro.org.conf
deleted file mode 120000
index 7d7be5d8..00000000
--- a/roles/mirroring-gerrit/files/lhg-review.linaro.org.conf
+++ /dev/null
@@ -1 +0,0 @@
-../../../secrets/git-gerrit-servers/mirroring-gerrit/lhg-review.linaro.org.conf \ No newline at end of file
diff --git a/roles/mirroring-gerrit/tasks/main.yml b/roles/mirroring-gerrit/tasks/main.yml
index 47116eda..9af2bfe2 100644
--- a/roles/mirroring-gerrit/tasks/main.yml
+++ b/roles/mirroring-gerrit/tasks/main.yml
@@ -17,3 +17,26 @@
- name: Install crontab
template: src=crontab dest=/etc/cron.d/gerrit-mirror
+
+- name: Install gitcookies
+ template: src=gitcookies.j2 dest=/home/git/.gitcookies owner={{git_user}} group={{git_user}} mode=0600
+ when: gitcookies is defined
+
+- name: Install gerrit mirror private key
+ template: src=privkey.j2 dest=/home/{{git_user}}/.ssh/{{mirror_git_private_key_name}} owner={{git_user}} group={{git_user}} mode=0600
+ when: mirror_git_private_key_name is defined
+
+- name: Install default user ssh client config file
+ template: src=ssh_config_include dest=/home/{{git_user}}/.ssh/config owner={{git_user}} group={{git_user}} mode=0600
+ # xenial only has openssh 7.2, which doesn't support the Include directive.
+ # Since lhg-review is the only xenial server and it's id_rsa is already
+ # to use the linaro-gerrit-bot key, we can just skip it.
+ when: mirror_git_private_key_name is defined and ansible_distribution_release != 'xenial'
+
+- name: Make ~/.ssh/config.d directory
+ file: dest=/home/{{git_user}}/.ssh/config.d state=directory owner={{git_user}} group={{git_user}} mode=0700
+ when: mirror_git_private_key_name is defined
+
+- name: Install ssh config for gerrit server
+ template: src=ssh-config.j2 dest=/home/{{git_user}}/.ssh/config.d/{{mirror_git_private_key_name}} owner={{git_user}} group={{git_user}} mode=0600
+ when: mirror_git_private_key_name is defined
diff --git a/roles/mirroring-gerrit/templates/gitcookies.j2 b/roles/mirroring-gerrit/templates/gitcookies.j2
new file mode 100644
index 00000000..e1bbdfea
--- /dev/null
+++ b/roles/mirroring-gerrit/templates/gitcookies.j2
@@ -0,0 +1 @@
+{{gitcookies}}
diff --git a/roles/mirroring-gerrit/templates/privkey.j2 b/roles/mirroring-gerrit/templates/privkey.j2
new file mode 100644
index 00000000..57d1baa9
--- /dev/null
+++ b/roles/mirroring-gerrit/templates/privkey.j2
@@ -0,0 +1 @@
+{{mirror_git_private_key}}
diff --git a/roles/mirroring-gerrit/templates/ssh-config.j2 b/roles/mirroring-gerrit/templates/ssh-config.j2
new file mode 100644
index 00000000..81094c50
--- /dev/null
+++ b/roles/mirroring-gerrit/templates/ssh-config.j2
@@ -0,0 +1,5 @@
+Host {{mirror_git_gerrit_ssh_host}}
+ Hostname {{mirror_git_gerrit_host}}
+ Port 29418
+ User {{mirror_git_gerrit_user}}
+ IdentityFile ~/.ssh/{{mirror_git_private_key_name}}
diff --git a/roles/mirroring-gerrit/templates/ssh_config_include b/roles/mirroring-gerrit/templates/ssh_config_include
new file mode 100644
index 00000000..53eda290
--- /dev/null
+++ b/roles/mirroring-gerrit/templates/ssh_config_include
@@ -0,0 +1 @@
+Include config.d/*
diff --git a/roles/nfs-client/defaults/main.yml b/roles/nfs-client/defaults/main.yml
deleted file mode 100644
index 2dcd49ce..00000000
--- a/roles/nfs-client/defaults/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-nfs_client_mount: []
diff --git a/roles/nfs-client/tasks/main.yml b/roles/nfs-client/tasks/main.yml
index 400e37a8..d38a67ed 100644
--- a/roles/nfs-client/tasks/main.yml
+++ b/roles/nfs-client/tasks/main.yml
@@ -1,9 +1,7 @@
---
- name: Install nfs-client deps
- apt: pkg={{item}}
- with_items:
- - rpcbind
- - nfs-common
+ apt:
+ pkg: ['rpcbind', 'nfs-common']
- name: Ensure nfs client directory exists
file: path={{item.path}} state=directory
@@ -14,7 +12,7 @@
name: "{{item.path}}"
src: "{{item.src}}"
opts: "{{item.opts}}"
- fstype: nfs
+ fstype: "{{item.fstype}}"
state: "{{item.state}}"
with_items: "{{nfs_client_mount}}"
diff --git a/roles/nfs-server/tasks/main.yml b/roles/nfs-server/tasks/main.yml
index 53bb6e0b..3bc1dae6 100644
--- a/roles/nfs-server/tasks/main.yml
+++ b/roles/nfs-server/tasks/main.yml
@@ -1,15 +1,25 @@
---
- name: Install NFS deps
- apt: pkg={{item}}
- with_items:
- - nfs-common
- - nfs-server
+ apt:
+ pkg: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - nfs-common
+ - nfs-server
- name: Ensure directories to export exist
file: path={{item.path}} state=directory
with_items: "{{nfs_exports}}"
notify: restart-nfs
+- name: Ensure cleanup crontab exists
+ template:
+ src: cleanup-crontab.cron
+ dest: /etc/cron.d/cleanup
+ owner: root
+ group: root
+
- name: Copy NFS exports file
template:
src: exports.j2
@@ -18,3 +28,13 @@
group: root
mode: 0644
notify: restart-nfs
+
+- name: Open firewall port for NFS
+ ufw:
+ rule: allow
+ port: "{{item.0}}"
+ src: "{{item.1}}"
+ with_nested:
+ - "{{nfs_ports}}"
+ - "{{groups[nfs_client_group]|map('extract', hostvars, 'ansible_host')|list}}"
+ tags: nfs
diff --git a/roles/nfs-server/templates/cleanup-crontab.cron b/roles/nfs-server/templates/cleanup-crontab.cron
new file mode 100644
index 00000000..18717762
--- /dev/null
+++ b/roles/nfs-server/templates/cleanup-crontab.cron
@@ -0,0 +1,3 @@
+{% for export in nfs_exports %}
+@weekly root {{export.cleanup}}
+{% endfor %}
diff --git a/roles/nfs-server/templates/exports.j2 b/roles/nfs-server/templates/exports.j2
index c53848a8..235cc5be 100644
--- a/roles/nfs-server/templates/exports.j2
+++ b/roles/nfs-server/templates/exports.j2
@@ -10,5 +10,5 @@
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
{% for export in nfs_exports %}
-{{export.path}} {% for host in groups['jenkins_slaves']|map('extract', hostvars, 'ansible_host')|list %}{{host}}{{export.options}} {%endfor%}
+{{export.path}} {% for host in groups[nfs_client_group]|map('extract', hostvars, 'ansible_host')|list %}{{host}}{{export.options}} {%endfor%}
{% endfor %}
diff --git a/roles/node_exporter/defaults/main.yml b/roles/node_exporter/defaults/main.yml
new file mode 100644
index 00000000..e42c5c33
--- /dev/null
+++ b/roles/node_exporter/defaults/main.yml
@@ -0,0 +1,7 @@
+---
+ne_ver: 1.3.1
+ne_arch: amd64
+ne_iface: 0.0.0.0
+ne_port: 9100
+prometheus_scrape_user: prometheus
+# password in secrets
diff --git a/roles/node_exporter/handlers/main.yml b/roles/node_exporter/handlers/main.yml
new file mode 100644
index 00000000..2a755634
--- /dev/null
+++ b/roles/node_exporter/handlers/main.yml
@@ -0,0 +1,6 @@
+---
+- name: reload_systemd
+ systemd: daemon_reload=yes
+
+- name: restart_node_exporter
+ service: name=node_exporter state=restarted enabled=yes
diff --git a/roles/node_exporter/tasks/main.yml b/roles/node_exporter/tasks/main.yml
new file mode 100644
index 00000000..c3781e1b
--- /dev/null
+++ b/roles/node_exporter/tasks/main.yml
@@ -0,0 +1,78 @@
+---
+- name: Detect ARM arch
+ set_fact:
+ ne_arch: arm64
+ when: ansible_architecture == "aarch64"
+
+- name: Create node_exporter directory
+ file:
+ path: /srv/node_exporter
+ state: directory
+ owner: root
+ group: root
+ mode: 0775
+
+- name: Install node_exporter web-config
+ template:
+ src: web-config.j2
+ dest: /srv/node_exporter/web-config.yml
+ mode: 0640
+ owner: nobody
+ group: nogroup
+ notify:
+ - restart_node_exporter
+
+- name: Install node_exporter systemd configuration
+ template:
+ src: node_exporter.service.j2
+ dest: /etc/systemd/system/node_exporter.service
+ mode: 0644
+ owner: root
+ group: root
+ notify:
+ - reload_systemd
+ - restart_node_exporter
+
+- name: Download and install node_exporter
+ unarchive:
+ src: https://github.com/prometheus/node_exporter/releases/download/v{{ ne_ver }}/node_exporter-{{ ne_ver }}.linux-{{ ne_arch }}.tar.gz
+ dest: /srv/node_exporter
+ remote_src: yes
+
+- name: Install binary on system
+ copy:
+ remote_src: yes
+ src: /srv/node_exporter/node_exporter-{{ ne_ver }}.linux-{{ ne_arch }}/node_exporter
+ dest: /usr/sbin/node_exporter
+ owner: nobody
+ group: nogroup
+ mode: '0555'
+ notify:
+ - restart_node_exporter
+
+- name: Open firewall for prometheus scrapers
+ ufw:
+ rule: allow
+ proto: tcp
+ port: "{{ ne_port }}"
+ src: "{{ item }}"
+ with_items: "{{ prometheus_scrape_ips }}"
+ when: ne_push is not defined and ne_ufw is defined
+
+- name: Install push script
+ template:
+ src: ne_push.j2
+ dest: /srv/node_exporter/ne_push.sh
+ mode: 0755
+ owner: nobody
+ group: nobody
+ when: ne_push is defined
+
+- name: Install push cront job
+ template:
+ src: ne_push_cron.j2
+ dest: /etc/cron.d/node_exporter_push
+ mode: 0755
+ owner: nobody
+ group: nobody
+ when: ne_push is defined
diff --git a/roles/node_exporter/templates/ne_push.j2 b/roles/node_exporter/templates/ne_push.j2
new file mode 100644
index 00000000..67c46ba3
--- /dev/null
+++ b/roles/node_exporter/templates/ne_push.j2
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+SCRAPEUSER="{{ prometheus_scrape_user }}"
+SCRAPEPASS="{{ prometheus_scrape_password }}"
+
+PUSHUSER="{{ prometheus_push_user }}"
+PUSHPASS="{{ prometheus_push_password }}"
+
+PUSHGATEWAY="{{ prometheus_push_gateway }}"
+NODE_NAME="{{ inventory_hostname }}"
+
+curl -s -u "${SCRAPEUSER}:${SCRAPEPASS}" {{ ne_iface }}:{{ ne_port }} | \
+curl -s -u "${PUSHUSER}:${PUSHPASS}" --data-binary @- \
+$PUSHGATEWAY/metrics/job/node-exporter/instance/$NODE_NAME
diff --git a/roles/node_exporter/templates/ne_push_cron.j2 b/roles/node_exporter/templates/ne_push_cron.j2
new file mode 100644
index 00000000..a594de85
--- /dev/null
+++ b/roles/node_exporter/templates/ne_push_cron.j2
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+MAILTO=linaro-infrastructure-errors@lists.linaro.org
+
+{{ prometheus_push_schedule }} /srv/node_exporter/ne_push.sh
diff --git a/roles/node_exporter/templates/node_exporter.service.j2 b/roles/node_exporter/templates/node_exporter.service.j2
new file mode 100644
index 00000000..07b509e2
--- /dev/null
+++ b/roles/node_exporter/templates/node_exporter.service.j2
@@ -0,0 +1,30 @@
+[Unit]
+Description=Prometheus Node Exporter
+Wants=network-online.target
+After=network-online.target
+
+[Service]
+User=nobody
+Group=nogroup
+ExecStart=/usr/sbin/node_exporter \
+ --web.config=/srv/node_exporter/web-config.yml \
+ --collector.systemd \
+ --collector.textfile \
+ --collector.textfile.directory=/var/lib/node_exporter \
+ --web.listen-address={{ ne_iface }}:{{ ne_port }}
+
+SyslogIdentifier=node_exporter
+Restart=always
+RestartSec=1
+StartLimitInterval=0
+
+ProtectHome=yes
+NoNewPrivileges=yes
+
+ProtectSystem=strict
+ProtectControlGroups=true
+ProtectKernelModules=true
+ProtectKernelTunables=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/roles/node_exporter/templates/web-config.j2 b/roles/node_exporter/templates/web-config.j2
new file mode 100644
index 00000000..83963659
--- /dev/null
+++ b/roles/node_exporter/templates/web-config.j2
@@ -0,0 +1,8 @@
+---
+http_server_config:
+ http2: false
+
+{% if prometheus_scrape_user != None and prometheus_scrape_password != None %}
+basic_auth_users:
+ {{ prometheus_scrape_user }}: {{ prometheus_scrape_password | password_hash('bcrypt') }}
+{% endif %}
diff --git a/roles/obs-bastion/tasks/main.yml b/roles/obs-bastion/tasks/main.yml
deleted file mode 100644
index c3643d06..00000000
--- a/roles/obs-bastion/tasks/main.yml
+++ /dev/null
@@ -1,88 +0,0 @@
-#- name: Reset ufw to defaults
-# ufw: state=reset
-# when: firewall_reset is defined
-
-- name: install ufw
- apt:
- update_cache: yes
- name: ufw
- state: present
-
-- name: Open 5252 for slaves
- ufw:
- rule: allow
- proto: tcp
- port: 5252
- src: "{{item}}"
- with_items: "{{worker_ip}}"
-
-- name: Open 5352 for slaves
- ufw:
- rule: allow
- proto: tcp
- port: 5352
- src: "{{item}}"
- with_items: "{{worker_ip}}"
-
-# Only adds ports does not delete.
-# ufw reset is required for a fresh ufw deploy.
-- name: Open firewall ports
- ufw:
- rule: allow
- proto: tcp
- port: "{{item}}"
- with_items:
- - 22
- - 80
- - 443
- - 655
-
-- name: Enable Firewall
- ufw:
- direction: "{{item.direction}}"
- policy: "{{item.policy}}"
- logging: off
- state: enabled
- with_items:
- - { direction: 'incoming', policy: 'deny' }
- - { direction: 'outgoing', policy: 'allow' }
-
-- name: Format obs_data volume
- filesystem:
- fstype: "{{obsdata_fstype}}"
- dev: "{{obsdata_dev}}"
-
-- name: Mount obs_data volume
- mount:
- path: /var/lib/machines/obs/srv
- state: mounted
- passno: 2
- fstype: "{{obsdata_fstype}}"
- src: "{{obsdata_dev}}"
-
-- name: Format obs_backup volume
- filesystem:
- fstype: "{{obsbackup_fstype}}"
- dev: "{{obsbackup_dev}}"
-
-- name: Mount obs_backup volume
- mount:
- path: /srv/backups
- state: mounted
- passno: 2
- fstype: "{{obsbackup_fstype}}"
- src: "{{obsbackup_dev}}"
-
-- name: add obs-backup user
- user:
- name: obs-backup
- home: /srv/backups/obs
- state: present
-
-- name: Set authorized key took from file
- authorized_key:
- user: obs-backup
- state: present
- key: "{{lookup('file', '{{secrets_dir}}/files/obs/id_rsa.pub')}}"
-
-
diff --git a/roles/obs-worker/tasks/main.yml b/roles/obs-worker/tasks/main.yml
deleted file mode 100644
index d8b4a236..00000000
--- a/roles/obs-worker/tasks/main.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-- name: create obsworker container
- docker_container:
- name: obsworker
- image: linaro/ci-obsworker
- state: started
- pull: yes
- privileged: yes
- hostname: "{{ansible_hostname}}"
- expose: "${OBS_PORT}"
- ports:
- - "{{OBS_PORT}}:{{OBS_PORT}}"
- env:
- OBS_SERVER: obs
- OBS_IP: "{{OBS_IP}}"
- OBS_JOBS: "{{OBS_JOBS}}"
- OBS_PORT: "{{OBS_PORT}}"
- OBS_TMPFS: "{{OBS_TMPFS}}"
-
-- name: Open firewall for OBS master
- ufw:
- rule: allow
- proto: tcp
- port: "{{OBS_PORT}}"
- src: "{{OBS_IP}}"
-
diff --git a/roles/obs/files/BSConfig.pm b/roles/obs/files/BSConfig.pm
deleted file mode 100644
index 3c4eefc9..00000000
--- a/roles/obs/files/BSConfig.pm
+++ /dev/null
@@ -1,213 +0,0 @@
-#
-# Copyright (c) 2006, 2007 Michael Schroeder, Novell Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program (see the file COPYING); if not, write to the
-# Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-#
-################################################################
-#
-# Open Build Service Configuration
-#
-
-package BSConfig;
-
-use Net::Domain;
-use Socket;
-
-my $hostname = Net::Domain::hostfqdn() || 'localhost';
-# IP corresponding to hostname (only used for $ipaccess); fallback to localhost since inet_aton may fail to resolve at shutdown.
-my $ip = quotemeta inet_ntoa(inet_aton($hostname) || inet_aton("localhost"));
-
-my $frontend = undef; # FQDN of the WebUI/API server if it's not $hostname
-
-# If defined, restrict access to the backend servers (bs_repserver, bs_srcserver, bs_service)
-our $ipaccess = {
- '127\..*' => 'rw', # only the localhost can write to the backend
- "^$ip" => 'rw', # Permit IP of FQDN
- '.*' => 'worker', # build results can be delivered from any client in the network
-};
-
-# IP of the WebUI/API Server (only used for $ipaccess)
-if ($frontend) {
- my $frontendip = quotemeta inet_ntoa(inet_aton($frontend) || inet_aton("localhost"));
- $ipaccess->{$frontendip} = 'rw' ; # in dotted.quad format
-}
-
-# Change also the SLP reg files in /etc/slp.reg.d/ when you touch hostname or port
-our $srcserver = "http://$hostname:5352";
-our $reposerver = "http://$hostname:5252";
-our $serviceserver = "http://$hostname:5152";
-
-# you can use different ports for worker connections
-#our $workersrcserver = "http://$hostname:5353";
-#our $workerreposerver = "http://$hostname:5253";
-
-our $servicedir = "/usr/lib/obs/service/";
-#our $servicetempdir = "/srv/obs/service";
-#our $serviceroot = "/opt/obs/MyServiceSystem";
-
-# Maximum number of concurrent jobs for source service
-#our $service_maxchild = 20;
-
-#our $gpg_standard_key = "/etc/obs-default-gpg.asc";
-# optional notification service:
-#our $hermesserver = "http://$hostname/hermes";
-#our $hermesnamespace = "OBS";
-#
-# Notification Plugin, multiple plugins supported, separated by space
-#our $notification_plugin = "notify_hermes notify_rabbitmq";
-#
-
-# For the workers only, it is possible to define multiple repository servers here.
-# But only one source server is possible yet.
-our @reposervers = ("http://$hostname:5252");
-
-# Package defaults
-our $bsdir = '/srv/obs';
-our $bsuser = 'obsrun';
-our $bsgroup = 'obsrun';
-# user and group for bs_service (if the lxc service wrapper is used, set
-# $bsserviceuser to root). If several obs services (e.g., bs_service and
-# bs_srcserver) run on the same host, make sure that $bsservicegroup is set
-# to $bsgroup.
-our $bsserviceuser = 'obsservicerun';
-our $bsservicegroup = $bsgroup;
-#our $bsquotafile = '/srv/obs/quota.xml';
-
-# Use asynchronus scheduler. This avoids hanging schedulers on remote projects,
-# when the network is slow or broken. This will become the default in future
-# our $sched_asyncmode = 1;
-
-# Define how the scheduler does a cold start. The default (0) is to request the
-# data for all packages, (1) means that only the non-remote packages are fetched,
-# (2) means that all of the package data fetches get delayed.
-# our $sched_startupmode = 0;
-
-# Disable fdatasync calls, increases the speed, but may lead to data
-# corruption on system crash when the filesystem does not guarantees
-# data write before rename.
-# It is esp. required on XFS filesystem.
-# It is safe to be disabled on ext4 and btrfs filesystems.
-#our $disable_data_sync = 1;
-
-# Package rc script / backend communication + log files
-our $rundir = "$bsdir/run";
-our $logdir = "$bsdir/log";
-
-# optional for non-acl systems, should be set for access control
-# 0: trees are shared between projects (built-in default)
-# 1: trees are not shared (only usable for new installations)
-# 2: new trees are not shared, in case of a missing tree the shared
-# location is also tried (package default)
-our $nosharedtrees = 2;
-
-# enable binary release tracking by default for release projects
-our $packtrack = [];
-
-# optional: limit visibility of projects for some architectures
-#our $limit_projects = {
-# "ppc" => [ "openSUSE:Factory", "FATE" ],
-# "ppc64" => [ "openSUSE:Factory", "FATE" ],
-#};
-
-# optional: allow seperation of releasnumber syncing per architecture
-# one counter pool for all ppc architectures, one for i586/x86_64,
-# arm archs are seperated and one for the rest in this example
-our $relsync_pool = {
- "local" => "local",
- "i586" => "i586",
- "x86_64" => "i586",
- "ppc" => "ppc",
- "ppc64" => "ppc",
- "ppc64le" => "ppc",
- "mips" => "mips",
- "mips64" => "mips",
- "mipsel" => "mipsel",
- "mips64el" => "mipsel",
- "aarch64" => "arm",
- "aarch64_ilp32" => "arm",
- "armv4l" => "arm",
- "armv5l" => "arm",
- "armv6l" => "arm",
- "armv6hl" => "arm",
- "armv7l" => "arm",
- "armv7hl" => "arm",
- "armv5el" => "armv5el", # they do not exist
- "armv6el" => "armv6el",
- "armv7el" => "armv7el",
- "armv8el" => "armv8el",
- "sparcv9" => "sparcv9",
- "sparc64" => "sparcv9",
-};
-
-#No extra stage server sync
-#our $stageserver = 'rsync://127.0.0.1/put-repos-main';
-#our $stageserver_sync = 'rsync://127.0.0.1/trigger-repos-sync';
-
-#No package signing server
-our $sign = '/usr/bin/sign.sh';
-#Extend sign call with project name as argument "--project $NAME"
-#our $sign_project = 1;
-#Global sign key
-our $keyfile = '/etc/obs/public.key';
-
-# Use a special local arch for product building
-# our $localarch = "x86_64";
-
-# config options for the bs_worker
-#
-#our buildlog_maxsize = 500 * 1000000;
-#our buildlog_maxidle = 8 * 3600;
-#our xenstore_maxsize = 20 * 1000000;
-#our gettimeout = 1 * 3600;
-#
-# run a script to check if the worker is good enough for the job
-#our workerhostcheck = 'my_check_script';
-#
-# Allow to build as root, exceptions per package
-# the keys are actually anchored regexes
-# our $norootexceptions = { "my_project/my_package" => 1, "openSUSE:Factory.*/installation-images" => 1 };
-
-# Use old style source service handling
-# our $old_style_services = 1;
-
-###
-# Optional support to split the binary backend. This can be used on large servers
-# to seperate projects for better scalability.
-# There is still just one source server, but there can be multiple servers which
-# run each repserver, schedulers, dispatcher, warden and publisher
-#
-# This repo service is the 'home' server for all home:* projects. This and the
-# $reposerver setting must be different on the binary backend servers.
-# our $partition = 'home';
-#
-# this defines how the projects are split. All home: projects are hosted
-# on an own server in this example. Order is important.
-# our $partitioning = [ 'home:' => 'home',
-# '.*' => 'main',
-# ];
-#
-# our $partitionservers = { 'home' => 'http://home-backend-server:5252',
-# 'main' => 'http://main-backend-server:5252',
-# };
-
-# host specific configs
-my $hostconfig = __FILE__;
-$hostconfig =~ s/[^\/]*$/bsconfig.$hostname/;
-if (-r $hostconfig) {
- print STDERR "reading $hostconfig...\n";
- require $hostconfig;
-}
-
-1;
diff --git a/roles/obs/files/landingpage/LICENSE.md b/roles/obs/files/landingpage/LICENSE.md
deleted file mode 100644
index 66a9342b..00000000
--- a/roles/obs/files/landingpage/LICENSE.md
+++ /dev/null
@@ -1,29 +0,0 @@
-Software License Agreement (BSD License)
-========================================
-
-Copyright 2013 Yahoo! Inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the name of the Yahoo! Inc. nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/roles/obs/files/landingpage/css/layouts/marketing.css b/roles/obs/files/landingpage/css/layouts/marketing.css
deleted file mode 100644
index 0ffc3ca3..00000000
--- a/roles/obs/files/landingpage/css/layouts/marketing.css
+++ /dev/null
@@ -1,286 +0,0 @@
-* {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-/*
- * -- BASE STYLES --
- * Most of these are inherited from Base, but I want to change a few.
- */
-body {
- line-height: 1.7em;
- color: #7f8c8d;
- font-size: 13px;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-label {
- color: #34495e;
-}
-
-.pure-img-responsive {
- max-width: 100%;
- height: auto;
-}
-
-/*
- * -- LAYOUT STYLES --
- * These are some useful classes which I will need
- */
-.l-box {
- padding: 1em;
-}
-
-.l-box-lrg {
- padding: 2em;
- border-bottom: 1px solid rgba(0,0,0,0.1);
-}
-
-.is-center {
- text-align: center;
-}
-
-
-
-/*
- * -- PURE FORM STYLES --
- * Style the form inputs and labels
- */
-.pure-form label {
- margin: 1em 0 0;
- font-weight: bold;
- font-size: 100%;
-}
-
-.pure-form input[type] {
- border: 2px solid #ddd;
- box-shadow: none;
- font-size: 100%;
- width: 100%;
- margin-bottom: 1em;
-}
-
-/*
- * -- PURE BUTTON STYLES --
- * I want my pure-button elements to look a little different
- */
-.pure-button {
- background-color: #1f8dd6;
- color: white;
- padding: 0.5em 2em;
- border-radius: 5px;
-}
-
-a.pure-button-primary {
- background: white;
- color: #1f8dd6;
- border-radius: 5px;
- font-size: 120%;
-}
-
-
-/*
- * -- MENU STYLES --
- * I want to customize how my .pure-menu looks at the top of the page
- */
-
-.home-menu {
- padding: 0.5em;
- text-align: center;
- box-shadow: 0 1px 1px rgba(0,0,0, 0.10);
-}
-.home-menu {
- background: #2d3e50;
-}
-.pure-menu.pure-menu-fixed {
- /* Fixed menus normally have a border at the bottom. */
- border-bottom: none;
- /* I need a higher z-index here because of the scroll-over effect. */
- z-index: 4;
-}
-
-.home-menu .pure-menu-heading {
- color: white;
- font-weight: 400;
- font-size: 120%;
-}
-
-.home-menu .pure-menu-selected a {
- color: white;
-}
-
-.home-menu a {
- color: #6FBEF3;
-}
-.home-menu li a:hover,
-.home-menu li a:focus {
- background: none;
- border: none;
- color: #AECFE5;
-}
-
-
-/*
- * -- SPLASH STYLES --
- * This is the blue top section that appears on the page.
- */
-
-.splash-container {
- background: #1f8dd6;
- z-index: 1;
- overflow: hidden;
- /* The following styles are required for the "scroll-over" effect */
- width: 100%;
- height: 88%;
- top: 0;
- left: 0;
- position: fixed !important;
-}
-
-.splash {
- /* absolute center .splash within .splash-container */
- width: 80%;
- height: 50%;
- margin: auto;
- position: absolute;
- top: 100px; left: 0; bottom: 0; right: 0;
- text-align: center;
- text-transform: uppercase;
-}
-
-/* This is the main heading that appears on the blue section */
-.splash-head {
- font-size: 20px;
- font-weight: bold;
- color: white;
- border: 3px solid white;
- padding: 1em 1.6em;
- font-weight: 100;
- border-radius: 5px;
- line-height: 1em;
-}
-
-/* This is the subheading that appears on the blue section */
-.splash-subhead {
- color: white;
- letter-spacing: 0.05em;
- opacity: 0.8;
-}
-
-/*
- * -- CONTENT STYLES --
- * This represents the content area (everything below the blue section)
- */
-.content-wrapper {
- /* These styles are required for the "scroll-over" effect */
- position: absolute;
- top: 87%;
- width: 100%;
- min-height: 12%;
- z-index: 2;
- background: white;
-
-}
-
-/* We want to give the content area some more padding */
-.content {
- padding: 1em 1em 3em;
-}
-
-/* This is the class used for the main content headers (<h2>) */
-.content-head {
- font-weight: 400;
- text-transform: uppercase;
- letter-spacing: 0.1em;
- margin: 2em 0 1em;
-}
-
-/* This is a modifier class used when the content-head is inside a ribbon */
-.content-head-ribbon {
- color: white;
-}
-
-/* This is the class used for the content sub-headers (<h3>) */
-.content-subhead {
- color: #1f8dd6;
-}
- .content-subhead i {
- margin-right: 7px;
- }
-
-/* This is the class used for the dark-background areas. */
-.ribbon {
- background: #2d3e50;
- color: #aaa;
-}
-
-/* This is the class used for the footer */
-.footer {
- background: #111;
- position: fixed;
- bottom: 0;
- width: 100%;
-}
-
-/*
- * -- TABLET (AND UP) MEDIA QUERIES --
- * On tablets and other medium-sized devices, we want to customize some
- * of the mobile styles.
- */
-@media (min-width: 48em) {
-
- /* We increase the body font size */
- body {
- font-size: 16px;
- }
-
- /* We can align the menu header to the left, but float the
- menu items to the right. */
- .home-menu {
- text-align: left;
- }
- .home-menu ul {
- float: right;
- }
-
- /* We increase the height of the splash-container */
-/* .splash-container {
- height: 500px;
- }*/
-
- /* We decrease the width of the .splash, since we have more width
- to work with */
- .splash {
- width: 50%;
- height: 50%;
- }
-
- .splash-head {
- font-size: 250%;
- }
-
-
- /* We remove the border-separator assigned to .l-box-lrg */
- .l-box-lrg {
- border: none;
- }
-
-}
-
-/*
- * -- DESKTOP (AND UP) MEDIA QUERIES --
- * On desktops and other large devices, we want to over-ride some
- * of the mobile and tablet styles.
- */
-@media (min-width: 78em) {
- /* We increase the header font size even more */
- .splash-head {
- font-size: 300%;
- }
-}
diff --git a/roles/obs/files/landingpage/index.html b/roles/obs/files/landingpage/index.html
deleted file mode 100644
index bf0873c1..00000000
--- a/roles/obs/files/landingpage/index.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="description" content="Linaro OBS.">
- <title>Linaro OBS</title>
-
- <link rel="stylesheet" href="https://unpkg.com/purecss@0.6.2/build/pure-min.css" integrity="sha384-" crossorigin="anonymous">
-
- <!--[if lte IE 8]>
- <link rel="stylesheet" href="https://unpkg.com/purecss@0.6.2/build/grids-responsive-old-ie-min.css">
- <![endif]-->
- <!--[if gt IE 8]><!-->
- <link rel="stylesheet" href="https://unpkg.com/purecss@0.6.2/build/grids-responsive-min.css">
- <!--<![endif]-->
-
- <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
- <link rel="stylesheet" href="css/layouts/marketing.css">
-</head>
-<body>
-
-<div class="header">
- <div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
- <a class="pure-menu-heading" href="https://www.linaro.org/">
- <img height="50" width="80" alt="Linaro" class="pure-img" src="https://www.linaro.org/app/images/linaro-logo-web.png">
- </a>
-
- <ul class="pure-menu-list">
- <li class="pure-menu-item pure-menu-selected"><a href="#" class="pure-menu-link">Home</a></li>
- <li class="pure-menu-item"><a href="#" class="pure-menu-link">Instructions</a></li>
- <li class="pure-menu-item"><a href="https://obs.linaro.org/" class="pure-menu-link">Log in</a></li>
- </ul>
- </div>
-</div>
-
-<div class="splash-container">
- <div class="splash">
- <h1 class="splash-head">Open Build Service</h1>
- <p class="splash-subhead">
- Building Centos, Debian, Fedora and Ubuntu packages for Linaro
- </p>
- <p>
- <a href="https://wiki.linaro.org/OBS" class="pure-button pure-button-primary">Get Started</a>
- </p>
- </div>
-</div>
-
-<div class="content-wrapper">
- <div class="content">
- <h2 class="content-head is-center">Instructions</h2>
-
- <div class="pure-g">
- <div class="l-box pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
-
- <h3 class="content-subhead">
- <i class="fa fa-rocket"></i>
- Get Started Quickly
- </h3>
- <p> Use the Jenkins CI jobs to submit your Packages:
- <ul class="pure-menu-list">
- <li class="pure-menu-item">
- <a class="pure-menu-link" href="https://ci.linaro.org/job/build-package-obs/">DEB</a>
- </li>
- <li class="pure-menu-item">
- <a class="pure-menu-link" href="https://ci.linaro.org/job/build-rpm-obs/">RPM</a>
- </li>
- </ul>
- </p>
- </div>
- <div class="l-box pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
- <h3 class="content-subhead">
- <i class="fa fa-th-large"></i>
- Manuals
- </h3>
- <p>
- <ul class="pure-menu-list">
- <li class="pure-menu-item">
- <a class="pure-menu-link" href="https://wiki.linaro.org/OBS">Linaro OBS Instance</a>
- </li>
- <li class="pure-menu-item">
- <a class="pure-menu-link" href="http://openbuildservice.org/">General OBS docs</a>
- </li>
- </ul>
- </p>
- </div>
- <div class="l-box pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
- <h3 class="content-subhead">
- <i class="fa fa-th-large"></i>
- Repositories
- </h3>
- <p>
- <ul class="pure-menu-list">
- <li class="pure-menu-item">
- <a class="pure-menu-link" href="http://obs.linaro.org/linaro-overlay-stretch/Debian_9.0/">Linaro Overlay Debian 9.0</a>
- </li>
- <li class="pure-menu-item">
- <a class="pure-menu-link" href="http://obs.linaro.org/linaro-staging-stretch/Debian_9.0/">Linaro Staging Debian 9.0</a>
- </li>
- <li class="pure-menu-item">
- <a class="pure-menu-link" href="http://repo.linaro.org/ubuntu">OLD</a>
- </li>
- <li class="pure-menu-item">More coming!
- </li>
- </ul>
- </p>
- </div>
- <div class="l-box pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
- <h3 class="content-subhead">
- <i class="fa fa-check-square-o"></i>
- Open Source
- </h3>
- <p>
- <ul class="pure-menu-list">
- <li class="pure-menu-item">
- <a class="pure-menu-link" href="http://openbuildservice.org/">Upstream Homepage</a>
- </li>
- <li class="pure-menu-item">
- <a class="pure-menu-link" href="https://github.com/openSUSE/open-build-service">Upstream sources</a>
- </li>
- </ul>
- </p>
- </div>
- </div>
- </div>
- <div class="ribbon l-box-lrg pure-g">
- <div class="l-box-lrg is-center pure-u-1 pure-u-md-1-2 pure-u-lg-2-5">
- <img width="300" alt="File Icons" class="pure-img-responsive" src="https://www.linaro.cloud/wp-content/uploads/2016/05/DeveloperCloud-Logo_white-icon-DeveloperCloud.png">
- </div>
- <div class="pure-u-1 pure-u-md-1-2 pure-u-lg-3-5">
-
- <h2 class="content-head content-head-ribbon">Runs on Linaro arm64 Cloud</h2>
- <p>ARM for servers is here, today!
- </p>
- </div>
- </div>
-
-</div>
-
-</body>
-</html>
diff --git a/roles/obs/files/obs-installgpg.sh b/roles/obs/files/obs-installgpg.sh
deleted file mode 100755
index 7a241c50..00000000
--- a/roles/obs/files/obs-installgpg.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash -e
-
-gpg --import /root/private.key
-gpg --import /etc/obs/public.key
-cp -a ~/.gnupg ~obsrun/
-chown -R obsrun:obsrun ~obsrun/.gnupg
diff --git a/roles/obs/files/sign.sh b/roles/obs/files/sign.sh
deleted file mode 100755
index d4d7f4d4..00000000
--- a/roles/obs/files/sign.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-# minimal replacement for stack of obs-signd, obssigner and patched gpg2
-# works for Signing Release and repodata
-
-while getopts "d:" Option
-do
- case $Option in
- d) path=$OPTARG;;
- esac
-done
-export GPG_TTY=$(tty)
-/usr/bin/gpg --batch --yes --detach-sign -a $path
diff --git a/roles/obs/handlers/main.yml b/roles/obs/handlers/main.yml
deleted file mode 100644
index 2479a155..00000000
--- a/roles/obs/handlers/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-- name: restart-apache
- service: name=apache2 state=restarted
-
-- name: restart-obspublisher
- service: name=obspublisher state=restarted
diff --git a/roles/obs/tasks/main.yml b/roles/obs/tasks/main.yml
deleted file mode 100644
index 470a9137..00000000
--- a/roles/obs/tasks/main.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-- name: Use dbconfig for OBS
- debconf:
- name: obs-api
- question: obs-api/dbconfig-install
- value: true
- vtype: boolean
-- name: Set mysql admin
- debconf:
- name: obs-api
- question: obs-api/mysql/admin-user
- value: root
- vtype: string
-- name: Set mysql admin password
- debconf:
- name: obs-api
- question: obs-api/mysql/admin-password
- value: "{{mysql_password}}"
- vtype: password
-- name: Set api password
- debconf:
- name: obs-api
- question: obs-api/mysql/app-password
- value: "{{mysql_password}}"
- vtype: password
-- name: Add OBS apt key
- apt_key:
- url: http://obs.linaro.org/linaro-overlay-stretch/Debian_9.0/Release.key
- state: present
-- name: Add OBS overlay repository
- apt_repository:
- repo: deb http://obs.linaro.org/linaro-overlay-stretch/Debian_9.0/ ./
- state: present
-
-- name: Install OBS
- apt: pkg={{item}} state=present update_cache=yes
- with_items:
- - obs-api=2.7.1-10.5
- - obs-server=2.7.1-10.5
- - obs-service-download-url=0.2
- - osc=0.156.0-2
- tags:
- - update
-- name: Rails configuration with rake
- shell: /usr/share/obs/api/script/rake-tasks.sh setup >> /home/obs-admin/install.log 2>&1
- args:
- creates: /srv/obs/configuration.xml
-- name: Enable ldap
- template:
- src: options.yml
- dest: /etc/obs/api/config/options.yml
-- name: tailor apache conf
- template: src=obs.conf dest=/etc/apache2/sites-available/obs.conf mode=0444
- notify:
- - restart-apache
- tags:
- - web
-- name: install landing page
- copy: src=landingpage/ dest=/srv/obs/repos
- tags:
- - web
-- name: enable obsscheduler@aarch64
- service:
- name: obsscheduler@aarch64
- enabled: yes
- state: started
-
-- name: enable obsservice
- service:
- name: obsservice
- enabled: yes
- state: started
-
-- {import_tasks: sign.yml, tags: [gpg]}
-
diff --git a/roles/obs/tasks/sign.yml b/roles/obs/tasks/sign.yml
deleted file mode 100644
index 120a7692..00000000
--- a/roles/obs/tasks/sign.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-- name: Copy Secret GPG key
- copy: src="{{secrets_dir}}/files/obs/private.key" dest=/root/private.key
- mode=0400
-
-- name: Copy public GPG key
- copy: src="{{secrets_dir}}/files/obs/public.key" dest=/etc/obs/public.key
- mode=0444
-
-- name: Install support scripts
- copy: src="{{item}}" dest=/usr/bin/ mode=0755
- with_fileglob:
- - "*.sh"
-
-- name: Set up PGP for obsrun
- command: /usr/bin/obs-installgpg.sh
- args:
- creates: /root/.gnupg/secring.gpg
-
-- name: Install OBS config for signing
- copy: src=BSConfig.pm dest=/etc/obs/BSConfig.pm
- notify:
- - restart-obspublisher
-
diff --git a/roles/obs/templates/obs.conf b/roles/obs/templates/obs.conf
deleted file mode 100644
index 75c64ad3..00000000
--- a/roles/obs/templates/obs.conf
+++ /dev/null
@@ -1,68 +0,0 @@
-# May needed on old distributions or after an update from them.
-#Listen 443
-
-# Passenger defaults
-PassengerSpawnMethod "smart"
-PassengerMaxPoolSize 20
-#RailsEnv "development"
-
-# allow long request urls and being part of headers
-LimitRequestLine 20000
-LimitRequestFieldsize 20000
-
-# Build Results
-<VirtualHost *:80>
- # The resulting repositories
- DocumentRoot "/srv/obs/repos"
-
- <Directory /srv/obs/repos>
- Options Indexes FollowSymLinks
- Allow from all
- Require all granted
- </Directory>
-</VirtualHost>
-
-
-# OBS WEBUI & API
-<VirtualHost *:443>
- ServerName {{hostname}}
-
- # General setup for the virtual host
- DocumentRoot "/usr/share/obs/api/public"
- ErrorLog /var/log/obs/apache_error_log
- TransferLog /var/log/obs/apache_access_log
-
- PassengerMinInstances 2
- PassengerPreStart https://api
-
- SSLEngine on
-
- SSLCertificateFile /etc/letsencrypt/live/{{hostname}}/fullchain.pem
- SSLCertificateKeyFile /etc/letsencrypt/live/{{hostname}}/privkey.pem
- Include /etc/letsencrypt/options-ssl-apache.conf
-
- <Directory /usr/share/obs/api/public>
- AllowOverride all
- Options -MultiViews
-
- # This requires mod_xforward loaded in apache
- # Enable the usage via options.yml
- # This will decrease the load due to long running requests a lot (unloading from rails stack)
- XForward on
-
- Allow from all
- Require all granted
- </Directory>
-
- CustomLog /var/log/apache2/ssl_request_log ssl_combined
-
- # from http://guides.rubyonrails.org/asset_pipeline.html
- <LocationMatch "^/assets/.*$">
- Header unset ETag
- FileETag None
- # RFC says only cache for 1 year
- ExpiresActive On
- ExpiresDefault "access plus 1 year"
- </LocationMatch>
-
-</VirtualHost>
diff --git a/roles/obs/templates/options.yml b/roles/obs/templates/options.yml
deleted file mode 100644
index 316f311c..00000000
--- a/roles/obs/templates/options.yml
+++ /dev/null
@@ -1,157 +0,0 @@
-#
-# This file contains the default configuration of the Open Build Service API.
-#
-
-#read_only_hosts: [ "build.opensuse.org", "software.opensuse.org" ]
-
-# Make use of mod_xforward module in apache
-#use_xforward: true
-
-# Make use of X-Accel-Redirect for Nginx.
-# http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote
-#use_nginx_redirect: /internal_redirect
-
-# Minimum count of rating votes a project/package needs to # be taken in account
-# for global statistics:
-min_votes_for_rating: 1
-
-# Set to true to verify XML reponses comply to the schema
-response_schema_validation: false
-
-# backend source server
-source_host: localhost
-# NOTE: the source_port setting is ignored and hardcoded for "test" and "development" env
-source_port: 5352
-#source_protocol: https
-
-# api access to this instance
-frontend_host: localhost
-frontend_port: 443
-frontend_protocol: https
-#api_relative_url_root: /obs
-# if your users access the hosts through a proxy (or just a different name, use this to
-# overwrite the settings for users)
-#external_frontend_host: api.opensuse.org
-#external_frontend_port: 443
-#external_frontend_protocol: https
-
-
-extended_backend_log: false
-
-# proxy_auth_mode can be :off, :on or :simulate
-proxy_auth_mode: :off
-
-# ATTENTION: If proxy_auth_mode'is :on, the frontend takes the user
-# name that is coming as headervalue X-username as a
-# valid user does no further authentication. So take care...
-proxy_auth_test_user: coolguy
-proxy_auth_test_email: coolguy@example.com
-
-#schema_location
-
-#version
-
-# if set to false, the API will only fake writes to backend (useful in testing)
-# global_write_through: true
-
-# see http://colszowka.heroku.com/2011/02/22/setting-up-your-custom-hoptoad-notifier-endpoint-for-free-using-errbit-on-heroku
-#errbit_api_key: api_key_of_your_app
-#errbit_host: installation.of.errbit.com
-
-##################
-# LDAP options
-##################
-
-ldap_mode: :on
-
-# LDAP Servers separated by ':'.
-# OVERRIDE with your company's ldap servers. Servers are picked randomly for
-# each connection to distribute load.
-ldap_servers: login.linaro.org
-
-# Max number of times to attempt to contact the LDAP servers
-ldap_max_attempts: 15
-
-# The attribute the user memberof is stored in
-ldap_user_memberof_attr: memberof
-
-# Perform the group_user search with the member attribute of group entry or memberof attribute of user entry
-# It depends on your ldap define
-# The attribute the group member is stored in
-ldap_group_member_attr: member
-
-# If you're using ldap_authenticate=:ldap then you should ensure that
-# ldaps is used to transfer the credentials over SSL or use the StartTLS extension
-ldap_ssl: :on
-
-# Use StartTLS extension of LDAP
-ldap_start_tls: :off
-
-# LDAP port defaults to 636 for ldaps and 389 for ldap and ldap with StartTLS
-ldap_port: 636
-# Authentication with Windows 2003 AD requires
-ldap_referrals: :off
-
-# OVERRIDE with your company's ldap search base for the users who will use OBS
-ldap_search_base: dc=linaro,dc=org
-# Sam Account Name is the login name for LDAP
-ldap_search_attr: uid
-# The attribute the users name is stored in
-ldap_name_attr: uid
-# The attribute the users email is stored in
-ldap_mail_attr: mail
-# Credentials to use to search ldap for the username
-ldap_search_user: "{{ ldap_search_user }}"
-ldap_search_auth: "{{ ldap_search_auth }}"
-
-# By default any LDAP user can be used to authenticate to the OBS
-# In some deployments this may be too broad and certain criteria should
-# be met; eg group membership
-#
-# To allow only users in a specific group uncomment this line:
-#ldap_user_filter: (memberof=CN=group,OU=Groups,DC=Domain Component)
-#
-# Note this is joined to the normal selection like so:
-# (&(#{ldap_search_attr}=#{login})#{ldap_user_filter})
-# giving an ldap search of:
-# (&(sAMAccountName=#{login})(memberof=CN=group,OU=Groups,DC=Domain Component))
-#
-# Also note that openLDAP must be configured to use the memberOf overlay
-
-# ldap_authenticate says how the credentials are verified:
-# :ldap = attempt to bind to ldap as user using supplied credentials
-# :local = compare the credentials supplied with those in
-# LDAP using #{ldap_auth_attr} & #{ldap_auth_mech}
-# if :local is used then ldap_auth_mech can be
-# :md5
-# :cleartext
-ldap_authenticate: :ldap
-ldap_auth_mech: :md5
-# This is a string
-ldap_auth_attr: userPassword
-
-# Whether to update the user info to LDAP server, it does not take effect
-# when ldap_mode is not set.
-# Since adding new entry operation are more depend on your slapd db define, it might not
-# compatiable with all LDAP server settings, you can use other LDAP client tools for your specific usage
-ldap_update_support: :off
-# ObjectClass, used for adding new entry
-ldap_object_class: inetOrgPerson
-# Base dn for the new added entry
-ldap_entry_base: ou=OBSUSERS,dc=EXAMPLE,dc=COM
-# Does sn attribute required, it is a necessary attribute for most of people objectclass,
-# used for adding new entry
-ldap_sn_attr_required: :on
-
-# Whether to search group info from ldap, it does not take effect
-# when LDAP_GROUP_SUPPOR is not set.
-# Please also set below LDAP_GROUP_* configs correctly to ensure the operation works properly
-ldap_group_support: :off
-# OVERRIDE with your company's ldap search base for groups
-ldap_group_search_base: ou=OBSGROUPS,dc=EXAMPLE,dc=COM
-# The attribute the group name is stored in
-ldap_group_title_attr: cn
-# The value of the group objectclass attribute, leave it as "" if objectclass attr doesn't exist
-ldap_group_objectclass_attr: groupOfNames
-
-# This is to prevent fdupes from hardlinking
diff --git a/roles/obs_deps/defaults/main.yml b/roles/obs_deps/defaults/main.yml
new file mode 100644
index 00000000..168e9c42
--- /dev/null
+++ b/roles/obs_deps/defaults/main.yml
@@ -0,0 +1,4 @@
+---
+apache_modules:
+ - ssl
+ - rewrite
diff --git a/roles/obs_deps/tasks/main.yml b/roles/obs_deps/tasks/main.yml
new file mode 100644
index 00000000..2cc7546c
--- /dev/null
+++ b/roles/obs_deps/tasks/main.yml
@@ -0,0 +1,34 @@
+---
+- name: Install required packages
+ apt:
+ pkg: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - s3fs
+ tags:
+ - update
+
+- name: Setup credentials
+ template:
+ src: s3fs.creds.j2
+ dest: /etc/passwd-s3fs
+ mode: 0640
+
+- name: Create base directory for installation
+ file:
+ path=/srv/obs.linaro.org
+ owner={{ apache_user }}
+ group={{ apache_user }}
+ mode=0755
+ state=directory
+
+- name: Setup S3fs mount
+ mount:
+ fstype=fuse
+ dump=0
+ opts=allow_other,use_cache=/tmp/cache,uid={{ apache_user }},gid={{ apache_user }}
+ boot=false
+ path=/srv/obs.linaro.org
+ src=s3fs#publishing-ie-linaro-org:/releases/obs
+ state=mounted
diff --git a/roles/obs_deps/templates/s3fs.creds.j2 b/roles/obs_deps/templates/s3fs.creds.j2
new file mode 100644
index 00000000..cdc3683f
--- /dev/null
+++ b/roles/obs_deps/templates/s3fs.creds.j2
@@ -0,0 +1 @@
+{{ s3_aws_access_key_id }}:{{ s3_aws_secret_access_key }}
diff --git a/roles/openvpn-client/defaults/main.yml b/roles/openvpn-client/defaults/main.yml
index 5d27a798..8f19944a 100644
--- a/roles/openvpn-client/defaults/main.yml
+++ b/roles/openvpn-client/defaults/main.yml
@@ -1,4 +1,5 @@
vpn_connections:
- vpn-art
- - vpn-aus-colo-ci
+ - vpn-hpc
- vpn-tcwg
+ - vpn-mlab
diff --git a/roles/patchwork-deps/handlers/main.yml b/roles/patchwork-deps/handlers/main.yml
index 244640b0..7d37547f 100644
--- a/roles/patchwork-deps/handlers/main.yml
+++ b/roles/patchwork-deps/handlers/main.yml
@@ -1,4 +1,4 @@
---
-- name: install-django-crowd-rest-backend
- command: python ./setup.py install
- chdir=/srv/django-crowd-rest-backend
+- name: install-django-auth-ldap
+ command: python3 ./setup.py install
+ chdir=/srv/django-auth-ldap
diff --git a/roles/patchwork-deps/tasks/main.yml b/roles/patchwork-deps/tasks/main.yml
index 76f3f661..2b8c3756 100644
--- a/roles/patchwork-deps/tasks/main.yml
+++ b/roles/patchwork-deps/tasks/main.yml
@@ -1,20 +1,18 @@
---
- name: Install apt dependencies
- apt: name={{item}} state=present
- with_items:
- - python-dulwich
- - python-mock
- - python-pip
- - python-sqlparse
- - git
-
-- name: Install REST API requirements
- pip: name={{item.name}} version={{item.version}}
- with_items:
- - {"name": "djangorestframework", "version": "3.5.0"}
- - {"name": "django-filter", "version": "1.1"}
- tags:
- - update
+ apt:
+ pkg: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - python3-dulwich
+ - python3-mock
+ - python3-pip
+ - python3-sqlparse
+ - git
+ - util-linux
+ - libldap2-dev
+ - libsasl2-dev
- name: Create base directory for installation
file: path={{install_base}}/{{hostname}}
@@ -33,6 +31,11 @@
tags:
- update
+- name: Install python requirements
+ pip: requirements=/srv/{{ inventory_hostname }}/tools/requirements.txt
+ tags:
+ - update
+
- name: Copy apache wsgi script
copy: src=files/patchwork/wsgi.py
dest={{install_base}}/{{hostname}}/wsgi.py
@@ -45,8 +48,8 @@
template: src=patchwork/patchwork.cron.d dest=/etc/cron.d/patchwork
owner=root group=root mode=0644
-- name: Clone django-crowd-rest-backend repository
- git: repo=https://git.linaro.org/infrastructure/django-crowd-rest-backend.git
- dest=/srv/django-crowd-rest-backend version="HEAD"
+- name: Clone django-auth-ldap repository
+ git: repo=https://github.com/django-auth-ldap/django-auth-ldap.git
+ dest=/srv/django-auth-ldap version="2.2.0"
notify:
- - install-django-crowd-rest-backend
+ - install-django-auth-ldap
diff --git a/roles/pdu-liebert/files/pdu_power b/roles/pdu-liebert/files/pdu_power
deleted file mode 100755
index 0cdc09e3..00000000
--- a/roles/pdu-liebert/files/pdu_power
+++ /dev/null
@@ -1,317 +0,0 @@
-#!/usr/bin/python
-
-# DO NOT EDIT! MANAGED BY ANSIBLE
-
-# The Liebert PDUs dont' have user-level access control, and we need to allow
-# users the ability to power on/off certain devices. Additionally we
-# need to hide the user/password of each PDU from the user. We create a
-# config file readable only to root and grant users sudo permissions for
-# running this script
-
-import argparse
-import contextlib
-import os
-import re
-import sys
-import syslog
-import textwrap
-import time
-import urllib
-import urllib2
-import yaml
-
-import paramiko
-import pexpect
-
-from StringIO import StringIO
-
-ESCAPE = '\x1b'
-CONF = '/etc/pdu_power.conf'
-
-
-def get_args():
- parser = argparse.ArgumentParser(
- description='Power on/off a device or check status.',
- formatter_class=argparse.RawTextHelpFormatter,
- epilog=textwrap.dedent('''
- Examples:
- # show the status of all devices on r1-pm-123 PDU
- pdu_power r1-pm-123
-
- # show the status of a single device:
- pdu_power r1-a1
-
- # turn on a device
- pdu_power r1-a1 on
- '''))
- parser.add_argument('device', help='Device to power on/off')
- parser.add_argument('operation', nargs='?',
- choices=('on', 'off', 'bmc-reset', 'bmc-on', 'bmc-off'),
- help='Operation on|off. If not specified check status')
- return parser.parse_args()
-
-
-def get_conf(conf_file):
- with open(conf_file) as f:
- return yaml.load(f)
-
-
-def _smash_connect(conf):
- c = paramiko.SSHClient()
- c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- c.connect(conf['host'], 22, conf['user'], conf['pass'])
- return c
-
-
-@contextlib.contextmanager
-def cyber_pdu_menu(device, user, password, key_sequence):
- pdulog = StringIO()
- pdu = pexpect.spawn('ssh %s@%s' % (user, device))
- pdu.expect('password:')
- pdu.sendline(password)
- pdu.logfile = pdulog
- try:
- pdu.expect('CyberPower > ')
- pdu.send('menumode\r\n')
-
- if key_sequence:
- for key in key_sequence:
- pdu.expect('> ')
- pdu.send(key + '\r\n')
- yield pdu
-
- # this should exit out of menu mode and log out cleanly
- for item in range(5):
- pdu.expect('> ')
- pdu.send(ESCAPE)
- pdu.expect('> ')
- pdu.send('4\r\n') # Logout
- time.sleep(0.2)
-
- pdu.close()
- except:
- sys.stderr.write(pdulog.getvalue())
- raise
-
-
-def cyber_power_op(device, user, password, receptacle, op):
- if op == 'on':
- op = '1'
- elif op == 'off':
- op = '2'
- elif op == 'reboot':
- op = '3'
- else:
- raise ValueError('Invalid power operation: ' + op)
-
- sequence = (
- '1', # Device Manager
- '6', # Outlet Manager
- '1', # Outlet Control
- '1', # Start a Control Command'
- str(receptacle),
- op,
- 'yes', # Confirm power operation
- )
-
- with cyber_pdu_menu(device, user, password, sequence):
- pass
-
-
-def cyber_power_status(pdu, device):
- host = pdu['host']
- user = pdu['user']
- password = pdu['pass']
-
- sequence = (
- '1', # Device Manager
- '6', # Outlet Manager
- '1', # Outlet Control
- )
- with cyber_pdu_menu(host, user, password, sequence) as menu:
- line = ''
- while not line.startswith('Outlet Number'):
- line = menu.readline().strip()
- states = menu.readline().strip()
- # states now looks like: Current State : ON OFF ...
- states = states.split(':')[1]
- states = states.split()
-
- if device:
- receptacle = int(device['id'])
- print('%d: %s: %s' % (
- receptacle, device['label'], states[receptacle - 1]))
- else:
- labels = {x['id']: x['label'] for x in pdu['receptacles']}
- for i in range(10):
- label = labels.get(i + 1, 'not used')
- print('%d: %s: %s' % (i + 1, label, states[i]))
-
-
-def receptacle_idx(receptacle_id):
- """Convert receptacle id into its index
- liebert lists receptacles like 1-1 but the web api treats them as indeces
- 1-1-1: 1
- 1-1-6: 6
- 1-2-1: 7
- """
- (rail, module, idx) = receptacle_id.split('-')
- module = int(module)
- idx = int(idx)
- return ((module - 1) * 6) + (6 - (6 - idx) % 6)
-
-
-def get_receptacle(conf, device):
- for pdu in conf['pdus']:
- for receptacle in pdu['receptacles']:
- if device == receptacle['label']:
- receptacle['pdu'] = pdu
- driver = pdu.get('driver', 'liebert')
- if driver == 'liebert':
- receptacle['idx'] = receptacle_idx(receptacle['id'])
- return receptacle
- sys.exit('Device does not exist: ' + device)
-
-
-def assert_perm(conf, user, device):
- for u in conf['users']:
- if u['name'] == user:
- if u.get('admin'):
- return
- labels = u['labels']
- if type(labels) == list and device in labels:
- return
- elif type(labels) == str and re.match(labels, device):
- return
- syslog.syslog('PDU-POWER: User denied -' + user)
- sys.exit('User does not have permission')
-
-
-def power_op(server, user, password, idx, power_state):
- assert power_state in (0, 1)
- data = {'4365_%d_0' % idx: power_state}
- op = '4365_%d_0=%d' % (idx, power_state)
- url = 'http://%s/UE/SetDP.htm?%s' % (server, op)
-
- mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
- mgr.add_password(None, 'http://' + server, user, password)
- data = urllib.urlencode(data)
-
- try:
- urllib2.build_opener(urllib2.HTTPBasicAuthHandler(mgr)).open(url, data)
- sys.exist('ERROR HTTP should return 404')
- except urllib2.HTTPError as e:
- # response is always 404, so you can't really tell much
- if e.code != 404:
- sys.exit('ERROR: ' + e.fp.read())
-
-
-def get_status(server, user, password):
- mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
- mgr.add_password(None, 'http://' + server, user, password)
- url = 'http://' + server + '/rpc/rpcReceptacleListData.htm'
- try:
- resp = urllib2.build_opener(
- urllib2.HTTPBasicAuthHandler(mgr)).open(url)
- return resp.read()
- except urllib2.HTTPError as e:
- sys.exit('ERROR: ' + e.fp.read())
-
-
-def _smash_op(conf, operation):
- cli = _smash_connect(conf)
- # We can't use exec_command because a channel is created per command and
- # that means the "reset" won't run from /admin1/system1
- # Doing stuff on a raw channel is nuts, but this is "good enough" based
- # on my dumb testing with the 1 second delay before reading
- operations = {
- 'bmc-reset': 'reset',
- 'bmc-on': 'start',
- 'bmc-off': 'stop',
- }
- chan = cli.invoke_shell()
- chan.sendall('cd /admin1/system1\n%s\n' % operations[args.operation])
- time.sleep(1)
- out = chan.recv(1024)
- if '/admin1/system1 reset at' not in out:
- sys.exit('ERROR: reset may have failed: %s' % out)
-
-
-def _smash_status(conf):
- cli = _smash_connect(conf)
- _, out, _ = cli.exec_command('show /admin1/system1')
- for line in out.read().splitlines():
- line = line.strip()
- if line.startswith('powerstate'):
- return line.split('=', 1)[1].strip()
-
-
-def power_status(conf, item):
- pdu = device = None
- smash = None
- if item in [x['host'] for x in conf['pdus']]:
- for pdu in conf['pdus']:
- if pdu['host'] == item:
- break
- else:
- device = get_receptacle(conf, item)
- pdu = device['pdu']
- smash = device.get('smash')
-
- driver = pdu.get('driver', 'liebert')
- if driver == 'cyber':
- cyber_power_status(pdu, device)
- elif driver == 'liebert':
- pat = re.compile(
- '<tr id="(\d-\d-\d)".+?<nobr>(\S+)<\/nobr>.+?<span title="(\S+)"')
- data = get_status(pdu['host'], pdu['user'], pdu['pass'])
- m = pat.search(data)
- while m:
- if not device or m.group(2) == item:
- print('%s: %s: %s' % (m.group(1), m.group(2), m.group(3)))
- if smash:
- if m.group(3) != 'Off':
- print(' BMC system-power: %s' % _smash_status(smash))
- else:
- print(' BMC system-power: Off')
- data = data[m.end():]
- m = pat.search(data)
- else:
- raise ValueError('Unknown PDU driver type: ' + driver)
-
-
-if __name__ == '__main__':
- if 'SUDO_USER' not in os.environ:
- args = ['/usr/bin/sudo'] + sys.argv
- os.execv(args[0], args)
- sys.exit('ERROR running under sudo')
-
- args = get_args()
-
- real_user = os.environ['SUDO_USER']
- conf = get_conf(CONF)
-
- if not args.operation:
- power_status(conf, args.device)
- sys.exit(0)
-
- receptacle = get_receptacle(conf, args.device)
- assert_perm(conf, real_user, args.device)
- if args.operation in ('bmc-reset', 'bmc-on', 'bmc-off'):
- if 'smash' not in receptacle:
- sys.exit('ERROR: This device does not have a BMC')
-
- driver = receptacle['pdu'].get('driver', 'liebert')
- syslog.syslog(
- 'PDU-POWER(%s): %s, %s' % (real_user, args.device, args.operation))
- if args.operation in ('bmc-reset', 'bmc-on', 'bmc-off'):
- _smash_op(receptacle['smash'], args.operation)
- elif driver == 'liebert':
- op = 1 if args.operation == 'on' else 0
- power_op(
- receptacle['pdu']['host'], receptacle['pdu']['user'],
- receptacle['pdu']['pass'], receptacle['idx'], op)
- elif driver == 'cyber':
- cyber_power_op(
- receptacle['pdu']['host'], receptacle['pdu']['user'],
- receptacle['pdu']['pass'], receptacle['id'], op)
diff --git a/roles/pdu-liebert/files/pdu_power.sudoers b/roles/pdu-liebert/files/pdu_power.sudoers
deleted file mode 100644
index 1881d7fe..00000000
--- a/roles/pdu-liebert/files/pdu_power.sudoers
+++ /dev/null
@@ -1,2 +0,0 @@
-# DO NOT EDIT! MANAGED BY ANSIBLE
-%aus-colo-users ALL=(ALL:ALL) /usr/local/bin/pdu_power
diff --git a/roles/pdu-liebert/tasks/main.yml b/roles/pdu-liebert/tasks/main.yml
deleted file mode 100644
index f2f3f5ac..00000000
--- a/roles/pdu-liebert/tasks/main.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-- name: Install required packages
- apt:
- pkg: "{{item}}"
- with_items:
- - python-pexpect
- - python-paramiko
- - python-yaml
-
-- name: Install pdu_power script
- action: copy src=pdu_power
- dest=/usr/local/bin/pdu_power
- owner=root group=root mode=0755
-
-- name: Install pdu_power configuration
- action: template src=pdu_power.conf.j2
- dest=/etc/pdu_power.conf
- owner=root group=root mode=0440
- tags:
- - colo_user
-
-- name: Configure pdu_power sudoers
- action: copy src=pdu_power.sudoers
- dest=/etc/sudoers.d/pdu_power
- owner=root group=root mode=0440
diff --git a/roles/pdu-liebert/templates/pdu_power.conf.j2 b/roles/pdu-liebert/templates/pdu_power.conf.j2
deleted file mode 100644
index 6e7ad4fb..00000000
--- a/roles/pdu-liebert/templates/pdu_power.conf.j2
+++ /dev/null
@@ -1,246 +0,0 @@
-# DO NOT EDIT! MANAGED BY ANSIBLE
-pdus:
- - host: r1-pm-123
- user: {{liebert_user}}
- pass: {{liebert_pass}}
- receptacles:
- - id: 1-1-1
- label: r1-a1
- - id: 1-1-2
- label: r1-a2
- - id: 1-1-3
- label: r1-a3
- - id: 1-1-4
- label: r1-a4
- - id: 1-1-5
- label: r1-a5
- - id: 1-1-6
- label: r1-a6
- - id: 1-2-1
- label: r1-a7
- - id: 1-2-2
- label: r1-a8
- - id: 1-2-3
- label: r1-a9
- - id: 1-2-4
- label: r1-a10
- - id: 1-2-5
- label: r1-a11
- - id: 1-2-6
- label: r1-a12
- - id: 1-3-1
- label: r1-a13
- - id: 1-3-2
- label: r1-a14
- - id: 1-3-3
- label: r1-a15
- - id: 1-3-4
- label: r1-a16
- - id: 1-3-5
- label: r1-a17
- - id: 1-3-6
- label: r1-a18
- - host: r1-pm-456
- user: {{liebert_user}}
- pass: {{liebert_pass}}
- receptacles:
- #- id: 1-3-1
- # label:
- #- id: 1-3-2
- # label:
- - id: 1-3-3
- label: r1-a35
- - id: 1-3-4
- label: r1-a36
- - id: 1-3-5
- label: r1-a37
- - id: 1-2-1
- label: r1-a38
- - id: 1-2-2
- label: r1-s1
- - id: 1-2-3
- label: r1-a9
- #- id: 1-2-4
- # label:
- #- id: 1-2-5
- # label:
- #- id: 1-2-6
- # label:
- - id: 1-1-1
- label: r1-a19
- - id: 1-1-2
- label: r1-a20
- - id: 1-1-3
- label: r1-a21
- - id: 1-1-4
- label: r1-a22
- - id: 1-1-5
- label: r1-t2
- - id: 1-1-6
- label: r1-t1
- - host: r1-pm-ha
- user: {{cyber_user}}
- pass: {{cyber_pass}}
- driver: cyber
- receptacles:
- - id: 1
- label: r1-x86-1
- - id: 2
- label: r1-x86-2
- - id: 3
- label: r1-s1
- - id: 4
- label: r1-s2
- - id: 5
- label: r1-a30
- - id: 6
- label: r1-a32
- - id: 7
- label: r1-a34
-
- - host: r2-pm-123
- user: {{liebert_user}}
- pass: {{liebert_pass}}
- receptacles:
- - id: 1-1-1
- label: r2-a1
- - id: 1-1-2
- label: r2-a2
- - id: 1-1-3
- label: r2-a3
- - id: 1-1-4
- label: r2-a4
- - id: 1-1-5
- label: r2-a5
- - id: 1-1-6
- label: r2-a6
- - id: 1-2-1
- label: r2-a7
- - id: 1-2-2
- label: r2-a8
- - id: 1-2-3
- label: r2-a9
- - id: 1-2-4
- label: r2-a10
- - id: 1-2-5
- label: r2-a11
- - id: 1-2-6
- label: r2-a12
- - id: 1-3-1
- label: r2-a13
- - id: 1-3-2
- label: r2-a14
- - id: 1-3-3
- label: r2-a15
- - id: 1-3-4
- label: r2-a16
- - id: 1-3-5
- label: r2-a17
- - id: 1-3-6
- label: r2-a24
- - host: r2-pm-456
- user: {{liebert_user}}
- pass: {{liebert_pass}}
- receptacles:
- - id: 1-1-1
- label: r2-a19
- - id: 1-1-2
- label: r2-a20
- - id: 1-1-3
- label: r2-a26
- - id: 1-1-4
- label: r2-a27
- - id: 1-1-5
- label: r2-t2
- - id: 1-1-5
- label: r2-t1
- #- id: 1-2-1
- # label:
- #- id: 1-2-2
- # label:
- - id: 1-2-3
- label: r2-a25
- #- id: 1-2-4
- # label:
- - id: 1-2-5
- label: r2-a32
- - id: 1-2-6
- label: r2-a34
- # non-standard because of broken receptacle, that's now fixed
- - id: 1-3-1
- label: r2-a18
- #- id: 1-3-2
- # label:
- - id: 1-3-3
- label: r2-a21
- - id: 1-3-4
- label: r2-a22
- - id: 1-3-5
- label: r2-a23
- - id: 1-3-6
- label: r2-a28
- - host: r2-pm-ha
- user: {{cyber_user}}
- pass: {{cyber_pass}}
- driver: cyber
- receptacles:
- - id: 1
- label: r2-x86-1
- - id: 2
- label: r2-s1
- - id: 3
- label: r2-a1
- - id: 4
- label: r2-a30
- - id: 10
- label: r2-s2
-
- - host: r3-pm-123
- user: {{liebert_user}}
- pass: {{liebert_pass}}
- receptacles:
- - id: 1-1-5
- label: r3-m1.2
- - id: 1-1-6
- label: r3-m1.1
-
- - host: r3-pm-456
- user: {{liebert_user}}
- pass: {{liebert_pass}}
- receptacles:
- - id: 1-2-1
- label: r3-m1.4
- - id: 1-2-2
- label: r3-m1.3
-
- - host: r3-pm-ha
- user: {{cyber_user}}
- pass: {{cyber_pass}}
- driver: cyber
- receptacles:
- - id: 1
- label: r3-x86-1
- - id: 2
- label: r3-s1
- - id: 3
- label: r3-s3
-
-users:
- - name: ben.copeland
- admin: True
- - name: kelley.spoon
- admin: True
- - name: riku.voipio
- admin: True
- - name: gema.gomez-solano
- admin: True
-
-{% for entry in reservations %}
-{% for user in entry.users %}
- - name: {{ user }}
- labels:
-{% for host in entry.hosts %}
- - {{ host }}
-{% endfor %}
-{% endfor %}
-{% endfor %}
diff --git a/roles/phabricator/handlers/main.yml b/roles/phabricator/handlers/main.yml
index be0498ee..df367282 100644
--- a/roles/phabricator/handlers/main.yml
+++ b/roles/phabricator/handlers/main.yml
@@ -1,6 +1,6 @@
---
- name: configure-phabricator
- import_tasks: config.yml
+ include_tasks: tasks/config.yml
#note: have to bounce the process.. a simple reload isn't sufficient to
# change the settings we've adjusted
diff --git a/roles/phabricator/tasks/main.yml b/roles/phabricator/tasks/main.yml
index 8907a1f0..5ca6d5a0 100644
--- a/roles/phabricator/tasks/main.yml
+++ b/roles/phabricator/tasks/main.yml
@@ -21,7 +21,7 @@
when: debconf_output.stdout is undefined or not debconf_output.stdout| match("\d+\s+%s" % phabricator_mysql_root_password )
# xenial only support 7.0, phab wants at least 7.1
-- name: Add PHP 7.2 PPA
+- name: Add PHP 7.x PPA
apt_repository:
repo: ppa:ondrej/php
state: present
@@ -33,16 +33,17 @@
packages:
- git
- apache2
- - libapache2-mod-php7.2
- - php7.2-common
- - php7.2
+ - libapache2-mod-php7.4
+ - php7.4-common
+ - php7.4
- php-pear # pulls in pecl tool
- - php7.2-curl
- - php7.2-mysql
- - php7.2-gd
- - php7.2-ldap
- - php-apcu
- - php7.2-mbstring
+ - php7.4-curl
+ - php7.4-mysql
+ - php7.4-gd
+ - php7.4-ldap
+ - php7.4-apcu
+ - php7.4-mbstring
+ - php7.4-zip
- mysql-server
- mysql-common
- mysql-client
@@ -100,20 +101,20 @@
- name: Install phabricator-settings.ini
template:
src: phabricator-settings.ini
- dest: /etc/php/7.2/mods-available/phabricator-settings.ini
+ dest: /etc/php/7.4/mods-available/phabricator-settings.ini
notify: reload-apache
- name: Manually enable phabricator-settings.ini
file:
- src: /etc/php/7.2/mods-available/phabricator-settings.ini
- dest: /etc/php/7.2/apache2/conf.d/90-phabricator-settings.ini
+ src: /etc/php/7.4/mods-available/phabricator-settings.ini
+ dest: /etc/php/7.4/apache2/conf.d/90-phabricator-settings.ini
state: link
force: yes
- name: Fix opcache default
template:
src: opcache.ini
- dest: /etc/php/7.2/mods-available/opcache.ini
+ dest: /etc/php/7.4/mods-available/opcache.ini
notify: reload-apache
- name: Create uploads dir
diff --git a/roles/phabricator/templates/mysqld.cnf b/roles/phabricator/templates/mysqld.cnf
index 6527e1e9..9963a681 100644
--- a/roles/phabricator/templates/mysqld.cnf
+++ b/roles/phabricator/templates/mysqld.cnf
@@ -38,6 +38,7 @@ tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
sql_mode = STRICT_ALL_TABLES
+local_infile = 0
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
diff --git a/roles/postfix/defaults/main.yml b/roles/postfix/defaults/main.yml
index c2d2bda2..cd2fd4c1 100644
--- a/roles/postfix/defaults/main.yml
+++ b/roles/postfix/defaults/main.yml
@@ -2,6 +2,7 @@
postfix_hostname: "{{inventory_hostname}}"
# if set, we setup a relay.. requires postfix_relay_username
# and postfix_relay_password to be set in secrets
-postfix_relay_hostname:
-postfix_destinations: "{{inventory_hostname}}, localhost"
+postfix_destinations:
+ - "{{inventory_hostname}}"
postfix_root_alias: postmaster
+postfix_networks:
diff --git a/roles/postfix/handlers/main.yml b/roles/postfix/handlers/main.yml
index 9869968e..73b5ba63 100644
--- a/roles/postfix/handlers/main.yml
+++ b/roles/postfix/handlers/main.yml
@@ -2,16 +2,21 @@
- name: newaliases-postfix
command: newaliases
-- name: sasldb-postmap
+- name: update-sasl
command: postmap hash:/etc/postfix/sasl_passwd
- listen: newaliases-postfix
-- name: tlspolicy-postmap
+- name: update-tls
command: postmap hash:/etc/postfix/tls_policy
- listen: sasldb-postmap
+
+- name: reload-postfix
+ service:
+ name: postfix
+ state: reloaded
+ listen:
+ - update-sasl
+ - update-tls
- name: restart-postfix
service:
name: postfix
state: restarted
- listen: tlspolicy_postmap
diff --git a/roles/postfix/tasks/main.yml b/roles/postfix/tasks/main.yml
index 44f11f74..fb64a8bf 100644
--- a/roles/postfix/tasks/main.yml
+++ b/roles/postfix/tasks/main.yml
@@ -16,29 +16,19 @@
- name: Postfix installed
apt: pkg=postfix state=present
-- name: Set mydestinations
- lineinfile:
- path: /etc/postfix/main.cf
- state: present
- regexp: '^mydestination.*'
- line: 'mydestination = {{postfix_destinations|join(",")}},localhost'
+- name: Install Postfix configuration
+ template: src=templates/main.cf dest=/etc/postfix/main.cf
+ notify: restart-postfix
-- name: Set myhostname
- lineinfile:
- path: /etc/postfix/main.cf
- state: present
- regexp: '^myhostname\s+='
- line: 'myhostname = {{postfix_hostname}}'
+- name: Install Postfix sasl configuration
+ template: src=templates/sasl_passwd dest=/etc/postfix/sasl_passwd owner=root mode=0600
+ notify: update-sasl
+ when: postfix_relay_hostname is defined
-- name: Remove empty relayhost line
- lineinfile:
- path: /etc/postfix/main.cf
- state: absent
- regexp: '^relayhost\s+=\s+$'
-
-- name: Configure a relay server
- import_tasks: relay.yml
- when: postfix_relay_hostname is defined and postfix_relay_hostname != "" and postfix_relay_hostname != None
+- name: Install Postfix tls policy
+ template: src=templates/tls_policy dest=/etc/postfix/tls_policy owner=root mode=0600
+ notify: update-tls
+ when: postfix_relay_hostname is defined
- name: Postfix enabled
service:
diff --git a/roles/postfix/tasks/relay.yml b/roles/postfix/tasks/relay.yml
deleted file mode 100644
index 02a62f26..00000000
--- a/roles/postfix/tasks/relay.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-- name: Insert relay config to main.cf
- blockinfile:
- dest: /etc/postfix/main.cf
- block: "{{lookup('template', 'templates/relay.cf')}}"
- insertafter: EOF
- notify: restart-postfix
-
-- name: Set TLS Policy
- template:
- src: templates/tls_policy
- dest: /etc/postfix/tls_policy
- notify: tlspolicy-postmap
-
-- name: Set SASL db file
- template:
- src: templates/sasl_passwd
- dest: /etc/postfix/sasl_passwd
- notify: sasldb-postmap
diff --git a/roles/postfix/templates/main.cf b/roles/postfix/templates/main.cf
new file mode 100644
index 00000000..374a625b
--- /dev/null
+++ b/roles/postfix/templates/main.cf
@@ -0,0 +1,64 @@
+# See /usr/share/postfix/main.cf.dist for a commented, more complete version
+
+
+# Debian specific: Specifying a file name will cause the first
+# line of that file to be used as the name. The Debian default
+# is /etc/mailname.
+#myorigin = /etc/mailname
+
+smtpd_banner = $myhostname ESMTP $mail_name
+biff = no
+
+# appending .domain is the MUA's job.
+append_dot_mydomain = no
+
+# Uncomment the next line to generate "delayed mail" warnings
+#delay_warning_time = 4h
+
+readme_directory = no
+{% if ssl_cert is defined %}
+smtpd_tls_cert_file={{ssl_cert}}
+smtpd_tls_key_file={{ssl_key}}
+{% else %}
+# TLS parameters
+smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
+smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
+{% endif %}
+smtpd_use_tls=yes
+smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
+smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
+
+# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
+# information on enabling SSL in the smtp client.
+
+smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
+myhostname = {{ postfix_hostname }}
+alias_maps = hash:/etc/aliases
+alias_database = hash:/etc/aliases
+myorigin = /etc/mailname
+mydestination = {{ postfix_destinations| join(",") }},localhost
+mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 {{ postfix_networks }}
+mailbox_size_limit = 0
+recipient_delimiter = +
+{% if postfix_allow_inbound is defined -%}
+inet_interfaces = all
+{% else -%}
+inet_interfaces = loopback-only
+{% endif %}
+inet_protocols = all
+{% if postfix_relay_hostname is defined -%}
+relayhost = [{{ postfix_relay_hostname }}]:{{postfix_relay_port}}
+smtp_sasl_auth_enable = yes
+smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
+smtp_sasl_security_options = noanonymous
+smtp_use_tls = yes
+smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
+smtpd_tls_security_level = encrypt
+smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
+smtpd_tls_mandatory_exclude_ciphers = MD5, DES, ADH, RC4, PSD, SRP, 3DES, eNULL, aNULL
+smtp_tls_note_starttls_offer = yes
+smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
+{% endif %}
+{% if mailbox_command is defined -%}
+mailbox_command = {{ mailbox_command }}
+{% endif %}
diff --git a/roles/postfix/templates/relay.cf b/roles/postfix/templates/relay.cf
deleted file mode 100644
index a56e4d64..00000000
--- a/roles/postfix/templates/relay.cf
+++ /dev/null
@@ -1,5 +0,0 @@
-relayhost = [{{postfix_relay_hostname}}]:587
-smtp_sasl_auth_enable = yes
-smtp_sasl_password_maps = static:{{postfix_relay_username}}:{{postfix_relay_password}}
-smtp_sasl_security_options = noanonymous
-smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
diff --git a/roles/postfix/templates/sasl_passwd b/roles/postfix/templates/sasl_passwd
index 13803878..6119077c 100644
--- a/roles/postfix/templates/sasl_passwd
+++ b/roles/postfix/templates/sasl_passwd
@@ -1 +1 @@
-{{postfix_relay_username}} {{postfix_relay_password}}
+[{{postfix_relay_hostname}}]:{{postfix_relay_port}} {{postfix_relay_username}}:{{postfix_relay_password}}
diff --git a/roles/postgres/tasks/main.yml b/roles/postgres/tasks/main.yml
index 33002677..43261bfe 100644
--- a/roles/postgres/tasks/main.yml
+++ b/roles/postgres/tasks/main.yml
@@ -2,13 +2,16 @@
# Need to always define 'become_user: postgres' or it will not work!
- name: Install packages
- apt: pkg={{item}} state=present update-cache=yes
- with_items:
- - postgresql
- - postgresql-contrib
- - python-pip #psycopg2
- - libpq-dev #psycopg2
- - python-dev #psycopg2
+ apt:
+ pkg: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - postgresql
+ - postgresql-contrib
+ - python-pip #psycopg2
+ - libpq-dev #psycopg2
+ - python-dev #psycopg2
- name: Install Ansible requirements
pip: name={{item.name}} version={{item.version}}
diff --git a/roles/postgres10/tasks/main.yml b/roles/postgres10/tasks/main.yml
new file mode 100644
index 00000000..c4e19f12
--- /dev/null
+++ b/roles/postgres10/tasks/main.yml
@@ -0,0 +1,49 @@
+---
+- name: Install postgresql 10 and deps
+ apt: pkg={{ packages }} state=present
+ vars:
+ packages:
+ - postgresql-10
+ - python3-psycopg2
+
+- name: Register docker network info
+ docker_network_info:
+ name: "{{ docker_bridgenet }}"
+ when: docker_bridgenet is defined
+ register: net_results
+
+- name: Open postgres port for docker
+ template:
+ dest: /etc/postgresql/10/main/conf.d/listen_addresses.conf
+ src: templates/listen_addresses.conf
+ mode: 0755
+ owner: postgres
+ group: postgres
+ when: docker_bridgenet is defined
+
+- name: Update hba to allow connections from docker
+ postgresql_pg_hba:
+ contype: host
+ databases: all
+ users: all
+ address: "{{ net_results['network']['IPAM']['Config'][0]['Subnet'] }}"
+ method: md5
+ state: present
+ dest: /etc/postgresql/10/main/pg_hba.conf
+ when: docker_bridgenet is defined
+
+- name: Create role in postgres for db_username
+ become: true
+ become_user: postgres
+ postgresql_user:
+ name: "{{ db_username }}"
+ password: "{{ db_password }}"
+ role_attr_flags: NOSUPERUSER,NOCREATEROLE,NOCREATEDB,LOGIN
+ state: present
+
+- name: Create the database in postgresql
+ become: true
+ become_user: postgres
+ postgresql_db:
+ name: "{{ db_database }}"
+ state: present
diff --git a/roles/postgres10/templates/listen_addresses.conf b/roles/postgres10/templates/listen_addresses.conf
new file mode 100644
index 00000000..a516368a
--- /dev/null
+++ b/roles/postgres10/templates/listen_addresses.conf
@@ -0,0 +1 @@
+listen_addresses = 'localhost,{{ inventory_hostname }}'
diff --git a/roles/publishing-deps/tasks/main.yml b/roles/publishing-deps/tasks/main.yml
deleted file mode 100644
index 3a4391b4..00000000
--- a/roles/publishing-deps/tasks/main.yml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-- name: Install OS dependencies
- apt: name={{ item }} state=present update_cache=yes
- with_items:
- - libapache2-mod-xsendfile
- - python-pip # Only needed for the pip action below
- - sqlite3
- - acl
- tags:
- - update
-
-- name: Create base directory for installation
- file: path={{ install_base }}/{{ inventory_hostname }}
- owner={{ apache_user }}
- group={{ apache_user }}
- mode=0755
- state=directory
-
-- name: Create db/ directory
- file: path={{ install_base }}/{{ inventory_hostname }}/db
- state=directory owner={{ apache_user }} group={{ apache_user }} mode=0755
-
-- name: Create header override (if needed)
- when: header_override is defined
- copy: src=files/publishing/{{ header_override }}
- dest={{ install_base }}/{{ inventory_hostname }}/header_override.html
- owner={{ apache_user }} group={{ apache_user }} mode=0755
- tags:
- - update
-
-- name: Create secrets override (if needed)
- when: secrets_file is defined
- copy: src=secrets/publishing-servers/{{secrets_file}}
- dest={{ install_base }}/{{ inventory_hostname }}/secrets.py
- owner={{ apache_user }} group={{ apache_user }} mode=0755
- tags:
- - update
-
-- name: Ensure temporary upload directory exists
- file: path=/srv/django-uploads state=directory
- owner={{ apache_user }} group={{ apache_user }} mode=0755
-
-- name: Install publishing crontab file
- template: src=llp-crontab.cron dest=/etc/cron.d/llp-crontab
- owner=root group=root mode=0644
-
-- name: Ensure allowed_hosts file is created
- template:
- src=allowed_hosts.txt.j2
- dest={{install_base}}/{{inventory_hostname}}/allowed_hosts.txt
diff --git a/roles/publishing-deps/templates/allowed_hosts.txt.j2 b/roles/publishing-deps/templates/allowed_hosts.txt.j2
deleted file mode 100644
index 4892cf08..00000000
--- a/roles/publishing-deps/templates/allowed_hosts.txt.j2
+++ /dev/null
@@ -1,3 +0,0 @@
-{{inventory_hostname}}
-releases.linaro.org
-releases-geo.linaro.org
diff --git a/roles/publishing-deps/templates/llp-crontab.cron b/roles/publishing-deps/templates/llp-crontab.cron
deleted file mode 100644
index 81a847e4..00000000
--- a/roles/publishing-deps/templates/llp-crontab.cron
+++ /dev/null
@@ -1,18 +0,0 @@
-# DO NOT EDIT: MANAGED BY ANSIBLE
-0 * * * * {{apache_user}} find /srv/django-uploads/ -mtime +1 | xargs -n20 --no-run-if-empty rm
-{% if process_report %}
-MAILTO=linaro-infrastructure-errors@lists.linaro.org
-*/10 * * * * {{apache_user}} {{install_base}}/{{inventory_hostname}}/project/manage.py report_process --settings=settings_production
-{% endif %}
-{% if s3_sanity %}
-0 0 * * * {{apache_user}} {{install_base}}/{{inventory_hostname}}/project/manage.py s3_sanity --settings=settings_production
-{% endif %}
-{% if s3_purge %}
-0 0 * * 0 {{apache_user}} {{install_base}}/{{inventory_hostname}}/project/manage.py s3_purge --settings=settings_production {{s3_purge_options|default('')}}
-{% endif %}
-{% if s3_purge_delete %}
-0 0 * * 0 {{apache_user}} {{install_base}}/{{inventory_hostname}}/project/manage.py s3_purge --settings=settings_production --forcedelete
-{% endif %}
-{% if s3_purge_delete_releases %}
-0 0 * * 0 {{apache_user}} {{install_base}}/{{inventory_hostname}}/project/manage.py s3_purge --settings=settings_production --forcedelete --cleanup_releases
-{% endif %}
diff --git a/roles/rktools/tasks/main.yml b/roles/rktools/tasks/main.yml
new file mode 100644
index 00000000..fc5acabb
--- /dev/null
+++ b/roles/rktools/tasks/main.yml
@@ -0,0 +1,10 @@
+---
+- name: Install rookit detection tools
+ apt:
+ pkg: "{{ packages }}"
+ update_cache: yes
+ vars:
+ packages:
+ - chkrootkit
+ - rkhunter
+ - unhide
diff --git a/roles/snowflake-publishing/defaults/main.yml b/roles/snowflake-publishing/defaults/main.yml
new file mode 100644
index 00000000..e172eed0
--- /dev/null
+++ b/roles/snowflake-publishing/defaults/main.yml
@@ -0,0 +1,6 @@
+---
+allowed_hosts: ["{{ inventory_hostname }}"]
+apache_aliases: []
+app_repo: https://git.linaro.org/infrastructure/linaro-license-protection.git
+app_branch: master
+repo_name: linaro-license-protection
diff --git a/roles/snowflake-publishing/tasks/main.yml b/roles/snowflake-publishing/tasks/main.yml
new file mode 100644
index 00000000..45c72fd9
--- /dev/null
+++ b/roles/snowflake-publishing/tasks/main.yml
@@ -0,0 +1,57 @@
+---
+# WARNING: this is a "snowflake" configuration that's been
+# caused by the fact that we have to run snapshots.l.o on a
+# bare metal server rather than in a docker container. You
+# probably should not be using this for any other server and
+# it should be removed once we can unify all publishing
+# servers with the same configuration.
+
+- name: Install git
+ apt: pkg=git state=present
+
+- name: Clone LLP repo for this site
+ git:
+ repo: "{{app_repo}}"
+ dest: "/srv/{{ inventory_hostname }}/{{ repo_name }}"
+ version: "{{ app_branch }}"
+ update: yes
+
+- name: create secrets.py
+ template:
+ src: "secrets/publishing-servers/{{ secrets_file }}"
+ dest: "/srv/{{ inventory_hostname }}/secrets.py"
+
+- name: Create allowed_hosts.txt
+ copy:
+ content: "{{ allowed_hosts | join('\n') }}"
+ dest: "/srv/{{ inventory_hostname }}/allowed_hosts.txt"
+
+- name: Create header_override
+ template:
+ src: "{{ header_override }}"
+ dest: "/srv/{{ inventory_hostname }}/header_override.html"
+ when: header_override is defined
+
+# files in /etc/cron.d can't have '.' in the name or else
+# crond thinks they have been disabled and will skip them
+- name: Install LLP crontab
+ template:
+ src: templates/llp-crontab.cron
+ dest: /etc/cron.d/llp-crontab-{{ inventory_hostname | replace('.', '_') }}
+ mode: 0644
+ backup: no
+ owner: root
+ group: root
+
+- name: Install host's apache redirect
+ template:
+ dest: /etc/apache2/sites-available/docker-default.conf
+ src: files/publishing/default-{{ inventory_hostname }}.conf
+ mode: 0644
+ owner: root
+ group: root
+
+- name: Enable default apache redirect
+ command: a2ensite docker-default
+ args:
+ creates: /etc/apache2/sites-enabled/docker-default.conf
diff --git a/roles/snowflake-publishing/templates/llp-crontab.cron b/roles/snowflake-publishing/templates/llp-crontab.cron
new file mode 100644
index 00000000..c9edd8b1
--- /dev/null
+++ b/roles/snowflake-publishing/templates/llp-crontab.cron
@@ -0,0 +1,8 @@
+# DO NOT EDIT: MANAGED BY ANSIBLE
+MAILTO=linaro-infrastructure-errors@lists.linaro.org
+{% if s3_sanity %}
+0 0 * * * www-data /srv/{{ inventory_hostname }}/linaro-license-protection/manage.py s3_sanity --settings=settings_production
+{% endif %}
+{% if token_cleanup %}
+0 0 * * 0 www-data /srv/{{ inventory_hostname }}/linaro-license-protection/manage.py s3_purge --settings=settings_production token_cleanup
+{% endif %}
diff --git a/roles/ssh-admin/tasks/main.yml b/roles/ssh-admin/tasks/main.yml
index 99f222f2..d24a3e24 100644
--- a/roles/ssh-admin/tasks/main.yml
+++ b/roles/ssh-admin/tasks/main.yml
@@ -1,6 +1,17 @@
-- name: Set user {{ admin_user }} ssh keys
+---
+- name: Ansible check if user {{ admin_user }} exists
+ stat:
+ path: /home/ubuntu/
+ register: admin_exists
+
+- name: Set user {{ admin_user }} ssh key
authorized_key:
user: "{{ admin_user }}"
- key: "{{ lookup('pipe','ssh people.linaro.org /etc/ssh/ldap-keys.sh '+item|quote) }}"
+ key: "{{ lookup('file', 'ssh/systems-bot-ssh.pub') }}"
state: present
- with_items: "{{ admin_ssh_keys }}"
+ when: admin_exists.stat.exists
+
+- name: Set admin group for inbound ssh accs
+ set_fact:
+ local_user_group: "{{ admin_user }}"
+ when: admin_exists.stat.exists
diff --git a/roles/ssh-ldap/defaults/main.yml b/roles/ssh-ldap/defaults/main.yml
index 7d506d45..ec4d9ef9 100644
--- a/roles/ssh-ldap/defaults/main.yml
+++ b/roles/ssh-ldap/defaults/main.yml
@@ -1,2 +1,3 @@
---
ssh_ldap_cache_url: ""
+sshd_port: 22
diff --git a/roles/ssh-ldap/handlers/main.yml b/roles/ssh-ldap/handlers/main.yml
index 52820471..8e2efa75 100644
--- a/roles/ssh-ldap/handlers/main.yml
+++ b/roles/ssh-ldap/handlers/main.yml
@@ -1,9 +1,12 @@
---
- name: update-pam
- import_tasks: update_pam.yml
+ command: pam-auth-update --force --package
- name: update-ssh-keys
command: /srv/linaro-git-tools/ssh_keys.py --sync {{ssh_ldap_cache_url}}
- name: restart-sshd
service: name=ssh state=restarted
+
+- name: systemd-reload
+ systemd: daemon_reload=yes
diff --git a/roles/ssh-ldap/meta/main.yml b/roles/ssh-ldap/meta/main.yml
deleted file mode 100644
index ddc3faaf..00000000
--- a/roles/ssh-ldap/meta/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-dependencies:
- - {role: linaro-git-tools}
diff --git a/roles/ssh-ldap/tasks/main.yml b/roles/ssh-ldap/tasks/main.yml
index 8e78309e..c348b948 100644
--- a/roles/ssh-ldap/tasks/main.yml
+++ b/roles/ssh-ldap/tasks/main.yml
@@ -3,21 +3,25 @@
service_facts:
- name: Install packages
- apt: pkg={{item}} update_cache=yes
- with_items:
+ apt:
+ name: "{{packages}}"
+ update_cache: yes
+ vars:
+ packages:
- libnss-db
- libpam-ccreds
- nss-updatedb
- - python-ldap
- - git
+ - python3-ldap
- name: Install libnss-ldapd for systemd-logind
- when: ansible_distribution == 'Debian' and ansible_lsb.major_release|int >= 9
+ when: ansible_distribution == 'Debian' and ansible_lsb.major_release|int == 9
apt:
pkg: libnss-ldapd
+# We should drop this 'when' and yank the above task when Deb 9 is removed
+# from our server fleet.
- name: Install libnss-ldap
- when: ansible_distribution != 'Debian' or ansible_lsb.major_release|int < 9
+ when: ansible_distribution != 'Debian' and ansible_lsb.major_release|int != 9
apt:
pkg: libnss-ldap
@@ -26,7 +30,7 @@
# to make it easy to manage in one place
- name: LDAP symlinks for Debian systems
when: ansible_distribution == 'Debian'
- file: src=/srv/linaro-git-tools/linaro_ldap.conf dest=/etc/{{item}} state=link force=yes owner=root
+ file: src=/srv/linaro-git-tools/linaro_ldap.conf dest=/etc/{{item}} state=link force=yes
with_items:
- pam_ldap.conf
- libnss-ldap.conf
@@ -35,7 +39,7 @@
- name: LDAP symlinks for Ubuntu systems
when: ansible_distribution == 'Ubuntu'
- file: src=/srv/linaro-git-tools/linaro_ldap.conf dest=/etc/{{item}} state=link force=yes owner=root
+ file: src=/srv/linaro-git-tools/linaro_ldap.conf dest=/etc/{{item}} state=link force=yes
with_items:
- ldap.conf
notify:
@@ -51,6 +55,18 @@
when: "(not ansible_check_mode) and ('unscd' in services)"
service: name=unscd enabled=no state=stopped
+# Debian 10 uses nslcd for local LDAP caching, so let's get that setup
+# if it's present on the server.
+- name: Configure nslcd if installed
+ template: src=nslcd.conf dest=/etc/nslcd.conf mode=0640
+ group=nslcd owner=root
+ when: "('nslcd' in services)"
+
+# Make sure nslcd is running
+- name: Enable nslcd if installed
+ when: "(not ansible_check_mode) and ('nslcd' in services)"
+ service: name=nslcd enabled=yes state=started
+
- name: See if offline LDAP cache exists
stat: path=/var/lib/misc/group.db
notify:
@@ -68,7 +84,10 @@
- name: Enable mkhomedir debconf selection
debconf: name=libpam-runtime question='libpam-runtime/profiles' vtype='multiselect'
- value='mkhomedir, ccreds-save, unix, ldap, ccreds-check'
+ value='ccreds-save, unix, ldap, systemd, mkhomedir, ccreds-check, capability'
+
+- name: hack around PAM
+ file: path=/var/lib/pam/seen state=absent
notify:
- update-pam
@@ -77,6 +96,13 @@
notify:
- restart-sshd
+- name: Disable ec2-instance-connect if AWS
+ file:
+ path: /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf
+ state: absent
+ notify:
+ - systemd-reload
+
- name: Add cron job for syncing with LDAP
template: src=cron.d dest=/etc/cron.d/ldap-sync
diff --git a/roles/ssh-ldap/tasks/update_pam.yml b/roles/ssh-ldap/tasks/update_pam.yml
deleted file mode 100644
index a7b792c5..00000000
--- a/roles/ssh-ldap/tasks/update_pam.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-- name: hack around PAM
- file: path=/var/lib/pam/seen state=absent
-
-- name: Update pam-auth-update
- command: pam-auth-update --force --package
diff --git a/roles/ssh-ldap/templates/nslcd.conf b/roles/ssh-ldap/templates/nslcd.conf
new file mode 100644
index 00000000..d2f238c6
--- /dev/null
+++ b/roles/ssh-ldap/templates/nslcd.conf
@@ -0,0 +1,15 @@
+# /etc/nslcd.conf
+# nslcd configuration file. See nslcd.conf(5)
+# for details.
+
+# The user and group nslcd should run as.
+uid nslcd
+gid nslcd
+
+TLS_REQCERT allow
+
+base dc=linaro,dc=org
+uri ldaps://login.linaro.org
+binddn cn=systems-bind,ou=binders,dc=linaro,dc=org
+bindpw {{ ssh_ldap_bindpw }}
+ldap_version 3
diff --git a/roles/ssh-ldap/templates/sshd_config b/roles/ssh-ldap/templates/sshd_config
index a6bfa67a..9fffbf14 100644
--- a/roles/ssh-ldap/templates/sshd_config
+++ b/roles/ssh-ldap/templates/sshd_config
@@ -3,7 +3,7 @@
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
-Port 22
+Port {{ sshd_port }}
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
@@ -14,11 +14,11 @@ HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
-UsePrivilegeSeparation yes
+#UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
-KeyRegenerationInterval 3600
-ServerKeyBits 1024
+#KeyRegenerationInterval 3600
+#ServerKeyBits 1024
# Logging
SyslogFacility AUTH
@@ -29,14 +29,15 @@ LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
-RSAAuthentication yes
+#RSAAuthentication yes
PubkeyAuthentication yes
+PubkeyAcceptedKeyTypes +ssh-dss
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
-RhostsRSAAuthentication no
+#RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
@@ -49,10 +50,9 @@ PermitEmptyPasswords no
# some PAM modules and threads)
ChallengeResponseAuthentication no
-{%if inventory_hostname not in groups['jenkins_slaves']%}
-# Password prompt required for legacy buildslave user
+# Require ssh keys is now a policy. If anything is still relying on
+# an account password it's a bug and needs to be fixed.
PasswordAuthentication no
-{%endif%}
# Kerberos options
#KerberosAuthentication no
@@ -92,7 +92,7 @@ UsePAM yes
AuthorizedKeysCommandUser root
AuthorizedKeysCommand /srv/linaro-git-tools/ssh_keys.py
-AllowGroups {%for group in login_groups%}{{group}} {%endfor%}
+AllowGroups {%for group in login_groups%}{{group}} {%endfor%}{%if local_user_group is defined%}{{ local_user_group }}{%endif%}
{%if inventory_hostname == '188.40.49.144'%} #x86_64-08
DenyUsers nexus
diff --git a/roles/sslcert-bundle/files/gd_bundle-g2-g1.pem b/roles/sslcert-bundle/files/gd_bundle-g2-g1.pem
deleted file mode 100644
index a7c381b1..00000000
--- a/roles/sslcert-bundle/files/gd_bundle-g2-g1.pem
+++ /dev/null
@@ -1,79 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
-EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
-ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3
-MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
-EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE
-CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD
-EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD
-BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv
-K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e
-cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY
-pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n
-eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB
-AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
-HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv
-9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
-b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n
-b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG
-CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv
-MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz
-91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2
-RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi
-DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11
-GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x
-LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT
-MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv
-IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx
-MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku
-Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1
-dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi
-CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H
-Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/
-3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+
-6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI
-gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E
-GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud
-IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr
-BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al
-oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9
-MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv
-bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d
-H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg
-OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq
-9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO
-KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3
-qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm
-rw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
-MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
-YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
-MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
-ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
-MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
-ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
-PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
-wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
-EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
-avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
-YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
-sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
-/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
-IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
-ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
-OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
-TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
-dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
-ReYNnyicsbkqWletNw+vHX/bvZ8=
------END CERTIFICATE-----
diff --git a/roles/sslcert-bundle/tasks/main.yml b/roles/sslcert-bundle/tasks/main.yml
deleted file mode 100644
index 29ea815d..00000000
--- a/roles/sslcert-bundle/tasks/main.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-- name: Copy Go Daddy certificate bundle
- copy: src=gd_bundle-g2-g1.pem dest=/usr/share/ca-certificates/gd_bundle-g2-g1.crt mode=0644
-
-- name: Make Go Daddy certificate bundle link
- file: src=/usr/share/ca-certificates/gd_bundle-g2-g1.crt
- dest=/etc/ssl/certs/gd_bundle-g2-g1.pem
- state=link
diff --git a/roles/sslcert-self-signed/tasks/main.yml b/roles/sslcert-self-signed/tasks/main.yml
deleted file mode 100644
index 9139c6a6..00000000
--- a/roles/sslcert-self-signed/tasks/main.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-- name: Prepare OpenSSL config
- template: src=ssleay.conf dest=/tmp/
-- name: Create self-signed SSL certificate
- command: openssl req -config /tmp/ssleay.conf -new -x509 -days 3650 -nodes -out {{ssl_cert}} -keyout {{ssl_key}}
- creates={{ssl_cert}}
- notify:
- - Restart Apache
-- name: Set permissions on certificate
- file: path={{ssl_cert}} mode=0600
-- name: Set permissions on certificate key
- file: path={{ssl_key}} mode=0600
diff --git a/roles/sslcert-self-signed/templates/ssleay.conf b/roles/sslcert-self-signed/templates/ssleay.conf
deleted file mode 100644
index f333d5e4..00000000
--- a/roles/sslcert-self-signed/templates/ssleay.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-RANDFILE = /dev/urandom
-[req]
-default_bits = 1024
-default_keyfile = privkey.pem
-distinguished_name = req_distinguished_name
-prompt = no
-policy = policy_anything
-[req_distinguished_name]
-commonName = {{site_name}}
diff --git a/roles/sslcert/tasks/main.yml b/roles/sslcert/tasks/main.yml
deleted file mode 100644
index d41d6ea1..00000000
--- a/roles/sslcert/tasks/main.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-- name: Copy production SSL key
- copy: src={{secrets_dir}}/ssl/{{ssl_key}} dest={{ssl_key}} mode=600 backup=yes
- notify:
- - Restart Apache
-- name: Copy production SSL cert
- copy: src={{secrets_dir}}/ssl/{{ssl_cert}} dest={{ssl_cert}} mode=600 backup=yes
- notify:
- - Restart Apache
diff --git a/roles/systemd-container/tasks/base-container.yml b/roles/systemd-container/tasks/base-container.yml
index 82d099a4..60610398 100644
--- a/roles/systemd-container/tasks/base-container.yml
+++ b/roles/systemd-container/tasks/base-container.yml
@@ -16,7 +16,7 @@
mode: 0700
- name: Copy ssh authorized keys
copy:
- src: /home/debian/.ssh/authorized_keys
+ src: /home/{{local_user}}/.ssh/authorized_keys
dest: /var/lib/machines/{{container_name}}/etc/skel/.ssh/authorized_keys
remote_src: yes
- name: Add user in container
diff --git a/roles/ufw/files/after.rules b/roles/ufw/files/after.rules
deleted file mode 100644
index 3bc24849..00000000
--- a/roles/ufw/files/after.rules
+++ /dev/null
@@ -1,33 +0,0 @@
-# NOT EDIT! MANAGED BY ANSIBLE
-#
-# rules.input-after
-#
-# Rules that should be run after the ufw command line added rules. Custom
-# rules should be added to one of these chains:
-# ufw-after-input
-# ufw-after-output
-# ufw-after-forward
-#
-
-# Don't delete these required lines, otherwise there will be errors
-*filter
-:ufw-after-input - [0:0]
-:ufw-after-output - [0:0]
-:ufw-after-forward - [0:0]
-# End required lines
-
-# don't log noisy services by default
--A ufw-after-input -p udp --dport 137 -j ufw-skip-to-policy-input
--A ufw-after-input -p udp --dport 138 -j ufw-skip-to-policy-input
--A ufw-after-input -p tcp --dport 139 -j ufw-skip-to-policy-input
--A ufw-after-input -p tcp --dport 445 -j ufw-skip-to-policy-input
--A ufw-after-input -p udp --dport 67 -j ufw-skip-to-policy-input
--A ufw-after-input -p udp --dport 68 -j ufw-skip-to-policy-input
-
-# don't log noisy broadcast
--A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-
-# Linaro add-on: drop traffic elsewhere listed
--A ufw-reject-input -j DROP
-# don't delete the 'COMMIT' line or these rules won't be processed
-COMMIT
diff --git a/roles/ufw/files/ufw-docker.rules b/roles/ufw/files/ufw-docker.rules
new file mode 100644
index 00000000..86172355
--- /dev/null
+++ b/roles/ufw/files/ufw-docker.rules
@@ -0,0 +1,27 @@
+# BEGIN UFW AND DOCKER (https://github.com/chaifeng/ufw-docker)
+*filter
+:ufw-user-forward - [0:0]
+:ufw-docker-logging-deny - [0:0]
+:DOCKER-USER - [0:0]
+-A DOCKER-USER -j ufw-user-forward
+
+-A DOCKER-USER -j RETURN -s 10.0.0.0/8
+-A DOCKER-USER -j RETURN -s 172.16.0.0/12
+-A DOCKER-USER -j RETURN -s 192.168.0.0/16
+
+-A DOCKER-USER -p udp -m udp --sport 53 --dport 1024:65535 -j RETURN
+
+-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 192.168.0.0/16
+-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 10.0.0.0/8
+-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 172.16.0.0/12
+-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 192.168.0.0/16
+-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 10.0.0.0/8
+-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 172.16.0.0/12
+
+-A DOCKER-USER -j RETURN
+
+-A ufw-docker-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW DOCKER BLOCK] "
+-A ufw-docker-logging-deny -j DROP
+
+COMMIT
+# END UFW AND DOCKER
diff --git a/roles/ufw/tasks/main.yml b/roles/ufw/tasks/main.yml
index 0c3a8514..65968cf2 100644
--- a/roles/ufw/tasks/main.yml
+++ b/roles/ufw/tasks/main.yml
@@ -4,14 +4,33 @@
when: 22 not in ufw_open_ports
- name: Install server deps
- apt: pkg={{item}} state=present
- with_items:
+ apt: name={{packages}} state=present
+ vars:
+ packages:
- ufw
- name: Reset ufw to defaults
ufw: state=reset
when: firewall_reset is defined
+- name: Add custom docker chain
+ blockinfile: path="/etc/ufw/after.rules" block={{lookup("file", "files/ufw-docker.rules")}} create=yes state=present
+ when: docker_host is defined
+
+- name: Open firewall for docker ports
+ ufw:
+ route: yes
+ rule: allow
+ proto: tcp
+ from: "{{item | split(':') | first}}"
+ to: any
+ port: "{{item | split(':') | last}}"
+ with_items:
+ - "{{ufw_open_docker_ports}}"
+ notify:
+ - restart-ufw
+ when: docker_host is defined and ufw_open_docker_ports is defined
+
- name: Open firewall ports
ufw:
rule: allow
@@ -22,10 +41,6 @@
notify:
- restart-ufw
-- name: include scaleway tasks
- include_tasks: scaleway.yml
- when: scaleway is defined
-
- name: Enable Firewall
ufw:
direction: "{{item.direction}}"
@@ -37,4 +52,3 @@
- { direction: 'outgoing', policy: 'allow' }
notify:
- restart-ufw
- when: scaleway is not defined
diff --git a/roles/ufw/tasks/scaleway.yml b/roles/ufw/tasks/scaleway.yml
deleted file mode 100644
index 2c50cb45..00000000
--- a/roles/ufw/tasks/scaleway.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-# https://www.scaleway.com/docs/configure-ufw-firewall-on-ubuntu-bionic-beaver/
-- name: install scaleway version of drop-all-non-matching traffic rule
- copy: src=after.rules dest=/etc/ufw/after.rules mode=0755
- notify:
- - restart-ufw
-
-- name: Enable Firewall (scaleway version)
- ufw:
- direction: "{{item.direction}}"
- policy: "{{item.policy}}"
- logging: off
- state: enabled
- with_items:
- - { direction: 'incoming', policy: 'allow' }
- - { direction: 'outgoing', policy: 'allow' }
- notify:
- - restart-ufw
-
-
-
diff --git a/roles/weblogs/tasks/main.yml b/roles/weblogs/tasks/main.yml
deleted file mode 100644
index 29974a29..00000000
--- a/roles/weblogs/tasks/main.yml
+++ /dev/null
@@ -1,47 +0,0 @@
----
-
-- name: Install required packages
- apt: pkg={{item}} state=present update-cache=yes
- with_items:
- - git-core
- - apache2
- - python-django-openid-auth # needed by django role
- - python-django-south # needed by django role
-
-# This package is in Ubuntu starting with Vivid, so we should be able to use
-# apt when we move to 16.04.
-- name: Install PIP longerusername
- pip: name=longerusername # needed by the django role
-
-- name: Enable mod_ssl
- command: a2enmod {{ item }}
- creates=/etc/apache2/mods-enabled/{{ item }}.load
- with_items:
- - ssl
- notify: reload-apache
-
-- name: Create weblogs user group
- group: name={{owner_group}} state=present
-
-- name: Create weblogs user account
- user: name={{owner}} group={{owner_group}} comment="Account to host weblogs processing"
-
-- name: Set compatible access for weblogs user home dir
- file: path=~{{owner}} state=directory mode=0775
-
-- name: Create {{web_dir}}
- # recurse=yes slows down operation, but may be needed to reset permissions
- file: path={{web_dir}} state=directory owner={{owner}} group={{owner_group}} mode=0775
-
-- name: Create {{deploy_dir}}
- file: path={{deploy_dir}} state=directory group={{owner_group}} mode=0775
-
-- name: Checkout weblogs scripts
- git: name=http://git.linaro.org/git/infrastructure/weblogs.git dest={{deploy_dir}}
- version="HEAD"
-
-- name: Set up cronjob
- template: src=weblogs.cron dest=/etc/cron.d/weblogs
- owner=root group=root mode=0644
- tags:
- - cron
diff --git a/roles/weblogs/templates/weblogs.cron b/roles/weblogs/templates/weblogs.cron
deleted file mode 100644
index 4d614d7e..00000000
--- a/roles/weblogs/templates/weblogs.cron
+++ /dev/null
@@ -1,7 +0,0 @@
-#Ansible: Process all weblogs
-MAILTO=linaro-infrastructure-errors@lists.linaro.org
-
-0 7 * * * {{owner}} (cd /srv/weblogs; DEBUG=0 ./fetch-logs.sh)
-0 8 * * * {{owner}} (cd /srv/weblogs; DEBUG=0 ./process-all.sh)
-
-0 * * * * {{apache_user}} /srv/llp-releases/project/manage.py downloads_report --settings=local_settings
diff --git a/secrets_external b/secrets_external
new file mode 120000
index 00000000..f1de7721
--- /dev/null
+++ b/secrets_external
@@ -0,0 +1 @@
+../shared-credentials-external/ansible \ No newline at end of file
diff --git a/ssh-aus-colo-ldap.yml b/ssh-aus-colo-ldap.yml
deleted file mode 100644
index 8104f055..00000000
--- a/ssh-aus-colo-ldap.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-- name: Configure user access via ssh/ldap
- hosts: aus-colo
- become: yes
- vars_files:
- - ["{{secrets_dir}}/group_vars/all"]
- roles:
- - role: ssh-ldap
diff --git a/ssh-ldap.yml b/ssh-ldap.yml
deleted file mode 100644
index 35dab7c0..00000000
--- a/ssh-ldap.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-# Required for setup-ssh.sh script
-- name: Configure user access via ssh/ldap
- hosts: aus-colo
- become: yes
- vars_files:
- - "{{secrets_dir}}/group_vars/all"
- roles:
- - role: ssh-ldap
-
-- name: Configure user access via ssh/ldap
- hosts: ssh-ldap
- become: yes
- vars_files:
- - "{{secrets_dir}}/group_vars/all"
- roles:
- - role: ssh-ldap
diff --git a/ssh/config b/ssh/config
index ea6fd5b0..c301b299 100644
--- a/ssh/config
+++ b/ssh/config
@@ -4,15 +4,11 @@ HashKnownHosts no
Host *
UserKnownHostsFile ./ssh/known_hosts
-
-Host r1-x86-1.aus-colo.linaro.org
- ProxyJump aus-colo.linaro.org
-
-Host r2-x86-1.aus-colo.linaro.org
- ProxyJump aus-colo.linaro.org
-
-Host r3-x86-1.aus-colo.linaro.org
- ProxyJump aus-colo.linaro.org
+ Compression yes
+ ControlMaster auto
+ ControlPath ./ssh/sockets/%r@%h-%p
+ ControlPersist 600
+ IdentitiesOnly yes
Host 10.101.16.17
ProxyJump ci.linaro.org
@@ -20,48 +16,80 @@ Host 10.101.16.17
Host 10.101.96.20
ProxyJump ci.linaro.org
+Host 10.40.88.130
+ ProxyJump ci.linaro.org
+
+# Not currently in our ansible inventory
+# since we don't manage it. Also not
+# LDAP enabled.
+Host tcwg-ex42-01
+ Hostname 95.216.72.22
+ User root
+ IdentityFile ./ssh/systems-bot-ssh
+
+Host gerrit.forge.aws.linaro.com
+ User ubuntu
+ Identityfile ./ssh/systems-bot-ssh
+ IdentitiesOnly=true
+
# generated with:
# grep ansible_host hosts|sed 's,ansible_host=,, '|awk '{ print "Host " $1 "| Hostname " $2 }'|tr '|' '\n' >> ssh/config
-Host aosp-x86_64-07
+Host aosp-x86-07
Hostname 144.76.6.139
-Host aosp-x86_64-08
+Host aosp-x86-08
Hostname 188.40.51.209
-Host aosp-x86_64-09
- Hostname 213.133.116.86
-Host aosp-x86_64-10
- Hostname 78.46.190.194
+Host aosp-x86-09
+ Hostname 49.12.133.85
+Host aosp-x86-10
+ Hostname 168.119.145.200
+# Note: we don't seem to have access via LDAP here
+Host aosp-x86-11
+ Hostname 192.168.36.10
+ ProxyJump ci.linaro.org
+Host aosp-x86-13
+ Hostname 95.217.145.175
Host lhg-build-01
Hostname 148.251.140.195
-Host x86_64-07
+Host x86-07
Hostname 188.40.92.79
-Host x86_64-08
+Host x86-08
Hostname 188.40.49.144
-Host x86_64-09
+Host x86-09
Hostname 148.251.184.94
-Host x86_64-10
+Host x86-10
Hostname 138.201.52.83
-Host x86_64-11
+Host x86-11
Hostname 88.99.28.12
-Host x86_64-12
+Host x86-12
Hostname 88.99.28.38
-Host x86_64-13
+Host x86-13
Hostname 88.99.59.232
-Host x86_64-14
+Host x86-14
Hostname 88.99.149.141
-Host lkft-build-01
- Hostname 51.15.185.142
-Host oe-x86_64-01
- Hostname 62.210.248.69
-Host oe-x86_64-02
- Hostname 62.210.249.170
-Host aarch64_08
- Hostname 147.75.32.78
-Host armhf-01
- Hostname 51.15.128.165
-Host j12-qrep-01
- Hostname 10.101.16.17
-Host obs-bastion-us1.linaro.cloud
- Hostname 64.28.99.162
-Host obs-bastion-cn1.linaro.cloud
- Hostname 103.20.251.151
+Host x86-15
+ Hostname 95.216.16.165
+Host x86-16
+ Hostname 62.210.124.13
+Host aarch64-09
+ Hostname 147.28.196.111
+Host x86-TF-01
+ Hostname 51.159.1.37
+Host x86-TF-02
+ Hostname 51.159.20.54
+Host x86-TF-03
+ Hostname 51.159.22.224
+Host x86-TF-04
+ Hostname 51.159.20.12
+Host x86-TF-05
+ Hostname 51.159.20.18
+
+Host gateway-lab
+ HostName lab.validation.linaro.org
+ ServerAliveInterval 60
+ ForwardAgent yes
+
+Host aarch64-10 10.7.0.101
+ ServerAliveInterval 60
+ ProxyCommand ssh gateway-lab nc -q0 `basename %h .lab` %p
+ ForwardAgent yes
diff --git a/ssh/known_hosts b/ssh/known_hosts
index be7da911..d53aa203 100644
--- a/ssh/known_hosts
+++ b/ssh/known_hosts
@@ -1,6 +1,3 @@
-elk.linaro.org,138.201.222.149 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC1ceBJPYmBpPoQz9hmQRgxos8SYc0yhmt9sxjG1RnQpi0Wnroy1eoIqBKn2A4QxsrFR7HRMNDbXdiivioQhVrA=
-elk.linaro.org,138.201.222.149 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYMZBKazyOBoh3Uhlj2efC5/r7Ef5zsZk6ABEacR9+S59DRF9ucgH3EZzPuFQ6ZePmk7K4hUmqw6rEkeKNDto2KnREGTQkXnFEwkhxJRMkh/FWpegV0ezyONoU7jDA5JsLzzgsSUc74GbvDF2NqRud7oHO1H6QZ50xsJQQddvz17MTGcvy8PNIa9jhqH01LXSf5SQeHZafwRinh7ICdRJMOxiox8McA4nkeUXzN7zXq/qIYiuC2u2D+q0ymooUftDRbxI+owG6K2QVvnkiT1AXcNURfSqOy4G6yGewFyqynDoYe3qui9LfrAdkNXK5kV5qjqy9NRR4oXTnwHC3VrtJ
-elk.linaro.org,138.201.222.149 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMDD8SS8QT1vTdotU9Aha+5pgRUFeKlqvuk4B/kj59Ub
developer.trustedfirmware.org,34.204.12.65 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDrdgo1XpullZW3H3k97BAqgKtCmka4lzmHDJgoWUtaRLeTw7VFQLN/AF+/jij+4xKsDqLcT+QSM0+3LshfYtHIUQxdNEevTIJw4GKnW6eFyqtDLFSa3g89KooqJw85TbqEXX7fqmao+3/ZZrlHnDkkzQfC3BrSRQSiff9+x6vEtynsVQjv6Nl4mEpNN9+4z+RGTo602tZMnyAzRQ25uaPw2ZTqpS3FA9E3qKG31reTpX67M1CscNB8WQExYpO+1oQAQjRNorXsSiJh1YLJtkBEP1wSb9C68NqD51JQ6NaALCGw6XEcKUlEykISK6Di/GVM4vsK+TAjYGtjDu0qXMKN
developer.trustedfirmware.org,34.204.12.65 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLlOb/lJYL8ueozC01T13EUH/JqIceW4hwTYu0CSEJ5dr2LTjSUtbIgu6TTiM5wPDj31i9gghlyujTxJ8nzkEBY=
developer.trustedfirmware.org,34.204.12.65 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN0JYTZAQkwFZzZS1yg8aEJXbuCOQ5Qwt4jjxwgHvYhw
@@ -19,79 +16,31 @@ staging-bugs.linaro.org,ec2-54-164-200-74.compute-1.amazonaws.com. ssh-ed25519 A
ci.linaro.org,88.99.136.175 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMA/tHxYJryx7PsMzCnuxYOBbmmMqBf9f0RSZb9qkmzntt5qefSVz+r3XDQ6LRZ5UoduyFyWgdzo6dKU8dd9RD4=
ci.linaro.org,88.99.136.175 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+DSj5pflQQ2Y3zhJD0TnewNmiiRSrmrlTgXABHIuzTdyYag8qrZi+bOar1SLqW7KZRKCs9nPFlJj1/FanCcjDRFZaRLfIP2SfuPdtp7dUy3SvIMEsvFVbbZn3Qt32G6I5XoT+3ijQBJ2dYaVFvAY8K8bloGdzb1APSfD37rt+H+VPHaVUDaE/jkOX3R3EYJdIBFG5NumbvbyjpBfW5XQ7twJDSL+5DQLf7ZcNQyW6JyD5QLNPUdrIyyFb8f+EKl+MiqEes91HzpB3t47wKyEwgSTzt7ta6KCc+14G2E8zzzf8nRs41bHEtPlw+gPz9U97PH1R96pW6loGYF9UPKq1
ci.linaro.org,88.99.136.175 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOXxLWEYkr0ySiZmxV4UuS3XHobxP7nStX95MOYU2vSa
-publishing-ap.linaro.org,ec2-13-228-101-204.ap-southeast-1.compute.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwT6CIVLzREbY8qMT+hOSm94ZAMlsso8Ph//o06MH3BXay1by51YM+LYbzDUESUZgv3m0Mo/N8QKgIJHnSmihPczN/EAxEi9Ww/an9TdblImVwjHYmBb8wL9Ww3/oDfKTkX1q0jftzKHpI8Pa99bOqT4rbA2ixIPLcO8iOFH/hZWyQf2cOwexeSrZxOabRHfWmtw5y0O809rGhvvbIPaRdeWsJAxQcFbLxOggrturvGeQlg/vhMAsoKdh4rhtruRirlBGKT0YhHpaCqQ+w6Ft/R3IVHLbDHSM3DTnckmqh6RPQXxmJ1mBhpFOC/z9hZTDVxCP+/tTjYOtARgkpRE0Z
-publishing-ap.linaro.org,ec2-13-228-101-204.ap-southeast-1.compute.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJrjpzHw5NB1TCljOrCMqqr/cVTgHfNTYTd6Dt0Wn9v3r9jLSl76kqjkWEjRFLTZe2UrlF527SDagnp/sktQOlY=
-publishing-ap.linaro.org,ec2-13-228-101-204.ap-southeast-1.compute.amazonaws.com. ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFsfk6WG4LRAdQP/n+ZV/zWa6jAXtJOXTslkGhbfWM6a
13.228.101.204 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwT6CIVLzREbY8qMT+hOSm94ZAMlsso8Ph//o06MH3BXay1by51YM+LYbzDUESUZgv3m0Mo/N8QKgIJHnSmihPczN/EAxEi9Ww/an9TdblImVwjHYmBb8wL9Ww3/oDfKTkX1q0jftzKHpI8Pa99bOqT4rbA2ixIPLcO8iOFH/hZWyQf2cOwexeSrZxOabRHfWmtw5y0O809rGhvvbIPaRdeWsJAxQcFbLxOggrturvGeQlg/vhMAsoKdh4rhtruRirlBGKT0YhHpaCqQ+w6Ft/R3IVHLbDHSM3DTnckmqh6RPQXxmJ1mBhpFOC/z9hZTDVxCP+/tTjYOtARgkpRE0Z
13.228.101.204 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJrjpzHw5NB1TCljOrCMqqr/cVTgHfNTYTd6Dt0Wn9v3r9jLSl76kqjkWEjRFLTZe2UrlF527SDagnp/sktQOlY=
13.228.101.204 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFsfk6WG4LRAdQP/n+ZV/zWa6jAXtJOXTslkGhbfWM6a
-qcom-proxy.linaro.org,64.28.99.94 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLe8cDILzEWOC7fPh63EyzODvPTYa1wCgA4mhJD3CEPUd1ixltVUAKWm6U7ap9olR7tHkN3UVtb9wSCHuHdJHRkzV7N/nfuPjKwUOMJB4J2S2UmUIg/iyA0IjKPc3EdMvmp7oaz01oeRHXtdAQavjuWp1wQPbk8d1MNY8M1tH7CqomSlsxWen3aG2GvXr2HYAYHEm6uT779nu0ycJDGL4r/yc9zdJbtf9HTheUaHpvDAdybyasHd/bsomZkWLLsymAnqQr22tuYRed4Ewj3X6u9uGtoGOL5N7uJR75c/GijQtLO58NTxfDOxdh/eNMdlnudb4w41MnRbAwj4TvcAWv
-qcom-proxy.linaro.org,64.28.99.94 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA3mRwCKCQ4hBLy+Sd0pr44yudwG/3a700kqUdauXAx73PTceQa+quvhdQKzbywCtgvmcaJ6pW0dNS8uPk0rcW4=
-qcom-proxy.linaro.org,64.28.99.94 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+nTD9hlcIK4V2kBot7rc57fzkAxVohedL8Cr9fJJxC
-qcom-hackbox.linaro.org,46.4.26.8 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDA3hfPnL9rd4OELx+srtF7ZFsTBO5rBnpiOIsoAWIna/Avt8CV6AoYLAqOTBLUNKcU/JbyX+77oOolQPHxsRXWwa3ig0Yf7UIbaigE24cTBhnQxAZ0bw7cUDyw0HVnGt4sPU3t97C3jeMgkM98ftoR9F15TCoMQNd2TGcqHzCqYNMSuMp1rWsSZD1nphMDCXJYqr0KqHWELqUyZ0izqwqrJZ1jLU3WvAI7dkPTD2dug+j9VUCyrYE8H0ui+tGle1yOmgOwOQ/qCZMCAx16C9IebduAYm5zAhkwsZfPwJtSFo4WgVzZw51xgKtb48B9IuMO+QiI7KC7BanYnSQXm9eN
-qcom-hackbox.linaro.org,46.4.26.8 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL9T2my17rXno9UjGlmabVYUFPw0dXK7Ejr+TKspLadOCdSsfHfa+riXp9pCH2czW39nsafD/9waTm40QpWw9WE=
-qcom-hackbox.linaro.org,46.4.26.8 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDR4YLRbtu8murJc3xExuH8JRidgcO9qSc0r4PPZ2BVG
-android.linaro.org,163.172.134.127 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnL05n9WInKy9JkeArrovbeWvQeJykWyhHI3wdwVSsCOu5sqC1hMu0KANVJ3Mq+7tFPu+5aNiYtVm7C51ICzxuhL0TKMY3EFIiZip4/zHWS2cSxM5iK5Qe6puq8Uy4fwvWgiXmulO1WE8d5mVJ/77GM8OxczghTT5pBfsX1rpAawrpoDmz4BX0d8myp+3rT3azZnvGxm/uuwmeKZfH14wHuXu0qUUcFUHXid+wFYoLTwA/xSWGGdReEab3R45sXqsYdxUyXJ8MxJav7TEsyfOfeK4l2JucxEPYKPHoFL7s1B+gGtC6Mian7jcenv9FtTUW4cM3zkd/q4aCiMhiRMoZ
-android.linaro.org,163.172.134.127 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMgSsr+IyvfYz+r07TRb0jQvj0AjqLAnZUtDAiaa5YoirEA5eRDe/BG6zZKjWNsxxVQShYVDqpmRDGxuOLCm7HU=
-android.linaro.org,163.172.134.127 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOngxnlQXC97tlGEVR8mPy9vQM2O08DZ6MRnAtVBD8No
patches-gcc.linaro.org,51.15.138.76 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLTqmz4Nslb0awNuLY7HT0yPavox7YajqfEG5kc4ae4IYYk3tcfJpvQ9sG0bKlMQOQiGNjACTVZOoMKQ9Ju0sOo=
patches-gcc.linaro.org,51.15.138.76 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0wuE4MU4cwSYFSfSiXeuhlP2yidhVsRh6fKWb5ClmnvOWVi1VIi7H0BkNRMWONxLI3Al9ukiUnVAX39BBh8qe8vRC9vPA0aLD3eemL8aAn8hSKEaokFHK5kcihXeCL+kL58h9XsIOPZypZFYqvnpBA82UdRW9pjvm6Fm25hG94H3VrF5Jq73GZ+6O8LWMcmr2g9Uhk8RRdzY/sbtId422t7/yHtH6IM20EB2tJPe596XJivE1jl/MJy5g6xljU6iD1tKEvVWm/PsbpAwh9gl9rgbFN5sp66XznmNDbr2NfuJ020Kyg4P1Jm+2UwMz9fDgsx3Cnmjnzx0gSJUj4FRj
patches-gcc.linaro.org,51.15.138.76 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIaAQBNs77Pfj4rF8OBDt/nVzHr5d09TWGo14xxcL1Jl
-git.trustedfirmware.org,184.72.81.201 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/B08oZljv1qGZJCjwQTZrDBEhUiGHcRG40aZ/tjkCCQb+JOfrb0jgV+AqkKxUSuAyxYgOD1HLotDFwzMaMAXTUZ7goXBoEfi1YuhZMsIyrQB4FG9RsGQe2/El/HRtiGqEADU3a98OCTzCDGNzvWfuwrCydY2YFZkkseFoGxV/eUE/WWbKqcQh5lNZnbBOjYSNjV0DNoW/jTkr2oR8iWlCTHqae6ulM67TzOzWoDOu90fqU7stX6x75SM9gn4KiiV3xWuKw9N8YjjRpEAHAZoKHgDqze0wCsMZLVhYOGA1iY30VB6bqo02PTm5gAJM9wfoqoRkoldn2kRJwBRDa4Bj
-git.trustedfirmware.org,184.72.81.201 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA+7qW9k2k+Kf1/I3rT8Cjg1F53ezcCqWD50XTZnFPPx823NZnx4A7kLN6Fy4zeCuiq6ijL5lr0bEj9Zh8jwtSo=
-git.trustedfirmware.org,184.72.81.201 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDvuI+QkHtXh68oEl5YKlHGlVwddHH/FYvFFALTxAZDl
-testdata.linaro.org,51.15.219.191 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqmzNvTyGKJmGYs/cUOSk1QFri+mGiQIgePotuHCIJO4T89HAq6sOyZtJpieeCED7A0y6E7Ns1n305pMvYIA3zJ/A3CbsxFnrkDc3yqwMszqowWEfROuDVKLCuEHvwRwSJvfsacGseyjsSIyKDefsqYqzUgxDTJVTooy/oL+gX66Eqta44WNhT5XCz6wgf4YsuhdXnDsQMrqwBqaMCjXbSTSjslWJnNK1H6AyExoflo1FX6o/vkax2uiU/Z60Zl+UTD0zOlIWP70s6CgygQTGlURS0Vblimbn8g/758GbIZrWVOGmg2sk9MW+TzfDij5kPXCKrvt9nAwOmQkCdKOe7
-testdata.linaro.org,51.15.219.191 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEvQ7R2t/haeQmCgMSuoVpie+Bt6l9CKeyWy2WALv1JvPvOpPvTeU+ap0XBeTAxefaA12jIaKkcotspdb/URhQo=
-testdata.linaro.org,51.15.219.191 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBo5ARVzBv4NveeGYTx88fUxJj7Y8gqf3g4y2b6FZ5Qw
-mmwg-hackbox.linaro.org,88.99.142.70 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDT2o5PCGF2uzQAydSQ8L5VRQ+mv3fPy4UAeiTAbkFJhe9rpafm3yH/nCgEBL9/fmRhMC3qVwoujmCP1ZyRU9Oz+b6RZEHNfETa4CZSBRsUr1bNRsX/caQJAHPxU/sMBo7R8nwjt2ydGzxbaNJa2WpukqqwA2H27XVZQUviT+O7oYFjfqmqaOsQdh0rcUmBjd67RwqyoYH1akGb3C+/PNBEWaBeiQGtRqAklh9WRlLfjRNqx6LpFMmsWPsQO/uHmv6qliW5LlP0fWsNh4xDETEW7OHivw1lbMAMwDn+wJpCVaSNZRs6/kqrme0gEBnii5u3CQGTqkCf9xePb+CsdGp/
-mmwg-hackbox.linaro.org,88.99.142.70 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKMMm6mn6a86KQIQt3EXEaoHWMAEcsFemnY9b01ZxpZRq4BIBzq8kfKFoQdjIe7EC5GGGRL7pRZAeema8Gwgki0=
-mmwg-hackbox.linaro.org,88.99.142.70 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB4YsAfFnnO1XlUZEXHbt+eG6CV4+EHln/TWQdQn1N6F
-lcg-hackbox.linaro.org,95.216.16.165 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIjHmTYSZmnv/F+QEg4qCj5tMdGu1AKJG61yslwq9Nvu
-lcg-hackbox.linaro.org,95.216.16.165 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5bB06LBxIvH6qdg9SQetr6P3yTUzCrfO0WSNKlZWjUpNA7EFueGdBDOtA558ZbbDmlhqKWY+y0dSCGhNDI+6RAduX8c9EMVz7zD3fNBdLlcykRtiLYjFBrVE4zYCn3HidRjxc4+8gjYvWtGuFYIpkhd8PABsb2++t+lA3ojvocjImlSBITo65RuBDhYaQOJVoZU6KhK94xaHRK/v3zgCVbr5r07bM3I7XugQ9AjZ06pG0leFFUpkcho8RlNd0LI6skBFtz5l/rUcfnyZWkQg9xG3e+Dpjvhh/L47k7QFrPUtfAeHsx2pyeFw2dGzashGZdWBmwsg431quztIYqhg9
-lcg-hackbox.linaro.org,95.216.16.165 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBD0W43s6EMk46OfTQDj9IUQgua9HTAY5EAltzD/F6Cm2kdsFmwtDDdslIYtpko3wqW3PfueqdTz3iKFu8LocGj8=
-releases-us.linaro.org,64.28.99.46 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXrdShgBSU373KX/OtQG92ImbLWrkW71DsMRHcgMHwuK3J4rSQQ6pn0FbrOQT89BdksnhQA9LYizPkQIMmbf5OWbgM/99g0QcQ0bAIlRhiSWMpOgaLVCVi4Hz/7pSwRxOT1odSatT4MC7Xi6q3LB6eI/TU7wIecnOdR5iDdIJlVPilbkCOtI5IySykM1fWYx7Ni6NOMw2qmnKncBk2PdnwruMVVMm6vcvBCpix1ioNLhqpS0a3iMNG2E0IpLBeN+FDhe+TLVrcyuK4ZGMSfsB4YvKABiBJdQ65SAro9zrcEEk77rp83aJu7c40g9gyO3iW6TNJaPlT5Ywkhs4dGNCR
-releases-us.linaro.org,64.28.99.46 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBN5zjGXQPkik7hWwesTL1EnI0xVTATxJvJ65QVzQc+nV0zlaeRceVbsv6QNVDtzY9OCR7vqS3i5eXHKmAM28yjI=
-releases-us.linaro.org,64.28.99.46 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBHdgYnmdbOwTd9m02x/UBdWNr1LnDhhe66B6h55UsZX
review.mlplatform.org,18.209.167.164 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC86o0lvHhcO+wZfhZzYp+eHItm79QgAeohf54LcIkKtEk6RJwdB0U83s25ERO2DvLu6jqVgQrcwAlyyFnqDRusEA2WiUutEFYo/XqWlOFF6sQa+w7dk2AG/3Cgp3qCwbIoiqfAx3HjDslnnj6LZVK4pg85K9PHf2gaH12pzIx3hpyxEsAb33sbbF9IicbrsMHhzGQk0qMutUyABXA/40FFs+/NIgcRVt0tCGFh3vbnqUkI3/sNDMup8b71wodYxKs/IKQWMBySCQlRYRpL14a6xPa9R04346GZKQ6abFpjF/ERuhtklI3K0pE0tBnGo+hdJubgFLwqHz8F34fvMVdR
review.mlplatform.org,18.209.167.164 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMP7x8oTsilLiRD5x+PS3G4EfMLMwrDfN3icXqwBMCVBY4dKiwB8c6NMHxnTXc34q6Fi7k3lGpdDkXgQIT+tax0=
review.mlplatform.org,18.209.167.164 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAgsUMZWvcYLcEk8wiV0P+xQMYQ/zIgl0esvIoI3dy93
-qcom-hackbox2.linaro.org,195.154.134.102 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJbAqURt06/B0jF2+UFvyVM9FHIunYd472UHmzml8+2ntAtzctuOxIbfc9MaxDB55xcdRjSQTTVk0L9xWF3My5HIgMO/5K9dgOL18mkbHpSk4k/gCYtH25wQFa3WOk1JuFMsZ0hAt0h/qz8BLoUB3l8XHshv+bEj4To58Wip+rsiFjpzaOeKAnfj4LBk0Tl5XNLRqQJNobWjy+sPgBxss1+TENHnOD77EqeqPsg90QEsjKqPy94LvPlwValfgXFvWhLijr8mm9YHq2L1xHVyfNKXJZLUq1vBnBy4DRe8W5B0wf/Kxun9EhN2MLGvI0wH7N8UMGgL+qcqcZ61lxVY5N
-qcom-hackbox2.linaro.org,195.154.134.102 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBER405BGsmhl/SmO7Kr1NBgwWSC+aiFjwWb9KBjTLOGR6sQ5x4VxWn8pTQ9/7AMbq+YMC0pKF1JV1i0kNRX9cTs=
-qcom-hackbox2.linaro.org,195.154.134.102 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN+D/lw+JxXlqlL8Qg+bGzxpdjuIcvuuclF7WARpdhbB
-dev-private-review.linaro.org,ec2-107-21-230-219.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC34bjTOKJIq8MVSeC5gddQlbR0hyvvTZbrpW7KXgCzkLTFZxa05wbz8VC1l7ruPotQBgrICgLYmrbjrASqcY//9OPLDa1Pf/MUIu2F2lA1W/5E3psGYmyC9GTvmjKgu39Rad5ujXMeMLjuzVPCmo+WhewgugDSV4Fcggd6B6YXHGtoE15ctSw4moerUq1+2BXVgFxUyMoGcpSCeLnbvWpmi6xWoGQOSnrQ4Z/VmZ5WZ87vQsiiWEAsqmMOHHacunnSph7uzQXJlHNajdeGnr2NF+EgcmQ0N6vivZDRLmRYuSmizjCOHSRZxSm/0UJC/ewVzp9BwRepiNKWsjb4gTMb
-dev-private-review.linaro.org,ec2-107-21-230-219.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
107.21.230.219 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC34bjTOKJIq8MVSeC5gddQlbR0hyvvTZbrpW7KXgCzkLTFZxa05wbz8VC1l7ruPotQBgrICgLYmrbjrASqcY//9OPLDa1Pf/MUIu2F2lA1W/5E3psGYmyC9GTvmjKgu39Rad5ujXMeMLjuzVPCmo+WhewgugDSV4Fcggd6B6YXHGtoE15ctSw4moerUq1+2BXVgFxUyMoGcpSCeLnbvWpmi6xWoGQOSnrQ4Z/VmZ5WZ87vQsiiWEAsqmMOHHacunnSph7uzQXJlHNajdeGnr2NF+EgcmQ0N6vivZDRLmRYuSmizjCOHSRZxSm/0UJC/ewVzp9BwRepiNKWsjb4gTMb
107.21.230.219 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
-android-git-us.linaro.org,ec2-54-225-81-132.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy5fjXgJWuF+qKwieMYCWsdrFnQFQ9KB49gZOONc4F9sJGaxdihOGrhq2Uk4nBjPNSFdwB0QdjSa/Mr3a81wBT3s3EGrB70JsgOyjVzE9lVMol1DdEyX94c0KlQl3B8Gg/RuR3347nh28+4qr2CIyTRTexUQywctEP1qmaIFKL+vNEmbMUIJnkQ1VLPanR1js3JhjpYJLCS8gPjL3gx8UNHoxXIPjwYK3yW269pb/0jVD5OKmVXYI7CD7OFsngIIzm54JzeiGEOJP0S6FLv9geH8Olc6CBlJQ/09IoGzvHqsASPJSisCdQWbhYFdBNJXuaoKLG3isCi4Drc/yIl8CB
-android-git-us.linaro.org,ec2-54-225-81-132.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKadv8RptDmwU1c4ahKtUjuhwLsgtkTAQvlBdOzLRUBSVPmntpGz6LE9xEwgtZpz/WdV9doi13xdt53fCjJcRIo=
54.225.81.132 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy5fjXgJWuF+qKwieMYCWsdrFnQFQ9KB49gZOONc4F9sJGaxdihOGrhq2Uk4nBjPNSFdwB0QdjSa/Mr3a81wBT3s3EGrB70JsgOyjVzE9lVMol1DdEyX94c0KlQl3B8Gg/RuR3347nh28+4qr2CIyTRTexUQywctEP1qmaIFKL+vNEmbMUIJnkQ1VLPanR1js3JhjpYJLCS8gPjL3gx8UNHoxXIPjwYK3yW269pb/0jVD5OKmVXYI7CD7OFsngIIzm54JzeiGEOJP0S6FLv9geH8Olc6CBlJQ/09IoGzvHqsASPJSisCdQWbhYFdBNJXuaoKLG3isCi4Drc/yIl8CB
54.225.81.132 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKadv8RptDmwU1c4ahKtUjuhwLsgtkTAQvlBdOzLRUBSVPmntpGz6LE9xEwgtZpz/WdV9doi13xdt53fCjJcRIo=
-android-git-ap.linaro.org,ec2-13-250-44-4.ap-southeast-1.compute.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJv9T4oZnWKPQi/iFONFSYII/gRJZuSKcaZ4DjsYbA/tToST8KJWP+BNZgpu1hvqVZdPtMK7aJXUkTiLCfzjt+4=
-android-git-ap.linaro.org,ec2-13-250-44-4.ap-southeast-1.compute.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/kUrvKyBEfQOvbV5B+bc/2VcayjaqA+E8gUcnhsWtJ9UrYLMLKQgbP66oRlIPBOWJtP+gref2OPvTS+kkj+px+0y/mjRyO5euZVmPIEI/5rbWXUqNJ9BLJJKbdfT5iyiMO03hklj5w74xEXb7gUboYtyyx94I2eqFK8aZfN0M5oX7Pg3VIc6FqD9wo+BAJO42m+6hHFyZuaTLICzOi/ulCobENgHf2wbxVGHofSdxkYhrIlntquMKu0XCVdCffidRzzqCpoQyd8odN1v/sr4XBw4HRpGfzTB1IA8G42YtPHRFZBAt7ujA4pysgMffG54SANmvVKcRalM2X8pJewHF
13.250.44.4 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/kUrvKyBEfQOvbV5B+bc/2VcayjaqA+E8gUcnhsWtJ9UrYLMLKQgbP66oRlIPBOWJtP+gref2OPvTS+kkj+px+0y/mjRyO5euZVmPIEI/5rbWXUqNJ9BLJJKbdfT5iyiMO03hklj5w74xEXb7gUboYtyyx94I2eqFK8aZfN0M5oX7Pg3VIc6FqD9wo+BAJO42m+6hHFyZuaTLICzOi/ulCobENgHf2wbxVGHofSdxkYhrIlntquMKu0XCVdCffidRzzqCpoQyd8odN1v/sr4XBw4HRpGfzTB1IA8G42YtPHRFZBAt7ujA4pysgMffG54SANmvVKcRalM2X8pJewHF
13.250.44.4 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJv9T4oZnWKPQi/iFONFSYII/gRJZuSKcaZ4DjsYbA/tToST8KJWP+BNZgpu1hvqVZdPtMK7aJXUkTiLCfzjt+4=
-android-git-ie.linaro.org,ec2-34-243-52-201.eu-west-1.compute.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2kF2Q2DN1LClL6+pHOgtglR0WLy2Pcoh0MPWTBEn1/f4COGdFRLyjw0sAGiJg2089siGX2/6mEBlFiTboWwSLiM8QnfxVi+YoqyZ3pi4NALBLouYI5UmthQqYKgeDahe9woGaLy161kUVRY05LdxACiaynwOgcxzEmeys7TyFgs3Wo+gUaw9E/3h5BDHDjRpYb/f1SgmLUXrIIkamED53eb6ibcTr0XImG58LPiaszLKxKBasKbIzy84GnqycMrA07oXLsGkak7LWLpVPS3Ma70l/Avh+qfTyMMQqiEG4U+nzp6Wfhtd1l2VyqQloXpPee5839bfGkoVEWmltHhW5
-android-git-ie.linaro.org,ec2-34-243-52-201.eu-west-1.compute.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLITqjfmkOdJPA2yLU5UlNdZfBir0eG4vmNhA3Nm20qNc0OqCLhQhszLBI0rpEIbI29l51+cpj+4m+4OMYaMbaI=
34.243.52.201 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2kF2Q2DN1LClL6+pHOgtglR0WLy2Pcoh0MPWTBEn1/f4COGdFRLyjw0sAGiJg2089siGX2/6mEBlFiTboWwSLiM8QnfxVi+YoqyZ3pi4NALBLouYI5UmthQqYKgeDahe9woGaLy161kUVRY05LdxACiaynwOgcxzEmeys7TyFgs3Wo+gUaw9E/3h5BDHDjRpYb/f1SgmLUXrIIkamED53eb6ibcTr0XImG58LPiaszLKxKBasKbIzy84GnqycMrA07oXLsGkak7LWLpVPS3Ma70l/Avh+qfTyMMQqiEG4U+nzp6Wfhtd1l2VyqQloXpPee5839bfGkoVEWmltHhW5
34.243.52.201 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLITqjfmkOdJPA2yLU5UlNdZfBir0eG4vmNhA3Nm20qNc0OqCLhQhszLBI0rpEIbI29l51+cpj+4m+4OMYaMbaI=
git-us.linaro.org,ec2-52-2-214-187.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Q8j887I9mBD2va9C7gWl4Cr8agHWxuFHfDUWaqiygI9jA4w2YC7mo5oJMqwUk2DsvPDLuU5Z6yyKSA7Cko+L0MnKfNMzQ8e00ZXGDBq8bh1tRKstFselAFmmg+5DhM9q9HPjpKYzbAxU6rxmdFbSc+ktE0rhtmciThVT3YW3bMs3g+D+6sf6ER9UkSpbdZ7skKFXBHw2t1BWaPrvW4L8GMFAokgXUKOE8e1WZkQuCcseIz8J9Hz1p/liyiiTPVQnjGyleUnUY0pZA3ViB6pS317BH5Kvd8aX8x0vSwCIs30rpkmBam9C0b2uj2jWk3GrmHYjVHebMAW376VSLTZV
git-us.linaro.org,ec2-52-2-214-187.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
52.2.214.187 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Q8j887I9mBD2va9C7gWl4Cr8agHWxuFHfDUWaqiygI9jA4w2YC7mo5oJMqwUk2DsvPDLuU5Z6yyKSA7Cko+L0MnKfNMzQ8e00ZXGDBq8bh1tRKstFselAFmmg+5DhM9q9HPjpKYzbAxU6rxmdFbSc+ktE0rhtmciThVT3YW3bMs3g+D+6sf6ER9UkSpbdZ7skKFXBHw2t1BWaPrvW4L8GMFAokgXUKOE8e1WZkQuCcseIz8J9Hz1p/liyiiTPVQnjGyleUnUY0pZA3ViB6pS317BH5Kvd8aX8x0vSwCIs30rpkmBam9C0b2uj2jWk3GrmHYjVHebMAW376VSLTZV
52.2.214.187 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
-dev-private-git.linaro.org,ec2-107-21-230-219.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC34bjTOKJIq8MVSeC5gddQlbR0hyvvTZbrpW7KXgCzkLTFZxa05wbz8VC1l7ruPotQBgrICgLYmrbjrASqcY//9OPLDa1Pf/MUIu2F2lA1W/5E3psGYmyC9GTvmjKgu39Rad5ujXMeMLjuzVPCmo+WhewgugDSV4Fcggd6B6YXHGtoE15ctSw4moerUq1+2BXVgFxUyMoGcpSCeLnbvWpmi6xWoGQOSnrQ4Z/VmZ5WZ87vQsiiWEAsqmMOHHacunnSph7uzQXJlHNajdeGnr2NF+EgcmQ0N6vivZDRLmRYuSmizjCOHSRZxSm/0UJC/ewVzp9BwRepiNKWsjb4gTMb
-dev-private-git.linaro.org,ec2-107-21-230-219.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
-107.21.230.219 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC34bjTOKJIq8MVSeC5gddQlbR0hyvvTZbrpW7KXgCzkLTFZxa05wbz8VC1l7ruPotQBgrICgLYmrbjrASqcY//9OPLDa1Pf/MUIu2F2lA1W/5E3psGYmyC9GTvmjKgu39Rad5ujXMeMLjuzVPCmo+WhewgugDSV4Fcggd6B6YXHGtoE15ctSw4moerUq1+2BXVgFxUyMoGcpSCeLnbvWpmi6xWoGQOSnrQ4Z/VmZ5WZ87vQsiiWEAsqmMOHHacunnSph7uzQXJlHNajdeGnr2NF+EgcmQ0N6vivZDRLmRYuSmizjCOHSRZxSm/0UJC/ewVzp9BwRepiNKWsjb4gTMb
-107.21.230.219 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
-lhg-review.linaro.org,ec2-54-80-27-87.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDN3HxAgbbcvWvCvJ9sTKN1oxDMj4UqkYZ3MvAvRNPM9NoYedEHT/YPSgpIVl280ANsGxtZTKDYp30VH4CN3S1lRogiMKodA0wE5ORnMEXV8QyVHAk9C+sye1EHnx6R8Ma0Y/Jdzf6qwThSd2/hcwXFB07QetQ6HNa0NUkEMSiiml+eW+MRje3iyYCCJhx9PFkh/S4pk6+P5dUVDwo6BKjQ8Zay6b9+ym4rKtOPcv3jg5lBdK8n3CNHAVUFVXRTIS5l5PY3pl0uQsKAyZlkaMNk0zqsBns7SsPRR3eTUQIx/9S1cpLoMlvzpAY/BBgkSG6S27incyG7+afK+xT/WWlZ
-lhg-review.linaro.org,ec2-54-80-27-87.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLZeDCbs1nM2xWEA+NXpJpIFvuUZpK1ZxB8immtgafo6hfR0gF+qdAFhNrWQqp2e0E+OYGzA48U9pUOJdSUA42E=
54.80.27.87 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDN3HxAgbbcvWvCvJ9sTKN1oxDMj4UqkYZ3MvAvRNPM9NoYedEHT/YPSgpIVl280ANsGxtZTKDYp30VH4CN3S1lRogiMKodA0wE5ORnMEXV8QyVHAk9C+sye1EHnx6R8Ma0Y/Jdzf6qwThSd2/hcwXFB07QetQ6HNa0NUkEMSiiml+eW+MRje3iyYCCJhx9PFkh/S4pk6+P5dUVDwo6BKjQ8Zay6b9+ym4rKtOPcv3jg5lBdK8n3CNHAVUFVXRTIS5l5PY3pl0uQsKAyZlkaMNk0zqsBns7SsPRR3eTUQIx/9S1cpLoMlvzpAY/BBgkSG6S27incyG7+afK+xT/WWlZ
54.80.27.87 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLZeDCbs1nM2xWEA+NXpJpIFvuUZpK1ZxB8immtgafo6hfR0gF+qdAFhNrWQqp2e0E+OYGzA48U9pUOJdSUA42E=
-git-ap.linaro.org,ec2-54-255-241-230.ap-southeast-1.compute.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
-git-ap.linaro.org,ec2-54-255-241-230.ap-southeast-1.compute.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Q8j887I9mBD2va9C7gWl4Cr8agHWxuFHfDUWaqiygI9jA4w2YC7mo5oJMqwUk2DsvPDLuU5Z6yyKSA7Cko+L0MnKfNMzQ8e00ZXGDBq8bh1tRKstFselAFmmg+5DhM9q9HPjpKYzbAxU6rxmdFbSc+ktE0rhtmciThVT3YW3bMs3g+D+6sf6ER9UkSpbdZ7skKFXBHw2t1BWaPrvW4L8GMFAokgXUKOE8e1WZkQuCcseIz8J9Hz1p/liyiiTPVQnjGyleUnUY0pZA3ViB6pS317BH5Kvd8aX8x0vSwCIs30rpkmBam9C0b2uj2jWk3GrmHYjVHebMAW376VSLTZV
54.255.241.230 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Q8j887I9mBD2va9C7gWl4Cr8agHWxuFHfDUWaqiygI9jA4w2YC7mo5oJMqwUk2DsvPDLuU5Z6yyKSA7Cko+L0MnKfNMzQ8e00ZXGDBq8bh1tRKstFselAFmmg+5DhM9q9HPjpKYzbAxU6rxmdFbSc+ktE0rhtmciThVT3YW3bMs3g+D+6sf6ER9UkSpbdZ7skKFXBHw2t1BWaPrvW4L8GMFAokgXUKOE8e1WZkQuCcseIz8J9Hz1p/liyiiTPVQnjGyleUnUY0pZA3ViB6pS317BH5Kvd8aX8x0vSwCIs30rpkmBam9C0b2uj2jWk3GrmHYjVHebMAW376VSLTZV
54.255.241.230 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
-git-ie.linaro.org,ec2-34-241-58-132.eu-west-1.compute.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Q8j887I9mBD2va9C7gWl4Cr8agHWxuFHfDUWaqiygI9jA4w2YC7mo5oJMqwUk2DsvPDLuU5Z6yyKSA7Cko+L0MnKfNMzQ8e00ZXGDBq8bh1tRKstFselAFmmg+5DhM9q9HPjpKYzbAxU6rxmdFbSc+ktE0rhtmciThVT3YW3bMs3g+D+6sf6ER9UkSpbdZ7skKFXBHw2t1BWaPrvW4L8GMFAokgXUKOE8e1WZkQuCcseIz8J9Hz1p/liyiiTPVQnjGyleUnUY0pZA3ViB6pS317BH5Kvd8aX8x0vSwCIs30rpkmBam9C0b2uj2jWk3GrmHYjVHebMAW376VSLTZV
-git-ie.linaro.org,ec2-34-241-58-132.eu-west-1.compute.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
34.241.58.132 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Q8j887I9mBD2va9C7gWl4Cr8agHWxuFHfDUWaqiygI9jA4w2YC7mo5oJMqwUk2DsvPDLuU5Z6yyKSA7Cko+L0MnKfNMzQ8e00ZXGDBq8bh1tRKstFselAFmmg+5DhM9q9HPjpKYzbAxU6rxmdFbSc+ktE0rhtmciThVT3YW3bMs3g+D+6sf6ER9UkSpbdZ7skKFXBHw2t1BWaPrvW4L8GMFAokgXUKOE8e1WZkQuCcseIz8J9Hz1p/liyiiTPVQnjGyleUnUY0pZA3ViB6pS317BH5Kvd8aX8x0vSwCIs30rpkmBam9C0b2uj2jWk3GrmHYjVHebMAW376VSLTZV
34.241.58.132 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
git.mlplatform.org,ec2-18-209-167-164.compute-1.amazonaws.com. ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAgsUMZWvcYLcEk8wiV0P+xQMYQ/zIgl0esvIoI3dy93
@@ -100,59 +49,32 @@ git.mlplatform.org,ec2-18-209-167-164.compute-1.amazonaws.com. ecdsa-sha2-nistp2
18.209.167.164 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC86o0lvHhcO+wZfhZzYp+eHItm79QgAeohf54LcIkKtEk6RJwdB0U83s25ERO2DvLu6jqVgQrcwAlyyFnqDRusEA2WiUutEFYo/XqWlOFF6sQa+w7dk2AG/3Cgp3qCwbIoiqfAx3HjDslnnj6LZVK4pg85K9PHf2gaH12pzIx3hpyxEsAb33sbbF9IicbrsMHhzGQk0qMutUyABXA/40FFs+/NIgcRVt0tCGFh3vbnqUkI3/sNDMup8b71wodYxKs/IKQWMBySCQlRYRpL14a6xPa9R04346GZKQ6abFpjF/ERuhtklI3K0pE0tBnGo+hdJubgFLwqHz8F34fvMVdR
18.209.167.164 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMP7x8oTsilLiRD5x+PS3G4EfMLMwrDfN3icXqwBMCVBY4dKiwB8c6NMHxnTXc34q6Fi7k3lGpdDkXgQIT+tax0=
18.209.167.164 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAgsUMZWvcYLcEk8wiV0P+xQMYQ/zIgl0esvIoI3dy93
-patches.opendataplane.org,ec2-54-211-49-112.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCgO9WJHGym3Uh4o7d1rCk62JozoYabBLsnHrms28gP/mufWQ9jVXDimyzgnERFaOpk7dtHgetKIdmixL02WAXGZN/kKAshnD9fQwqFS3L2n+LPwsh9Nes4cxdvGgY2bMvMLcwYRD+Wgv96Y5/Elz9A6wTAeln1X4qucY/sgDqX61H9imfW06gILmxAxzgurbdvZJGZU7nK+sUdO1zmBLR7t+hZVCSXBBc4RpJ4IPVrKUM6W0v1xzQ+PNQ0wShY8IwAbarBl7BRBeL+LBEDtF4fyosZPlzBctCAkO/udCy2w0BDHF9xlFYC7BGa9Cn2LKoPzjXUV6mjxmx+LGDaSGvn
-patches.opendataplane.org,ec2-54-211-49-112.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDfcen44QGP7+CFekdTl3zUfaNunRawAl4tduHqm6pNOqiZ9MQAssMK7p9kq7kvVAR9LTbaB/xdGGBsVGgZYO9k=
54.211.49.112 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCgO9WJHGym3Uh4o7d1rCk62JozoYabBLsnHrms28gP/mufWQ9jVXDimyzgnERFaOpk7dtHgetKIdmixL02WAXGZN/kKAshnD9fQwqFS3L2n+LPwsh9Nes4cxdvGgY2bMvMLcwYRD+Wgv96Y5/Elz9A6wTAeln1X4qucY/sgDqX61H9imfW06gILmxAxzgurbdvZJGZU7nK+sUdO1zmBLR7t+hZVCSXBBc4RpJ4IPVrKUM6W0v1xzQ+PNQ0wShY8IwAbarBl7BRBeL+LBEDtF4fyosZPlzBctCAkO/udCy2w0BDHF9xlFYC7BGa9Cn2LKoPzjXUV6mjxmx+LGDaSGvn
54.211.49.112 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDfcen44QGP7+CFekdTl3zUfaNunRawAl4tduHqm6pNOqiZ9MQAssMK7p9kq7kvVAR9LTbaB/xdGGBsVGgZYO9k=
-patches.linaro.org,ec2-54-145-194-227.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfwL46DMDAPpLY2IhqiDtJgVC97ouwi9A4RXHQY48pME5LHmG9yR+IXNQtkEMHtGGT1BJXsGYDcjUpoMNydSwbTtjUDjFUgMMrZ6ng5k1AoKeosu1kIB5fWzYTReg/BbjKiU3txWhlxjNOH6K2+hdaVV93Jp8gYxAEcEdCrOoYesAuY/NsLGURkf5NrxhKBnRcTfbM7HC6X6DL8kABLcInrzULWEBhLhS399tJjj4dJpbjGhrgl0AoKBQjrbtEd8kwFAmkb+QpWKmmRxb2v86rUy4gfi9JZekUQ2tR+E4FKEmCX5lKoe0Se0XWsYXOuihRhnHnEiRaq2QBkrUSPZVD
-patches.linaro.org,ec2-54-145-194-227.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGgKJfR1sQrEy+Io1AYoq9Cb2q2kV10tA4IBygASLRo7JuWWBBPjrTcYM/v3ImjMBiSGreKY7kCpt3l1+2FMq20=
54.145.194.227 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfwL46DMDAPpLY2IhqiDtJgVC97ouwi9A4RXHQY48pME5LHmG9yR+IXNQtkEMHtGGT1BJXsGYDcjUpoMNydSwbTtjUDjFUgMMrZ6ng5k1AoKeosu1kIB5fWzYTReg/BbjKiU3txWhlxjNOH6K2+hdaVV93Jp8gYxAEcEdCrOoYesAuY/NsLGURkf5NrxhKBnRcTfbM7HC6X6DL8kABLcInrzULWEBhLhS399tJjj4dJpbjGhrgl0AoKBQjrbtEd8kwFAmkb+QpWKmmRxb2v86rUy4gfi9JZekUQ2tR+E4FKEmCX5lKoe0Se0XWsYXOuihRhnHnEiRaq2QBkrUSPZVD
-54.145.194.227 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGgKJfR1sQrEy+Io1AYoq9Cb2q2kV10tA4IBygASLRo7JuWWBBPjrTcYM/v3ImjMBiSGreKY7kCpt3l1+2FMq20=
+3.88.203.153 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGgKJfR1sQrEy+Io1AYoq9Cb2q2kV10tA4IBygASLRo7JuWWBBPjrTcYM/v3ImjMBiSGreKY7kCpt3l1+2FMq20=
review.linaro.org,git-us.linaro.org. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Q8j887I9mBD2va9C7gWl4Cr8agHWxuFHfDUWaqiygI9jA4w2YC7mo5oJMqwUk2DsvPDLuU5Z6yyKSA7Cko+L0MnKfNMzQ8e00ZXGDBq8bh1tRKstFselAFmmg+5DhM9q9HPjpKYzbAxU6rxmdFbSc+ktE0rhtmciThVT3YW3bMs3g+D+6sf6ER9UkSpbdZ7skKFXBHw2t1BWaPrvW4L8GMFAokgXUKOE8e1WZkQuCcseIz8J9Hz1p/liyiiTPVQnjGyleUnUY0pZA3ViB6pS317BH5Kvd8aX8x0vSwCIs30rpkmBam9C0b2uj2jWk3GrmHYjVHebMAW376VSLTZV
review.linaro.org,git-us.linaro.org. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
+[review.linaro.org]:29418 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMfTLkTmsbtahAiVJTKXRFbR9MQ/vDH/JPj4QN3XPHJuubxLhUf8WObEBtML7J11uvVM1oDTwM5YG5yjyBnc+85OaQaB9tMPDheGhfMG40F4vxdSnQL29ihyrls0hrFTY9UZ4Y2FmJwYL0rOnGU7iPyNuExQwfg2bkdw67aH9nEGjSd2eXYl2bI4DHujy5GJiV3dR9TlUF0iaSeHVSIX5t9I/BXK+AiSqHTrvwdGGi9XvL6xEWYMOZOpJnCH8Q4OSibsFfQXnCMgIFeO7J/ZMGXqltXOtztgQMr8VvRRD3S+Lcp8yKb5aUjWwoCxb4YzEUbQE04SRVeAGjsfNJcXgT
+[review.linaro.org]:29418 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPzkmW4axU/BXRtRkR42I8FVvWjGhB4CUtTC3cSkhu6L0Oo9i+ija/hahkPT0DC+S0k/vEL7s4mC5SrdNCeJO/0=
+[review.linaro.org]:29418 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFc6ZLtKFrdDI1dYcnYnfrZ9aZDSEVuYvjrsuGDXE0hj
ec2-52-2-214-187.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Q8j887I9mBD2va9C7gWl4Cr8agHWxuFHfDUWaqiygI9jA4w2YC7mo5oJMqwUk2DsvPDLuU5Z6yyKSA7Cko+L0MnKfNMzQ8e00ZXGDBq8bh1tRKstFselAFmmg+5DhM9q9HPjpKYzbAxU6rxmdFbSc+ktE0rhtmciThVT3YW3bMs3g+D+6sf6ER9UkSpbdZ7skKFXBHw2t1BWaPrvW4L8GMFAokgXUKOE8e1WZkQuCcseIz8J9Hz1p/liyiiTPVQnjGyleUnUY0pZA3ViB6pS317BH5Kvd8aX8x0vSwCIs30rpkmBam9C0b2uj2jWk3GrmHYjVHebMAW376VSLTZV
ec2-52-2-214-187.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
-52.2.214.187 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8Q8j887I9mBD2va9C7gWl4Cr8agHWxuFHfDUWaqiygI9jA4w2YC7mo5oJMqwUk2DsvPDLuU5Z6yyKSA7Cko+L0MnKfNMzQ8e00ZXGDBq8bh1tRKstFselAFmmg+5DhM9q9HPjpKYzbAxU6rxmdFbSc+ktE0rhtmciThVT3YW3bMs3g+D+6sf6ER9UkSpbdZ7skKFXBHw2t1BWaPrvW4L8GMFAokgXUKOE8e1WZkQuCcseIz8J9Hz1p/liyiiTPVQnjGyleUnUY0pZA3ViB6pS317BH5Kvd8aX8x0vSwCIs30rpkmBam9C0b2uj2jWk3GrmHYjVHebMAW376VSLTZV
-52.2.214.187 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
-android-review.linaro.org,android-git-us.linaro.org. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy5fjXgJWuF+qKwieMYCWsdrFnQFQ9KB49gZOONc4F9sJGaxdihOGrhq2Uk4nBjPNSFdwB0QdjSa/Mr3a81wBT3s3EGrB70JsgOyjVzE9lVMol1DdEyX94c0KlQl3B8Gg/RuR3347nh28+4qr2CIyTRTexUQywctEP1qmaIFKL+vNEmbMUIJnkQ1VLPanR1js3JhjpYJLCS8gPjL3gx8UNHoxXIPjwYK3yW269pb/0jVD5OKmVXYI7CD7OFsngIIzm54JzeiGEOJP0S6FLv9geH8Olc6CBlJQ/09IoGzvHqsASPJSisCdQWbhYFdBNJXuaoKLG3isCi4Drc/yIl8CB
-android-review.linaro.org,android-git-us.linaro.org. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKadv8RptDmwU1c4ahKtUjuhwLsgtkTAQvlBdOzLRUBSVPmntpGz6LE9xEwgtZpz/WdV9doi13xdt53fCjJcRIo=
ec2-54-225-81-132.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy5fjXgJWuF+qKwieMYCWsdrFnQFQ9KB49gZOONc4F9sJGaxdihOGrhq2Uk4nBjPNSFdwB0QdjSa/Mr3a81wBT3s3EGrB70JsgOyjVzE9lVMol1DdEyX94c0KlQl3B8Gg/RuR3347nh28+4qr2CIyTRTexUQywctEP1qmaIFKL+vNEmbMUIJnkQ1VLPanR1js3JhjpYJLCS8gPjL3gx8UNHoxXIPjwYK3yW269pb/0jVD5OKmVXYI7CD7OFsngIIzm54JzeiGEOJP0S6FLv9geH8Olc6CBlJQ/09IoGzvHqsASPJSisCdQWbhYFdBNJXuaoKLG3isCi4Drc/yIl8CB
ec2-54-225-81-132.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKadv8RptDmwU1c4ahKtUjuhwLsgtkTAQvlBdOzLRUBSVPmntpGz6LE9xEwgtZpz/WdV9doi13xdt53fCjJcRIo=
-54.225.81.132 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy5fjXgJWuF+qKwieMYCWsdrFnQFQ9KB49gZOONc4F9sJGaxdihOGrhq2Uk4nBjPNSFdwB0QdjSa/Mr3a81wBT3s3EGrB70JsgOyjVzE9lVMol1DdEyX94c0KlQl3B8Gg/RuR3347nh28+4qr2CIyTRTexUQywctEP1qmaIFKL+vNEmbMUIJnkQ1VLPanR1js3JhjpYJLCS8gPjL3gx8UNHoxXIPjwYK3yW269pb/0jVD5OKmVXYI7CD7OFsngIIzm54JzeiGEOJP0S6FLv9geH8Olc6CBlJQ/09IoGzvHqsASPJSisCdQWbhYFdBNJXuaoKLG3isCi4Drc/yIl8CB
-54.225.81.132 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKadv8RptDmwU1c4ahKtUjuhwLsgtkTAQvlBdOzLRUBSVPmntpGz6LE9xEwgtZpz/WdV9doi13xdt53fCjJcRIo=
-review.trustedfirmware.org,184.72.81.201 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/B08oZljv1qGZJCjwQTZrDBEhUiGHcRG40aZ/tjkCCQb+JOfrb0jgV+AqkKxUSuAyxYgOD1HLotDFwzMaMAXTUZ7goXBoEfi1YuhZMsIyrQB4FG9RsGQe2/El/HRtiGqEADU3a98OCTzCDGNzvWfuwrCydY2YFZkkseFoGxV/eUE/WWbKqcQh5lNZnbBOjYSNjV0DNoW/jTkr2oR8iWlCTHqae6ulM67TzOzWoDOu90fqU7stX6x75SM9gn4KiiV3xWuKw9N8YjjRpEAHAZoKHgDqze0wCsMZLVhYOGA1iY30VB6bqo02PTm5gAJM9wfoqoRkoldn2kRJwBRDa4Bj
-review.trustedfirmware.org,184.72.81.201 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA+7qW9k2k+Kf1/I3rT8Cjg1F53ezcCqWD50XTZnFPPx823NZnx4A7kLN6Fy4zeCuiq6ijL5lr0bEj9Zh8jwtSo=
-review.trustedfirmware.org,184.72.81.201 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDvuI+QkHtXh68oEl5YKlHGlVwddHH/FYvFFALTxAZDl
-fossology.linaro.org,62-210-124-13.rev.poneytelecom.eu. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCgEpoVhIUUoqT0JqtcNxfpmgae6L6nxnAGF3iQV6duhF2zP2fdlVGmMmI2usK0xQhFmC81+oaghEIX44558pxa8qq7aPAsG6SLH7JQnKZcqdREio4Yw9IWQ1W9+mUkC/GZa9najONN60JYV+6qScI8OkOjt6fOnaMAAI7uTUM7G0bOe/Q6mrUHMJ+xo3hXcmbitFUuWPKD9CC28o7b3PROgGjoFl9ieKvd58lnLfSlEgTKYc8rkptyXOJ9d3bdPbzgp/Cg2fQgp/7Cx2rtzzS+Cj0kJkRFJfcggB4cWH9+QrODONuHL8TQGNE+GwOUFEW733U3V9I5c+SwxnL2xz+r
-fossology.linaro.org,62-210-124-13.rev.poneytelecom.eu. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFjPTxw9hBaKyCd+ucHlfcFGXxKdxP0pyZ3P7UExGy3gt8yePMZRnBJ8VQZ6yJcz9M4JTWnbhoNYxnwxhJCWzn4=
-fossology.linaro.org,62-210-124-13.rev.poneytelecom.eu. ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGKpvdhgVNrzsah+6CxQ+LiYH7Rb7NUYuYOXcPl8WGUk
62.210.124.13 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCgEpoVhIUUoqT0JqtcNxfpmgae6L6nxnAGF3iQV6duhF2zP2fdlVGmMmI2usK0xQhFmC81+oaghEIX44558pxa8qq7aPAsG6SLH7JQnKZcqdREio4Yw9IWQ1W9+mUkC/GZa9najONN60JYV+6qScI8OkOjt6fOnaMAAI7uTUM7G0bOe/Q6mrUHMJ+xo3hXcmbitFUuWPKD9CC28o7b3PROgGjoFl9ieKvd58lnLfSlEgTKYc8rkptyXOJ9d3bdPbzgp/Cg2fQgp/7Cx2rtzzS+Cj0kJkRFJfcggB4cWH9+QrODONuHL8TQGNE+GwOUFEW733U3V9I5c+SwxnL2xz+r
62.210.124.13 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFjPTxw9hBaKyCd+ucHlfcFGXxKdxP0pyZ3P7UExGy3gt8yePMZRnBJ8VQZ6yJcz9M4JTWnbhoNYxnwxhJCWzn4=
62.210.124.13 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGKpvdhgVNrzsah+6CxQ+LiYH7Rb7NUYuYOXcPl8WGUk
-weblogs.linaro.org,ec2-54-80-152-204.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKStj42bnbS9NZ5+JXRcoEQ1WGgxhUGnXKW7WndR4Yd+Cc/GcfXy/UtnuJPdRQynJ02n1unsV43wbDltuSAFY6E=
-weblogs.linaro.org,ec2-54-80-152-204.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvpGPTy64qf30KhmwVlqgQD0fQGoAeQ6K96Tx7lPQ+p68skJD1lIn+VSoNQ4W2GG7Yt2ZXAnBCcCzQ0N75MN2DGbkecM1iqQ2/poIwBVfZ3ZiRJMb4WOnnI4RaLLZCE3dpreVogPKjImHew58+8pfUs04WCelmjIYEY1wc527gncNCDnKFdVYqzWR0UtyWBP85AL8BFAUPcC9XsHmuNLe9VqocwcULf7oGWEgkKYgzDNyK7lFRucO0TD0quBu/Fip5AFSiQfSSFh0ZFrf1kMtBXXHB0cegFPJqaXe/8MlXEgVYUVOntgB+n/XLcq6m3mD3HYMoNuTy1SDWMUBpNxwD
54.80.152.204 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvpGPTy64qf30KhmwVlqgQD0fQGoAeQ6K96Tx7lPQ+p68skJD1lIn+VSoNQ4W2GG7Yt2ZXAnBCcCzQ0N75MN2DGbkecM1iqQ2/poIwBVfZ3ZiRJMb4WOnnI4RaLLZCE3dpreVogPKjImHew58+8pfUs04WCelmjIYEY1wc527gncNCDnKFdVYqzWR0UtyWBP85AL8BFAUPcC9XsHmuNLe9VqocwcULf7oGWEgkKYgzDNyK7lFRucO0TD0quBu/Fip5AFSiQfSSFh0ZFrf1kMtBXXHB0cegFPJqaXe/8MlXEgVYUVOntgB+n/XLcq6m3mD3HYMoNuTy1SDWMUBpNxwD
54.80.152.204 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKStj42bnbS9NZ5+JXRcoEQ1WGgxhUGnXKW7WndR4Yd+Cc/GcfXy/UtnuJPdRQynJ02n1unsV43wbDltuSAFY6E=
-snapshots.linaro.org,snapshots-us.linaro.org. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOfd/OHxpzB3XL1ZR7/MMT4GgwWWAG940UdxNjf7ck7Motzmw7kpllmhBZ/Csar/a4n1SqxRyE6ZFb2A1jnHn2H+JxPS+cetOEsc4TULBSyUsRgvz4PUGBAOiJmRVyOYE1fxSvgyrg85z/MhSk0/xd/VLlkCeAyicAOTwjqteQQKQJR1S8b0cztULC55mE8VKKZGnnD1DWyxSUhSR7gRHWySJRiP6O2ByGcqLHm5GKbfMd8tW6g+NmbwxoYuEVEFh9fkwm8mTukkL046/u/EHFxDPMhczjnOAtFUKlJ9dKJqBOrdDj9zwUlHySCMPo4UpLgdgeF18guNH7bebOeGn/
-snapshots.linaro.org,snapshots-us.linaro.org. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDPYCCaNrUGzP+roVL8TgsEf5+Og1vnyI5ruQ82Lant7XZv5IlaYcqgKF1vGYsIBmq1H6xBLblplojw2ZCAh9os=
ec2-50-19-28-204.compute-1.amazonaws.com. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOfd/OHxpzB3XL1ZR7/MMT4GgwWWAG940UdxNjf7ck7Motzmw7kpllmhBZ/Csar/a4n1SqxRyE6ZFb2A1jnHn2H+JxPS+cetOEsc4TULBSyUsRgvz4PUGBAOiJmRVyOYE1fxSvgyrg85z/MhSk0/xd/VLlkCeAyicAOTwjqteQQKQJR1S8b0cztULC55mE8VKKZGnnD1DWyxSUhSR7gRHWySJRiP6O2ByGcqLHm5GKbfMd8tW6g+NmbwxoYuEVEFh9fkwm8mTukkL046/u/EHFxDPMhczjnOAtFUKlJ9dKJqBOrdDj9zwUlHySCMPo4UpLgdgeF18guNH7bebOeGn/
ec2-50-19-28-204.compute-1.amazonaws.com. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDPYCCaNrUGzP+roVL8TgsEf5+Og1vnyI5ruQ82Lant7XZv5IlaYcqgKF1vGYsIBmq1H6xBLblplojw2ZCAh9os=
50.19.28.204 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOfd/OHxpzB3XL1ZR7/MMT4GgwWWAG940UdxNjf7ck7Motzmw7kpllmhBZ/Csar/a4n1SqxRyE6ZFb2A1jnHn2H+JxPS+cetOEsc4TULBSyUsRgvz4PUGBAOiJmRVyOYE1fxSvgyrg85z/MhSk0/xd/VLlkCeAyicAOTwjqteQQKQJR1S8b0cztULC55mE8VKKZGnnD1DWyxSUhSR7gRHWySJRiP6O2ByGcqLHm5GKbfMd8tW6g+NmbwxoYuEVEFh9fkwm8mTukkL046/u/EHFxDPMhczjnOAtFUKlJ9dKJqBOrdDj9zwUlHySCMPo4UpLgdgeF18guNH7bebOeGn/
50.19.28.204 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDPYCCaNrUGzP+roVL8TgsEf5+Og1vnyI5ruQ82Lant7XZv5IlaYcqgKF1vGYsIBmq1H6xBLblplojw2ZCAh9os=
-router.aus-colo.linaro.org,64.28.108.36 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCg5vMfuBLRroqEb6+CFLQikh1Wq6UD++SODY7bSdPDfN1wmurdp60AdVU+22nOXgK78mwYPJ0PEcTBMSE+OmryfZFDZm/+aPbALid/vFs8NuvFmEQ8vecEBPDGxJ3RpVxkNG5BrWMTJjWMJTCFdIh9my5vhBPEloAuDRthRNaRwvgqRw3GJAbSG2Cg4ZgOQi7Lv3ogQ/M3nXzy8KMp4KD7AtncylguPoVwDxNwjl+YoEujZDvpM4UiZDnh+Gxeru3EnEIgDvwbMizlrKL8Tm+2gA+j3cWkgIjCVJM+PW8V0aobp681ChqlbDlzK0oVmwUafdVv3dxzOSrjQH2rkaOn
-router.aus-colo.linaro.org,64.28.108.36 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP8apVdw/JC+4rOiq/eG2LgjwJPCqKIlG/RwPVDe1VNOdtrmR6VnTQ5oQYkwt00h2rdI6dVzdW8Q9za7PGW6Sls=
-router.aus-colo.linaro.org,64.28.108.36 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILjGUdv/qddl53UgTjqIfTWx/AAgwGCp+CnDYACjF8rt
-aus-colo.linaro.org,64.28.108.36 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILjGUdv/qddl53UgTjqIfTWx/AAgwGCp+CnDYACjF8rt
-aus-colo.linaro.org,64.28.108.36 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCg5vMfuBLRroqEb6+CFLQikh1Wq6UD++SODY7bSdPDfN1wmurdp60AdVU+22nOXgK78mwYPJ0PEcTBMSE+OmryfZFDZm/+aPbALid/vFs8NuvFmEQ8vecEBPDGxJ3RpVxkNG5BrWMTJjWMJTCFdIh9my5vhBPEloAuDRthRNaRwvgqRw3GJAbSG2Cg4ZgOQi7Lv3ogQ/M3nXzy8KMp4KD7AtncylguPoVwDxNwjl+YoEujZDvpM4UiZDnh+Gxeru3EnEIgDvwbMizlrKL8Tm+2gA+j3cWkgIjCVJM+PW8V0aobp681ChqlbDlzK0oVmwUafdVv3dxzOSrjQH2rkaOn
-aus-colo.linaro.org,64.28.108.36 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP8apVdw/JC+4rOiq/eG2LgjwJPCqKIlG/RwPVDe1VNOdtrmR6VnTQ5oQYkwt00h2rdI6dVzdW8Q9za7PGW6Sls=
-r1-x86-1.aus-colo.linaro.org,64.28.99.175 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINYlcUyKzsv8UWuxtnSOWPDqCJXoFkw0d2113lrh+szK
-r1-x86-1.aus-colo.linaro.org,64.28.99.175 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSFLz1iTidSdqnfx6TgO5zw2/RRZSPfN4P/PZeeurkWb6/KA3tyQR3/KWIfRvXN87usSRXGOF9PRQWc/HvnoZ/HW9fDpmZADusu8d8RFxmUvz4L9g6ZGvqOBaGrxhdQ9boFunYFdY+QeAi6298H1MqI3veCLuM8dizOHdNd2M0RPWznWBMT1xg15H4f+3U1PcZThy7B8YL0J/4LuQH6iHR+ilDnq3v/zd8VIgrEE5rH98/Bs5Piid9UDFixwnqdginiSkxJftqgbN1wH7nXATn4AryoJmsumi8WtKltcyGCijaXzTRcC6I85XI7XOhKY5bRyIo//W8xasDGf3K9E0x
-r1-x86-1.aus-colo.linaro.org,64.28.99.175 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNySPQHNyHxsHwCH6nRiMCtkjUD3vTXgzNB4op/06sIi660ujwoxlnpZPOJ8AhI+/NHZiq+GcaahRbk/aTHmbQM=
51.15.185.142 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFiE/xDUSszfNbByILYgnFaa7fP9SM23ndz7ShP9a2GBXgjoJYzR04s1uwmzHYGzdP0H7MD9yGm7qsdb60/C0dQ=
62.210.248.69 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGSH0j+ws2JebLQuwUWZmYpRAPf+h3QN1E5TpDdf6PCRwossD73hAVs99d84+8GFmNDiFPv7H56t19cXof83E54=
62.210.249.170 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJ+nJO/P1YksW+J0d8a/VJOuXng8k5SX2uJQ+BEquwLSlj7ZoUnpO5g/ggJlHuQ1v1buFP0I1A/Ye8UdjhjHVcY=
138.201.52.83 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJeajbjVeTnYaL1SPlPAddAcAt+RCmd+CQzkZXBoZViBcQxIZwstHVpZ3GIrVKS8mnKKJQfKummef62YMa2f7zc=
-147.75.32.78 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHu+ik90PqROZ9D8ixmchEfPoeYYQZn0avXgPOqOtegJK9qLw/hx45F8Hg/J4asSZEFKhAw4Ovp9QGF/1YWucQw=
144.76.6.139 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBB40GP1XkqQtNT6nCXEzy2cDsgJHTCkApsSAYvtuYqSPTYD779/mvsE4bjcyAQhC6CtcQX1Kuw8dwY0aOgrkABo=
188.40.51.209 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJbxJ7Fr1Tfb60su98DUhqp1hZ8qmqB3Hxhbob1VvhdiZkvrfvuNBcOIgh+flIAGea5W/Zm3WnHnuL+RImBebDE=
213.133.116.86 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHFdDIQtOyHhX6O92vVElv1iJCBj59xOMNIJAySXfunTqlMzQ0o5BWm8SOe+PQ0JFOtcnANwIPqyY7P4T3U/uZ0=
@@ -163,13 +85,295 @@ r1-x86-1.aus-colo.linaro.org,64.28.99.175 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYT
148.251.184.94 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBETI0LjL9+3A8qlXHg+WXA2YdPk1fOUn2iZziYBRLc1qVi3jfgRnfkiHnHzfP43Mz4/MIrLZ4Ot2eyymBSIcSjU=
188.40.49.144 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIEcm9UdHnMB4dzB4Ts2DlxKXbCbEQIh1rwUn4NUX0NKFHvtwOE0SUZm3/Fn3uDm/6YrjIbg7fVagVLVuVibCVs=
188.40.92.79 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPlgAR+TfSk6/JTVixjFUqUaS+xqKtBUXAbujlq7HV5/zQSsG0sOdxHZU++jEnydi42O1Z4Zr63UuUlHBY4N+aQ=
-148.251.140.195 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNqM/TEH+9pHng4S8HPuAHKk9L5TRdQMh5mjw2NKPel134b1OIPYxN+a44lBjsTPhVOU0wqPpQhByPZ50cz+PQw=
78.46.190.194 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFxvbcyll1MOWNYFtoS2Ag0VPbRqmEGp09UBB9r97biPx64uRw0XWTWOsaldCdHXs1ngqc6WexMp6V0DkLnXCu8=
-r2-x86-1.aus-colo.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP8apVdw/JC+4rOiq/eG2LgjwJPCqKIlG/RwPVDe1VNOdtrmR6VnTQ5oQYkwt00h2rdI6dVzdW8Q9za7PGW6Sls=
88.99.59.232 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKoVmvuzM7PDGZoaRl1vJRwpV4NvOmt2dJCMb+MrpbJg5RrUUqDl5Vay1AREqbXGMgoeuwZ0G8CgcFNA3zfzwUg=
64.28.99.162 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPM/UPZ+OQ8vH6JQDarr2GeSY5m+ewWXJjhSHgFXxLdbNOmQSeHdez3jhWo/f5qRKwW0V3fRGze7fPHVfvDg+Hk=
-10.101.16.17 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNkWhVWWz17oShSbQGb4IwZMAP6BxoMEs1E0u++yP4XaexwjcfxlqfZFqQADJYxw8nEDk4sIjmI9NgLXse9Xz5s=
51.15.128.165 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDj3WzfPoUf8LrBe4NDeJ86rCwJbqJna/jNZZJKW66y+8GMM6w375GboJEIxijdlF4joB3hKufEtrxWvqiwBGB0=
-ci.trustedfirmware.org,18.206.12.103 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLt+7FXqEKRlZDYEzF6v3Bp7N7NznxzgQwRYjoKh9m4qR20TGUsAnrAcL3NfU9zNCg8nJuguMPKGHkwaYceG+vw=
developer.mlplatform.org,3.82.122.174 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAFARXtuAZ6LzieVyE97UddWdoIB8lSALM/oEKe+2gqRIYXNhGQTK+0PGnF4JM05QMUiGGHoyaMcdJxTLNY4HKk=
10.101.96.20 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBF3L/0nzfit1lkGALqPehFBibo3jSC2FbXOm0BDjXxz+3IZH2cDRGfmsmFPGtfO5bYRr/flewfCnmwhH7YkIp4w=
+publishing-ie.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJTZ3bDgCTObQ5vLSRXWF1PKzUZiKnXHfem+9WCD+y/v2gmdKSDDdND73AlaMq6oewBdE2wVglY+/w+uWjQtV1E=
+52.215.200.125 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJTZ3bDgCTObQ5vLSRXWF1PKzUZiKnXHfem+9WCD+y/v2gmdKSDDdND73AlaMq6oewBdE2wVglY+/w+uWjQtV1E=
+51.15.249.133 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBE6LtsTOA7FHZ85L08ZRIEcmp/zUP8mx78zqTNu+tsMY8HgDbHIRbgo9P3iuwdVTX17/H3ftgWeO1Qgnb7cE0PI=
+[localhost]:2201 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP18iE16FNyGIhFJqD8mc8XWGyxQNvj3e4UcAXEKythaB0TbuIh5qC9ctCh5qJM3gI4I9GB6gp/iqP4Aq9Duryg=
+r2-x86-1 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBVnBscBSgdORTwh9N0eaFYyOy6VNSKPqoBKlyed/FtxCjvk+StOv4UICxTMJSqXMid1leg/fQmOPD5rejnqNj0=
+r3-x86-1 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBH2Z3ijQoicrbaAIfN14CnPO4Xk8r3kX4ZICWc+76Sb+avX7mlMQsm9LfX0YnMBjeqeGpT0xmHysAAQFwEAKSwA=
+r1-x86-1 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNySPQHNyHxsHwCH6nRiMCtkjUD3vTXgzNB4op/06sIi660ujwoxlnpZPOJ8AhI+/NHZiq+GcaahRbk/aTHmbQM=
+qcom-proxy.linaro.org,54.183.104.175 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBG5ftIpnXolKQWL7k5As89ImpuhHqsMlI33fWscTp0TuSf3R/7KNUWDAqr/fhaBpfgcg0kEpfNY0yxkyI2udew0=
+releases-ie.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJTZ3bDgCTObQ5vLSRXWF1PKzUZiKnXHfem+9WCD+y/v2gmdKSDDdND73AlaMq6oewBdE2wVglY+/w+uWjQtV1E=
+testdata.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJTZ3bDgCTObQ5vLSRXWF1PKzUZiKnXHfem+9WCD+y/v2gmdKSDDdND73AlaMq6oewBdE2wVglY+/w+uWjQtV1E=
+99.81.133.34 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
+192.168.16.91 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCotlPaJMfmUZpbJ04VvFHiHjfphcf5hLyrwuSah3i089lch4aGfJreR6XhduKdtEhhAiLwV8s4odidJ89C3jI9uh8UHeTeVdSrMwT8MyzFNiIPxGoFIpwwaK4YYraK22pGn2QTL/EtZT1G9Kniz0RuFyNbdWQqNBDdrGtgXLgFIUyn+/hSvhr7Tahyr4ly3/doAHYW4+IW1MlIC74XtXwQsTaiM7W1iwtuWd8t3vSbl2F7ac6q5Tp4Lpl4997ObBc7EFT7HMumn4vN5/urX0U7ngBghLO8svQNF2Zh0iFBOvLBomT4i4FseL3x8KH9v83rVMCgbFk4OsnIenL96QXf
+192.168.16.91 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPXoRATLFFzczzyqhuYlBJyujbeqrw22ttuhi5iAB2o1ASdkr2QghS2amaKNhZdUagMhkinxkUYghof/vronVI4=
+192.168.16.91 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN33ihbOhvJeGPxrBcSXp3IDJLXX+SNpfPal1iy4+sWc
+147.75.32.78 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJrlwZXex91enFQJhmWGWsbRKUnHa9naxKT7Ot/VaudO
+147.75.32.78 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqPVVFXBZ2L0xZFWmzCu7+9XeZVnXsnsdReulP62ZmrAhqLiwWsZDlWpLPqM4L1v/KJmgfvC7Ndj+CuF801d8M3mN12F0siBTZDxuljhSe1QFjG3tEnd4PgRSAkRjkL+FqftLvJ+iig81eB4UVZN3YrLCeZhy/gNFBOtLO9+NAUR7i4ciNX12OTDNq5hYUpab9CHCXYNQmitJXdLzGmOKb42jRPu/BuzgS0t22kRgOLwPD71yYGLJJltDjRJHeOwQjTcpzGMPThL10yFn0CCucpJi9XGicMlyBzRHL7TAThOugufvngMvc5CUFkgFukMUJ3iHf3k+H6qGXmKKvmBId
+192.168.36.51 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMH9WxAKcyROUX6rayPQrUmxS/aRiA4Sm9CqMGY0apd+NTqdJwXfiYAeioduxZDGyiIZMlOafS4x5f/Rt5tDiWO4zw16zSBVWqlzNNeNo8tiiR1QN/WubqFEWHJ9gu3pPZ6FmgRwnBb+d1EEGhXYEmFh4YqAiwpzTQ9VeIU6/sVK5YVp4zEJP8iRt9gb01Y/oTSadiNayVrkHC5T1r/XTp6B9svI8843liu5WKWXTteM/+FdLOQHlBbgvmuU9Zao1Hpj7GJZ6/Kse8ZmzQSwdskkO/F4sB/Up1WZ25A1WOBdsVIBBOCb7B9hpsHfs5x8gKIVw8DUTlylSb+855I4dd
+192.168.36.51 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOAN92q3qC5rYtfe0oVeCV8Rzb8eYlqXwp5nReFXrq8QQNKwTwIaNEA1+6BB6NQtpNVH/KLBpyxCPuOzRUh6Ymk=
+192.168.36.51 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC8o8oy4FjvtqHUstX/CpiCHqLYvs9hPRHXeDKO+jybt
+144.76.6.139 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDm1doQQy9sw8eufUNeRDMsqJeaMTnJY/0wGiFaFf8yPSU9x5lsEHwQPc6ahIDozL58FGmW3ZMt0T052nHcBS5Jo2H57JwUOjN6fqM5SbmMUfsbtvIRfWpJRQsJ6oDoYQHFDSKKfL3h0OmYhnreLERnQA7NLubXeckBWOcd0YvKy7WqjsfKLWHba9l73CBGhfICOpO9RexIqumUX0csR8RF3viIFMOntdeQiLSftGWBXraae6EtqgC8s9zPMANCiNefafXqS2wjBZ6dpmyHYQcE+xVoMrE3uW0vV9WexRrcrLl9VvyVAvQ1RqjFKnvQS1J8G7GxSkm2k6YcpodYv06d
+144.76.6.139 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBsIBuk8E48vYtL63E/AUwZrKEOTpXEF8QHsP7hHkK9b
+188.40.51.209 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCevjhSm+B8PeBdem79CyWj3ubwD5rAISiDoP0q79edHGjb9JVHUv6TLEFzhbiqtMk7nrPIMz8z+cfQoy2MZC+xo3Akveorl5HRG5WwYcb+ijVv8Qo/mfS8kd4TDApuHXkjA/+hIEcmun5k6fWoxWehJJcfc9uQFrfr0irk7fFuQTN0P03dWf7reBtVcCzSlLhDgdCgmMhRsIA8b2KEiuZ9rLnmCE+0zkEndZONRtUCNBbt5MtLUAoQOqvU2/SdWKhpruOAyXY37ceLHQYDxOmm8Xrde9OiAtgup/nmZg4K8OFCE29PCE9AJw8PKYuJHj4gP+sdzBMD8hCZkih5ouGT
+188.40.51.209 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICWVn/ufLZzXjAtvj14PBY9VIjFPv1mwf4LczwyoOTNZ
+51.15.128.165 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeewXjanXakMsIIzo1f6UakFrh/7PUKX8CG2ECYnGWfl+1Q9hoyS5ni6NQB+Izi4BeT0gY52YkZCzB1iD4LIru87dveJHSYCeXvr6/jdfBGeAdfw5IM11aURpdZ308F2kzjhSdGYk9ogmfiEzoJZO5bRD6wduqYXPKUoIAE+NuA1Vh8SN+vx1r4KkKVqaOovsbawc3E8clmOIxqXkqdhqYPQvQ3hyEbW52DWqJ04iHX5bv5/1E+fDDipnCHEtoJoQjdgvWi3AbW/7CkZXwq93sd7IgZw9upbWb7bBvXiKK2fmhTnXOvcLzGmDfMowX3IGUYjoRB385tj84OE6Fdjsd
+51.15.128.165 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJCp8IoXlJNVc1l2ETK0d2hWM1mljD/ZO7bJamQa8+vg
+10.101.16.17 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjLEoYkv11uZbIgL/+kwQeolu1zMTYcSOvr/C9Q1l2Soht1RLX8rCrIkJ3WqQXm7tSFPMKY2KzfvEuzt68Ma2XzKOpFiH/riWHgcZnJ4bONsPk/flgY8AJy0RbDvrCpXSi+RNudSDKao4CLP/9gQlPVO7THsK89OFQ8KKFTMQ6qL3it0WRxlS2jmw/UAgQb09eSh2CjFtgntN69aa75aQacVR4QQxE4LK93GSHckJB2PES9Zx80m5qWp9/qoszt0uhtnr3UYNwNpf82Gl2PNmlsPspHNPnysm3D226BQPo9gFe1VzQ22Y0inR4qThIDGOJ9b1w8s4ZgnO8tDXMdA/D
+10.101.16.17 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBRi/pTpOuTd9tvURYjAMOF3ydrHZAVLuo8tN0sG2/uR
+52.72.253.35 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBelX85cGnwt9C79yK8seFI4cgIOg29DKbSnPH3eDXSc
+52.72.253.35 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjBf6maS29HfDMmDHAR9RHnk4+4mCigmilfdOp5q8jXTbeyjPlNRJCAZrL9avDzEZ5CFWD5V0Nf2Wz2KEidlSvUbEhnmaMo3jz5iC1AaTGON9+a08xHNkAJvFDGNv/D48IzZL4UBTijKeK4iu68rrhhZV87DN9pyybwMgHwUwstBv2r1OJrKFbQYvOhi/b77BQPtb90U9o02Z90pgtr9b1t8pwtX5M2PB7Wawygk3Eoj/SwdH1SAGbQee6MlvNJswYdrB7AyWDVq+TnTe+efbboz2Q1PQF0+L4Fbhnv4XXSsxCc/CJcarQdKbj9Mv6b2OWDRVeqJn/tjM20jSCuZ8T
+52.72.253.35 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAJURK0nly+H5seA6K89oNMGQ6O+fW+uZuo48w6i6FkqGXQQQI1QtPFyeOzoUd/X24Jijt02pjm/VPqd0ujlHi0=
+10.101.96.20 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/u4JKx0PToryEszVfu9LQKDkvgtirAfCAEI+rVT88sB/4UTp9HWEK5MB8tQw4Z1T/AVQcpK+AHEiehwRssPfSR0eC5XUpyM25S/69cEdiNn8dOzgIdaGAY8AoxjK52LGt0zFglfV5BrsNJelEVJ8wiCdYE2BPMbsYNVGh3rXFiGMMg10X106R+BwtaBmbfTEOyyFo5gc1/8mJntQtuqvgjx61FqExxAHXlPr08BQMIcbb7PSQurzM5pTdDpbdf6LWhlKBl3CDD2buxBteCQ8szDT7fKoIijlyo16OPjZVed4TnlB1r1c3W8BqQ1oICCnwDibbPl31Y7lSWxH6It0D
+10.101.96.20 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFLc/5Djq9NWXPX5hBmrkuBDJaQDjg2fsGXobVKimyap
+51.15.185.142 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChnMWakuxQLWnEG2OpjdyG/o6ms+UnGVWyT1WcS7B3dc1tET8ACe1uJD7bye+prXsMlaWZa45nRDr35mYVhJrce6rG9CE2gvNgW9zHHx1VHZmi3WKkx1/TMgpS5wivrW0DB87ow7gKIavWX5olmJl/TQ57WAQezNOG7FMkNFcjtenUmyL1flGKSZTxnRiqMgLB6YRrno8XPtRXAjBbAq4uoHHyghfqvO6+TbVNZStvlgormP+5oCMjmywgX7yTAWARjGH6Ey+lebnaPrXtBKpfssdlH1VwbpHxaaMl5m84Yfav9DpDmqd5e6B4aeltBZTTfrrlj2gPul78xJCrLair
+51.15.185.142 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHSlbS3Ey8lAFb0kcvTGFeGyDUxZmbQV1wTahIO911jM
+62.210.248.69 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcRhK2zOPduN6HtudDfzQvqZV9UpksetisEiA5LVazWiRSnZb2sMv5mtjhcj3vy8ryf3YqLboTk0ykT8UlNLGSJYNzJ+08r92f95UnqOrcIWx0mM7q5I4PtOZ4LUJ4RUGbLtwICwvcXiS/2dYz7KNNysNylUDCalFAxAMMBZ7otIjTVBYjfX0CxsezMLOpuutezwuq+1I+uVsHNCHCYeV6AqjGasxlWDjbyZAiWHzWaNTX/9IHAh3obYufNqFO8Wol2uDYIGZRfZZkMHjeIlD4IN1mXpO2tzez7/u6kkf9wCvMqxJo0pvvnf7B9mueXDmncE1REnguATZlnWoGC/r1
+62.210.248.69 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINOV6sbZJ7WJbKEfVKGcxYFkiBwyWsvp48yMN+ZvnLY4
+62.210.249.170 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQaFhjknEJdmY3QXB9vplhSwAlZEz36Z3GCwgCFk/nazrT6ykgd8oJYinwlZrkVvxwb4pylE2kmwrLhQdF3UC6jEgmtN/rFBJ45KZYS+1IggfX2/FCyzBijAxOrNaqRx3ZCCidpcDFGU1sqOU4DxKjn3oQhfkGIr+hQQPAMfECj0+5jqO/Tkd7H6S9Q6il2KsNBXHY2d6CX7/079FWNDZ0B+pku3k4aXtNfyE1jPCd43EIGnrmpnebuqUXoyNvshAOGYZR3BIFupqE2v/2ogMED/xnvXRjcnH8bVWydVCccBdWrqxfod1g2s5jcK4xENqr7PrfAQWQ3JmcU3YOx5FR
+62.210.249.170 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAtZr78GB1MQO9+o2XaimO52ikDg0xxN0rAnTxpaXWp9
+[147.75.106.138]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/lj1wVi9nXduZAoXCBmaAN7ri7m0/qoRKxy3zcNAxiYNvho5n6bqDTEQrCWCYoVA37/cZqxw2bmERUzF1ntMNyFQRR6uUSdrMqo9oMRKzR0NWUMfgsb1VzVcTy1ovqXLQLpxlr+GEm4Vssez49VIuF9MQ9zlhExWFPmIbYNnteee1oy30hDUHugXQcjW7vt2ITbYo1z+x801zzpNgUwoc8smTaemPX9Ct0OrbMBrdSTHXPtouSyeujy2xLJkYQF8VZPpCTqHeiq8ZWeh+DZsWrJN86rJGuCn4L+9zJaif1NeJFtN9Nj6R6n0qqnxpwXrNKViT3Tl9g7Je46W6M6Y7
+[147.75.106.138]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBE7kxLXy6Abs0OVXpFyNxrG60SOXWLN0kbKdlnvhDb81c7qmUqORlgTSgWzH7nGLfnWG5r82S6g74hu+YJteJIc=
+[147.75.106.138]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHuwvFXRDZWkDUAtz6VP5KQSzYViviG8bgVSuazXjy2W
+[213.146.141.115]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIdKFtHAASG6U84TBG07xPD6vHrcb/uFz+iWLHiDOeKhyaKnFkAUvciHIHMcOzHeQ2gQK/uLQZmA8m5p/O7rRK8=
+[213.146.141.115]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINLNHmK7p077JsarVxLpNpITrVkbpNqQvdJAPGmy7Nh5
+[213.146.141.115]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCbBqTByOwC8TJD0Ymv3gnWfS43QaflmQALUX/mJyrJpk4RV17YQNbgmOD2I8YfoEdTwr4j5ZYZ21pGxRBwt7U4LBhd6POLbOPaDI/P2KYvamRV5Gln1/LIqjpzV82ul9m/qgWUd1UQB1itqGw0XdphdAyfcMwe2NIVCsbQZSV+VlCeH6Nh3Lqc1O3RqAidWh0vQ6Xz0Y7FfVMS9a5WbLUzRNDkwlTQahZKTeH6KUjQECIOIZ8z3hlKZ3MljQCNc/zeGeL8IguL/9VO2awZYvLOwWA4XOW4J5SD4qobciVw+Gt39KtnOrvO3301l8I/e8rX1u0xDeNA6/uC9olam6wf
+[147.75.199.202]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIKUpQTWLrZ5EOqfVw4+HGhcxqz2f/KXLM9Pz7dwIDC5
+[147.75.199.202]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD36Ym3DY0ZLH+D3GYETeb49yRlphC2+PRvhTBLSHyZ9uiViW1Jdxew3LdgFOysvAhzPA5jTM3BSSyK+cW3yqBv0YqSkNzUKjK/8OICp6bSrudbi+axYlTqDz3C17y5NcYmJGmG+ImObucv2d/dIdQn23h7oHWKMaVY+O+nKf0n0XhZ9J3cyUwrzb3f3NShFooOhzrhO136E3fs6D3Z7MczUNA5nl6hqncstVA30X1ZAw+mbo0nVPk9B4AY0Ytv9XO+CrPwx8ysEAFtsU3HF8MCZ27/vvmoBAjQuGQwUr8/SFt4cJVs5zSIX+gZV2fi3p0e8JnZcqDlupbtIJCDbRo5
+[147.75.199.202]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMxDer/ySnyQykp9hdGVm6ra3RfY/ABHt3VNzbpLNVDqZdGIcUZz81UHiPUBksMeUd/pE2etS5z6EIOXfy2oMqI=
+[147.75.195.254]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMxDer/ySnyQykp9hdGVm6ra3RfY/ABHt3VNzbpLNVDqZdGIcUZz81UHiPUBksMeUd/pE2etS5z6EIOXfy2oMqI=
+[147.75.195.254]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD36Ym3DY0ZLH+D3GYETeb49yRlphC2+PRvhTBLSHyZ9uiViW1Jdxew3LdgFOysvAhzPA5jTM3BSSyK+cW3yqBv0YqSkNzUKjK/8OICp6bSrudbi+axYlTqDz3C17y5NcYmJGmG+ImObucv2d/dIdQn23h7oHWKMaVY+O+nKf0n0XhZ9J3cyUwrzb3f3NShFooOhzrhO136E3fs6D3Z7MczUNA5nl6hqncstVA30X1ZAw+mbo0nVPk9B4AY0Ytv9XO+CrPwx8ysEAFtsU3HF8MCZ27/vvmoBAjQuGQwUr8/SFt4cJVs5zSIX+gZV2fi3p0e8JnZcqDlupbtIJCDbRo5
+[147.75.195.254]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIKUpQTWLrZ5EOqfVw4+HGhcxqz2f/KXLM9Pz7dwIDC5
+[192.168.16.41]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPGyoqgme8iI7a8j77FlL8wCyzZ/wqBCecmwES1997m77e9PSEJ5r7UO8UccGawA/rWdA/JW86FcMzAN4L2ZnVC3Vyd/O/7vtydzyrYlGuMuSD61HV1sbNFz5pY7m5XUzAb5GcvrdCQXjzbG55fuqRm30xgxtiJh9dj7iZEa7jVMwQ732AUC7ldlh0LkbUTez03IN680fx4035X60C4wuKO90kaItnFfEVWM9nqG2lvralaG3aVYZb+Vtw3CaOmxbN1CBrxvTpKRdzUR2mN+UhMQAIis/RlQDFpEebIWqtM+Y5sWwpxIbBxoYpY8xLrmhKzEcPGNR8yojHefqHZ3K7
+[192.168.16.41]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOejRvibbP2T01v+R+pHjvuj58m55Z6UP+3knTXotZU4ZfZbOl8MqK9bBlb1BnMBYvWO2WNtS9pDIbKNTakNuoE=
+[192.168.16.41]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMklfL1C0yLncsZBRxovZOXxL0+0dibY7x7/XXa5Kt1Y
+[192.168.16.42]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJVp2hvJ69X3T95NiQ/ugs2SwTRlDKQ3OaeuoiwWZRWrM2o1GPCxMmn+mz7vSMDpurEc9SxEQIX1liMr1xMO1M84bvLADyG6DfokW8ZZss9HjX1cM/SQkqbE5U8zJVnFiMPhcEzA3EPU/jvjSV48UdH1s52ZEEQTKOkEwEO1o9UlW/Q+8zcZDfCre2BKv/zz+0lJbk7dFYzHL135mXzxctRA6sh8ihI/pXG+EdcNgQyTYeA/MDbuwM3t56t9Anif1C7QvwCcRvCIYhjXG12HKv7xXS3465evYf5RAsplWVwojEprWOF9kJ7SiSCRSbD0vbBUhYAebszfT/PuPjezM5
+[192.168.16.42]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDjF/Wkt6U3SpsiyTo9IHjELXbdI1vdofxhAs7dSqCfvoPS6vtMiz9USJz4mXCJvclzmyyFiLM0RYXTTfVDLO6k=
+[192.168.16.42]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFP7RZZpZqwZypb2QWunsiK6lQ2xjI5AOAQGIIXhfwW1
+[147.75.77.198]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIKUpQTWLrZ5EOqfVw4+HGhcxqz2f/KXLM9Pz7dwIDC5
+[147.75.77.198]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD36Ym3DY0ZLH+D3GYETeb49yRlphC2+PRvhTBLSHyZ9uiViW1Jdxew3LdgFOysvAhzPA5jTM3BSSyK+cW3yqBv0YqSkNzUKjK/8OICp6bSrudbi+axYlTqDz3C17y5NcYmJGmG+ImObucv2d/dIdQn23h7oHWKMaVY+O+nKf0n0XhZ9J3cyUwrzb3f3NShFooOhzrhO136E3fs6D3Z7MczUNA5nl6hqncstVA30X1ZAw+mbo0nVPk9B4AY0Ytv9XO+CrPwx8ysEAFtsU3HF8MCZ27/vvmoBAjQuGQwUr8/SFt4cJVs5zSIX+gZV2fi3p0e8JnZcqDlupbtIJCDbRo5
+[147.75.77.198]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMxDer/ySnyQykp9hdGVm6ra3RfY/ABHt3VNzbpLNVDqZdGIcUZz81UHiPUBksMeUd/pE2etS5z6EIOXfy2oMqI=
+build-01.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAb24Q3dS9P+vRdvehkUwdevHS/kAMoM7ct4V9NCyr1sdqxrgrYv2A27WHUgKM+uVl0prEQWfpVSH7vZsymb9+E=
+build-01.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdxlTGRQxR8QHKnwbUkVXVO6eCTSxBx9f1wEtZMZ0Zy3ucNAavknZbOx0lVADsU2HC6kEJgxK+1vRO+58KXyPP83fhfq7Eg1Dns4tlRxG9XRs3Ll3ezb+3MfFF4mFGdqMOIGqZHUJS43znQykAjO0Gf7wqjRHJQqeW81I9UGtM22STNX572+XbUYkid48azSFVBPhrHPtqsZoJIAHV7hLXBzqqub74GKCjGQz3oWzs+QGE3Py/zigbi/9uIgSsFp/qwBQI8JqzXaoPswCz8poO14+NZNofZdUMeaSHlxq1JN7CArbbreaDvBQtUROZ1M6UqlRIAH1w2Ooa8nZAg1d3
+build-02.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdCgG3ZVJxkpg02rkI6B9KD/7dYKxUufkSPHdDWLEsaHTDcD5Lszw6iferNws9+OybFNz49T4qsoVMN/dtkhIZoQ3/xcbZYwoGa6ZUEKIJoGntRBmHWWot520U/upvqgQ/5ZynfqdaUiXczY1F2EC+iuXBLZIdouosllKN0p9b1SpW08UaAKRH1SsnypYmtiX+ZaP/5f/53AqttYJ5idXL/VC1JFslASRr7AClVaRPIpczET8YHqhTQ5DzbK3G0jz4VmuFa7Wh+lIwDLNP3jcLzQye1W7O4HWePQ9cgNkztgK8z4p+RwXAg0jv2VNCZ59MpKJV+ZctEReNy+/ba2EZ
+build-02.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI5dFhNpP/ZvIgRcjnG+emifCN63lbM5oJwGXNzET71CT3U0U7/86WPC1sU601joUB/M0pTl5kvz9J1AmaVOMiE=
+build-03.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmrsGZpzta2DrbwjXzQfLZPgXWn9W9CWta3n8GufF+qb2k3uFAHKYE/RR4F98Zh8emShZp5P8ArUXy93pre8wLeX9A0E5byfJj62qyCVljlLGPRIxQExM3U8B4xOcomdnUA5lE/qrZnL6oI7Mz9Z7lRF/epmjoEBRNsRR2mA79+NCQBzRlaWHQVSqE2ccTMwZKDOx8i0WNB9640ZAI3+lrmTSodUVjqOg6OR+yeNwBfXte2UC/e+t1yIM96mfqy1E2qIbm0ovFhaYj+PUNwFKA3TuvS3umqhnADdd2z7VAoIrFJ3ubVwgTvEyMAEqOZLGr+ZfN691V/Zxb9gMtPyYl
+build-03.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAtgUDdiJyFOLQ0JDf51h/mpMWZ1flrbUNMa9SJqodCwjdfidqDqEMlq5udajt3FB6md2a38mBE/xqIjaQ5Z0Is=
+build-04.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmmFXV9jmitCLEUwnQsaeaV5e8vKGA73DntDtHF8BrDojitIdovfJpEoAP1+oDhAbCaeLP9hw6ss3jUzhFRHBWpvWwnhUcQhoCxhJ2yYkJ1o8Kw+2Yo20AsXkiBWCm++I0NVPLQmJ1/c9OoSHLokDlARpb/BsVjz2v95VQs0rcnXApfqrSLZVhIruoz8YKqvCfnIUW9UEugC66MLbaNFd8E8jgjbl05PEZSxTIZhnyWesXZoUBc4vX1tRKj2Fcbx2fobnTA4O14rMp89NFF0yE/6YNwYSltZ9Qv4bsKIeyfy6+V9KE5HS76+ACmQn4VdrAscqaQvuvT2zJlZDybF/L
+build-04.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIfgFwDUZq/FvLBcJhqM0CxfMEbKLbiyySGJwDwiEH8vLv+0nc0k/HLYug0uJaNUVe5ucPL4q+/lgzsQj07hU4k=
+build-05.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKvUlVxP5mjde+gBU5RqKcUaYgQ1RRaMLijIP/befUQJeA/j/z/crpgC4iMIxkgcYQJSmwX1soxdFHTnRt6B6BI=
+build-05.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzC7z0gMeuVXN+A7K2btHtfEPb9fAxx/6lssuMX4xrS93mAs3hSNJK5QsSQHfC82B6Wa9cxZ95oZDtCa7VEcLp1YbonN1bndkhFgDZN6oVjJPBv3BZCXflJV9B5zN7ur5i2LHfK+wUWx8z6DOqQXfk45k+xM7XAHkIEC3bwW8pRRDV8ZN8T0511WcaoZHaLBdFS61YKghcfyzMkSq05CITn1lRjAv2Kwi5kBUbX50s+y0ottzSL/9LClLL64Ri/RqaYnBYoLiq+L6Cm7iki77D2EQ67YAtXUVd/HAvvnVDrPXMs/2+wSydTI664jiyCx44nqiPICLifQdAuFqgdDiZ
+build-06.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJwFS379jvHVy5izz6TSkYu2W7Xvbay+5FEXsJ62zgn64ULJAO+IKHSLYzrWtc7NM887VyhhUhOFzqFuZ+q19uM=
+build-06.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7A705+JPfhJh2KPan9XtUyaP+bU7phjCUgm+CV560EVK7yge58Vv3jv4t9EI2cmCPz0ndrkdLv5a1SHjcWz+ivDMOSD/slqMX+SOkT85LBgCkicboygVBiKD62Otp3Ss2aguGaOdp4uX2agbjPPi+Mll6islpnxvxQFBRRDwrhzBJITe7f2AptyvVqsKSA7FQHr3uG2YQ6vf+JotQnLipskmC/zNp6fQxSbOkHOkWB0OIYadF3vv0o2qZYPCZ3KTU3eg1vd6fxcr58tYGe7dDHrjeccBygoHirs29QXcrW0hV1dXaM23FmuEDbHJGIPajH88XwHgcoRq/l9XT4OCl
+build-07.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCj/Z3JppTOFs3PTF76klTkqmZJn1Q3CeWQcqoijzTzIufpwX5KjDWIh07JJrptC/hRedVvp3tEg6Mgsk7OsNMaf7db4CfQtNG+1h5ReW8trvjxyt19T6EgFPjYe5rhdg5ai//0zYG2r43LuJg06J9omrRHS4Spw0g23goqPcyGU67NZcujvqHDsNhpEU85750ZfyBGhf8kBPkwMWrbTRqT02TMC29/KuCk0C8EDKqteBjqokMM/cdU5PDGwsDT4JsMdubCo6hio97+d7BgcAuMs1OK1/O/2CvNcoaJoVDGFEjdcKFkEbxHWdwNZmAClwzDb8xMLCCGda7xwmH9iVTb
+build-07.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGwjKB+CysRLOxsfiPEG2ccpiMxCUSLR5M594isptu4yLbPG6sX16en9mxnbuiHZU3w9B8ch6pl8ifyqdUpgdqc=
+build-08.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMn5t7qK4RCwcvbRQM91jodpqwW4m3XRZi2S7P2pXJpRnbxPjyrj/Hnv5Lt+DYnwfiqEGQ8oD8zP1BRvGlAuY4YTQ6ShbKoeYcJz4c9JwZKXzSj0nqnTetkRz8OKw+/MPNyh2g+eEFnUR3FyQicsdZbUQNTIwEkpMjpJHYaqXXgyXb/t66Htgd41rrx5eutsoMlveCf9nkZ1Z9gOfV+Ts9MP/GEDetmYCEkjO1gExl1QCJR1nuT1+2sUfORP8919NRtpNRlnuhQAGI2N2pdSlmJABLt98xoJ07dMeOdgxEUOsYpEx5a4wDWO3EFlyWwS9jGiQNLVMIYxDGYrJ+c+Ur
+build-08.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMshWdcFkL5cxxrqBNLPztpYivObCA7/mNCz8JG0vAqJ7V30onU1ppNJkp6xS/jJKU+l5rGo/fqUnBgaTGgTbrY=
+[build-01.tcwglab]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAb24Q3dS9P+vRdvehkUwdevHS/kAMoM7ct4V9NCyr1sdqxrgrYv2A27WHUgKM+uVl0prEQWfpVSH7vZsymb9+E=
+[build-01.tcwglab]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdxlTGRQxR8QHKnwbUkVXVO6eCTSxBx9f1wEtZMZ0Zy3ucNAavknZbOx0lVADsU2HC6kEJgxK+1vRO+58KXyPP83fhfq7Eg1Dns4tlRxG9XRs3Ll3ezb+3MfFF4mFGdqMOIGqZHUJS43znQykAjO0Gf7wqjRHJQqeW81I9UGtM22STNX572+XbUYkid48azSFVBPhrHPtqsZoJIAHV7hLXBzqqub74GKCjGQz3oWzs+QGE3Py/zigbi/9uIgSsFp/qwBQI8JqzXaoPswCz8poO14+NZNofZdUMeaSHlxq1JN7CArbbreaDvBQtUROZ1M6UqlRIAH1w2Ooa8nZAg1d3
+[build-02.tcwglab]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdCgG3ZVJxkpg02rkI6B9KD/7dYKxUufkSPHdDWLEsaHTDcD5Lszw6iferNws9+OybFNz49T4qsoVMN/dtkhIZoQ3/xcbZYwoGa6ZUEKIJoGntRBmHWWot520U/upvqgQ/5ZynfqdaUiXczY1F2EC+iuXBLZIdouosllKN0p9b1SpW08UaAKRH1SsnypYmtiX+ZaP/5f/53AqttYJ5idXL/VC1JFslASRr7AClVaRPIpczET8YHqhTQ5DzbK3G0jz4VmuFa7Wh+lIwDLNP3jcLzQye1W7O4HWePQ9cgNkztgK8z4p+RwXAg0jv2VNCZ59MpKJV+ZctEReNy+/ba2EZ
+[build-02.tcwglab]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI5dFhNpP/ZvIgRcjnG+emifCN63lbM5oJwGXNzET71CT3U0U7/86WPC1sU601joUB/M0pTl5kvz9J1AmaVOMiE=
+[build-03.tcwglab]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmrsGZpzta2DrbwjXzQfLZPgXWn9W9CWta3n8GufF+qb2k3uFAHKYE/RR4F98Zh8emShZp5P8ArUXy93pre8wLeX9A0E5byfJj62qyCVljlLGPRIxQExM3U8B4xOcomdnUA5lE/qrZnL6oI7Mz9Z7lRF/epmjoEBRNsRR2mA79+NCQBzRlaWHQVSqE2ccTMwZKDOx8i0WNB9640ZAI3+lrmTSodUVjqOg6OR+yeNwBfXte2UC/e+t1yIM96mfqy1E2qIbm0ovFhaYj+PUNwFKA3TuvS3umqhnADdd2z7VAoIrFJ3ubVwgTvEyMAEqOZLGr+ZfN691V/Zxb9gMtPyYl
+[build-03.tcwglab]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAtgUDdiJyFOLQ0JDf51h/mpMWZ1flrbUNMa9SJqodCwjdfidqDqEMlq5udajt3FB6md2a38mBE/xqIjaQ5Z0Is=
+[build-04.tcwglab]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmmFXV9jmitCLEUwnQsaeaV5e8vKGA73DntDtHF8BrDojitIdovfJpEoAP1+oDhAbCaeLP9hw6ss3jUzhFRHBWpvWwnhUcQhoCxhJ2yYkJ1o8Kw+2Yo20AsXkiBWCm++I0NVPLQmJ1/c9OoSHLokDlARpb/BsVjz2v95VQs0rcnXApfqrSLZVhIruoz8YKqvCfnIUW9UEugC66MLbaNFd8E8jgjbl05PEZSxTIZhnyWesXZoUBc4vX1tRKj2Fcbx2fobnTA4O14rMp89NFF0yE/6YNwYSltZ9Qv4bsKIeyfy6+V9KE5HS76+ACmQn4VdrAscqaQvuvT2zJlZDybF/L
+[build-04.tcwglab]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIfgFwDUZq/FvLBcJhqM0CxfMEbKLbiyySGJwDwiEH8vLv+0nc0k/HLYug0uJaNUVe5ucPL4q+/lgzsQj07hU4k=
+[build-05.tcwglab]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKvUlVxP5mjde+gBU5RqKcUaYgQ1RRaMLijIP/befUQJeA/j/z/crpgC4iMIxkgcYQJSmwX1soxdFHTnRt6B6BI=
+[build-05.tcwglab]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzC7z0gMeuVXN+A7K2btHtfEPb9fAxx/6lssuMX4xrS93mAs3hSNJK5QsSQHfC82B6Wa9cxZ95oZDtCa7VEcLp1YbonN1bndkhFgDZN6oVjJPBv3BZCXflJV9B5zN7ur5i2LHfK+wUWx8z6DOqQXfk45k+xM7XAHkIEC3bwW8pRRDV8ZN8T0511WcaoZHaLBdFS61YKghcfyzMkSq05CITn1lRjAv2Kwi5kBUbX50s+y0ottzSL/9LClLL64Ri/RqaYnBYoLiq+L6Cm7iki77D2EQ67YAtXUVd/HAvvnVDrPXMs/2+wSydTI664jiyCx44nqiPICLifQdAuFqgdDiZ
+[build-06.tcwglab]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJwFS379jvHVy5izz6TSkYu2W7Xvbay+5FEXsJ62zgn64ULJAO+IKHSLYzrWtc7NM887VyhhUhOFzqFuZ+q19uM=
+[build-06.tcwglab]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7A705+JPfhJh2KPan9XtUyaP+bU7phjCUgm+CV560EVK7yge58Vv3jv4t9EI2cmCPz0ndrkdLv5a1SHjcWz+ivDMOSD/slqMX+SOkT85LBgCkicboygVBiKD62Otp3Ss2aguGaOdp4uX2agbjPPi+Mll6islpnxvxQFBRRDwrhzBJITe7f2AptyvVqsKSA7FQHr3uG2YQ6vf+JotQnLipskmC/zNp6fQxSbOkHOkWB0OIYadF3vv0o2qZYPCZ3KTU3eg1vd6fxcr58tYGe7dDHrjeccBygoHirs29QXcrW0hV1dXaM23FmuEDbHJGIPajH88XwHgcoRq/l9XT4OCl
+[build-07.tcwglab]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCj/Z3JppTOFs3PTF76klTkqmZJn1Q3CeWQcqoijzTzIufpwX5KjDWIh07JJrptC/hRedVvp3tEg6Mgsk7OsNMaf7db4CfQtNG+1h5ReW8trvjxyt19T6EgFPjYe5rhdg5ai//0zYG2r43LuJg06J9omrRHS4Spw0g23goqPcyGU67NZcujvqHDsNhpEU85750ZfyBGhf8kBPkwMWrbTRqT02TMC29/KuCk0C8EDKqteBjqokMM/cdU5PDGwsDT4JsMdubCo6hio97+d7BgcAuMs1OK1/O/2CvNcoaJoVDGFEjdcKFkEbxHWdwNZmAClwzDb8xMLCCGda7xwmH9iVTb
+[build-07.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGwjKB+CysRLOxsfiPEG2ccpiMxCUSLR5M594isptu4yLbPG6sX16en9mxnbuiHZU3w9B8ch6pl8ifyqdUpgdqc=
+[build-08.tcwglab]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMn5t7qK4RCwcvbRQM91jodpqwW4m3XRZi2S7P2pXJpRnbxPjyrj/Hnv5Lt+DYnwfiqEGQ8oD8zP1BRvGlAuY4YTQ6ShbKoeYcJz4c9JwZKXzSj0nqnTetkRz8OKw+/MPNyh2g+eEFnUR3FyQicsdZbUQNTIwEkpMjpJHYaqXXgyXb/t66Htgd41rrx5eutsoMlveCf9nkZ1Z9gOfV+Ts9MP/GEDetmYCEkjO1gExl1QCJR1nuT1+2sUfORP8919NRtpNRlnuhQAGI2N2pdSlmJABLt98xoJ07dMeOdgxEUOsYpEx5a4wDWO3EFlyWwS9jGiQNLVMIYxDGYrJ+c+Ur
+[build-08.tcwglab]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMshWdcFkL5cxxrqBNLPztpYivObCA7/mNCz8JG0vAqJ7V30onU1ppNJkp6xS/jJKU+l5rGo/fqUnBgaTGgTbrY=
+[build-01.tcwglab]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEn+YavT8hIuTeOAxUN2VbhrIBkJXgrcjeJmlFiEDih4
+[build-02.tcwglab]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF0TpdKatC1Qx0kyOFk9ONBFtljdv6ruVljaaIwjET0o
+[build-03.tcwglab]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB32uzRwIGibeELrc9iZyQ5kFWwH3A3X2OLj/qzdXgHI
+[build-04.tcwglab]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIcFc6kR5y8eoMjHVsZx6ohjfS3Tw4MCn6RW8ZzPsGnf
+[build-05.tcwglab]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAc5HSEPCUARVxDFWeUDuyCcRiP+OUxN2OPFcXQwp+P7
+[build-06.tcwglab]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEGay5D6Nhi3OvwUyn9cPB3rlMfom3eJh6AsXsJsUCIs
+[build-07.tcwglab]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEyFpqUo5NTDRneU3zw/P+RsvIPR5ywmdzVRyHfpVTvS
+[build-08.tcwglab]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIASpxvETGaCAA6huKIeRIqdDgjZO/og/EWwP0Lu8iYBG
+[192.168.16.13]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFDDgZJMaXjfDNYEbgpMgcIfTTrZEuEpSdPwGae22Frm
+[192.168.16.13]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhWgNWUgUGPhVsN+glyHEmhp+8/qgRUXEPY+Szk/FYq9y3xpl/agu440Oz666phqBdxYygTjINhz8tuBE8Fud7opY5xHyjfWLU4qUwtbUn/h2ew/mpuT+LJgdvVIQB1pBHDiUnuZs1OIFZ3Xr3ZgFBV5+KltwLAkf5AiizBYf7PM+Vv+j1mZMxuEH2UR5jAMoR1QkssuNJctl40xY8NRY2PEbqPDadIrfxyBrw/Ib4yH8GCo8ckZAajwutGSt7FUI8RzMcsdnACcOr9F/wOEYp3Cpalw/zcpeE9/CP3G4hjhipOdPnb2dukRUEtqM47Osm4g+xCnPW+DKyiYhGx9XX
+[192.168.16.13]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLdVqpLvOFX8J0skv13obeTp6oLja2zEX7z3zEcK0r+QkuHh0z9VSz6O5/SYhXDsEe++48i0QJEJstlP6HzIwSE=
+[192.168.16.14]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyAwCa7A6n8lfpCr6Ozlx8KhM8MXHkNfNeBex1XVs0o6P6brt9oQZhLGfDHVv5jKSM+BdcfRY8ZXiw0Ee+zjpM260M0rZye3cb3xWg91FJFZKW9uXnGXLD7oURgw5jOBreR8lJn1GenQG7AoO339bIiEPB3TFRMgBUl/1kEyncP8THSSQGJDguB0bye7VBi8GQrfW3GmlNa0Z4BR9getVzHZYFzjrQh/+sPxzJ2Wywl2k8UMvD9TktYb6iKpTnlrj5eLE/oJ93ztEZULrRieGiVhQJFK9h5oFn+o7G2kHJ2bkjU1a6JKPb+dtOWos2olbC+pNNccVQPXwoHqskKJz9
+[192.168.16.14]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEBpnoqRDdCnOguYkJpI8LW5aSdQAoCnSrPP8oMAYGGmXiN9xQfFdzsJTlwcIsOspPeHt+pYSy32vCkFEpbql3Y=
+[192.168.16.14]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPPsy7DYUgKFJEuawMD9PLCXmKFgLbP8UiERzCIKn4CV
+dev-01.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDB5hX27FCyObltKaqNkakrGyyqJlZo3U5QjONl9jnNRiWI3zoiSBsKvlzHXZoUjSjP3KkXXnhSD9RZk3rN2PQq0uTI8+WA/mkTyWOVBclqJ1dCXvg/W1tjkTMTpJaCfRZ5d+xtsITYFF0sEBsfCknUXRjC/aGMLxaZ0pL7DsnbBGPnq5nUi6YZLA09AhRi1PAhrRHNwdyVnpIpLWGqxtSGMDzfbLH2Pul7CLyEQwA4v0h4nDzHr/qOVO/Flw0lJOjTHeSLDsBrixMi00QxM8ASIbupbqObyWM1rcGtp79k7LC4b+MMoWp3Orh6/3avB4j3Y1vyzm1ZYsF4kXzwEg7r
+dev-01.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJ7T0D1vTUF4moEmEhrl5LChBCuK9UoYxlG+EzxYkSfvG2c1YWVrI21/xU4xC6bV6faIb30uKGQJxkeiVA1J2TA=
+dev-02.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDd8sWvSwHBxH08oQ4dUDGmN0tRhoaS1LaktefvXyqXzdqvzHIbMsFKVeJQ1Tm8aHBOLt+l7kD1CJfrtO6AqUR/d201FeTzd35WaTVKsY3yhtdSE68AsDvI5B9eA8GHNgiaTzam1xFgohlDfhe+BmeTirRk7ZBf4sXlaPhCgV+FHpsG1w7+2iUo+hj1LV9yUYRpBB9uKwwt5vzQ5+h8jNFsjX/4FZhifihJbC6VKaCuB3AR4cIxJr/t+R/Uw+pwSxaW9NWRN3GYg+dwDRAx3ThPmZtblJGe+DfgOOqdWLFYjLBWiw7dehyAjv9Qo8dyhiKnaOeazVzEwgFNCG658+H
+dev-02.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCwQ+UkhPJyTucLORiC5zlFpQkk/dgKKeKS18vI1L+Z+iPmoZa0WWKO1HFrgJoDe0Lu0SB8jceigD6snw8QJXSc=
+188.40.92.79 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGBCd+Aq1sTgZ13eVA7+a9Jko2mKXlfF+H8NULUkls0/gv1XooPh+Vl+EqFsYzX73Ujaw5qxRx3Re6qbRplPG2kVRdeO/5aE5nUiUbH0k6nKe4Y69o2HHhjnSMEHFcepRj3hWw/KB/yk3/2qq2vku91nvtEufiGMBSUJowJ9H+LHlAPe/NYoKGgyLkmDi9iO+ZvcR0ARPpxVtzVBNtlC8qmvzFcoEjl4u4F3ugwA4UI0YfrmPMps+cdBTQ5YyEPWPP+MXPKVcaax86Ij9PIs8hDXj4eq/N1zMmNtyhtYrq8myIleCewLIsjMVbfi5z3KXoKjpQGf1AHkWhRHOxtoE7
+188.40.92.79 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHbI6jZyisKIndgxSJnYWvqqKPAo8BHYNlXIYv1kzx2d
+188.40.49.144 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDl4tnxJjRId0+hG2wwOBvveC4r+eFar0pQ7X/QDi0GiFPU0WUPA6ehLSP1/hlO3ms64xBQ8DcV8A8UuH+FdnK193jmKdbkIixjCEf9CDRoepENutwEy/u5bkw1pnxdvY7SqFsV1avRNMFovmx69Ta1hR1mypixqklNbBL2auRoa5UjBekNfIMtkxQ/4EYJjOOp54mNNS/1Vaoent3ApycGRHwDLFvIG/eFN2yMz6niOe5EhGzzkkUqPMDE8Dxaa6Yq87KnoPDMJAA8eL5A9CNWKkfVuw/YMJ1qTyDz4646FXMts7X5rAPvgeSv21xe4WXE9+ZGLT3o6cch4sVE6MHH
+188.40.49.144 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILZYvBVxHNDnM1EA3/65pQUXyQyHISNShUZj+YqgNKHh
+148.251.184.94 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMPL0zyixPXjliTakc2jvwI2f1oF/qhQiMDV/D3aMR8/x8z/7xjqNjaVipyB4Ht5Xnp7jIOT5qfQBvEIgoRDgZKhFcGLN/W7D4cmXHhHpyRUQE9xofoNfNVGYb0bdayQcUtk9e3RUsU/VzaBQHNbMVZ1JQucbe7gb71L0CaVJ2QIsgmQ8AARLr1AKjon6YCl+nnEs1ddfWLE4xGMRVTmZZiGftYTSGqkJze2apti7haoLj2tny4aoaEZitV+edDXT8BFxG+4RqyNkyW/v/d8sOJMc6ebPvP2PDRtqkR0Px/xtDKSz4TDZmEBcNxY++RR3a8k/Fk+sdckNbGwOG2jVd
+148.251.184.94 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINt8v5z84W2MDRm/ts9A+WhbCa9/K3I3441gVL/B14K3
+138.201.52.83 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqC7GJ4VBs6yxxxPdVnP1R6KjdRHS91JNZklIjq0mhKBMATDZ/NUz3ile1mD7Ue0fIPZ3+72QyIc79Ksk7XfLnW/abxMszE4rsHielZV+B/s69HZaE//y+/g/lZo25NwpFGrmtrCPIfPtZkIMEYbKYbo1SoX14PCNkDYLsLK0hqAe1E5IPMSZQLRtfYwSHs7U+caBYJ12DeY6SnLyahieW8kY2MQwgQvl4zciuN+9skTl77AXpfoy4m7AtfQrEgmfw7SEp7pRTQ6wVsiuWRF69VjcoT8EHjGHs2jJmKJtjQoTp3+ud6pI2R9h3m0EEWd6ope8cKL1IjUzBzryixroH
+138.201.52.83 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIzME4zRMRgIPXdJgThX20hss4GfwuGDyTzImVti6jrQ
+88.99.28.12 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYHT13COti2nk7KcB77A8Ra4wi4FDaTcWBuptBFNBU6hZ4nx4NlNzQt+ABoB9Ifm6IOOjoTmjR8jdhLOAjYBfMKpugbz3BdJzwQbCWl73cHUA9398t+iLPZplEdHpJ/aaBux4Y7FJspCdz63CoMyItrOvEEWV2AU37AqDCme5AFhPUroXSrR0yj8tQgWrrZV2ER5nZtgm8xQdAwHLe6KbJGW0YwjSj5BgsWKP9KbUH/lyrF5wwlK8tJg92+GOp96lXlQUqf/yULLKlriSjzi9aXyEFKizWvq6kDZq+ZoIdXge6T6dXSvFDxWsYAGLydYA4O1STbqreB0rdiM/AEQGP
+88.99.28.12 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID5M8ZCdlzqCt533qkJziW3Abb30mhjGmYZGEz3gc/tV
+88.99.28.38 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDp/LkIo7luhV+4DIOvUY1otrnp8IP80IuVU2KRU//OBMMrxCJOkwlNURmHA5Vpyeb2xmLNycBt2jpteApCXAwKdjL/Mw5yE/MdJTUz894MCaPruDsU5GfFRz4N+GXywbjzZfogceXU8GGZVJu58ZU4nwFRYkpMj0/bb7KCBQEa7cTj5FROPkbDK00xxd7R9NgJ3FMQRGSc54g+8npq/5in0TclQHNA6TWthc0QtPEFoa3kiVlqfjYJPfg9E5AA7QwCvI9gGKVPlHQkk1aRnhD7aMe8M+h92OmQu+8TP3DsUfRjpiqQi7b8q9Gp7qe9PWOJ/Bde5fspwModgyF00uf
+88.99.28.38 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDiwD/LXVcRfrmUnzFcnTl6tmGl18Vyk8iBiBlv8T0/y
+88.99.59.232 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFQ5Apkui4lKd+yf9yUUOnkN9MBJOd1WiycI+UxgEHkPwjyhq7ugKY++9Gw0lGK59Nlkj0PxQ4H6dfJ/Nc9oK4AvepIjrp5mpeyc8QJ1rFliVOwaJ7olKvahpD5cfhTJbOAeOyacww7lgg3XQvqP59+XdwwPrwQ5V0Bpyx/RMlTGgsOPG6NDxZ0HWVdMpQWw8eOsDuPxxM10ouK6M+7IG2CVcAGoLocNDSMeQN05UJU4ASJb1hV55r1A9uhLnPbInG/yKENGc/L8Q+yU+gkdqggOmpwOMNINWvbJ3xNVRfTFM7a1RikoSluR5Bx3m1x80xpjJH30QtcsrGU3fx/bzr
+88.99.59.232 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINgXh48H4h3naWsHvLIzzKyBjvlX5c+bxzdrNynFceRg
+88.99.149.141 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuez/5i7OW9BgQH4iBVFMOOT34CFqvMQLS0wwlYFHOkJzJQ83RPJtwANvpRWnAMiXf+4dMs5nT0j/XyIF+TU1CIo93P6Z12d3MVsiOiys6rsZ9A62IrrO1sXf2oJSx3FieJaMZkLHP89PeaLDPFtCiE47daTji7m4RaLzq3T3Qz/+MJXdbfjVZP6z+n6l9lWRGsP/bAMboixt7ehsVbKh7zVCg+O/LnFn9WFXdZFN3U1P10cDt5Gt5iCCTw/Dd3Q50IR8NRXCN8vnh/NY9aDkv1dkHcEZCVCA1dvkn6RfobRx/O12cWx+SfKtcHqCxA2k/1iVIb+zaR+NI1tBZXTmh
+88.99.149.141 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO/hRuGbL0WXk5VIiB8wIxg32eqWkl71w28DcfkcZwjF
+148.100.110.154 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbo59LKJJG8vlPmXML6sE7fsmpqz5Xe3EtN+I+4pBvRd/CFCFjfUU92kWu0hsZLkrmuH+QbBAb73fj4lobzTtMluQ7q28GdjT29wF3Yli2VnB+AhwwRvUbe/9uk/7n+SvJ6fCsOrqHrKlG8C9ThVZE4VbIn8D868cIpcf4Oz2fiaMCd7Tm5BM2SIY4NXmuo8Ky6DvxdKd3/J5vSQkOMZXUAF9akv6JmFf7EY/DWVacxTIznbWtCnAyjtOsrezaqzE6asKob+oZZcNzuRn+NvbHYlVzINvaJLrw/KX+67fr+oU6TdqTK+BKB7PrVKr/Pvlgi+U+vPSB5GZ15BFCpyd
+148.100.110.154 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOKukxeO2mIemdiKcEwe8WFkf3kKv2e/o1eYhIMMnhPDcNKlSgE+vRpMkIDkdGapg1cW5ujotZoEFUM3F7q/9A0=
+148.100.110.154 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA7ah7NGY814T8x27Lo1Gj1/99KZ+AWQ7/xvpuMaOSJR
+bugs.96boards.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKO1PrD1Ixi2klmxuljqTS8rc9UJ+bSPTUqybWkkqgDZ3jUUNAVy89H8/TOF9TQXZSs1uCcih6A7AyK28z4fUIM=
+100.25.199.127 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKO1PrD1Ixi2klmxuljqTS8rc9UJ+bSPTUqybWkkqgDZ3jUUNAVy89H8/TOF9TQXZSs1uCcih6A7AyK28z4fUIM=
+192.168.16.14 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEBpnoqRDdCnOguYkJpI8LW5aSdQAoCnSrPP8oMAYGGmXiN9xQfFdzsJTlwcIsOspPeHt+pYSy32vCkFEpbql3Y=
+tcwg-apm-01.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJjtBpJSQE1J2kow8v9F8DAQh9uLnJgOnmp6ISE2bZ3wQtrxqes6T+fQbP7JBUn2C5zkb7QeCQ/UVGHi945ue3jeyBPrENvolpYn98ijdudbLNfwwoynzhiErt76TGT9Fwm4e7EPEUyU2GlNFEUK1lopcg8eCD4CM7TC8zThIahMNnPT2mIwJj+XLTHqo4nqUxdrQPgDKqlEwaQn3SpgOofuYoa+0TnmQ/cod7t1/XI5yHCJG23H6r2ZWPapZZZbCz3BA4LC1YDhhvUxq/7F649PGyRAUdIQZpQ29/iblsCh6Do/76zVIkBei4pTchn/bU1U0/MEYw4WiWIRo+C01L
+tcwg-apm-01.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCWXj5b19/V+Y49XAcC9lLoWQffVKnw8j7B7cHPzkH7gIwMXsRlAxUWoljJNEl7RLfI1QKytCXM6loVdbtVgKKs=
+tcwg-apm-02.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDxk2QM7oIBFkS8sk8ZjXab3iaup4h98joMsbbzpumIk8WQ+80gdg4eqHoUDXpneW8ceXNYyj0P/d0eyzrbGV+vhRPACakAL+hyeHOsMi7ZUIQersRFiCA9ih3eVSAWoHom+CQx0URVIMJc9ruCiKfVE2nbcPBjFkwOq0sFXXm5pcX+TcQVjFmhBpK3lL3uTeLDvLmooVZAq/b+EuJ4AizH4zHRm2iHRiPlPcYCgXsywGqB1niQhS8r9hjjKEg/lGhM/czXedm+hr/jkoLnX8cMyuRiYI6onF3+dECuuNsiOAu/i4POoc7NFm20GK+NkorYgw4vuM+ml67fr7i1ZxTr
+tcwg-apm-02.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJpnNyn4xwKYPKP97AMQCQ19aOdMP+NhZgBILR71w4s8vpgMgasvNMJr59ptkleCdkfhdsZA0uUhlYUyP7UxH7Y=
+tcwg-apm-03.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDW/fUGhNMq+2s8acwaRHbRre7rAIGIaD5FQnyhXtid+CODanlicpyFACbow5/IS7v760hS8XFmSpXUBqiSyvc43Bobz0counFUlwL+25t9ybvZO1+FH3wGQCuO55BSJU1n2dHSHCgBhHNg5Wy9bQVFQ0XPzG+Jeae3f8O9rjHi+DDMSfK/UWLVoBaKjVW2Y1NLiwx0ChNF7RCNwi26nUO/b4uJvPYJdbnJY/1qAwhfq5kGcgE3wsErfaZHISQWMb9u1N867f5oqWkIFIywYvUxcmRzTMxfyMJPlQUFIVTpU0J3fO30unpntO+ZBWaEL5cMeC2RUV04N0+D5jaoA9yZ
+tcwg-apm-03.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL5XJXlZaLYcvk56UtwaDPwUBc9OGljIHtpUb45RKhdR5qkZefXP8AjIw8tD7EFXizGftXWLXn/5zYeuds1RpLk=
+tcwg-apm-04.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDvandwUV7kliL7TeZdby3ba3kb+h3yC+fQDLn98Uuqa6n0ngnsHU2GJwhPwbQ+Y0CXHobLpubGNr0Qe7jnu5Vd9221n6tOLbhTQcjUyiusAA07rUBLgd2q5RCwqwI3dkCuYoc6XDQllSvtaMviJ7X7BRPHvV+TtoIepCsejGPAflX1mQkBf+faeoyj2MsG7We7J6W/dlxesm8ETCD0U/j5ba4XRHiVwvJXAlSWcLg6mIcPDBozMKob7Xj9bTqa5ho/ayleBh2kzuwfUMAj5CGEFvw5fITc1MdeGwt3KngV6yzy7qIFhQAI/uDmL6sxeylbTbO6a1WtvmWE8mUA1fDN
+tcwg-apm-04.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKs1bCQQP7y+65YaON3udvoblhgqUFe1UQNs6QmWcpI92ROhOllycClQn0r29SH53ccRWOp1cXkXQjbfoWDpuP8=
+213.146.141.115 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkm+qoy2rjj/Dny2JCFr1VY3diPb7FOcaQRlKy8Eeb0f1zai4nQVMTB4NVYTDwOi2X0BnwreMmtGd647QDhlKx1KKQ4ashx/3JNgZVVymKLTwRF1bCoz46xi231GGhCW71JCiIj6H65hSQwE8mqGKU5+D0V/oXeSiwWFACmgd18NQN4nbOvuLjpFqSx7J6NKYu/TT00MViZOm5nW7a4XvRgmkadzGbl0rS5kg9TKL7gqTelO0x1e6TClFrH1/3bjTNJOSmJoHLfhteaE3wkq3+161mA1Wt7+jYOdNlj7kmjIB9MbX+UqWiU1D5uCQd/YIsbbwrhmc6yStd52N2ZCJ
+213.146.141.115 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMKWkcs2U8WjgN/McVwUonDuWzY/M01Jj/hAuGf03PoFGVF0CxlIuGBJu6Pp8b5D5XZ8byxpPOjOtcScm/FLDOc=
+213.146.141.115 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK5pDOIKeQFFf4SXgRwbTdA+3VoTe/BbzT69DJY4ec41
+192.168.16.41 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPGyoqgme8iI7a8j77FlL8wCyzZ/wqBCecmwES1997m77e9PSEJ5r7UO8UccGawA/rWdA/JW86FcMzAN4L2ZnVC3Vyd/O/7vtydzyrYlGuMuSD61HV1sbNFz5pY7m5XUzAb5GcvrdCQXjzbG55fuqRm30xgxtiJh9dj7iZEa7jVMwQ732AUC7ldlh0LkbUTez03IN680fx4035X60C4wuKO90kaItnFfEVWM9nqG2lvralaG3aVYZb+Vtw3CaOmxbN1CBrxvTpKRdzUR2mN+UhMQAIis/RlQDFpEebIWqtM+Y5sWwpxIbBxoYpY8xLrmhKzEcPGNR8yojHefqHZ3K7
+192.168.16.41 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOejRvibbP2T01v+R+pHjvuj58m55Z6UP+3knTXotZU4ZfZbOl8MqK9bBlb1BnMBYvWO2WNtS9pDIbKNTakNuoE=
+192.168.16.42 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJVp2hvJ69X3T95NiQ/ugs2SwTRlDKQ3OaeuoiwWZRWrM2o1GPCxMmn+mz7vSMDpurEc9SxEQIX1liMr1xMO1M84bvLADyG6DfokW8ZZss9HjX1cM/SQkqbE5U8zJVnFiMPhcEzA3EPU/jvjSV48UdH1s52ZEEQTKOkEwEO1o9UlW/Q+8zcZDfCre2BKv/zz+0lJbk7dFYzHL135mXzxctRA6sh8ihI/pXG+EdcNgQyTYeA/MDbuwM3t56t9Anif1C7QvwCcRvCIYhjXG12HKv7xXS3465evYf5RAsplWVwojEprWOF9kJ7SiSCRSbD0vbBUhYAebszfT/PuPjezM5
+192.168.16.42 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDjF/Wkt6U3SpsiyTo9IHjELXbdI1vdofxhAs7dSqCfvoPS6vtMiz9USJz4mXCJvclzmyyFiLM0RYXTTfVDLO6k=
+[tcwg-tk1-10.tcwglab]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+[tcwg-tk1-10.tcwglab]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+[tcwg-tk1-10.tcwglab]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE2HgIimZL3eFmW1dtAKVawSlt5JI93etmWLVJ7li4/T
+tcwg-tk1-10.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+tcwg-tk1-10.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+192.168.16.13 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhWgNWUgUGPhVsN+glyHEmhp+8/qgRUXEPY+Szk/FYq9y3xpl/agu440Oz666phqBdxYygTjINhz8tuBE8Fud7opY5xHyjfWLU4qUwtbUn/h2ew/mpuT+LJgdvVIQB1pBHDiUnuZs1OIFZ3Xr3ZgFBV5+KltwLAkf5AiizBYf7PM+Vv+j1mZMxuEH2UR5jAMoR1QkssuNJctl40xY8NRY2PEbqPDadIrfxyBrw/Ib4yH8GCo8ckZAajwutGSt7FUI8RzMcsdnACcOr9F/wOEYp3Cpalw/zcpeE9/CP3G4hjhipOdPnb2dukRUEtqM47Osm4g+xCnPW+DKyiYhGx9XX
+192.168.16.13 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLdVqpLvOFX8J0skv13obeTp6oLja2zEX7z3zEcK0r+QkuHh0z9VSz6O5/SYhXDsEe++48i0QJEJstlP6HzIwSE=
+192.168.16.14 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyAwCa7A6n8lfpCr6Ozlx8KhM8MXHkNfNeBex1XVs0o6P6brt9oQZhLGfDHVv5jKSM+BdcfRY8ZXiw0Ee+zjpM260M0rZye3cb3xWg91FJFZKW9uXnGXLD7oURgw5jOBreR8lJn1GenQG7AoO339bIiEPB3TFRMgBUl/1kEyncP8THSSQGJDguB0bye7VBi8GQrfW3GmlNa0Z4BR9getVzHZYFzjrQh/+sPxzJ2Wywl2k8UMvD9TktYb6iKpTnlrj5eLE/oJ93ztEZULrRieGiVhQJFK9h5oFn+o7G2kHJ2bkjU1a6JKPb+dtOWos2olbC+pNNccVQPXwoHqskKJz9
+147.75.106.138 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCnRw+8lRlndwT4rJNbhf0pxYJRSXFCq5YVK2IdaPd04Vv0PKQd7QhzLgBxybFDnqs8KG2ymU8GmRWh4M0G4a8Gv6L+srrvw5MSG9HbuLNWeKEM2MboWCLWAfeRxo2oSGpAnXhgUAk8TglssZxtKsrUXoe6jMhvQ5SnLD5x+eioZYVQpBKe2D67Dyut0d8aH2Zx0wYZ8f9QC8/f0sNxbgdq3z0vlmoDhW63G9v7INXFD8t28fH0f2crqu0d+FTgd2FZFNElAjbLUOZUFnIu3WrJxRhskQ8NDaHblB0MO7PIl8c2/u0yVJTzg1NAAwKUFZuVXnqh9Z73iCJ5DMa6Sf2J
+147.75.106.138 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMNJ6bDwfFdxvILvzaRqk+KDzzxj4bnwX2RqoEGN2uLcRxGiZxzqUeQxYgxJcwl7T1Pn+82DD5AeQvWg30GKWaw=
+147.75.106.138 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAZJtUbNWU2VBAijSONfln/J0oaHezfs/2ts5F/vIq/O
+147.75.199.202 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEP4by+cHRj/Zv45ogYiT8c42M7oaqIH0tqSDOIcyVEsq/H0XPhtYLflFn9Svm0xkXKTDv6XgpLaKScY49x8dwXZLYJcj0BMdVepbZbG8+AMeo3PwXQCeLfIJvFgh8F7rXRuiDpgZMrn6ndEIPlSGYev4epogy0Ql/fXZT3owQaQYj0Ao5fl38OGFxk/my2DvM+xsx22OgB1i3vnS4ejwdmjy9sBA9phifdarPPfoa5V2TJB58OupD7XeFC33EeSNsTcsLV8jOglis6+jmgfaQZS9/9PEWXHiRc5vv1rxNF2oXKultgKgy2A8c+EuGSm9bIkk7o2aYDrsY97wJ/H99
+147.75.199.202 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKeEasQgb1Osge3kEALEJE0Sydn3ohtl10mgUVGJAhoADBY+mWB0nN4s5OKuUyC4uA3ZxOGY5METMUeN8K9OJ0U=
+147.75.199.202 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIWbeaXnb+DP7xQiXG984w9SxSp937Vw89iRC2EgKBh6
+147.75.195.254 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCodsNY/yDFDQLJd1QVnCH++PY6jQ0ljM0bedqDCG6JPDI5exUA09qBu6jxaPX1a245rvowOd54l7Dgl1FUGBPPHEH3ZOAh7TscsJ1fLyoRT74ZBFcRK9PeGnfPtch2gruYokTmBOxHb8ZG7QZoX0AgmxDtCuljrnFhoTIDv/7qBZiA0O4YGGVcSrDZf+O8yMAB2Bpo8Jk5QZjX8U2+cNcRr2dSUovPrHFOMVXHfxNahjKEG8iNA3+xe+VevD6F1+ViCvRH8Ez5SBZ87vElMKbBI4ikZzhUTjNMtPWnnZpYV9K4ofIDxyrqrP4uarQhWfwl7lBKlQ9RkXLr1FPe3o51
+147.75.195.254 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFDmMj/gnpFHtP9VdKudq2S5CbEf7TDH6tMRiKihEocn1vw2Otf6DZi22SooT7+uNyvFan0rJ4NiyWjY1ErMf5o=
+147.75.195.254 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINFA4yO+hYb54w+sjFifBb7l+rYvD48MW9oCUw0wppD6
+llvm-tk1-01.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+llvm-tk1-01.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+llvm-tk1-01.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE2HgIimZL3eFmW1dtAKVawSlt5JI93etmWLVJ7li4/T
+llvm-tk1-02.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+llvm-tk1-02.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+llvm-tk1-02.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE2HgIimZL3eFmW1dtAKVawSlt5JI93etmWLVJ7li4/T
+llvm-tk1-03.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+llvm-tk1-03.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+llvm-tk1-03.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE2HgIimZL3eFmW1dtAKVawSlt5JI93etmWLVJ7li4/T
+llvm-tk1-04.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+llvm-tk1-04.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+llvm-tk1-04.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE2HgIimZL3eFmW1dtAKVawSlt5JI93etmWLVJ7li4/T
+llvm-tk1-05.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+llvm-tk1-05.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+llvm-tk1-05.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE2HgIimZL3eFmW1dtAKVawSlt5JI93etmWLVJ7li4/T
+llvm-tk1-06.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+llvm-tk1-06.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+llvm-tk1-06.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE2HgIimZL3eFmW1dtAKVawSlt5JI93etmWLVJ7li4/T
+llvm-tk1-07.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+llvm-tk1-07.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+llvm-tk1-07.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE2HgIimZL3eFmW1dtAKVawSlt5JI93etmWLVJ7li4/T
+llvm-tk1-08.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+llvm-tk1-08.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+llvm-tk1-08.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE2HgIimZL3eFmW1dtAKVawSlt5JI93etmWLVJ7li4/T
+llvm-tk1-09.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzqHPvWD0+36zQ2jn3/gMQawa11XZtKypOB8pUBNRsoMDJSi0efuluR/rjAw97+Wv3+cCpbHqYJ1Kpx+bs+sBnGcnSXRn1r7fHfYyxr3DQ5xyENepPSA2q/wUj07+KplkHKNZFwmnXgIWg3/BjwiM4bf2fSY5ty/pxzvnr0tuqVjEbDHjcjPCo1yvwx8eUN4CVpfvrQOB+H9UJS+pdAgeLAVGIjcecwihT2PCmxYydjkQCks2DRhYwifTd6mVSh1K9avnRBXfKz68LLmdJKRfU18xbEJnwwcLB/03bfLEJiC284Zo4LjK2NWWcUQqFIejnDqc45iaWfWkJN1vr4b5
+llvm-tk1-09.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAnhfVQ81/cteWyhW8t4OnrOtmF4+6zdSMXtJDhMeFgfbYr/yktrkqlaTld0IjBdlV9cDcqSKJ8R4xeELkfrmg=
+llvm-tk1-09.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE2HgIimZL3eFmW1dtAKVawSlt5JI93etmWLVJ7li4/T
+[147.75.77.198]:2022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE6ROpaSncPXcPcOsLfH2vJDpKYtuMwGnCNY3uHAtrRf
+[147.75.77.198]:2022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3gCZ8MCaFPWfx+/CvSHAhyvCNUaojAcaqSmVL83MLre7il0sxbBEfVQuZE+JhmwVbJpHcPbjtFHzPa2C9nZqjlTOS2E2EAFPYQqBr84zBtY/FovTtEDob2C5Hw7zmnhMiTG80jkI0g0i5DY6uUzGy5OTOjYf1zX1Tt/FVEztEhZtUuO4M5ZnBh7s9uvU23JTIOJ485RrbfgG8GvQx4B0P/ZrwAEHg4OcqlSce1Vr6qeGjV58vDzHb1K3TnlkSxtgR4S0avIIfrG1SFGF32+mwRNUlxu3uTzwbd4xCkeU/zaY4TMlrlA1/7tY9m3cFNQM77zd+xQuMK7g0ejoihcg3
+[147.75.77.198]:2022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPofZGjSQwGyu+DfwUKQTfFvq4iH42HKPjeMs0+bYW/hPcWzFj14zM0vdgPJO4JsYluwbq5O8hUYYZ9tjVR3E2I=
+git.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
+[54.152.253.35]:29418 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPzkmW4axU/BXRtRkR42I8FVvWjGhB4CUtTC3cSkhu6L0Oo9i+ija/hahkPT0DC+S0k/vEL7s4mC5SrdNCeJO/0=
+3.87.142.116 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJ4fZGIZ0BX+OVPD7yyIF2fwmcCTUWSZndA2EadlWxzILXeFRu07I6+LSG284c2lA0dJNhgUVORgHfzEHAwBu5k=
+34.238.41.123 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCRRFLzNzzbKrFrvVXd+kPCgi6Pk81VR1qFTisAPN+XynTppCU9Kjj0J4cvu6Oew8QbQGusEmpyWB1hHptXqN60=
+3.89.92.149 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNtjfRTu/hhhtGK1q9/TX6oAjLzFxAJCbfJKvafDxaHCt+FuJv3wbYxhSLEJjh3jlxqHJgeNMVvKA3Ct5xcGw/0=
+34.230.21.47 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNGD+DmXDqkJ4oUVYglemcEkYiAChj5Mrc3nl7+eWXnXg9wMFq/pUsHkDqao9TgEzeTes+vMgZGHl+w9G6/wEt8=
+18.136.253.116 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
+tcwg-m1-01.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBImsDHjT9afSC0wRpH/71diInzj2tvZo0fIB5ywQkOdFNvNNlSHqMNikTG1iWkhimYOhmNPgpvND9BxhBNWVE/A=
+tcwg-m1-02.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLOBtVrQnohCS6rF3uCaOHOuMacYjy52wey651magzXSjTe5AIn0x0Yl3eNrfhr+PdV2geyDf6T3v0RPa9G4w5A=
+tcwg-m1-03.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBF4/H7mzDN33+d6Dd8g9rvPnENtgnp7DGY/Cy4HHfkSeK1u2R+J7T6frGGkIIDAKENxsTomFX8YBK+AcAzt3h08=
+tcwg-m1-04.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMKFATXsiNr8U+Z1BeEmkh6jBep+BAOiq7d63bngobvflELuxWH5BejPDYn1jTeIKvJLhbVaAWy5mCALqSPcqTU=
+dev-private-git.linaro.org,3.223.170.243 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
+dev-private-review.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvq8E5HPzrBlxmckzsE3rz9LAx9c0faEfofALaO+UGC4HAst9fMaZcHaCqu+b8SVY/2VcBvMYMwO1ZPgOn0rXs=
+tcwg-amp-01.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDuGO4LYWLSGdZQ9nXvUkfKVZX1XlPJ492R0r8Bx48oIsn4/J9Z97pmEBL7Vtib9AW8zxIArqH1s+/4ueXOwfYIoTOVDQ2TTaD8iZIXBKklx8ScoURp3A06Jgh00JrZP7X3ghJv4BR/NRt6P2TgBmZQtd9xTU1cpqC4UtKCPIboQh8gns8Fvzso1kGMLLUnLYwQmqYa3Kdc9Jvv5xZiWcWBV2+7ZjwIyGQNAhcJ/Byg+jNtwVfHbPdhVc5fWH1AhV+pTtGl5/5ij91n76xAbflSaAgSGNrRUs1e297ClgRG3lGx8KglXfjVeLsLWSYdHMUuGjPnbZNbmCBCHmqk5P6P
+tcwg-amp-01.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOliNs5X4wTa7LY+4Uojnai7yn63kceYOZO87PVdQm9uMHHGoG/ZLXK9iPDWc0eVKMyE4aeeIP6uvi5CqZN0tj0=
+tcwg-amp-01.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ5t6j5O95Kf1ik5MGXcr/JJOT4PUfQm8CQnTCKi51cj
+tcwg-amp-02.tcwglab ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEG39iSHLT+FOg+lAcxqm18+0N7eMVyNzRhtzUBPv3IPxUonAdIc3VMYAmZBekZSzmvi3GdJ2VjbVVtJNr6U9Kw=
+tcwg-amp-02.tcwglab ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3SBIc4f5pRK6yZwps5lOdxN7ehGt3cvNXbzSJUte+sfrJrxIeA4R8hynxENA79QImXDpk0By8qwPSWvO0dL7VbZy7f4WaSYRJo1/ObUqLa5o9OM9AgQYJcpE/GQbMEaMY5quYRI/TGrxx2M2uhRWA4PMI60R1YYmHF5pEobSJPE+tcMgLxrNl5k1l1WEyKjgzIZXYvIvmBEqPJOXsnGjkSkP6QyHsfTjaHVtOfvKeddC+JJqfsLuOfiUKdFaLvF9CcZzkYWqwW6zxdER1h6WQ3TULIcwnTdyqD2P9LHIMV64MKXCoEQ9lQU08Ed0yEpvosE5j8rva5f5P4FmdLx/D
+tcwg-amp-02.tcwglab ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICJFVSbVA6sfkCnzA2O1V1mYHKgfvMYMV5INX4sQvrUP
+95.216.16.165 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHzn50rizbenOcg/mvq1+Nw/zXKxMPR36Hhm15SfIlpHLSAUB5l3bJYHvKAsv0HAjfm5zA+6m2ntuIIcKkxXa2Y=
+174.129.159.245 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMP7x8oTsilLiRD5x+PS3G4EfMLMwrDfN3icXqwBMCVBY4dKiwB8c6NMHxnTXc34q6Fi7k3lGpdDkXgQIT+tax0=
+grafana.linaro.org,3.80.150.227 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJ4s1+zO47o+6hogTDyelARc+vFWYrJOJVSt1PxRYKb7d0jPu12E/wZ1lLgzodyUMvKcFzxj2ZOMSXMdP9JNfDA=
+52.76.3.58 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGfMKLJHHcdWsKHgx1grD9QsCfpH8pjmO/a+7sVYVNgK3sOoLnLdn4z4E90NzuepOM/2badDgiobabOAremJrG8=
+android-git-ap.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGfMKLJHHcdWsKHgx1grD9QsCfpH8pjmO/a+7sVYVNgK3sOoLnLdn4z4E90NzuepOM/2badDgiobabOAremJrG8=
+52.50.27.47 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIiOM/1UpnEIEBBQC1U59GBnW0t+i9pWTgZAAY/mwg4khUDEN3l9s6ND9j5ZtwAj5E3unKzXOAqlIbHvBOVQY6A=
+android-git-ie.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIiOM/1UpnEIEBBQC1U59GBnW0t+i9pWTgZAAY/mwg4khUDEN3l9s6ND9j5ZtwAj5E3unKzXOAqlIbHvBOVQY6A=
+3.86.9.25 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPki3/bkir4rbmTopIAhbm04Kp5lAMPCjIDjfGIwntnwKiZF0Q+VkuSL07GgXsy8sBcJCRS8LN3cRYg9hABrk1Q=
+54.152.253.35 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBONeIVl09BaG0iDOqF/qZjDun8fktYdD0Zl2fRAkSGT6Q7ULAXWJZA7IwstvcSs5w9SRV6x/lNc3CqlHwMFaABc=
+android-review.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJrEJgCTB5gdeNJr2g4MbcNLR+rICc91R6EPcWA00aUiSRPaigB5vw8WV1K2ps78wkmayAnVzS4DHSa9agSz9qA=
+android-git-us.linaro.org,3.87.163.235 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJrEJgCTB5gdeNJr2g4MbcNLR+rICc91R6EPcWA00aUiSRPaigB5vw8WV1K2ps78wkmayAnVzS4DHSa9agSz9qA=
+3.87.44.215 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA+7qW9k2k+Kf1/I3rT8Cjg1F53ezcCqWD50XTZnFPPx823NZnx4A7kLN6Fy4zeCuiq6ijL5lr0bEj9Zh8jwtSo=
+ses-proxy.ctt.linaro.org,52.206.111.78 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBERJ9JcYMNmIMgDaIu2Iua6oVXCiyMDNxJznC/dqxY526iUrVyz2KsOVkOY3EZwvM+sRlKUnkgGKwyIr+B/E5tA=
+bugs.linaro.org,52.54.107.229 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHj6VInqDkFXBHWsaUOGDAlEndjBC8BHOh8Wn3alaWgBiC1SH+t6GeWcWLpWvXHDsCNZ+BqyF98VmZIrq+xRPBM=
+95.217.145.175 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBO6JH7f4o+KJdkuSssaqaaga+jUeiMf0Mf/v1E+K0Nroj+j4G5inQSoBqYgT6K4Vqp02PhtruhhB8Ulbdpzqm0I=
+[git.morello-project.org]:2222,[174.129.105.184]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPDkyDNVrZ7Y2KKoh++I+kEtNck075VHLf12eUq3hFM55ITntzorugQ8fw3DgbqfBuJ3xsLoWcBNTeIQhQwLSRU=
+34.241.163.244 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGHRGKVgvm4cjsC8//Bz3cEG01oPEkjMhRaAzdSN5RAr/sec9lm8roShFG/atpDs3KnpJUiW4Hz9+8ixRyG8b2U=
+systems-monitoring.linaro.org,95.217.117.19 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCLbozUvi2YJvOCv82GpIBUr1nZX1aa63A1cTR/7JoNUdFwlEAhWSFWQtXFjCESuCUUxzxF5etVEu1Qbq8mXAeM=
+lava-monitoring.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCLbozUvi2YJvOCv82GpIBUr1nZX1aa63A1cTR/7JoNUdFwlEAhWSFWQtXFjCESuCUUxzxF5etVEu1Qbq8mXAeM=
+elk.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCLbozUvi2YJvOCv82GpIBUr1nZX1aa63A1cTR/7JoNUdFwlEAhWSFWQtXFjCESuCUUxzxF5etVEu1Qbq8mXAeM=
+3.236.87.60 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLt+7FXqEKRlZDYEzF6v3Bp7N7NznxzgQwRYjoKh9m4qR20TGUsAnrAcL3NfU9zNCg8nJuguMPKGHkwaYceG+vw=
+ci.staging.trustedfirmware.org,34.229.64.237 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFRgrAC2PVaoNqaABViAP9qy1uDOQlzJrU4FVqwN11GUcNskHSuI6Od2DefTeCtMJnDr/+VHBmj8Wps92IceNUQ=
+148.251.195.69 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFauEzH+PlkBnnUydlEDsIbM4fwTFkjUzkhExT0ZdC+QuxjNIMz4Qo40K+27hee9rmD/WOxDURwfVr07R2oe32Y=
+51.159.20.54 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHDBOm8taVND5VMoeUYBXRv0ICP7i3ijJbb46eDuBou+fP/AOKLUSZoXXqVGEv37jRBGBrvccmA5vtRJ+h7dmZk=
+51.159.1.37 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBbpBZgaV2flbVMmky5bezZlSFXUvuKiCAVcGG23xVbjhgRjDBJ9cPilKJs1wn/ZrGOTFGMHwfNNRmKC/hcDDdg=
+[git.morelloproject.org]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPDkyDNVrZ7Y2KKoh++I+kEtNck075VHLf12eUq3hFM55ITntzorugQ8fw3DgbqfBuJ3xsLoWcBNTeIQhQwLSRU=
+gitlab-runner-manager.morello-project.org,52.2.82.179 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMe1XfZRn1Uzf/WzT1P8nzxMkBmZS9g9jp3wWE39Ivg37QnlzbREKoC8JQRSVTmzQLvjDuToTnz5LizwWz1Twx8=
+gitlab-runner.morello-project.org,54.204.82.153 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHRZOTB5R4WEW/fa49JBqZkxW4rUuzJVS+GSDhy3wv7ZIZnADVGSjjQK+jASm7v/dlnQouVrNn1yA5hh08qqO1w=
+analytics.mlplatform.org,3.86.53.223 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJu1ZPvwoi054kZDbEuR6RTdbu9TFG/7X0kdhK37H+t3IVXHbchUuHkZWM2S/n7wyodpjUXDuzJ4NKbSjQlO3Po=
+snapshots.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGHRGKVgvm4cjsC8//Bz3cEG01oPEkjMhRaAzdSN5RAr/sec9lm8roShFG/atpDs3KnpJUiW4Hz9+8ixRyG8b2U=
+android.linaro.org,54.228.108.119 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP3Eh1ka18Ii6pFBfND1Tjqe4ptJ5w7DfgNRSphX2SaJps77KQOIzHKrZs9Rai73jHcDJA6ZCMzLneQy/KO/iuc=
+18.233.164.216 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA+7qW9k2k+Kf1/I3rT8Cjg1F53ezcCqWD50XTZnFPPx823NZnx4A7kLN6Fy4zeCuiq6ijL5lr0bEj9Zh8jwtSo=
+gitlab-runner-manager.lkft.org,52.70.137.192 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMVAip9dEm8FgRpD+1Khc8U0mBm3DJ+fUVA3JlHSXDrHYNfDIM2+KnQLy47C9g0k1YzZEAd1I0Qd5bAXfaDfnQE=
+gitlab-runner-manager-large.lkft.org,52.23.101.34 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPMRTkxLS9z2vDaobCwTFIt1yXVWV6OcWR8l1SaNPx0x1c8aDgx7dFccGk1pOwL8hyPlGAN8Cn6ISHIAULUs9S4=
+git.trustedfirmware.org,51.159.18.17 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBE1RnvfXuFFXN2rbrg8J0kU6O7U2TuFNx3bb/SADE8uKvljJgOnCSOPWYMpArMXSBMO1sJ57r5NM065KEzft/+E=
+review.trustedfirmware.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBE1RnvfXuFFXN2rbrg8J0kU6O7U2TuFNx3bb/SADE8uKvljJgOnCSOPWYMpArMXSBMO1sJ57r5NM065KEzft/+E=
+139.178.84.115 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIFZqnAeK6GL6UaM1kXIkvE+iEutr3+JXgcjK1zwmv1Vi704wedCD5o7JUTruw7ilYSYOkXi0A2gGw2sRUSyLvw=
+34.203.216.234 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGgKJfR1sQrEy+Io1AYoq9Cb2q2kV10tA4IBygASLRo7JuWWBBPjrTcYM/v3ImjMBiSGreKY7kCpt3l1+2FMq20=
+git.morello-project.org,174.129.105.184 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC/tmkEp31iZ1RZ4546kqO4FM5NsRqNJzWLg8U+NmKW0OCctNTyoIQn7hSz4FLxP0D7mSbZSUcQZNwzCmG/nhBA=
+10.40.88.130 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEClhBDBWsAbFyMMB+k4A9VBiyfArRsRl1j6WlExZIZu3cQ2c4zusNYdmY05aesV3aZcXeVdTLMxBuqFpyMiMTY=
+3.82.125.72 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGgKJfR1sQrEy+Io1AYoq9Cb2q2kV10tA4IBygASLRo7JuWWBBPjrTcYM/v3ImjMBiSGreKY7kCpt3l1+2FMq20=
+34.235.18.146 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKT9dRJITTwRdQEyFPRwVr4vIC3snmTNK5MayPbx+lCH
+52.202.167.184 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIat2E4kEDTllWhAAYp1zCe6OP+hKd42YI+J5dVaEsSVBHDcuJuHBLsfo3eyhasPY7kKbT6UlGP7gZYzl5Wo/4w=
+gitlab-runner-manager-tuxtest.ctt.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIat2E4kEDTllWhAAYp1zCe6OP+hKd42YI+J5dVaEsSVBHDcuJuHBLsfo3eyhasPY7kKbT6UlGP7gZYzl5Wo/4w=
+gitlab-runner-manager.ovss.linaro.org,35.211.168.99 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEKHRzZf1YlJJ2Xc8RCiMh6PaxBsQvTADi2B9woToxAu27o5OPzXYbe5ZZITb0lmnFI4ZyOuv1DruRM7wist+eA=
+136.243.177.220 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBK4LJ1F8eTzlX9t3ToIa7vM3teoTgPgf62EudffyFaGcNPruodzHUr+Od7F2QY4BQjn2R9UssTM4Xsq5MK/ZYQ=
+54.88.117.5 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLiJkZ4qsWZDlQYnyPQbsbyjv8a+Aq365xxHt5r9LQ4yx3G6uWKb08vjJ0luTIhkMoExTb0QA9TG8iUB3NqOQ7c=
+lava.morello-project.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLiJkZ4qsWZDlQYnyPQbsbyjv8a+Aq365xxHt5r9LQ4yx3G6uWKb08vjJ0luTIhkMoExTb0QA9TG8iUB3NqOQ7c=
+qcom-hackbox.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBK4LJ1F8eTzlX9t3ToIa7vM3teoTgPgf62EudffyFaGcNPruodzHUr+Od7F2QY4BQjn2R9UssTM4Xsq5MK/ZYQ=
+aosp-x86-13 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBO6JH7f4o+KJdkuSssaqaaga+jUeiMf0Mf/v1E+K0Nroj+j4G5inQSoBqYgT6K4Vqp02PhtruhhB8Ulbdpzqm0I=
+10.7.0.101 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBF5Q8gQtY2e6ZLdTXRC/PgJUrGKX7cW3J85jX7eDCpEKnMCf2t6+6/rdRTEXZkEFG809LUsh5zWzesNvIPVzZLA=
+patches.linaro.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAYoMA7SwiXE6mHDAo4IzxsOSXFdtbRLAtiT/urqVichcrRzOIQxQNQj+lT1MICkRGVUNaMil5h+PPZKi0Ykd2Q=
+deployments.ctt.linaro.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEjdvN4yj9IpsdLSvkTTu65aIZwnhUhwKQbRa0ojmpyy
+obs.linaro.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFJksvGQpxgs0WsFe+aNg1SNbrZh/mxBmmLcSMA4zlrH
+51.159.20.12 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDfh4G+/9D9RJGpGPIVvkbH1FkOwBHuXd4ZA4ci9xiUt
+flexnet-aws.trustedfirmware.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILEUeM2ukPti+pOqzyiEhq3rxcIj7O+vUPwxaGGI7ZGI
+192.168.36.10 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGQEZyumUjxXsfKQ1PhP/XbtyOGWLLOJmXi4R1C8dTMG
+buildkite.ctt.linaro.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBppQW8E4gBWTSxsu42cCwxnfzY5spC2aOfziFpu3YdR
+51.159.22.224 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMrLYmlgPvCnUeFmiy8LDcTtgPc+fCCXLnQd7srIF7J/
+51.159.20.18 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICtuVOHAhkTTBoaCJ1uyu+LMKAsboDgr/zbkGE8koGk7
+runner-cassini.ctt.linaro.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILoF64GoqXrSDeAm5NEO/9hWtWrE5G4twAi6CYMyBtIL
+10.252.23.114 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEJJYD+iG0I7hbLdCIeFrEH2U0Od4iKcSAHiCav9mWZa
+gerrit.forge.aws.linaro.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEJJYD+iG0I7hbLdCIeFrEH2U0Od4iKcSAHiCav9mWZa
+flexnet.trustedfirmware.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINfxMgScSvY67rmci7rpsiCU4dTFOhzrsbreEaZGT4Ka
+mbedtls.trustedfirmware.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDe5WQk5mtt30d6spLcYXfVeHQpZ5MKWSrAt/qPJVHOE
+ci.trustedfirmware.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGQOW9Zk6tmYyV7eh5qtjpUoNoYom7FVMtvEmMNHzGWt
+gerrit.devboardsforandroid.ctt.linaro.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO/t+zvQuh3t2E8zIbbYL1gQRE8nPgwphWs/cVVcxrv4
+gerrit.devboardsforandroid.linaro.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIASzeLZnFxBsm6XcQrxyLnL+6nSZOarQIxZGlGYSpEfl
+51.159.20.61 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqFIMuv7uvRrXi/ZR039oIvKFrWeqXIz1+bG/DW8ghb
+51.159.20.82 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOrhC3ObEpimoeJmEQg1SDysiMFgBN3O4OAUFyjiLq1a
+49.12.133.85 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMfQywbVNPoQEapesnReQPCSDqgw/yECzmRNAtNhclLt
+10.40.88.168 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHHqlZTwKMMGSBT9fhLiA2soq8zZXgLKhEoe7cnuwvA0v3Y3OlTCPVliUgEyNDRg1U/wFcX7wakJs7n8LSCzfUM=
+147.28.196.111 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM7baU/7z1nic5Y4GEwrbBbQIny0o30OFiV/r0/q5bmF
+168.119.145.200 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuz8lwHIT9tyLHlHZP0hodFK3xxVFjTIfy8M1h65Yz+
diff --git a/ssh/known_hosts_tf b/ssh/known_hosts_tf
new file mode 100644
index 00000000..c5f672f1
--- /dev/null
+++ b/ssh/known_hosts_tf
@@ -0,0 +1,10 @@
+review.trustedfirmware.org,184.72.81.201 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/B08oZljv1qGZJCjwQTZrDBEhUiGHcRG40aZ/tjkCCQb+JOfrb0jgV+AqkKxUSuAyxYgOD1HLotDFwzMaMAXTUZ7goXBoEfi1YuhZMsIyrQB4FG9RsGQe2/El/HRtiGqEADU3a98OCTzCDGNzvWfuwrCydY2YFZkkseFoGxV/eUE/WWbKqcQh5lNZnbBOjYSNjV0DNoW/jTkr2oR8iWlCTHqae6ulM67TzOzWoDOu90fqU7stX6x75SM9gn4KiiV3xWuKw9N8YjjRpEAHAZoKHgDqze0wCsMZLVhYOGA1iY30VB6bqo02PTm5gAJM9wfoqoRkoldn2kRJwBRDa4Bj
+review.trustedfirmware.org,184.72.81.201 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA+7qW9k2k+Kf1/I3rT8Cjg1F53ezcCqWD50XTZnFPPx823NZnx4A7kLN6Fy4zeCuiq6ijL5lr0bEj9Zh8jwtSo=
+review.trustedfirmware.org,184.72.81.201 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDvuI+QkHtXh68oEl5YKlHGlVwddHH/FYvFFALTxAZDl
+51.159.1.37 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBbpBZgaV2flbVMmky5bezZlSFXUvuKiCAVcGG23xVbjhgRjDBJ9cPilKJs1wn/ZrGOTFGMHwfNNRmKC/hcDDdg=
+51.159.20.54 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHDBOm8taVND5VMoeUYBXRv0ICP7i3ijJbb46eDuBou+fP/AOKLUSZoXXqVGEv37jRBGBrvccmA5vtRJ+h7dmZk=
+51.159.20.12 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDfh4G+/9D9RJGpGPIVvkbH1FkOwBHuXd4ZA4ci9xiUt
+51.159.20.18 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICtuVOHAhkTTBoaCJ1uyu+LMKAsboDgr/zbkGE8koGk7
+51.159.22.224 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMrLYmlgPvCnUeFmiy8LDcTtgPc+fCCXLnQd7srIF7J/
+51.159.20.61 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqFIMuv7uvRrXi/ZR039oIvKFrWeqXIz1+bG/DW8ghb
+51.159.20.82 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOrhC3ObEpimoeJmEQg1SDysiMFgBN3O4OAUFyjiLq1a
diff --git a/ssh/sockets/.placeholder b/ssh/sockets/.placeholder
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/ssh/sockets/.placeholder
diff --git a/ssh/systems-bot-ssh b/ssh/systems-bot-ssh
new file mode 120000
index 00000000..761d8c05
--- /dev/null
+++ b/ssh/systems-bot-ssh
@@ -0,0 +1 @@
+../../shared-credentials/other/shared_keys/systems-bot-ssh \ No newline at end of file
diff --git a/ssh/systems-bot-ssh.pub b/ssh/systems-bot-ssh.pub
new file mode 120000
index 00000000..0d505423
--- /dev/null
+++ b/ssh/systems-bot-ssh.pub
@@ -0,0 +1 @@
+../../shared-credentials/other/shared_keys/systems-bot-ssh.pub \ No newline at end of file
diff --git a/ssh/update_key.sh b/ssh/update_key.sh
new file mode 100755
index 00000000..bffa289b
--- /dev/null
+++ b/ssh/update_key.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+if [ -z $1 ];
+then
+ echo "Usage: update_key.sh <hostname>"
+ exit 2
+fi
+
+ssh-keygen -R $1 -f ./known_hosts > /dev/null 2>&1
+rm -f ./known_hosts.old
+ssh-keyscan -t ecdsa-sha2-nistp256 $1 >> ./known_hosts 2>/dev/null
diff --git a/templates/patchwork/patches.linaro.org_local_settings.py b/templates/patchwork/patches.linaro.org_local_settings.py
index bc418555..88455543 100644
--- a/templates/patchwork/patches.linaro.org_local_settings.py
+++ b/templates/patchwork/patches.linaro.org_local_settings.py
@@ -1,5 +1,7 @@
import os
import sys
+import ldap
+from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
sys.path.append(os.path.join(os.path.dirname(__file__), '../tools'))
from linaro_metrics.settings import * # NOQA
@@ -45,22 +47,30 @@ IMAP_PASS = '{{imap_pass}}'
GITHUB_OAUTH_TOKEN = '{{github_oauth_token}}'
-CROWD_USER = '{{crowd_user}}'
-CROWD_PASS = '{{crowd_pass}}'
-CROWD_URL = '{{crowd_url}}'
-
REPO_DIR = '{{install_base}}/{{hostname}}/repos'
DEFAULT_PROJECTS = []
-AUTH_CROWD_ALWAYS_UPDATE_USER = False
-AUTH_CROWD_ALWAYS_UPDATE_GROUPS = False
-AUTH_CROWD_CREATE_GROUPS = False
-AUTH_CROWD_APPLICATION_USER = CROWD_USER
-AUTH_CROWD_APPLICATION_PASSWORD = CROWD_PASS
-AUTH_CROWD_SERVER_REST_URI = CROWD_URL
+AUTH_LDAP_SERVER_URI = 'ldaps://login.linaro.org'
+AUTH_LDAP_BIND_DN = 'cn=systems-bind,ou=binders,dc=linaro,dc=org'
+AUTH_LDAP_BIND_PASSWORD = '{{ ldap_bind_pwd }}'
+AUTH_LDAP_USER_SEARCH = LDAPSearch(
+ 'ou=accounts,dc=linaro,dc=org',
+ ldap.SCOPE_SUBTREE,
+ '(mail=%(user)s)',
+)
+AUTH_LDAP_USER_ATTR_MAP = {
+ 'first_name': 'givenName',
+ 'last_name': 'sn',
+ 'email': 'mail',
+}
-AUTHENTICATION_BACKENDS = ('linaro_metrics.backends.LowerCaseCrowdBackend',)
+AUTH_LDAP_ALWAYS_UPDATE_USER = False
+AUTH_LDAP_FIND_GROUP_PERMS = False
+
+AUTHENTICATION_BACKENDS = [
+ 'django_auth_ldap.backend.LDAPBackend',
+]
# 240s works well for most repos, but linux-next based repos have to do a
# really large git-gc about once a week. Based on rough testing, that can
diff --git a/templates/patchwork/patchwork.cron.d b/templates/patchwork/patchwork.cron.d
index 1fb3d948..3ce34053 100644
--- a/templates/patchwork/patchwork.cron.d
+++ b/templates/patchwork/patchwork.cron.d
@@ -1,9 +1,15 @@
MAILTO=linaro-infrastructure-errors@lists.linaro.org
+PYTHONPATH=$PYTHONPATH:../project:/{{ install_base }}/linaro-git-tools
+DJANGO_SETTINGS_MODULE=local_settings
# check patchwork email every 10 minutes
*/10 * * * * www-data {{install_base}}/{{hostname}}/tools/import_emails.py
# sync code every hour
0 * * * * www-data {{install_base}}/{{hostname}}/tools/update_commited_patches.py
+# import mbox files
+@daily www-data (cd {{install_base}}/{{hostname}}/tools; /usr/bin/flock -n /tmp/generate_mbox.lock ./generate_mbox.py)
{% if django_email_cron is defined %}
# clean up expired registrations
0 22 * * * www-data {{install_base}}/{{hostname}}/project/manage.py cron --settings={{django_settings}}
{% endif %}
+# clean up git repos every 2 months
+0 19 1 */2 * www-data /srv/linaro/git-tools/git_cleaner.sh
diff --git a/templates/router/r1-x86-2-dnsmasq b/templates/router/r1-x86-2-dnsmasq
deleted file mode 100644
index 0d806e35..00000000
--- a/templates/router/r1-x86-2-dnsmasq
+++ /dev/null
@@ -1,38 +0,0 @@
-# DO NOT EDIT! MANAGED BY ANSIBLE
-
-domain=aus-colo
-
-# only manage dhcp for rack1
-interface=em1.10 # rack 1
-interface=em1.64 # rack 1 debian
-interface=em1.20 # rack 2
-interface=em1.30 # rack 3
-interface=em1.33 # rack 3 mustang chassis
-
-# rack1 NOTE: do not use 10.10.100.0 range (used by openstack)
-dhcp-range=em1.10,10.10.0.100,10.10.3.250,255.255.0.0,24h
-dhcp-range=em1.20,10.20.0.100,10.20.3.250,255.255.0.0,24h
-dhcp-range=em1.30,10.30.0.100,10.30.3.250,255.255.0.0,24h
-# rack3 note: 10.33.10.1->10.33.99.250 is used by openstack
-dhcp-range=em1.33,10.33.0.100,10.33.3.250,255.255.0.0,24h
-
-{% for rack in racks %}
-# rack {{rack.name}}
-{% for host in rack.hosts %}
-{% if host.tag is defined %}
-dhcp-host={{host.mac}},set:{{host.tag}},{{host.name}},{{host.ip}}
-{% else %}
-dhcp-host={{host.mac}},set:{{rack.name}},{{host.name}},{{host.ip}}
-{% endif %}
-{% endfor %}
-{% endfor %}
-
-enable-tftp
-tftp-root=/var/lib/tftpboot/
-
-dhcp-boot=tag:r1,/pxelinux/grubaa64.efi,r2-x86-1,10.20.0.20
-dhcp-boot=tag:r2,/pxelinux/grubaa64.efi,r2-x86-1,10.20.0.20
-dhcp-boot=tag:r3,/pxelinux/bootnetaa64.efi,r2-x86-1,10.20.0.20
-dhcp-boot=tag:rack3x,/pxelinux/bootnetx64.efi,r2-x86-1,10.20.0.20
-dhcp-boot=tag:qa-net,/grubaa64.efi,qa-pxe,10.10.0.204
-dhcp-boot=tag:hpc,/pxelinux/grubaa64.efi,r1a-11,10.10.0.111
diff --git a/templates/weblogs/96boards_settings.py b/templates/weblogs/96boards_settings.py
deleted file mode 100644
index 1e87ce6c..00000000
--- a/templates/weblogs/96boards_settings.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from settings_production import * # NOQA
-
-# It is okay for this to be public
-SECRET_KEY = 't-yr=e()c+k(&0j7ei-e(*k3s4rq7$hq*vbwfd*-mpepww@9i&'
-
-IP2LOCATION_FILE = '/home/weblogs/db/ip2location/current_database/IP-COUNTRY-REGION-CITY-ISP.BIN'
-
-DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.postgresql_psycopg2',
- 'NAME': 'buildsdb',
- 'USER': '{{builds96boards_db_user}}',
- 'PASSWORD': '{{builds96boards_db_pass}}',
- 'HOST': 'builds96boards.clawasvzvkxo.us-east-1.rds.amazonaws.com',
- 'PORT': '5432',
- },
-} \ No newline at end of file
diff --git a/templates/weblogs/releases_settings.py b/templates/weblogs/releases_settings.py
deleted file mode 100644
index 8cbff45a..00000000
--- a/templates/weblogs/releases_settings.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from settings_production import * # NOQA
-
-# It is okay for this to be public
-SECRET_KEY = 't-yr=e()c+k(&0j7ei-e(*k3s4rq7$hq*vbwfd*-mpepww@9i&'
-
-IP2LOCATION_FILE = '/home/weblogs/db/ip2location/current_database/IP-COUNTRY-REGION-CITY-ISP.BIN'
-
-DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.postgresql_psycopg2',
- 'NAME': 'llp-releases',
- 'USER': '{{releases_db_user}}',
- 'PASSWORD': '{{releases_db_pass}}',
- 'HOST': 'releasesdb.ciudxut0cc97.us-east-1.rds.amazonaws.com',
- 'PORT': '5432',
- },
-}
diff --git a/tests/ansible-lint-test.sh b/tests/ansible-lint-test.sh
index d95d45ec..5709a722 100755
--- a/tests/ansible-lint-test.sh
+++ b/tests/ansible-lint-test.sh
@@ -1,30 +1,5 @@
-#!/bin/bash -x
+#!/bin/bash -e
echo "=> Linting Ansible Code"
-fail_ansible=0
-for f in `find ../ -name "*.yml"`; do
- echo "==> LINTING $f"
- ansible-lint -x 504 -x metadata -x reliability -x idiom -x formatting -x ANSIBLE0004 $f # Ignore GIT check
- rc=$?
- if [[ $rc != 0 ]]; then
- echo "==> LINTING FAIL: $f"
- fail_ansible=1
- fi
-done
+/usr/bin/parallel ./tests/ansible-lint.sh ::: *.yml
-for f in `find ../ -maxdepth 1 -name "*.yml"`; do
- echo "==> SYNTAX CHECK $f"
- ansible-playbook --syntax-check $f
- rc=$?
- if [[ $rc != 0 ]]; then
- echo "==> SYNTAX CHECK FAIL: $f"
- fail_ansible=1
- fi
-done
-
-if [[ $fail_ansible == 1 ]]; then
- echo "=> FAIL"
- exit 1
-else
- echo "=> SUCCESS"
-fi
diff --git a/tests/ansible-lint.sh b/tests/ansible-lint.sh
new file mode 100755
index 00000000..9db76fe4
--- /dev/null
+++ b/tests/ansible-lint.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+f=$1
+echo "==> LINTING $f"
+ansible-lint -x 106 -x 208 -x 403 -x 504 -x 301 -x metadata -x reliability -x idiom -x formatting -x ANSIBLE0004 $f # Ignore GIT check
+rc=$?
+if [[ $rc != 0 ]]; then
+ echo "==> LINTING FAIL: $f"
+ exit 1
+fi
+
+echo "==> SYNTAX CHECK $f"
+ansible-playbook --syntax-check $f
+rc=$?
+if [[ $rc != 0 ]]; then
+ echo "==> SYNTAX CHECK FAIL: $f"
+ exit 1
+fi
diff --git a/tests/ci-stack/docker-compose.yml b/tests/ci-stack/docker-compose.yml
new file mode 100644
index 00000000..177c1d26
--- /dev/null
+++ b/tests/ci-stack/docker-compose.yml
@@ -0,0 +1,110 @@
+version: '3'
+services:
+ ci.linaro.org:
+ image: 'linaro/ci-x86_64-jenkins-master-debian:lts'
+ container_name: ci.linaro.org
+ environment:
+ JAVA_OPTS: "-Djava.awt.headless=true -Dhudson.slaves.WorkspaceList='_' -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=30 -Dorg.eclipse.jetty.server.Request.maxFormContentSize=1000000 -Djenkins.install.runSetupWizard=false"
+ ANSIBLE_GROUP: jenkins_master
+ JENKINS_GROOVY: |
+ #!groovy \n
+
+ import jenkins.model.* \n
+ import hudson.security.* \n
+ import jenkins.install.InstallState \n
+ import com.cloudbees.plugins.credentials.* \n
+ import com.cloudbees.plugins.credentials.domains.Domain \n
+ import com.cloudbees.plugins.credentials.impl.* \n
+ import hudson.util.Secret \n
+
+ def instance = Jenkins.getInstance() \n
+ println "--> creating local user 'admin'" \n
+
+ def hudsonRealm = new HudsonPrivateSecurityRealm(false) \n
+ hudsonRealm.createAccount('admin','hunter2') \n
+ instance.setSecurityRealm(hudsonRealm) \n
+
+ def strategy = new FullControlOnceLoggedInAuthorizationStrategy() \n
+ instance.setAuthorizationStrategy(strategy) \n
+ instance.setCrumbIssuer(null) \n
+
+ if (!instance.installState.isSetupComplete()) { \n
+ InstallState.INITIAL_SETUP_COMPLETED.initializeState() \n
+ } \n
+
+ def jenkinsKeyUsernameWithPasswordParameters = [ \n
+ description: 'Docker access password', \n
+ id: '88434794-118e-40e4-9cd9-be1ae5d70eec', \n
+ secret: 'hunter2', \n
+ userName: 'buildslave' \n
+ ] \n
+
+ def domain = Domain.global() \n
+ def store = instance.getExtensionList('com.cloudbees.plugins.credentials.SystemCredentialsProvider')[0].getStore() \n
+ def jenkinsKeyUsernameWithPassword = new UsernamePasswordCredentialsImpl( \n
+ CredentialsScope.GLOBAL, \n
+ jenkinsKeyUsernameWithPasswordParameters.id, \n
+ jenkinsKeyUsernameWithPasswordParameters.description, \n
+ jenkinsKeyUsernameWithPasswordParameters.userName, \n
+ jenkinsKeyUsernameWithPasswordParameters.secret \n
+ ) \n
+ store.addCredentials(domain, jenkinsKeyUsernameWithPassword) \n
+
+ instance.save()
+ \n
+ command:
+ /bin/sh -c "mkdir -p /var/jenkins_home/init.groovy.d; echo $$JENKINS_GROOVY > /var/jenkins_home/init.groovy.d/skip-firstwizard.groovy; /usr/bin/tini -- /usr/local/bin/jenkins.sh"
+ logging:
+ driver: journald
+ ports:
+ - "2222:2222"
+ - "2233:2233"
+ - "8080:8080"
+ - "50000:50000"
+ networks:
+ jenkins_net:
+ volumes:
+ - jenkins-home:/var/jenkins_home
+ review.linaro.org:
+ image: 'gerritcodereview/gerrit:3.0.2'
+ container_name: review.linaro.org
+ environment:
+ ANSIBLE_GROUP: gerrit
+ logging:
+ driver: journald
+ ports:
+ - "29418:29418"
+ - "8081:8080"
+ volumes:
+ - etc-volume:/var/gerrit/etc
+ - git-volume:/var/gerrit/git
+ - db-volume:/var/gerrit/db
+ - index-volume:/var/gerrit/index
+ - cache-volume:/var/gerrit/cache
+ networks:
+ jenkins_net:
+ swarm-manager:
+ image: swarm
+ container_name: swarm-manager
+ ports:
+ - 2375:2375
+ entrypoint: /swarm manage file://etc/swarm.txt
+ volumes:
+ - "${CI_DATA}/swarm.txt:/etc/swarm.txt:ro"
+ networks:
+ jenkins_net:
+
+networks:
+ jenkins_net:
+ driver: bridge
+ ipam:
+ config:
+ - subnet: 10.50.0.0/24
+
+volumes:
+ etc-volume:
+ git-volume:
+ db-volume:
+ index-volume:
+ cache-volume:
+ jenkins-home:
diff --git a/tests/ci-stack/docker_vol_x86_64.txt b/tests/ci-stack/docker_vol_x86_64.txt
new file mode 100644
index 00000000..52acb835
--- /dev/null
+++ b/tests/ci-stack/docker_vol_x86_64.txt
@@ -0,0 +1,2 @@
+'/tmp/shadow:/etc/shadow:ro'
+
diff --git a/tests/ci-stack/hosts-simulator b/tests/ci-stack/hosts-simulator
new file mode 100644
index 00000000..ca27302f
--- /dev/null
+++ b/tests/ci-stack/hosts-simulator
@@ -0,0 +1,9 @@
+---
+# List of YADP Hosts
+
+- swarm:
+ cloud_name: x86_64-swarm
+ docker_url: tcp://swarm-manager:2375
+ max_containers: 4
+ docker_templates: !include docker_templates_amd64.yml
+
diff --git a/tests/ci-stack/jenkins_jobs.ini b/tests/ci-stack/jenkins_jobs.ini
new file mode 100644
index 00000000..2f6809f0
--- /dev/null
+++ b/tests/ci-stack/jenkins_jobs.ini
@@ -0,0 +1,11 @@
+[job_builder]
+ignore_cache=True
+keep_descriptions=False
+
+# Replace user/password values as appropriate
+# See API token section on http://localhost:8080/me/configure
+[jenkins]
+user=admin
+password=hunter2
+url=http://localhost:8080/
+
diff --git a/tests/ci-stack/shadow b/tests/ci-stack/shadow
new file mode 100644
index 00000000..0414d8b9
--- /dev/null
+++ b/tests/ci-stack/shadow
@@ -0,0 +1,2 @@
+buildslave:$6$iv8G3OY0$CWNxt7r7ZVSplot5cK1vxVdxu1wS1ed401HB63tufGV/84nyMVn.KCxMptWibjpkqoEXSitEmYJNAhISdhJeG1:18201:0:99999:7:::
+
diff --git a/tests/docker-test.sh b/tests/docker-test.sh
index d9403950..71e7f20c 100755
--- a/tests/docker-test.sh
+++ b/tests/docker-test.sh
@@ -5,75 +5,139 @@ start_docker() {
group=$2
ansible-playbook -u root -v --extra-vars "docker_hostname=$hostname docker_groupname=$group" \
./tests/docker-test.yml
-
+ event-watcher.py -n -o
}
-snakeoil="
- ssl_cert=/etc/ssl/certs/ssl-cert-snakeoil.pem
- ssl_key=/etc/ssl/private/ssl-cert-snakeoil.key
- ssl_ca=/etc/ssl/certs/ssl-cert-snakeoil.pem"
+start_docker_compose() {
+ cd $CI_DATA
+ docker-compose up -d
+}
jenkins_master()
{
- start_docker ci.linaro.org jenkins_master
+ TARGET=${1:-ci.linaro.org}
+
+ start_docker $TARGET jenkins_master
ansible-playbook --skip-tags="nfs,ssh-ldap,letsencrypt,vpn" \
- --extra-vars "$snakeoil" \
-i docker_hosts \
./jenkins-master.yml
}
gerrit()
{
- start_docker review.linaro.org gerrit
- ansible-playbook --skip-tags="imapd" \
- --extra-vars "$snakeoil" \
+ TARGET=${1:-review.linaro.org}
+
+ start_docker $TARGET gerrit
+ ansible-playbook -vvv --skip-tags="imapd" \
+ -l $TARGET \
-i docker_hosts \
./gerrit.yml
}
ssh_ldap()
{
- start_docker mmwg-hackbox.linaro.org ssh-ldap
+ TARGET=${1:-mmwg-hackbox.linaro.org}
+
+ start_docker $TARGET ssh-ldap
ansible-playbook \
-i docker_hosts \
./ssh-ldap.yml
}
-git()
+start_git()
{
- start_docker git-ap.linaro.org git
+ TARGET=${1:-git-ap.linaro.org}
+
+ start_docker $TARGET git
ansible-playbook \
- --extra-vars "$snakeoil" \
-i docker_hosts \
./git.yml
}
-obs_server()
+tf_ci_stack()
{
- start_docker obs-server-cn1.linaro.cloud none
- ansible-playbook --skip-tags="letsencrypt" \
- --extra-vars "$snakeoil" \
- -i docker_hosts \
- -l obs-server-cn1.linaro.cloud \
- ./obs-cn1.yml
+ export CI_DATA="$(dirname $(readlink -f $0))/tf-ci-stack/"
+ if [ ! -e $CI_DATA/swarm.txt ]
+ then
+ # This assumes docker on local machine has TCP open at port 2376
+ # Add as many docker hosts as you have in your home network
+ echo 10.50.0.1:2376 >> $CI_DATA/swarm.txt
+ fi
+ start_docker_compose
+ echo FIXME sleeping till jenkins is ready
+ sleep 90
+ (
+ mkdir -p $CI_DATA/work
+ cd $CI_DATA/work
+ [ -e ci-yadp-builder ] || git clone https://git.linaro.org/infrastructure/ci-yadp-builder.git
+ ( cd ci-yadp-builder;
+ # only deploy swarm
+ cp ../../hosts-simulator .
+ # replace rsa auth with user/password
+ cp ../../docker_vol_x86_64.txt docker_vol_x86_64.yml
+ cp ../../shadow /tmp
+ python3 ./yadp_builder.py --server http://localhost:8080 -i hosts-simulator -u admin -p hunter2 )
+ [ -e configs ] || git clone https://git.linaro.org/ci/job/configs.git
+ ( cd configs;
+ cp ../../jenkins_jobs.ini .
+ jenkins-jobs --conf jenkins_jobs.ini update swarm-demo.yaml
+ )
+ )
+
+
+}
+
+ci_stack()
+{
+ export CI_DATA="$(dirname $(readlink -f $0))/ci-stack/"
+ if [ ! -e $CI_DATA/swarm.txt ]
+ then
+ # This assumes docker on local machine has TCP open at port 2376
+ # Add as many docker hosts as you have in your home network
+ echo 10.50.0.1:2376 >> $CI_DATA/swarm.txt
+ fi
+ start_docker_compose
+ echo FIXME sleeping till jenkins is ready
+ sleep 90
+ (
+ mkdir -p $CI_DATA/work
+ cd $CI_DATA/work
+ [ -e ci-yadp-builder ] || git clone https://git.linaro.org/infrastructure/ci-yadp-builder.git
+ ( cd ci-yadp-builder;
+ # only deploy swarm
+ cp ../../hosts-simulator .
+ # replace rsa auth with user/password
+ cp ../../docker_vol_x86_64.txt docker_vol_x86_64.yml
+ cp ../../shadow /tmp
+ python3 ./yadp_builder.py --server http://localhost:8080 -i hosts-simulator -u admin -p hunter2 )
+ [ -e configs ] || git clone https://git.linaro.org/ci/job/configs.git
+ ( cd configs;
+ cp ../../jenkins_jobs.ini .
+ jenkins-jobs --conf jenkins_jobs.ini update swarm-demo.yaml
+ )
+ )
+
}
case $1 in
+ tf-ci-stack)
+ tf_ci_stack
+ ;;
+ ci-stack)
+ ci_stack
+ ;;
jenkins-master)
- jenkins_master
+ jenkins_master $2
;;
gerrit)
- gerrit
+ gerrit $2
;;
git)
- git
+ start_git $2
;;
ssh-ldap)
- ssh_ldap
- ;;
- obs-server)
- obs_server
+ ssh_ldap $2
;;
*)
echo usage $0 service-to-test
diff --git a/tests/tf-ci-stack/docker-compose.yml b/tests/tf-ci-stack/docker-compose.yml
new file mode 100644
index 00000000..ff0bdd6f
--- /dev/null
+++ b/tests/tf-ci-stack/docker-compose.yml
@@ -0,0 +1,110 @@
+version: '3'
+services:
+ ci.trustedfirmware.org:
+ image: 'trustedfirmware/ci-x86_64-jenkins-master-debian:lts'
+ container_name: ci.trustedfirmware.org
+ environment:
+ JAVA_OPTS: "-Djava.awt.headless=true -Dhudson.slaves.WorkspaceList='_' -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=30 -Dorg.eclipse.jetty.server.Request.maxFormContentSize=1000000 -Djenkins.install.runSetupWizard=false"
+ ANSIBLE_GROUP: jenkins_master
+ JENKINS_GROOVY: |
+ #!groovy \n
+
+ import jenkins.model.* \n
+ import hudson.security.* \n
+ import jenkins.install.InstallState \n
+ import com.cloudbees.plugins.credentials.* \n
+ import com.cloudbees.plugins.credentials.domains.Domain \n
+ import com.cloudbees.plugins.credentials.impl.* \n
+ import hudson.util.Secret \n
+
+ def instance = Jenkins.getInstance() \n
+ println "--> creating local user 'admin'" \n
+
+ def hudsonRealm = new HudsonPrivateSecurityRealm(false) \n
+ hudsonRealm.createAccount('admin','hunter2') \n
+ instance.setSecurityRealm(hudsonRealm) \n
+
+ def strategy = new FullControlOnceLoggedInAuthorizationStrategy() \n
+ instance.setAuthorizationStrategy(strategy) \n
+ instance.setCrumbIssuer(null) \n
+
+ if (!instance.installState.isSetupComplete()) { \n
+ InstallState.INITIAL_SETUP_COMPLETED.initializeState() \n
+ } \n
+
+ def jenkinsKeyUsernameWithPasswordParameters = [ \n
+ description: 'Docker access password', \n
+ id: '88434794-118e-40e4-9cd9-be1ae5d70eec', \n
+ secret: 'hunter2', \n
+ userName: 'buildslave' \n
+ ] \n
+
+ def domain = Domain.global() \n
+ def store = instance.getExtensionList('com.cloudbees.plugins.credentials.SystemCredentialsProvider')[0].getStore() \n
+ def jenkinsKeyUsernameWithPassword = new UsernamePasswordCredentialsImpl( \n
+ CredentialsScope.GLOBAL, \n
+ jenkinsKeyUsernameWithPasswordParameters.id, \n
+ jenkinsKeyUsernameWithPasswordParameters.description, \n
+ jenkinsKeyUsernameWithPasswordParameters.userName, \n
+ jenkinsKeyUsernameWithPasswordParameters.secret \n
+ ) \n
+ store.addCredentials(domain, jenkinsKeyUsernameWithPassword) \n
+
+ instance.save()
+ \n
+ command:
+ /bin/sh -c "mkdir -p /var/jenkins_home/init.groovy.d; echo $$JENKINS_GROOVY > /var/jenkins_home/init.groovy.d/skip-firstwizard.groovy; /usr/bin/tini -- /usr/local/bin/jenkins.sh"
+ logging:
+ driver: journald
+ ports:
+ - "2222:2222"
+ - "2233:2233"
+ - "8080:8080"
+ - "50000:50000"
+ networks:
+ jenkins_net:
+ volumes:
+ - jenkins-home:/var/jenkins_home
+ review.trustedfirmware.org:
+ image: 'gerritcodereview/gerrit:3.0.2'
+ container_name: review.trustedfirmware.org
+ environment:
+ ANSIBLE_GROUP: gerrit
+ logging:
+ driver: journald
+ ports:
+ - "29418:29418"
+ - "8081:8080"
+ volumes:
+ - etc-volume:/var/gerrit/etc
+ - git-volume:/var/gerrit/git
+ - db-volume:/var/gerrit/db
+ - index-volume:/var/gerrit/index
+ - cache-volume:/var/gerrit/cache
+ networks:
+ jenkins_net:
+ swarm-manager:
+ image: swarm
+ container_name: swarm-manager
+ ports:
+ - 2375:2375
+ entrypoint: /swarm manage file://etc/swarm.txt
+ volumes:
+ - "${CI_DATA}/swarm.txt:/etc/swarm.txt:ro"
+ networks:
+ jenkins_net:
+
+networks:
+ jenkins_net:
+ driver: bridge
+ ipam:
+ config:
+ - subnet: 10.50.0.0/24
+
+volumes:
+ etc-volume:
+ git-volume:
+ db-volume:
+ index-volume:
+ cache-volume:
+ jenkins-home:
diff --git a/tests/tf-ci-stack/docker_vol_x86_64.txt b/tests/tf-ci-stack/docker_vol_x86_64.txt
new file mode 100644
index 00000000..52acb835
--- /dev/null
+++ b/tests/tf-ci-stack/docker_vol_x86_64.txt
@@ -0,0 +1,2 @@
+'/tmp/shadow:/etc/shadow:ro'
+
diff --git a/tests/tf-ci-stack/hosts-simulator b/tests/tf-ci-stack/hosts-simulator
new file mode 100644
index 00000000..ca27302f
--- /dev/null
+++ b/tests/tf-ci-stack/hosts-simulator
@@ -0,0 +1,9 @@
+---
+# List of YADP Hosts
+
+- swarm:
+ cloud_name: x86_64-swarm
+ docker_url: tcp://swarm-manager:2375
+ max_containers: 4
+ docker_templates: !include docker_templates_amd64.yml
+
diff --git a/tests/tf-ci-stack/jenkins_jobs.ini b/tests/tf-ci-stack/jenkins_jobs.ini
new file mode 100644
index 00000000..2f6809f0
--- /dev/null
+++ b/tests/tf-ci-stack/jenkins_jobs.ini
@@ -0,0 +1,11 @@
+[job_builder]
+ignore_cache=True
+keep_descriptions=False
+
+# Replace user/password values as appropriate
+# See API token section on http://localhost:8080/me/configure
+[jenkins]
+user=admin
+password=hunter2
+url=http://localhost:8080/
+
diff --git a/tests/tf-ci-stack/shadow b/tests/tf-ci-stack/shadow
new file mode 100644
index 00000000..0414d8b9
--- /dev/null
+++ b/tests/tf-ci-stack/shadow
@@ -0,0 +1,2 @@
+buildslave:$6$iv8G3OY0$CWNxt7r7ZVSplot5cK1vxVdxu1wS1ed401HB63tufGV/84nyMVn.KCxMptWibjpkqoEXSitEmYJNAhISdhJeG1:18201:0:99999:7:::
+
diff --git a/tests/tf-ci-stack/swarm.txt b/tests/tf-ci-stack/swarm.txt
new file mode 100644
index 00000000..f2a9aba9
--- /dev/null
+++ b/tests/tf-ci-stack/swarm.txt
@@ -0,0 +1 @@
+10.50.0.1:2376
diff --git a/weblogs.yml b/weblogs.yml
deleted file mode 100644
index f2aa8064..00000000
--- a/weblogs.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-# Deploy weblogs specific roles
----
-- name: Configure weblogs.linaro.org
- hosts: weblogs
- gather_facts: no
- become: yes
- vars:
- - deploy_dir: /srv/weblogs
- - web_dir: /srv/weblogs.linaro.org/restricted/
- - owner: weblogs
- - owner_group: primary
- vars_files:
- - ["{{secrets_dir}}/host_vars/{{inventory_hostname}}"]
- roles:
- - role: weblogs
- - {role: apache-site, src: "{{inventory_hostname}}.conf", config: "{{inventory_hostname}}", tags: [apache] }
- - {role: apache-auth, host_name: "{{inventory_hostname}}", tags: [apache-auth]}
- # we install django per publishing server to fill in ip2location data in their DBs.
- # hostname gets (mis)-used here to differentiate between the hosts that we track
- # downloads for.
- - {role: django, hostname: "llp-releases", django_local_settings: "templates/weblogs/releases_settings.py", tags: [django]}