configure telegraf
This commit is contained in:
18
compose.telegraf.yaml
Normal file
18
compose.telegraf.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
services:
|
||||||
|
telegraf:
|
||||||
|
container_name: telegraf
|
||||||
|
image: telegraf:1.36.2
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- TELEGRAF_DEBUG=true
|
||||||
|
- MQTT_USER=${TELEGRAF_MQTT_USER}
|
||||||
|
- MQTT_PASS=${TELEGRAF_MQTT_PASS}
|
||||||
|
- DATABASE_HOST=${TELEGRAF_DATABASE_HOST}
|
||||||
|
- DATABASE_PORT=${TELEGRAF_DATABASE_PORT}
|
||||||
|
- DATABASE_USER=${TELEGRAF_DATABASE_USER}
|
||||||
|
- DATABASE_PASS=${TELEGRAF_DATABASE_PASS}
|
||||||
|
- DATABASE_NAME=${TELEGRAF_DATABASE_NAME}
|
||||||
|
extra_hosts:
|
||||||
|
- host:192.168.2.200
|
||||||
|
volumes:
|
||||||
|
- /opt/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
|
||||||
133
telegraf/telegraf.conf
Normal file
133
telegraf/telegraf.conf
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
###############################################################################
|
||||||
|
# GENERAL
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
[agent]
|
||||||
|
## Global collection frequency
|
||||||
|
interval = "30s"
|
||||||
|
## How often to flush data to outputs
|
||||||
|
flush_interval = "30s"
|
||||||
|
## Random jitter to avoid all agents syncing at once
|
||||||
|
collection_jitter = "2s"
|
||||||
|
flush_jitter = "2s"
|
||||||
|
## Precision of timestamps
|
||||||
|
precision = "1s"
|
||||||
|
## Enable for more verbose logging
|
||||||
|
# debug = true
|
||||||
|
## If true, processors do not run again after aggregators. Default is false.
|
||||||
|
skip_processors_after_aggregators=true
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# SYSTEM
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# CPU usage (user, system, idle)
|
||||||
|
# [[inputs.cpu]]
|
||||||
|
# percpu = false
|
||||||
|
# totalcpu = true
|
||||||
|
# fielddrop = ["usage_nice", "usage_iowait", "usage_irq", "usage_softirq", "usage_steal", "usage_guest", "usage_guest_nice"]
|
||||||
|
# interval = "30s"
|
||||||
|
|
||||||
|
# Memory (used, free)
|
||||||
|
# [[inputs.mem]]
|
||||||
|
# fieldpass = ["used", "free", "used_percent"]
|
||||||
|
# interval = "30s"
|
||||||
|
|
||||||
|
# Swap (used, free)
|
||||||
|
# [[inputs.swap]]
|
||||||
|
# fieldpass = ["used", "free", "used_percent"]
|
||||||
|
# interval = "30s"
|
||||||
|
|
||||||
|
# Disk usage (like df)
|
||||||
|
# [[inputs.disk]]
|
||||||
|
# mount_points = ["/media/docker"]
|
||||||
|
# fieldpass = ["used", "free", "used_percent"]
|
||||||
|
# ignore_fs = ["tmpfs", "devtmpfs"]
|
||||||
|
# interval = "30s"
|
||||||
|
|
||||||
|
# Disk I/O
|
||||||
|
# [[inputs.diskio]]
|
||||||
|
# devices = ["sda", "sdb", "nvme0n1"]
|
||||||
|
# fieldpass = ["reads", "writes", "read_bytes", "write_bytes"]
|
||||||
|
# interval = "30s"
|
||||||
|
|
||||||
|
# Load and uptime
|
||||||
|
# [[inputs.system]]
|
||||||
|
# fieldpass = ["load1", "load5", "load15", "uptime"]
|
||||||
|
# interval = "1m"
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# MQTT
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
[[inputs.mqtt_consumer]]
|
||||||
|
servers = ["tcp://host:1883"]
|
||||||
|
username = "${MQTT_USER}"
|
||||||
|
password = "${MQTT_PASS}"
|
||||||
|
topics = ["borgmatic/stats/#"]
|
||||||
|
data_format = "json"
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# DATABASE
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
[[inputs.postgresql_extensible]]
|
||||||
|
address = "host=${DATABASE_HOST} port=${DATABASE_PORT} user=${DATABASE_USER} password=${DATABASE_PASS} dbname=${DATABASE_NAME} sslmode=disable"
|
||||||
|
interval = "1m"
|
||||||
|
|
||||||
|
[[inputs.postgresql_extensible.query]]
|
||||||
|
sqlquery = """
|
||||||
|
SELECT
|
||||||
|
datname,
|
||||||
|
pg_database_size(datname) AS size_bytes
|
||||||
|
FROM pg_database WHERE datname NOT IN ('template0', 'template1')
|
||||||
|
"""
|
||||||
|
withdbname = false
|
||||||
|
measurement = "postgresql_database_size"
|
||||||
|
|
||||||
|
[[inputs.postgresql_extensible.query]]
|
||||||
|
sqlquery = """
|
||||||
|
SELECT
|
||||||
|
schemaname AS schema_name,
|
||||||
|
tablename AS table_name,
|
||||||
|
pg_total_relation_size(schemaname || '.' || tablename) AS size_bytes
|
||||||
|
FROM pg_tables
|
||||||
|
WHERE schemaname NOT IN ('pg_catalog', 'information_schema') AND schemaname NOT like '_timescaledb_%'
|
||||||
|
"""
|
||||||
|
withdbname = true
|
||||||
|
measurement = "postgresql_table_size"
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OUTPUTS
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
[[outputs.sql]]
|
||||||
|
driver = "pgx"
|
||||||
|
data_source_name = "host=${DATABASE_HOST} port=${DATABASE_PORT} user=${DATABASE_USER} password=${DATABASE_PASS} dbname=${DATABASE_NAME} sslmode=disable"
|
||||||
|
|
||||||
|
# Only include specific measurements
|
||||||
|
# include_metrics = ["cpu", "mem", "swap", "disk", "diskio", "system"]
|
||||||
|
|
||||||
|
[outputs.sql.convert]
|
||||||
|
conversion_style = "literal"
|
||||||
|
integer = "BIGINT"
|
||||||
|
real = "DOUBLE PRECISION"
|
||||||
|
text = "TEXT"
|
||||||
|
timestamp = "TIMESTAMPTZ"
|
||||||
|
defaultvalue = "TEXT"
|
||||||
|
bool = "BOOLEAN"
|
||||||
|
unsigned = "BIGINT"
|
||||||
|
|
||||||
|
[[outputs.loki]]
|
||||||
|
domain = "http://host:3100"
|
||||||
|
timeout = "10s"
|
||||||
|
|
||||||
|
[[outputs.mqtt]]
|
||||||
|
servers = ["tcp://host:1883"]
|
||||||
|
username = "${MQTT_USER}"
|
||||||
|
password = "${MQTT_PASS}"
|
||||||
|
topic = "telegraf/metrics"
|
||||||
|
qos = 0
|
||||||
|
retain = false
|
||||||
|
client_id = "telegraf"
|
||||||
|
data_format = "json"
|
||||||
Reference in New Issue
Block a user