Skip to content

Commit af9ed14

Browse files
Merge pull request #1897 from ewolinetz/fluentd_check_es_version
Bug 1840274: Add script to let fluentd check ES version
2 parents 6bacadc + a733d6d commit af9ed14

File tree

4 files changed

+43
-2
lines changed

4 files changed

+43
-2
lines changed

fluentd/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ COPY --from=builder /contents /contents
105105
RUN mkdir -p /etc/fluent/plugin
106106
ADD configs.d/ /etc/fluent/configs.d/
107107
ADD out_syslog_buffered.rb out_syslog.rb out_rawtcp.rb /etc/fluent/plugin/
108-
ADD run.sh generate_syslog_config.rb ${HOME}/
108+
ADD run.sh generate_syslog_config.rb wait_for_es_version.rb wait_for_es_version.sh ${HOME}/
109109
ADD lib/generate_throttle_configs/lib/*.rb ${HOME}/
110110
ADD lib/filter_parse_json_field/lib/*.rb /etc/fluent/plugin/
111111
ADD lib/filter_elasticsearch_genid_ext/lib/filter_elasticsearch_genid_ext.rb /etc/fluent/plugin/

fluentd/Dockerfile.centos7

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ RUN cd ${HOME}/vendored_gem_src/ && ./install-gems.sh && cd / && rm -rf ${HOME}/
4040
RUN mkdir -p /etc/fluent/plugin
4141
ADD configs.d/ /etc/fluent/configs.d/
4242
ADD out_syslog_buffered.rb out_syslog.rb out_rawtcp.rb /etc/fluent/plugin/
43-
ADD run.sh generate_syslog_config.rb ${HOME}/
43+
ADD run.sh generate_syslog_config.rb wait_for_es_version.rb wait_for_es_version.sh ${HOME}/
4444
ADD lib/generate_throttle_configs/lib/*.rb ${HOME}/
4545
ADD lib/filter_parse_json_field/lib/*.rb /etc/fluent/plugin/
4646
ADD lib/filter_elasticsearch_genid_ext/lib/filter_elasticsearch_genid_ext.rb /etc/fluent/plugin/

fluentd/wait_for_es_version.rb

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#! /usr/bin/env ruby
2+
3+
require 'net/https'
4+
require 'json'
5+
6+
if ARGV.length != 2
7+
abort "Usage: wait_for_es_version.rb <min_es_version> <es_url>"
8+
end
9+
10+
min_version = ARGV[0]
11+
es_url = ARGV[1]
12+
13+
uri = URI(es_url)
14+
15+
cert_dir = "/etc/fluent/keys/"
16+
17+
fluentd_ca_file = File.join(cert_dir, "ca-bundle.crt")
18+
19+
client_file = File.join(cert_dir, "tls.crt")
20+
client_cert = OpenSSL::X509::Certificate.new File.read client_file
21+
22+
key_file = File.join(cert_dir, "tls.key")
23+
client_key = OpenSSL::PKey::RSA.new File.read key_file
24+
25+
26+
Net::HTTP.start(uri.host, uri.port, :use_ssl => true, :ca_file => fluentd_ca_file, :cert => client_cert, :key => client_key) do |http|
27+
request = Net::HTTP::Get.new uri
28+
response = http.request request
29+
30+
hash = JSON.parse(response.body)
31+
32+
version = hash["version"]["number"]
33+
34+
if version.to_f < min_version.to_f
35+
warn "Elasticsearch is currently version: #{version} - Expecting it to be at least: #{min_version}"
36+
exit 1
37+
end
38+
end

fluentd/wait_for_es_version.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#! /bin/bash
2+
3+
ruby wait_for_es_version.rb $@

0 commit comments

Comments
 (0)