apiVersion: source.toolkit.fluxcd.io/v1 kind: HelmRepository metadata: name: vector namespace: logging spec: interval: 24h url: https://helm.vector.dev --- apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: vector namespace: logging spec: interval: 30m dependsOn: - name: opensearch chart: spec: chart: vector version: "0.59.0" sourceRef: kind: HelmRepository name: vector values: role: Stateless-Aggregator replicas: 1 resources: requests: { cpu: 100m, memory: 128Mi } limits: { cpu: "1", memory: 512Mi } extraVolumes: - name: os-creds secret: { secretName: vector-opensearch, defaultMode: 0400 } - name: syslog-tls secret: { secretName: vector-syslog-tls, defaultMode: 0400 } - name: homelab-ca configMap: { name: homelab-ca } - name: hosts configMap: { name: vector-hosts } - name: www-vrl configMap: { name: vector-www-vrl } extraVolumeMounts: - { name: os-creds, mountPath: /etc/vector-secrets, readOnly: true } - { name: syslog-tls, mountPath: /etc/vector-tls, readOnly: true } - { name: homelab-ca, mountPath: /etc/homelab-ca, readOnly: true } - { name: hosts, mountPath: /etc/vector-hosts, readOnly: true } - { name: www-vrl, mountPath: /etc/vector-vrl, readOnly: true } containerPorts: - { name: syslog-tls, containerPort: 6514, protocol: TCP } - { name: api, containerPort: 8686, protocol: TCP } service: enabled: true type: LoadBalancer externalTrafficPolicy: Local annotations: metallb.io/loadBalancerIPs: 192.168.5.200 ports: - { name: syslog-tls, port: 6514, targetPort: 6514, protocol: TCP } customConfig: data_dir: /vector-data-dir api: enabled: true address: 0.0.0.0:8686 log_schema: timestamp_key: "@timestamp" secret: os: type: directory path: /etc/vector-secrets enrichment_tables: hosts: type: file file: path: /etc/vector-hosts/hosts.csv encoding: type: csv schema: ip: string hostname: string sources: firewall: type: syslog mode: tcp address: 0.0.0.0:6514 tls: enabled: true crt_file: /etc/vector-tls/tls.crt key_file: /etc/vector-tls/tls.key ca_file: /etc/homelab-ca/ca.crt verify_certificate: true # journal entries from www.azit.se, posted by the www-logpull CronJob (www-logpull.yaml) www_pull: type: http_server address: 0.0.0.0:8090 method: POST framing: { method: newline_delimited } decoding: { codec: json } transforms: parse_firewall: type: remap inputs: [firewall] source: | del(.host) del(.source_type) del(.version) del(.facility) del(.severity) del(.procid) .observer.hostname = del(.hostname) .observer.ip = del(.source_ip) .process.name = del(.appname) if .process.name == "pf" { .log_type = "pf" .event.dataset = "openbsd.pf" p, err = parse_regex(string!(.message), r'rule (?P[\d.]+)/\((?P[^)]*)\) (?P\w+) (?Pin|out) on (?P\S+): (?P\d+\.\d+\.\d+\.\d+)(?:\.(?P\d+))? > (?P\d+\.\d+\.\d+\.\d+)(?:\.(?P\d+))?: (?P.*?)(?: label=(?P