summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKelley Spoon <kelley.spoon@linaro.org>2018-12-10 07:48:50 -0600
committerKelley Spoon <kelley.spoon@linaro.org>2018-12-13 12:19:30 +0000
commit50c1b2ae515a004e7a808de882f0256099b33497 (patch)
treeb81e51d89870bee969d9ee1c0c844f5d704bc170
parent3b6793ddfeac8142ffb0deb4344dd6ef2f4996de (diff)
MetricBeat: create initial play for metricbeat
This change creates the initial support for installing metricbeat on our servers. Change-Id: I8292691ae17e1f34a17a5e7544406daff0ea309f Reviewed-on: https://review.linaro.org/29393 Reviewed-by: Kelley Spoon <kelley.spoon@linaro.org>
-rw-r--r--hosts3
-rw-r--r--metricbeat.yml7
-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
6 files changed, 89 insertions, 0 deletions
diff --git a/hosts b/hosts
index 9e715865..969dcf18 100644
--- a/hosts
+++ b/hosts
@@ -64,6 +64,9 @@ android-git-ap.linaro.org
android-git-ie.linaro.org
dev-private-git.linaro.org
+[metricbeat:children]
+filebeat
+
[elk]
elk.linaro.org
diff --git a/metricbeat.yml b/metricbeat.yml
new file mode 100644
index 00000000..98f4e255
--- /dev/null
+++ b/metricbeat.yml
@@ -0,0 +1,7 @@
+---
+- name: Configure metricbeat
+ hosts: metricbeat
+ gather_facts: no
+ become: yes
+ roles:
+ - role: metricbeat
diff --git a/roles/metricbeat/defaults/main.yml b/roles/metricbeat/defaults/main.yml
new file mode 100644
index 00000000..8d561f1a
--- /dev/null
+++ b/roles/metricbeat/defaults/main.yml
@@ -0,0 +1,40 @@
+---
+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
new file mode 100644
index 00000000..23588977
--- /dev/null
+++ b/roles/metricbeat/handlers/main.yml
@@ -0,0 +1,3 @@
+---
+- name: restart-metricbeat
+ service: name=metricbeat state=restarted
diff --git a/roles/metricbeat/tasks/main.yml b/roles/metricbeat/tasks/main.yml
new file mode 100644
index 00000000..f211409a
--- /dev/null
+++ b/roles/metricbeat/tasks/main.yml
@@ -0,0 +1,35 @@
+---
+- 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
new file mode 100644
index 00000000..5e56e0c9
--- /dev/null
+++ b/roles/metricbeat/templates/metricbeat.yml.j2
@@ -0,0 +1 @@
+{{metricbeat_config}}