103 lines
3.3 KiB
YAML
103 lines
3.3 KiB
YAML
---
|
|
{% set base_endpoint = (observability_endpoint | default('', true) | regex_replace('/+$', '') | regex_replace('/ingest/otlp.*$', '')) %}
|
|
{% set collector_is_local = observability_collector_is_local | default(false) | bool %}
|
|
{% set default_metrics_endpoint = 'http://127.0.0.1:' ~ (vmetrics_port | default(8428) | string) ~ '/api/v1/write' if collector_is_local else base_endpoint ~ '/ingest/metrics/api/v1/write' %}
|
|
{% set default_logs_endpoint = 'http://127.0.0.1:' ~ (vlogs_port | default(9428) | string) ~ '/insert' if collector_is_local else base_endpoint ~ '/ingest/logs/insert' %}
|
|
{% set metrics_endpoint = observability_metrics_endpoint | default(default_metrics_endpoint, true) %}
|
|
{% set logs_endpoint = observability_logs_endpoint | default(default_logs_endpoint, true) %}
|
|
data_dir: {{ vector_data }}
|
|
|
|
api:
|
|
enabled: true
|
|
|
|
sources:
|
|
internal_metrics:
|
|
type: internal_metrics
|
|
scrape_interval_secs: 15
|
|
|
|
node_exporter:
|
|
type: prometheus_scrape
|
|
endpoints:
|
|
- http://127.0.0.1:{{ node_exporter_port | default(9100) }}{{ exporter_metrics_path | default('/metrics') }}
|
|
scrape_interval_secs: 15
|
|
|
|
process_exporter:
|
|
type: prometheus_scrape
|
|
endpoints:
|
|
- http://127.0.0.1:{{ process_exporter_port | default(9256) }}/metrics
|
|
scrape_interval_secs: 15
|
|
|
|
journald:
|
|
type: journald
|
|
current_boot_only: true
|
|
|
|
syslog_files:
|
|
type: file
|
|
include:
|
|
- /var/log/syslog
|
|
- /var/log/messages
|
|
- /var/log/auth.log
|
|
read_from: end
|
|
|
|
transforms:
|
|
agent_metrics:
|
|
type: remap
|
|
inputs: ["node_exporter", "process_exporter"]
|
|
source: |
|
|
.tags.host = "{{ ansible_hostname | default(nodename | default(inventory_hostname)) }}"
|
|
.tags.ip = "{{ inventory_hostname }}"
|
|
.tags.ins = "{{ nodename | default(inventory_hostname) }}"
|
|
.tags.cls = "{{ node_cluster | default('nodes') }}"
|
|
.tags.job = "node"
|
|
.tags.origin = "vector-agent"
|
|
|
|
agent_logs:
|
|
type: remap
|
|
inputs: ["journald", "syslog_files"]
|
|
source: |
|
|
.host = "{{ ansible_hostname | default(nodename | default(inventory_hostname)) }}"
|
|
.ip = "{{ inventory_hostname }}"
|
|
.ins = "{{ nodename | default(inventory_hostname) }}"
|
|
.cls = "{{ node_cluster | default('nodes') }}"
|
|
.job = "node"
|
|
.origin = "vector-agent"
|
|
.timestamp = now()
|
|
|
|
sinks:
|
|
vector_metrics:
|
|
type: prometheus_exporter
|
|
inputs: ["internal_metrics"]
|
|
address: 0.0.0.0:{{ vector_port }}
|
|
default_namespace: vector
|
|
|
|
observability_metrics:
|
|
type: prometheus_remote_write
|
|
inputs: ["agent_metrics"]
|
|
endpoint: "{{ metrics_endpoint }}"
|
|
{% if observability_ingest_basic_auth_enabled | default(false) %}
|
|
auth:
|
|
strategy: basic
|
|
user: "{{ observability_ingest_basic_auth_user }}"
|
|
password: "{{ observability_ingest_basic_auth_password }}"
|
|
{% endif %}
|
|
compression: snappy
|
|
healthcheck: false
|
|
|
|
observability_logs:
|
|
type: loki
|
|
inputs: ["agent_logs"]
|
|
endpoint: "{{ logs_endpoint }}"
|
|
{% if observability_ingest_basic_auth_enabled | default(false) %}
|
|
auth:
|
|
strategy: basic
|
|
user: "{{ observability_ingest_basic_auth_user }}"
|
|
password: "{{ observability_ingest_basic_auth_password }}"
|
|
{% endif %}
|
|
compression: gzip
|
|
encoding:
|
|
codec: json
|
|
labels:
|
|
host: "{{ '{{ host }}' }}"
|
|
job: "{{ '{{ job }}' }}"
|
|
origin: "{{ '{{ origin }}' }}"
|