# # Cookbook:: kosmos_prometheus # Recipe:: alertmanager # include_recipe "firewall" version = node["kosmos_prometheus"]["alertmanager"]["version"] checksum = node["kosmos_prometheus"]["alertmanager"]["checksum"] tarball = "#{Chef::Config[:file_cache_path]}/alertmanager-#{version}.linux-amd64.tar.gz" binary_url = "https://github.com/prometheus/alertmanager/releases/download/v#{version}/alertmanager-#{version}.linux-amd64.tar.gz" group "alertmanager" user "alertmanager" do gid "alertmanager" system true shell "/bin/false" home "/nonexistent" end directory "/var/lib/alertmanager" do owner "alertmanager" group "alertmanager" mode "0755" recursive true end directory "/etc/prometheus" do owner "root" group "root" mode "0755" recursive true end package %w(tar bzip2) remote_file tarball do source binary_url checksum checksum action :create notifies :run, "execute[install_alertmanager]", :immediately end execute "install_alertmanager" do command "tar -xzf #{tarball} -C /usr/local/bin --strip-components=1 alertmanager-#{version}.linux-amd64/alertmanager" action :nothing notifies :restart, "service[alertmanager]", :delayed end file "/usr/local/bin/alertmanager" do owner "root" group "root" mode "0755" notifies :restart, "service[alertmanager]", :delayed end template "/etc/prometheus/alertmanager.yml" do source "alertmanager.yml.erb" owner "root" group "alertmanager" mode "0644" notifies :restart, "service[alertmanager]", :delayed end systemd_unit "alertmanager.service" do content({ Unit: { Description: "Prometheus Alertmanager", After: "network.target", }, Service: { Type: "simple", User: "alertmanager", Group: "alertmanager", ExecStart: "/usr/local/bin/alertmanager --config.file=/etc/prometheus/alertmanager.yml --storage.path=/var/lib/alertmanager --web.listen-address=:9093", Restart: "on-failure", RestartSec: "5", }, Install: { WantedBy: "multi-user.target", }, }) triggers_reload true action :create end service "alertmanager" do action [:enable, :start] end firewall_rule "prometheus alertmanager" do port 9093 source "10.1.1.0/24" protocol :tcp command :allow end