From d8094f8a6b7034fd27481f84a80c18f089455638 Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Mon, 10 Jun 2024 11:54:39 +0900 Subject: [PATCH] Install exporters for `Ubuntu24.04`. --- cookbooks/prometheus-exporters/attributes.rb | 15 +---- .../prometheus-exporters/exporter_proxy.rb | 4 +- .../filestat_exporter_install.rb | 65 +++++------------- .../node_exporter_install.rb | 67 +++++-------------- 4 files changed, 35 insertions(+), 116 deletions(-) diff --git a/cookbooks/prometheus-exporters/attributes.rb b/cookbooks/prometheus-exporters/attributes.rb index d39fc78..065f0f6 100644 --- a/cookbooks/prometheus-exporters/attributes.rb +++ b/cookbooks/prometheus-exporters/attributes.rb @@ -3,23 +3,12 @@ # ------------------------------------------- node.reverse_merge!({ 'node_exporter' => { - 'url' => 'https://github.com/prometheus/node_exporter/releases/download/', - 'prefix' => 'node_exporter-', - 'postfix' => '.linux-amd64.tar.gz', + 'url' => 'prometheus/node_exporter', 'storage' => '/opt/node_exporter/bin/', 'location' => '/usr/local/bin/' }, - 'blackbox_exporter' => { - 'url' => 'https://github.com/prometheus/blackbox_exporter/releases/download/', - 'prefix' => 'blackbox_exporter-', - 'postfix' => '.linux-amd64.tar.gz', - 'storage' => '/opt/blackbox_exporter/bin/', - 'location' => '/usr/local/bin/' - }, 'filestat_exporter' => { - 'url' => 'https://github.com/michael-doubez/filestat_exporter/releases/download/', - 'prefix' => 'filestat_exporter-', - 'postfix' => '.linux-amd64.tar.gz', + 'url' => 'michael-doubez/filestat_exporter', 'storage' => '/opt/filestat_exporter/', 'location' => '/usr/local/bin/' }, diff --git a/cookbooks/prometheus-exporters/exporter_proxy.rb b/cookbooks/prometheus-exporters/exporter_proxy.rb index 9893c30..9a95f50 100644 --- a/cookbooks/prometheus-exporters/exporter_proxy.rb +++ b/cookbooks/prometheus-exporters/exporter_proxy.rb @@ -3,9 +3,7 @@ BIN = '/usr/local/bin/exporter_proxy' CONFDIR = '/etc/prometheus_exporters.d/exporter_proxy/' CONF = 'config.yml' -execute "wget #{URL} -O #{BIN}" do - not_if "test -e #{BIN}" -end +execute "eget rrreeeyyy/exporter_proxy --to /usr/local/bin/ --upgrade-only" file BIN do user 'root' diff --git a/cookbooks/prometheus-exporters/filestat_exporter_install.rb b/cookbooks/prometheus-exporters/filestat_exporter_install.rb index 4071040..e306443 100644 --- a/cookbooks/prometheus-exporters/filestat_exporter_install.rb +++ b/cookbooks/prometheus-exporters/filestat_exporter_install.rb @@ -1,53 +1,20 @@ -filestat_exporter_url = '' -filestat_exporter_bin = '' - -vtag = '' - -# Calculate the Download URL: -begin - require 'net/http' - - uri = URI.parse('https://github.com/michael-doubez/filestat_exporter/releases/latest') - - Timeout.timeout(3) do - response = Net::HTTP.get_response(uri) - - vtag = $1 if response['location'] =~ %r{tag\/(v\d+\.\d+\.\d+)} - - filestat_exporter_bin = "#{node['filestat_exporter']['prefix']}#{vtag}#{node['filestat_exporter']['postfix']}" - filestat_exporter_url = "#{node['filestat_exporter']['url']}/#{vtag}/#{filestat_exporter_bin}" - end -rescue - # Abort the chef client process: - raise 'Cannot connect to http://github.com.' +# Install: +directory node['filestat_exporter']['storage'] do + owner 'root' + group 'root' + mode '755' end -# バージョン確認して、アップデート必要かどうか確認 -result = run_command("filestat_exporter --version 2>&1 | grep #{vtag}", error: false) -if result.exit_status != 0 - # Download: - TMP = "/tmp/#{filestat_exporter_bin}" +execute "eget #{node['filestat_exporter']['url']} --to #{node['filestat_exporter']['storage']}" - execute "wget #{filestat_exporter_url} -O #{TMP}" - - # Install: - directory node['filestat_exporter']['storage'] do - owner 'root' - group 'root' - mode '755' - end - - execute "tar zxf #{TMP} -C #{node['filestat_exporter']['storage']} --strip-components 1" - - # Change Owner and Permissions: - file "#{node['filestat_exporter']['storage']}filestat_exporter" do - owner 'root' - group 'root' - mode '755' - end - - # Create Link - link "#{node['filestat_exporter']['location']}filestat_exporter" do - to "#{node['filestat_exporter']['storage']}filestat_exporter" - end +# Change Owner and Permissions: +file "#{node['filestat_exporter']['storage']}filestat_exporter" do + owner 'root' + group 'root' + mode '755' +end + +# Create Link +link "#{node['filestat_exporter']['location']}filestat_exporter" do + to "#{node['filestat_exporter']['storage']}filestat_exporter" end diff --git a/cookbooks/prometheus-exporters/node_exporter_install.rb b/cookbooks/prometheus-exporters/node_exporter_install.rb index 6229c45..34e2c45 100644 --- a/cookbooks/prometheus-exporters/node_exporter_install.rb +++ b/cookbooks/prometheus-exporters/node_exporter_install.rb @@ -1,55 +1,20 @@ -node_exporter_url = '' -node_exporter_bin = '' - -tag = '' -vtag = '' - -# Calculate the Download URL: -begin - require 'net/http' - - uri = URI.parse('https://github.com/prometheus/node_exporter/releases/latest') - - Timeout.timeout(3) do - response = Net::HTTP.get_response(uri) - - vtag = $1 if response['location'] =~ %r{tag\/(v\d+\.\d+\.\d+)} - tag = vtag.sub(/^v/, '') - - node_exporter_bin = "#{node['node_exporter']['prefix']}#{tag}#{node['node_exporter']['postfix']}" - node_exporter_url = "#{node['node_exporter']['url']}/#{vtag}/#{node_exporter_bin}" - end -rescue - # Abort the chef client process: - raise 'Cannot connect to http://github.com.' +# Install: +directory node['node_exporter']['storage'] do + owner 'root' + group 'root' + mode '755' end -# バージョン確認して、アップデート必要かどうか確認 -result = run_command("node_exporter --version 2>&1 | grep #{tag}", error: false) -if result.exit_status != 0 - # Download: - TMP = "/tmp/#{node_exporter_bin}" +execute "eget #{node['node_exporter']['url']} --to #{node['node_exporter']['storage']} --upgrade-only" - execute "wget #{node_exporter_url} -O #{TMP}" - - # Install: - directory node['node_exporter']['storage'] do - owner 'root' - group 'root' - mode '755' - end - - execute "tar zxf #{TMP} -C #{node['node_exporter']['storage']} --strip-components 1" - - # Change Owner and Permissions: - file "#{node['node_exporter']['storage']}node_exporter" do - owner 'root' - group 'root' - mode '755' - end - - # Create Link - link "#{node['node_exporter']['location']}node_exporter" do - to "#{node['node_exporter']['storage']}node_exporter" - end +# Change Owner and Permissions: +file "#{node['node_exporter']['storage']}node_exporter" do + owner 'root' + group 'root' + mode '755' +end + +# Create Link +link "#{node['node_exporter']['location']}node_exporter" do + to "#{node['node_exporter']['storage']}node_exporter" end