From 01adf37d9c0edee65e18411983edc161a22968eb Mon Sep 17 00:00:00 2001 From: Darks Date: Thu, 10 Sep 2020 22:34:14 +0200 Subject: [PATCH] Added telegraf role --- all.yml | 1 + roles/telegraf/files/telegraf.conf | 11 ++++++ .../telegraf/files/telegraf.d/inputs_cpu.conf | 5 +++ .../files/telegraf.d/inputs_disk.conf | 3 ++ .../files/telegraf.d/inputs_diskio.conf | 4 ++ .../files/telegraf.d/inputs_memory.conf | 3 ++ .../telegraf/files/telegraf.d/inputs_net.conf | 4 ++ .../files/telegraf.d/inputs_nginx.conf | 3 ++ .../files/telegraf.d/inputs_swap.conf | 3 ++ .../files/telegraf.d/inputs_system.conf | 3 ++ .../files/telegraf.d/inputs_systemd.conf | 3 ++ roles/telegraf/tasks/main.yml | 37 +++++++++++++++++++ roles/telegraf/templates/outputs.conf | 7 ++++ 13 files changed, 87 insertions(+) create mode 100644 roles/telegraf/files/telegraf.conf create mode 100644 roles/telegraf/files/telegraf.d/inputs_cpu.conf create mode 100644 roles/telegraf/files/telegraf.d/inputs_disk.conf create mode 100644 roles/telegraf/files/telegraf.d/inputs_diskio.conf create mode 100644 roles/telegraf/files/telegraf.d/inputs_memory.conf create mode 100644 roles/telegraf/files/telegraf.d/inputs_net.conf create mode 100644 roles/telegraf/files/telegraf.d/inputs_nginx.conf create mode 100644 roles/telegraf/files/telegraf.d/inputs_swap.conf create mode 100644 roles/telegraf/files/telegraf.d/inputs_system.conf create mode 100644 roles/telegraf/files/telegraf.d/inputs_systemd.conf create mode 100644 roles/telegraf/tasks/main.yml create mode 100644 roles/telegraf/templates/outputs.conf diff --git a/all.yml b/all.yml index 13ef194..057b864 100644 --- a/all.yml +++ b/all.yml @@ -10,4 +10,5 @@ - iptables - nginx - ssh + - telegraf - uwsgi diff --git a/roles/telegraf/files/telegraf.conf b/roles/telegraf/files/telegraf.conf new file mode 100644 index 0000000..f6017ea --- /dev/null +++ b/roles/telegraf/files/telegraf.conf @@ -0,0 +1,11 @@ +[tags] + +# Configuration for telegraf agent +[agent] + debug = false + flush_buffer_when_full = true + flush_interval = "15s" + flush_jitter = "0s" + hostname = "planet-casio.com" + interval = "15s" + round_interval = true diff --git a/roles/telegraf/files/telegraf.d/inputs_cpu.conf b/roles/telegraf/files/telegraf.d/inputs_cpu.conf new file mode 100644 index 0000000..e697ffc --- /dev/null +++ b/roles/telegraf/files/telegraf.d/inputs_cpu.conf @@ -0,0 +1,5 @@ +# Read metrics about CPU usage +[[inputs.cpu]] + percpu = false + totalcpu = true + fieldpass = [ "usage*" ] diff --git a/roles/telegraf/files/telegraf.d/inputs_disk.conf b/roles/telegraf/files/telegraf.d/inputs_disk.conf new file mode 100644 index 0000000..5c89765 --- /dev/null +++ b/roles/telegraf/files/telegraf.d/inputs_disk.conf @@ -0,0 +1,3 @@ +# Read metrics about disk usagee +[[inputs.disk]] + mount_points=["/"] diff --git a/roles/telegraf/files/telegraf.d/inputs_diskio.conf b/roles/telegraf/files/telegraf.d/inputs_diskio.conf new file mode 100644 index 0000000..6cdcc2b --- /dev/null +++ b/roles/telegraf/files/telegraf.d/inputs_diskio.conf @@ -0,0 +1,4 @@ +# Read metrics about diskio usage +[[inputs.diskio]] + devices = ["vda1"] + skip_serial_number = true diff --git a/roles/telegraf/files/telegraf.d/inputs_memory.conf b/roles/telegraf/files/telegraf.d/inputs_memory.conf new file mode 100644 index 0000000..2fa26d0 --- /dev/null +++ b/roles/telegraf/files/telegraf.d/inputs_memory.conf @@ -0,0 +1,3 @@ +# Read metrics about memory usage +[[inputs.mem]] + # no configuration diff --git a/roles/telegraf/files/telegraf.d/inputs_net.conf b/roles/telegraf/files/telegraf.d/inputs_net.conf new file mode 100644 index 0000000..239407f --- /dev/null +++ b/roles/telegraf/files/telegraf.d/inputs_net.conf @@ -0,0 +1,4 @@ +# Read metrics about network usage +[[inputs.net]] + interfaces = [ "eth0" ] + fielddrop = [ "icmp*", "ip*", "tcp*", "udp*" ] diff --git a/roles/telegraf/files/telegraf.d/inputs_nginx.conf b/roles/telegraf/files/telegraf.d/inputs_nginx.conf new file mode 100644 index 0000000..94919f2 --- /dev/null +++ b/roles/telegraf/files/telegraf.d/inputs_nginx.conf @@ -0,0 +1,3 @@ +# Read metrics about Nginx requests +[[inputs.nginx]] + urls = ["http://127.0.0.1:8080/nginx-status"] diff --git a/roles/telegraf/files/telegraf.d/inputs_swap.conf b/roles/telegraf/files/telegraf.d/inputs_swap.conf new file mode 100644 index 0000000..16c28fd --- /dev/null +++ b/roles/telegraf/files/telegraf.d/inputs_swap.conf @@ -0,0 +1,3 @@ +# Read metrics about swap memory usage +[[inputs.swap]] + # no configuration diff --git a/roles/telegraf/files/telegraf.d/inputs_system.conf b/roles/telegraf/files/telegraf.d/inputs_system.conf new file mode 100644 index 0000000..03f911c --- /dev/null +++ b/roles/telegraf/files/telegraf.d/inputs_system.conf @@ -0,0 +1,3 @@ +# Read metrics about system load & uptime +[[inputs.system]] + # no configuration diff --git a/roles/telegraf/files/telegraf.d/inputs_systemd.conf b/roles/telegraf/files/telegraf.d/inputs_systemd.conf new file mode 100644 index 0000000..5751352 --- /dev/null +++ b/roles/telegraf/files/telegraf.d/inputs_systemd.conf @@ -0,0 +1,3 @@ +# Read metrics about systemd services +[[inputs.systemd_units]] + # no configuration diff --git a/roles/telegraf/tasks/main.yml b/roles/telegraf/tasks/main.yml new file mode 100644 index 0000000..2611b95 --- /dev/null +++ b/roles/telegraf/tasks/main.yml @@ -0,0 +1,37 @@ +--- +- name: "Install telegraf" # Yeah I know, quite useless + pacman: + name: "telegraf" + state: present + +- name: "Make configuration structure" + file: + path: "/etc/telegraf/telegraf.d" + state: directory + +- name: "Copy main configuration" + file: + src: 'telegraf.conf' + dest: '/etc/telegraf/' + owner: 'telegraf' + mode: 0644 + +- name: "Copy telegraf.d files" + file: + src: '{{ item }}' + dest: '/etc/telegraf/telegraf.d/' + owner: 'telegraf' + mode: 0644 + with_fileglob: 'telegraf.d/*.conf' + +- name: "Copy outputs.conf with influxdb password" + template: + src: 'outputs.conf' + dest: '/etc/telegraf/telegraf.d/' + owner: 'telegraf' + mode: 0600 + +- name: "Reloading telegraf" + service: + name: "telegraf" + state: reloaded diff --git a/roles/telegraf/templates/outputs.conf b/roles/telegraf/templates/outputs.conf new file mode 100644 index 0000000..f6cf269 --- /dev/null +++ b/roles/telegraf/templates/outputs.conf @@ -0,0 +1,7 @@ +# Setup outputs +[[outputs.influxdb]] + database = "telegraf" + precision = "s" + urls = [ "http://127.0.0.1:8086" ] + username = "telegraf" + password = "{{ lookup('passwordstore', 'PCv5/telegraf_influxdb') }}"