# # Cookbook Name:: zabbix # Recipe:: agent # # Copyright 2017, Linux-Help.org # Authors: # Eric Renfro # include_recipe 'zabbix::trap_scripts' # Install zabbix package and dependencies %w{zabbix-agent zabbix-sender cronie crontabs}.each do |pkg| yum_package pkg end # Install custom zabbix_agentd.conf template "/etc/zabbix/zabbix_agentd.conf" do source %W{ zabbix/#{node['zabbix']['version']}/#{node['platform']}-#{node['platform_version'].to_i}/zabbix_agentd.conf.erb zabbix/#{node['zabbix']['version']}/#{node['platform']}/zabbix_agentd.conf.erb zabbix/#{node['zabbix']['version']}/#{node['platform_family']}-#{node['platform_version'].to_i}/zabbix_agentd.conf.erb zabbix/#{node['zabbix']['version']}/#{node['platform_family']}/zabbix_agentd.conf.erb zabbix/#{node['zabbix']['version']}/zabbix_agentd.conf.erb zabbix/zabbix_agentd.conf.erb default/zabbix_agentd.conf.erb zabbix_agentd.conf.erb } mode "0644" owner "root" group "root" notifies :restart, "service[zabbix-agent]", :delayed end # Define the zabbix service, set to start on boot service "zabbix-agent" do supports :restart => true, :status => true, :reload => false action [:enable, :start] end # Install custom trap scripts. %w[ /etc/zabbix/trap.d /etc/zabbix/trap.d/live /etc/zabbix/trap.d/daily ].each do |path| directory path do owner 'root' group 'root' mode '0755' end end remote_directory "/etc/zabbix/trap.d" do files_backup 0 files_owner 'root' files_group 'zabbix' files_mode '0750' owner 'root' group 'root' source 'traps' action :create end # Link live agents to node node['zabbix']['trap_scripts']['live']['add'].each do |script| link "/etc/zabbix/trap.d/live/#{script}" do to "/etc/zabbix/trap.d/#{script}" end end # Link daily agents to node node['zabbix']['trap_scripts']['daily']['add'].each do |script| link "/etc/zabbix/trap.d/daily/#{script}" do to "/etc/zabbix/trap.d/#{script}" end end # Delete live agents to node node['zabbix']['trap_scripts']['live']['del'].each do |script| link "/etc/zabbix/trap.d/live/#{script}" do to "/etc/zabbix/trap.d/#{script}" action :delete end end # Delete daily agents to node node['zabbix']['trap_scripts']['daily']['del'].each do |script| link "/etc/zabbix/trap.d/daily/#{script}" do to "/etc/zabbix/trap.d/#{script}" action :delete end end # Setup trapper crons according to agents setup as appropriate: cron "zabbix_live" do minute '*' hour '*' user "root" command %Q{/etc/zabbix/trap.d/runtrap live >/dev/null 2>&1} only_if { node['zabbix']['trap_scripts']['live']['add'].any? } end cron "zabbix_daily" do minute '*' hour '0' user "root" command %Q{/etc/zabbix/trap.d/runtrap daily >/dev/null 2>&1} only_if { node['zabbix']['trap_scripts']['daily']['add'].any? } end