From d7b53e07a5022ce972b7470da58eddb23b871ca4 Mon Sep 17 00:00:00 2001 From: Olivier Bourdon Date: Fri, 14 Apr 2017 15:10:10 +0200 Subject: [PATCH] Fix Zabbix server 2.2 configuration file Change-Id: I910b85633d5e2b39ca1ff6a8a7f127898df8ba25 --- .../lib/facter/check_zabbix_version.rb | 36 +++++++++++++++++++ .../modules/plugin_zabbix/manifests/params.pp | 7 ++++ .../templates/zabbix_server.conf.erb | 2 +- 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100755 deployment_scripts/puppet/modules/plugin_zabbix/lib/facter/check_zabbix_version.rb diff --git a/deployment_scripts/puppet/modules/plugin_zabbix/lib/facter/check_zabbix_version.rb b/deployment_scripts/puppet/modules/plugin_zabbix/lib/facter/check_zabbix_version.rb new file mode 100755 index 0000000..2a45d8b --- /dev/null +++ b/deployment_scripts/puppet/modules/plugin_zabbix/lib/facter/check_zabbix_version.rb @@ -0,0 +1,36 @@ +# +# Copyright 2017 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +# check_zabbix_version.rb + +Facter.add("check_zabbix_version") do + setcode do + qcmd = "/usr/bin/apt-cache" + if FileTest.exists?(qcmd) then + q = qcmd + ' policy zabbix-agent 2>/dev/null' + filter = "egrep 'Installed:|Candidate:' | grep -v 'Installed: (none)' | head -1" + parse = 'cut -d " " -f4 | cut -d: -f2 | cut -d. -f1,2' + res = Facter::Util::Resolution.exec(q + '|' + filter + '|' + parse) + if res.nil? then + '100.0' + else + res + end + else + '100.0' + end + end +end diff --git a/deployment_scripts/puppet/modules/plugin_zabbix/manifests/params.pp b/deployment_scripts/puppet/modules/plugin_zabbix/manifests/params.pp index 102303a..99fd90c 100644 --- a/deployment_scripts/puppet/modules/plugin_zabbix/manifests/params.pp +++ b/deployment_scripts/puppet/modules/plugin_zabbix/manifests/params.pp @@ -17,6 +17,7 @@ class plugin_zabbix::params { include plugin_zabbix::params::openstack + $zabbix_version = $::check_zabbix_version $zabbix_hash = hiera('zabbix_monitoring') $network_metadata = hiera('network_metadata') $ssl = hiera('public_ssl') @@ -26,6 +27,12 @@ class plugin_zabbix::params { $zabbix_base_run_dir = '/var/run/zabbix' $zabbix_base_log_dir = '/var/log/zabbix' + if versioncmp($zabbix_version, '2.4') < 0 { + $zabbix_includes = $zabbix_extra_conf_dir + } else { + $zabbix_includes = "${zabbix_extra_conf_dir}/*.conf" + } + $zabbix_ports = { server => '10051', agent => '10049', diff --git a/deployment_scripts/puppet/modules/plugin_zabbix/templates/zabbix_server.conf.erb b/deployment_scripts/puppet/modules/plugin_zabbix/templates/zabbix_server.conf.erb index be4bded..407d7af 100644 --- a/deployment_scripts/puppet/modules/plugin_zabbix/templates/zabbix_server.conf.erb +++ b/deployment_scripts/puppet/modules/plugin_zabbix/templates/zabbix_server.conf.erb @@ -89,7 +89,7 @@ DebugLevel=3 Timeout=5 # Optional SNMP & others Zabbix extra modules specific configuration -Include=<%= scope.lookupvar('plugin_zabbix::params::zabbix_extra_conf_dir') %>/*.conf +Include=<%= scope.lookupvar('plugin_zabbix::params::zabbix_includes') %> # Specifies how many seconds trapper may spend processing new data # Must be between 1 and 30