Deploy `promtail` config for `promtail`.

This commit is contained in:
Kazuhiro MUSASHI 2020-09-14 01:25:31 +09:00
parent 19fcefcd6a
commit 909ae01260
3 changed files with 147 additions and 0 deletions

View File

@ -11,6 +11,31 @@ if node['prometheus']['manager']
include_recipe './alertmanager_webhook_install.rb'
include_recipe './alertmanager_webhook_setup.rb'
# Deploy /etc/hosts file:
HOSTNAME = run_command('uname -n').stdout.chomp
template '/etc/promtail/prometheus.yaml' do
owner 'root'
group 'root'
mode '644'
variables(HOSTNAME: HOSTNAME, LOKIENDPOINT: node['promtail']['lokiendpoint'])
notifies :restart, 'service[promtail-prometheus]'
end
# Deploy the `systemd` configuration:
remote_file '/lib/systemd/system/promtail-prometheus.service' do
owner 'root'
group 'root'
mode '644'
end
# Service setting:
service 'promtail-prometheus' do
action [ :enable, :restart ]
end
end
# Install the node_exporter here:

View File

@ -0,0 +1,12 @@
[Unit]
Description=Grafana Promtail for Prometheus
Documentation=https://github.com/grafana/loki
After=network-online.target
[Service]
User=root
Restart=always
ExecStart=/usr/local/bin/promtail --config.file=/etc/promtail/prometheus.yaml
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,110 @@
server:
disable: true
positions:
filename: /var/opt/promtail/promtail_prometheus_position.yaml
clients:
- url: http://192.168.10.118:3100/loki/api/v1/push
scrape_configs:
- job_name: prometheus
static_configs:
- targets:
- localhost
labels:
job: prometheus
hostname: <%= @HOSTNAME %>
__path__: /var/log/supervisor/prometheus.log
pipeline_stages:
- match:
selector: '{job="prometheus"}'
stages:
- drop:
expression: "^[^l]"
- regex:
expression: '^level=(?P<level>[^ ]+) ts=(?P<timestamp>[^ ]+) (?P<message>.+)$'
- timestamp:
source: timestamp
format: 2006-01-02T15:04:05.999Z
location: Etc/UTC
- labels:
level:
- output:
source: message
- job_name: alertmanager
static_configs:
- targets:
- localhost
labels:
job: prometheus
hostname: <%= @HOSTNAME %>
__path__: /var/log/supervisor/alertmanager.log
pipeline_stages:
- match:
selector: '{job="prometheus"}'
stages:
- drop:
expression: "^[^l]"
- regex:
expression: '^level=(?P<level>[^ ]+) ts=(?P<timestamp>[^ ]+) (?P<message>.+)$'
- timestamp:
source: timestamp
format: 2006-01-02T15:04:05.999Z
location: Etc/UTC
- labels:
level:
- output:
source: message
- job_name: alertmanager-webhook-logger
static_configs:
- targets:
- localhost
labels:
job: prometheus
hostname: <%= @HOSTNAME %>
__path__: /var/log/supervisor/alertmanager-webhook-logger.log
pipeline_stages:
- match:
selector: '{job="prometheus"}'
stages:
- drop:
expression: "^[0-9]+"
- json:
expressions:
timestamp: timestamp
message: description
level: status
- timestamp:
source: timestamp
format: 2006-01-02T15:04:05.999999999Z
location: Etc/UTC
- template:
source: level
template: '{{ regexReplaceAllLiteral "firing" .Value "error" }}'
- template:
source: level
template: '{{ regexReplaceAllLiteral "resolved" .Value "notice" }}'
- labels:
level:
- output:
source: message