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