From b53c1918c9a20f2921497c8a938bf63a5fbbc200 Mon Sep 17 00:00:00 2001 From: Sheppy Date: Wed, 11 Jan 2023 02:20:00 +0100 Subject: [PATCH] feat: more syslog/telegraf stuff --- group_vars/all.yaml | 1 + roles/global-handlers/handlers/main.yml | 4 ++ roles/monitoring-master/files/influxdb.key | 52 +++++++++++++++++++ roles/monitoring-master/files/influxdb.list | 1 + roles/monitoring-master/handlers/main.yml | 5 ++ roles/monitoring-master/meta/main.yml | 2 + roles/monitoring-master/tasks/logs.yaml | 31 +++++++++++ roles/monitoring-master/tasks/main.yaml | 7 +++ .../templates/telegraf_influx_db_setup.txt | 3 ++ .../templates/telegraf_influxdb.conf | 4 ++ .../templates/telegraf_rsyslog_input.conf | 2 + roles/rsyslog/templates/rsyslog.conf.j2 | 2 + 12 files changed, 114 insertions(+) create mode 100644 roles/monitoring-master/files/influxdb.key create mode 100644 roles/monitoring-master/files/influxdb.list create mode 100644 roles/monitoring-master/meta/main.yml create mode 100644 roles/monitoring-master/tasks/logs.yaml create mode 100644 roles/monitoring-master/templates/telegraf_influx_db_setup.txt create mode 100644 roles/monitoring-master/templates/telegraf_influxdb.conf create mode 100644 roles/monitoring-master/templates/telegraf_rsyslog_input.conf diff --git a/group_vars/all.yaml b/group_vars/all.yaml index 83ff678..9b13bc2 100644 --- a/group_vars/all.yaml +++ b/group_vars/all.yaml @@ -3,6 +3,7 @@ checks: nsca_server: 192.168.122.107 nsca_password: HISTORY_PURGED_SECRET RSYSLOG_SERVER: internal.monitoring.atlantishq.de +influxdb_telegraf_password: HISTORY_PURGED_SECRET # overwritten in monitoring master group var monitoring_master: false diff --git a/roles/global-handlers/handlers/main.yml b/roles/global-handlers/handlers/main.yml index dd96e4e..69ed780 100644 --- a/roles/global-handlers/handlers/main.yml +++ b/roles/global-handlers/handlers/main.yml @@ -38,3 +38,7 @@ - name: daemon reload systemd: daemon-reload: yes + +- name: apt update + apt: + update_cache: yes diff --git a/roles/monitoring-master/files/influxdb.key b/roles/monitoring-master/files/influxdb.key new file mode 100644 index 0000000..c97d593 --- /dev/null +++ b/roles/monitoring-master/files/influxdb.key @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +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 +vqIHrEqk446nGPDqJPS5 +=9iF7 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/roles/monitoring-master/files/influxdb.list b/roles/monitoring-master/files/influxdb.list new file mode 100644 index 0000000..5765aac --- /dev/null +++ b/roles/monitoring-master/files/influxdb.list @@ -0,0 +1 @@ +deb https://repos.influxdata.com/debian bullseye stable diff --git a/roles/monitoring-master/handlers/main.yml b/roles/monitoring-master/handlers/main.yml index ca3b42d..1b634fe 100644 --- a/roles/monitoring-master/handlers/main.yml +++ b/roles/monitoring-master/handlers/main.yml @@ -9,3 +9,8 @@ state: restarted enabled: yes daemon_reload: yes + +- name: restart telegraf + systemd: + name: telegraf + state: restarted diff --git a/roles/monitoring-master/meta/main.yml b/roles/monitoring-master/meta/main.yml new file mode 100644 index 0000000..c808c92 --- /dev/null +++ b/roles/monitoring-master/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - global-handlers diff --git a/roles/monitoring-master/tasks/logs.yaml b/roles/monitoring-master/tasks/logs.yaml new file mode 100644 index 0000000..63ca817 --- /dev/null +++ b/roles/monitoring-master/tasks/logs.yaml @@ -0,0 +1,31 @@ +- name: Copy telegraf-key + copy: + src: influxdb.key + dest: /etc/apt/trusted.gpg.d/influxdb.asc + mode: 0644 + notify: + apt update + +- name: Add Influx repo + copy: + src: influxdb.list + dest: /etc/apt/sources.list.d/influxdb.list + mode: 0644 + notify: + apt update + +- meta: flush_handlers + +- name: Install Telegraf + apt: + pkg: + - telegraf + +- name: Copy telegraf config files + template: + src: "{{ item }}" + dest: /etc/telegraf/telegraf.d/ + with_items: + - telegraf_influxdb.conf + - telegraf_rsyslog_input.conf + notify: restart telegraf diff --git a/roles/monitoring-master/tasks/main.yaml b/roles/monitoring-master/tasks/main.yaml index 92af6cb..f5817e7 100644 --- a/roles/monitoring-master/tasks/main.yaml +++ b/roles/monitoring-master/tasks/main.yaml @@ -11,3 +11,10 @@ tags: - grafana - monitoring-master + +- name: logs.yaml + include: logs.yaml + when: monitoring_master + tags: + - grafana + - monitoring-master diff --git a/roles/monitoring-master/templates/telegraf_influx_db_setup.txt b/roles/monitoring-master/templates/telegraf_influx_db_setup.txt new file mode 100644 index 0000000..b08df0f --- /dev/null +++ b/roles/monitoring-master/templates/telegraf_influx_db_setup.txt @@ -0,0 +1,3 @@ +CREATE USER telegraf WITH PASSWORD {{ influxdb_telegraf_password }} WITH ALL PRIVILEGES +CREATE DATABASE telegraf +CREATE RETENTION POLICY "4Weeks" ON "telegraf" DURATION 4w REPLICATION 1 DEFAULT diff --git a/roles/monitoring-master/templates/telegraf_influxdb.conf b/roles/monitoring-master/templates/telegraf_influxdb.conf new file mode 100644 index 0000000..fbb4f1a --- /dev/null +++ b/roles/monitoring-master/templates/telegraf_influxdb.conf @@ -0,0 +1,4 @@ +[[outputs.influxdb]] + database = "telegraf" + username = "telegraf" + password = "{{ influxdb_telegraf_password }}" diff --git a/roles/monitoring-master/templates/telegraf_rsyslog_input.conf b/roles/monitoring-master/templates/telegraf_rsyslog_input.conf new file mode 100644 index 0000000..ba9d63e --- /dev/null +++ b/roles/monitoring-master/templates/telegraf_rsyslog_input.conf @@ -0,0 +1,2 @@ +[[inputs.syslog]] + server = "tcp://localhost:6514" diff --git a/roles/rsyslog/templates/rsyslog.conf.j2 b/roles/rsyslog/templates/rsyslog.conf.j2 index bd9e1c5..6e5bc62 100644 --- a/roles/rsyslog/templates/rsyslog.conf.j2 +++ b/roles/rsyslog/templates/rsyslog.conf.j2 @@ -90,7 +90,9 @@ mail.err /var/log/mail.err {% if monitoring_master %} $CreateDirs on $template RemoteLogs,"/var/log/rsyslog/%HOSTNAME%/%PROGRAMNAME%.log" + *.* ?RemoteLogs +*.* @@(o)127.0.0.1:6514;RSYSLOG_SyslogProtocol23Format {% else %} *.* @@{{ RSYSLOG_SERVER }}:514 {% endif %}