diff --git a/cookbooks/prometheus/files/etc/vector/prometheus.toml b/cookbooks/prometheus/files/etc/vector/prometheus.toml new file mode 100644 index 0000000..4a5aa46 --- /dev/null +++ b/cookbooks/prometheus/files/etc/vector/prometheus.toml @@ -0,0 +1,61 @@ +data_dir = "/var/lib/vector/" + +[sources.prometheus] + type = "file" + include = [ "/var/log/prometheus.log" ] + ignore_older_secs = 600 + read_from = "beginning" + +[transforms.prometheus_transform] + type = "remap" + inputs = ["prometheus"] + source = ''' + . |= parse_syslog!(.message) + del(.host) + + errmsg = parse_regex(.message, r'err=(?P.+)$') ?? {} + . = merge(., errmsg) + .message = replace(.message, r'err=.+$', "") + + . |= parse_logfmt!(.message) + del(.message) + + .message = .msg + del(.msg) + + .timestamp = .ts + del(.ts) + ''' + +[sinks.prometheus_output] +type = "file" +inputs = [ "prometheus_transform" ] +compression = "none" +path = "/tmp/prometheus-%Y-%m-%d.log" + + [sinks.prometheus_output.encoding] + codec = "json" + + [sinks.prometheus_output.buffer] + max_size = 268435488 + type = "disk" + +[sinks.prometheus_loki] +type = "loki" +inputs = [ "prometheus_transform" ] +endpoint = "http://loki.service.consul:3100" +compression = "snappy" + + [sinks.prometheus_loki.labels] + level = "{{ level }}" + hostname = "{{ hostname }}" + job = "prometheus" + filename = "/var/log/prometheus.log" + + [sinks.prometheus_loki.encoding] + codec = "json" + + [sinks.prometheus_loki.buffer] + max_size = 268435488 + type = "disk" + diff --git a/cookbooks/prometheus/prometheus_setup.rb b/cookbooks/prometheus/prometheus_setup.rb index 9e89a92..0e52b07 100644 --- a/cookbooks/prometheus/prometheus_setup.rb +++ b/cookbooks/prometheus/prometheus_setup.rb @@ -58,6 +58,16 @@ remote_file '/etc/vector/prometheus.toml' do mode '644' end +remote_file '/etc/systemd/system/vector-prometheus.service' do + owner 'root' + group 'root' + mode '0644' +end + +service 'vector-prometheus' do + action [:enable, :start] +end + # Depoy `consul` service configuration for `prometheus`: remote_file '/etc/consul.d/service-prometheus.json' do owner 'consul'