From 591c88583a1f3dedab9e3d16f5ec99cfa757e683 Mon Sep 17 00:00:00 2001 From: Putra Date: Tue, 22 Oct 2019 17:05:02 +0700 Subject: [PATCH 1/3] fluent-plugin: Add client certificate verification --- fluentd/fluent-plugin-grafana-loki/README.md | 16 ++++++++++ .../fluent-plugin-grafana-loki.gemspec | 2 +- .../lib/fluent/plugin/out_loki.rb | 29 +++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/fluentd/fluent-plugin-grafana-loki/README.md b/fluentd/fluent-plugin-grafana-loki/README.md index 22f9a8da6b79..177a5c4b6574 100644 --- a/fluentd/fluent-plugin-grafana-loki/README.md +++ b/fluentd/fluent-plugin-grafana-loki/README.md @@ -166,6 +166,22 @@ If using the GrafanaLab's hosted Loki, the username needs to be set to your inst ### tenant Loki is a multi-tenant log storage platform and all requests sent must include a tenant. For some installations the tenant will be set automatically by an authenticating proxy. Otherwise you can define a tenant to be passed through. The tenant can be any string value. +### client certificate verification +Specify a pair of client certificate and private key with `cert` and `key` if a reverse proxy with client certificate verification is configured in front of Loki. `ca_cert` can also be specified if the server uses custom certificate authority. + +``` + + @type loki + + url "https://loki" + + cert /path/to/certificate.pem + key /path/to/key.key + ca_cert /path/to/ca.pem + + ... + +``` ### output format Loki is intended to index and group log streams using only a small set of labels. It is not intended for full-text indexing. When sending logs to Loki the majority of log message will be sent as a single log "line". diff --git a/fluentd/fluent-plugin-grafana-loki/fluent-plugin-grafana-loki.gemspec b/fluentd/fluent-plugin-grafana-loki/fluent-plugin-grafana-loki.gemspec index 78e3030adfeb..8bd4b77c77ff 100644 --- a/fluentd/fluent-plugin-grafana-loki/fluent-plugin-grafana-loki.gemspec +++ b/fluentd/fluent-plugin-grafana-loki/fluent-plugin-grafana-loki.gemspec @@ -4,7 +4,7 @@ $LOAD_PATH.push File.expand_path('lib', __dir__) Gem::Specification.new do |spec| spec.name = 'fluent-plugin-grafana-loki' - spec.version = '1.1.1' + spec.version = '1.2.1' spec.authors = %w[woodsaj briangann] spec.email = ['awoods@grafana.com', 'brian@grafana.com'] diff --git a/fluentd/fluent-plugin-grafana-loki/lib/fluent/plugin/out_loki.rb b/fluentd/fluent-plugin-grafana-loki/lib/fluent/plugin/out_loki.rb index 123bbeea73b0..48b54dff2367 100644 --- a/fluentd/fluent-plugin-grafana-loki/lib/fluent/plugin/out_loki.rb +++ b/fluentd/fluent-plugin-grafana-loki/lib/fluent/plugin/out_loki.rb @@ -40,6 +40,13 @@ class LokiOutput < Fluent::Plugin::Output # rubocop:disable Metrics/ClassLength config_param :username, :string, default: nil config_param :password, :string, default: nil, secret: true + desc 'Client certificate' + config_param :cert, :string, default: nil + config_param :key, :string, default: nil + + desc 'TLS' + config_param :ca_cert, :string, default: nil + desc 'Loki tenant id' config_param :tenant, :string, default: nil @@ -78,6 +85,13 @@ def configure(conf) @remove_keys.each do |key| @remove_keys_accessors.push(record_accessor_create(key)) end + + @cert = OpenSSL::X509::Certificate.new(File.read(@cert)) if @cert + @key = OpenSSL::PKey::RSA.new(File.read(key)) if @key + + if !@ca_cert.nil? && !File.exist?(@ca_cert) + raise "CA certificate file #{@ca_cert} not found" + end end def multi_workers_ready? @@ -110,6 +124,21 @@ def write(chunk) opts = { use_ssl: uri.scheme == 'https' } + + if !@cert.nil? && !@key.nil? + opts = opts.merge( + verify_mode: OpenSSL::SSL::VERIFY_PEER, + cert: @cert, + key: @key + ) + end + + if !@ca_cert.nil? + opts = opts.merge( + ca_file: @ca_cert + ) + end + log.debug "sending #{req.body.length} bytes to loki" res = Net::HTTP.start(uri.hostname, uri.port, **opts) { |http| http.request(req) } unless res&.is_a?(Net::HTTPSuccess) From 23c4c02917be6a7e7cbfb223819e9b9d27584266 Mon Sep 17 00:00:00 2001 From: Putra Date: Wed, 30 Oct 2019 09:54:03 +0700 Subject: [PATCH 2/3] use OpenSSL::PKey.read to read private key --- .../fluent-plugin-grafana-loki-1.1.0.gem | Bin 0 -> 13824 bytes .../lib/fluent/plugin/out_loki.rb | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 fluentd/fluent-plugin-grafana-loki/fluent-plugin-grafana-loki-1.1.0.gem diff --git a/fluentd/fluent-plugin-grafana-loki/fluent-plugin-grafana-loki-1.1.0.gem b/fluentd/fluent-plugin-grafana-loki/fluent-plugin-grafana-loki-1.1.0.gem new file mode 100644 index 0000000000000000000000000000000000000000..bed697958e38b0df50f2e7fd71bc7815df60fe3f GIT binary patch literal 13824 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 Date: Wed, 30 Oct 2019 10:03:19 +0700 Subject: [PATCH 3/3] remove gem file --- .../fluent-plugin-grafana-loki-1.1.0.gem | Bin 13824 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 fluentd/fluent-plugin-grafana-loki/fluent-plugin-grafana-loki-1.1.0.gem diff --git a/fluentd/fluent-plugin-grafana-loki/fluent-plugin-grafana-loki-1.1.0.gem b/fluentd/fluent-plugin-grafana-loki/fluent-plugin-grafana-loki-1.1.0.gem deleted file mode 100644 index bed697958e38b0df50f2e7fd71bc7815df60fe3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13824 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