WIP Add node exporter
This commit is contained in:
@@ -2,7 +2,8 @@ name "prometheus_server"
|
||||
|
||||
default_run_list = [
|
||||
"kosmos_prometheus::server",
|
||||
"kosmos_prometheus::alertmanager"
|
||||
"kosmos_prometheus::alertmanager",
|
||||
"kosmos_prometheus::node_exporter"
|
||||
]
|
||||
|
||||
env_run_lists(
|
||||
|
||||
@@ -3,3 +3,6 @@ node.default["prometheus"]["checksum"] = "744d93324cc024d82089921737bd797474d7f1
|
||||
|
||||
node.default["prometheus"]["alertmanager"]["version"] = "0.33.0"
|
||||
node.default["prometheus"]["alertmanager"]["checksum"] = "8ce11c42e8a6dfbbf93a59c0b193cb1329210b36d0c7ef3df7b745608675a1d1"
|
||||
|
||||
node.default["prometheus"]["node_exporter"]["version"] = "1.11.1"
|
||||
node.default["prometheus"]["node_exporter"]["checksum"] = "9f5ea48e5bc7b656f8a91a32e7d7deb89f70f73dabd0d974418aca15f37d6810"
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
#
|
||||
# Cookbook:: kosmos_prometheus
|
||||
# Recipe:: node_exporter
|
||||
#
|
||||
|
||||
include_recipe "firewall"
|
||||
|
||||
version = node["prometheus"]["node_exporter"]["version"]
|
||||
checksum = node["prometheus"]["node_exporter"]["checksum"]
|
||||
tarball = "#{Chef::Config[:file_cache_path]}/node_exporter-#{version}.linux-amd64.tar.gz"
|
||||
binary_url = "https://github.com/prometheus/node_exporter/releases/download/v#{version}/node_exporter-#{version}.linux-amd64.tar.gz"
|
||||
|
||||
group "node_exporter"
|
||||
|
||||
user "node_exporter" do
|
||||
gid "node_exporter"
|
||||
system true
|
||||
shell "/bin/false"
|
||||
home "/nonexistent"
|
||||
end
|
||||
|
||||
directory "/var/lib/node_exporter/textfile" do
|
||||
owner "node_exporter"
|
||||
group "node_exporter"
|
||||
mode "0755"
|
||||
recursive true
|
||||
end
|
||||
|
||||
package %w(tar bzip2)
|
||||
|
||||
remote_file tarball do
|
||||
source binary_url
|
||||
checksum checksum
|
||||
action :create
|
||||
notifies :run, "execute[install_node_exporter]", :immediately
|
||||
end
|
||||
|
||||
execute "install_node_exporter" do
|
||||
command "tar -xzf #{tarball} -C /usr/local/bin --strip-components=1 node_exporter-#{version}.linux-amd64/node_exporter"
|
||||
action :nothing
|
||||
notifies :restart, "service[node_exporter]", :delayed
|
||||
end
|
||||
|
||||
file "/usr/local/bin/node_exporter" do
|
||||
owner "root"
|
||||
group "root"
|
||||
mode "0755"
|
||||
notifies :restart, "service[node_exporter]", :delayed
|
||||
end
|
||||
|
||||
systemd_unit "node_exporter.service" do
|
||||
content({
|
||||
Unit: {
|
||||
Description: "Prometheus node exporter",
|
||||
Documentation: ["https://github.com/prometheus/node_exporter"],
|
||||
},
|
||||
Service: {
|
||||
Type: "simple",
|
||||
User: "node_exporter",
|
||||
Group: "node_exporter",
|
||||
ExecStart: "/usr/local/bin/node_exporter --web.listen-address=:9100 --collector.textfile.directory=/var/lib/node_exporter/textfile",
|
||||
Restart: "on-failure",
|
||||
RestartSec: "5",
|
||||
NoNewPrivileges: "yes",
|
||||
ProtectSystem: "full",
|
||||
ProtectHome: "yes",
|
||||
},
|
||||
Install: {
|
||||
WantedBy: "multi-user.target",
|
||||
},
|
||||
})
|
||||
triggers_reload true
|
||||
action :create
|
||||
end
|
||||
|
||||
service "node_exporter" do
|
||||
action [:enable, :start]
|
||||
end
|
||||
|
||||
firewall_rule "node_exporter" do
|
||||
port 9100
|
||||
source "10.1.1.0/24"
|
||||
protocol :tcp
|
||||
command :allow
|
||||
end
|
||||
@@ -19,6 +19,10 @@ prometheus_job "prometheus" do
|
||||
target "localhost:9090"
|
||||
end
|
||||
|
||||
prometheus_job "node" do
|
||||
target "localhost:9100"
|
||||
end
|
||||
|
||||
prometheus_service "prometheus" do
|
||||
cli_options({
|
||||
"config.file" => "/opt/prometheus/prometheus.yml",
|
||||
|
||||
Reference in New Issue
Block a user