From cc9ce1806eedb3c8fc12a5d678a31bb15c79b1e5 Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Sun, 13 Dec 2020 14:03:24 +0900 Subject: [PATCH 1/3] Deploy `vector` config for `Docker` logs. --- cookbooks/docker/attributes.rb | 8 +++++++ cookbooks/docker/default.rb | 2 ++ cookbooks/docker/setup.rb | 15 +++++++++++++ .../templates/etc/vector/docker.toml.erb | 22 +++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 100644 cookbooks/docker/attributes.rb create mode 100644 cookbooks/docker/templates/etc/vector/docker.toml.erb diff --git a/cookbooks/docker/attributes.rb b/cookbooks/docker/attributes.rb new file mode 100644 index 0000000..094fc19 --- /dev/null +++ b/cookbooks/docker/attributes.rb @@ -0,0 +1,8 @@ +# ------------------------------------------- +# Specifying the default settings: +# ------------------------------------------- +node.reverse_merge!({ + 'docker' => { + 'loki' => '192.168.10.101' + } +}) diff --git a/cookbooks/docker/default.rb b/cookbooks/docker/default.rb index a1a8dc3..2f8afef 100644 --- a/cookbooks/docker/default.rb +++ b/cookbooks/docker/default.rb @@ -1,3 +1,5 @@ +include_recipe './attributes.rb' + include_recipe './install.rb' include_recipe './setup.rb' diff --git a/cookbooks/docker/setup.rb b/cookbooks/docker/setup.rb index 93fbd24..56aa5a8 100644 --- a/cookbooks/docker/setup.rb +++ b/cookbooks/docker/setup.rb @@ -37,3 +37,18 @@ remote_file '/etc/cron.d/docker-housekeep' do group 'root' mode '644' end + +# Deploy config file for `vector`: +template '/etc/vector/docker.toml' do + owner 'root' + group 'root' + mode '644' + + variables(LOKI: node['docker']['loki'], + HOSTNAME: node[:hostname] + ) + + source 'templates/etc/vector/docker.toml.erb' + + notifies :restart, 'service[vector-docker]' +end diff --git a/cookbooks/docker/templates/etc/vector/docker.toml.erb b/cookbooks/docker/templates/etc/vector/docker.toml.erb new file mode 100644 index 0000000..5b7d60a --- /dev/null +++ b/cookbooks/docker/templates/etc/vector/docker.toml.erb @@ -0,0 +1,22 @@ +data_dir = "/var/lib/vector" + +[sources.docker] + type = "docker" + +[transforms.docker-transform] + type = "remove_fields" + inputs = ["docker"] + fields = ["container_created_at", "container_id", "container_name"] + +[sinks.docker-logs] + type = "loki" + inputs = ["docker-transform"] + endpoint = "http://<%= @LOKI %>:3100" + healthcheck = true + remove_timestamp = true + + encoding.codec = "text" + + labels.level = "info" + labels.job = "docker" + labels.hostname = "<%= @HOSTNAME %>" From a45572e5214b3a963925fcd463513710d95b692b Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Sun, 13 Dec 2020 14:04:14 +0900 Subject: [PATCH 2/3] Deploy `systemd` config for `vector-docker`. --- .../etc/systemd/system/vector-docker.service | 16 ++++++++++++++++ cookbooks/docker/setup.rb | 14 ++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 cookbooks/docker/files/etc/systemd/system/vector-docker.service diff --git a/cookbooks/docker/files/etc/systemd/system/vector-docker.service b/cookbooks/docker/files/etc/systemd/system/vector-docker.service new file mode 100644 index 0000000..6994e1d --- /dev/null +++ b/cookbooks/docker/files/etc/systemd/system/vector-docker.service @@ -0,0 +1,16 @@ +[Unit] +Description=Vector +Documentation=https://vector.dev +After=network-online.target +Requires=network-online.target + +[Service] +ExecStart=/usr/bin/vector --config /etc/vector/docker.toml +ExecReload=/bin/kill -HUP $MAINPID +Restart=always +StandardOutput=syslog +StandardError=syslog +SyslogIdentifier=vector + +[Install] +WantedBy=multi-user.target diff --git a/cookbooks/docker/setup.rb b/cookbooks/docker/setup.rb index 56aa5a8..7745fb8 100644 --- a/cookbooks/docker/setup.rb +++ b/cookbooks/docker/setup.rb @@ -52,3 +52,17 @@ template '/etc/vector/docker.toml' do notifies :restart, 'service[vector-docker]' end + +# Deploy `systemd` configuration for `prometheus`: +remote_file '/etc/systemd/system/vector-docker.service' do + owner 'root' + group 'root' + mode '644' + + notifies :restart, 'service[vector-docker]' +end + +# Service setting: +service 'vector-docker' do + action [ :enable, :restart ] +end From 962307289bba7b1444fb3fad47c537d80360a9c1 Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Sun, 13 Dec 2020 14:05:10 +0900 Subject: [PATCH 3/3] Always make `/var/log/vector` directory. --- cookbooks/vector/default.rb | 1 + cookbooks/vector/setup.rb | 8 ++++++++ cookbooks/vector/syslog_setup.rb | 9 --------- 3 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 cookbooks/vector/setup.rb diff --git a/cookbooks/vector/default.rb b/cookbooks/vector/default.rb index b7d07c1..f0eb864 100644 --- a/cookbooks/vector/default.rb +++ b/cookbooks/vector/default.rb @@ -3,4 +3,5 @@ include_recipe './attributes.rb' # Install loki here: include_recipe './install.rb' +include_recipe './setup.rb' diff --git a/cookbooks/vector/setup.rb b/cookbooks/vector/setup.rb new file mode 100644 index 0000000..ea2e32f --- /dev/null +++ b/cookbooks/vector/setup.rb @@ -0,0 +1,8 @@ +# Create `/var/log/vector`: +%w( /var/log/vector ).each do |d| + directory d do + owner 'root' + group 'root' + mode '0755' + end +end diff --git a/cookbooks/vector/syslog_setup.rb b/cookbooks/vector/syslog_setup.rb index 1da1eec..58c3185 100644 --- a/cookbooks/vector/syslog_setup.rb +++ b/cookbooks/vector/syslog_setup.rb @@ -1,12 +1,3 @@ -# Create `/var/log/vector`: -%w( /var/log/vector ).each do |d| - directory d do - owner 'root' - group 'root' - mode '0755' - end -end - # Deploy `vector` configuration for `syslog`: remote_file '/etc/vector/syslog.toml' do owner 'root'