Add telegraf to ansible
This commit is contained in:
parent
565509a5a9
commit
90064091ea
8 changed files with 81 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -14,6 +14,7 @@ diagram_assets/
|
||||||
/gitea-runner/
|
/gitea-runner/
|
||||||
/homebox/
|
/homebox/
|
||||||
/influxdb/
|
/influxdb/
|
||||||
|
/telegraf/
|
||||||
/umami/
|
/umami/
|
||||||
/uptime-kuma/
|
/uptime-kuma/
|
||||||
/watchtower/
|
/watchtower/
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
- forgejo-runner
|
- forgejo-runner
|
||||||
- homebox
|
- homebox
|
||||||
- influxdb
|
- influxdb
|
||||||
|
- telegraf
|
||||||
- umami
|
- umami
|
||||||
- uptime-kuma
|
- uptime-kuma
|
||||||
- watchtower
|
- watchtower
|
||||||
|
|
|
@ -62,7 +62,7 @@ svc_env:
|
||||||
FORGEJO__oauth2__JWT_SECRET: "{{ vault_forgejo. oauth2_jwt_secret}}"
|
FORGEJO__oauth2__JWT_SECRET: "{{ vault_forgejo. oauth2_jwt_secret}}"
|
||||||
|
|
||||||
FORGEJO__metrics__ENABLED: true
|
FORGEJO__metrics__ENABLED: true
|
||||||
FORGEJO__metrics__TOKEN: "{{ vault_forgejo.metrics_token }}"
|
FORGEJO__metrics__TOKEN: "{{ vault_metrics_token }}"
|
||||||
|
|
||||||
FORGEJO__actions__ENABLED: true
|
FORGEJO__actions__ENABLED: true
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ svc_yml:
|
||||||
|
|
||||||
compose:
|
compose:
|
||||||
watchtower: false
|
watchtower: false
|
||||||
image: influxdb
|
image: influxdb:2
|
||||||
volumes:
|
volumes:
|
||||||
- ./influxdb.yml:/etc/influxdb2/config.yml
|
- ./influxdb.yml:/etc/influxdb2/config.yml
|
||||||
- data:{{ svc.data_dir }}
|
- data:{{ svc.data_dir }}
|
||||||
|
|
16
_ansible/roles/telegraf/tasks/main.yml
Normal file
16
_ansible/roles/telegraf/tasks/main.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
- name: Deploy {{ svc.name }}
|
||||||
|
tags:
|
||||||
|
- telegraf
|
||||||
|
- monitoring
|
||||||
|
block:
|
||||||
|
- import_tasks: steps/create-service-directory.yml
|
||||||
|
- import_tasks: steps/template-docker-compose.yml
|
||||||
|
|
||||||
|
- name: Template config
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: telegraf.conf.j2
|
||||||
|
dest: "{{ (service_path, 'telegraf.conf') | path_join }}"
|
||||||
|
mode: "0664"
|
||||||
|
|
||||||
|
- import_tasks: steps/start-service.yml
|
32
_ansible/roles/telegraf/templates/telegraf.conf.j2
Normal file
32
_ansible/roles/telegraf/templates/telegraf.conf.j2
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
[agent]
|
||||||
|
interval = "60s"
|
||||||
|
round_interval = true
|
||||||
|
metric_batch_size = 1000
|
||||||
|
metric_buffer_limit = 10000
|
||||||
|
collection_jitter = "0s"
|
||||||
|
flush_interval = "10s"
|
||||||
|
flush_jitter = "0s"
|
||||||
|
precision = ""
|
||||||
|
hostname = "node002.serguzim.me"
|
||||||
|
omit_hostname = false
|
||||||
|
|
||||||
|
[[outputs.influxdb_v2]]
|
||||||
|
urls = ["{{ svc.influxdb.url }}"]
|
||||||
|
token = "{{ svc.influxdb.token }}"
|
||||||
|
organization = "{{ svc.influxdb.organization }}"
|
||||||
|
bucket = "{{ svc.influxdb.bucket }}"
|
||||||
|
|
||||||
|
[[inputs.prometheus]]
|
||||||
|
urls = [
|
||||||
|
{%- for url in svc.prometheus.urls -%}
|
||||||
|
"{{ url }}",
|
||||||
|
{%- endfor -%}
|
||||||
|
]
|
||||||
|
|
||||||
|
bearer_token_string = "{{ svc.prometheus.bearer_token }}"
|
||||||
|
|
||||||
|
[[inputs.postgresql]]
|
||||||
|
address = "postgres://{{ svc.postgresql.user }}:{{ svc.postgresql.pass }}@{{ svc.postgresql.host }}:{{ svc.postgresql.port }}/{{ svc.postgresql.database }}?sslmode=verify-full"
|
||||||
|
ignored_databases = ["postgres", "template0", "template1"]
|
||||||
|
prepared_statements = true
|
||||||
|
|
28
_ansible/roles/telegraf/vars/main.yml
Normal file
28
_ansible/roles/telegraf/vars/main.yml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
svc:
|
||||||
|
name: telegraf
|
||||||
|
influxdb:
|
||||||
|
url: "https://tick.serguzim.me"
|
||||||
|
token: "{{ vault_telegraf.influxdb_token }}"
|
||||||
|
organization: serguzim.net
|
||||||
|
bucket: metrics
|
||||||
|
prometheus:
|
||||||
|
urls:
|
||||||
|
- https://git.serguzim.me/metrics
|
||||||
|
- https://matrix.msrg.cc/_synapse/metrics
|
||||||
|
- https://tick.serguzim.me/metrics
|
||||||
|
bearer_token: "{{ vault_metrics_token }}"
|
||||||
|
postgresql:
|
||||||
|
user: "{{ vault_telegraf.db.user }}"
|
||||||
|
pass: "{{ vault_telegraf.db.pass }}"
|
||||||
|
host: "{{ postgres.host }}"
|
||||||
|
port: "{{ postgres.port }}"
|
||||||
|
database: "telegraf"
|
||||||
|
|
||||||
|
compose:
|
||||||
|
watchtower: false
|
||||||
|
image: telegraf:1.28
|
||||||
|
volumes:
|
||||||
|
- ./telegraf.conf:/etc/telegraf/telegraf.conf:ro
|
||||||
|
file:
|
||||||
|
volumes:
|
||||||
|
data:
|
|
@ -28,6 +28,7 @@ check_url ()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_url "acme.serguzim.me" "/health"
|
||||||
check_url "analytics.serguzim.me"
|
check_url "analytics.serguzim.me"
|
||||||
check_url "auth.serguzim.me"
|
check_url "auth.serguzim.me"
|
||||||
check_url "ci.serguzim.me"
|
check_url "ci.serguzim.me"
|
||||||
|
|
Reference in a new issue