Retire repository
Fuel repositories are all retired in openstack namespace, retire remaining fuel repos in x namespace since they are unused now. This change removes all content from the repository and adds the usual README file to point out that the repository is retired following the process from https://docs.openstack.org/infra/manual/drivers.html#retiring-a-project See also http://lists.openstack.org/pipermail/openstack-discuss/2019-December/011675.html A related change is: https://review.opendev.org/699752 . Change-Id: If072ce6004500d5cfabba8eb947f15e2a6be29b7
This commit is contained in:
parent
b89ccefe80
commit
33d9f406ee
|
@ -1,9 +0,0 @@
|
|||
.build/
|
||||
zabbix_monitoring*.noarch.rpm
|
||||
repositories/centos/*.rpm
|
||||
repositories/ubuntu/*.deb
|
||||
repositories/ubuntu/*/*.deb
|
||||
.bundled_gems/
|
||||
.bundle/
|
||||
Gemfile.lock
|
||||
.tox/
|
176
LICENSE
176
LICENSE
|
@ -1,176 +0,0 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
76
README.md
76
README.md
|
@ -1,76 +0,0 @@
|
|||
Zabbix Plugin for Fuel
|
||||
=======================
|
||||
|
||||
Zabbix plugin
|
||||
--------------
|
||||
|
||||
Zabbix plugin for Fuel extends Mirantis OpenStack functionality by adding
|
||||
Zabbix monitoring system. It installs Zabbix server, frontend and agent
|
||||
components. The plugin configures Zabbix by adding templates to monitor nodes
|
||||
and OpenStack services and APIs.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
| Requirement | Version/Comment |
|
||||
|:---------------------------------|:------------------------------|
|
||||
| Mirantis OpenStack compatibility | 7.0, 8.0, 9.0, 9.1, 9.2, 10.0 |
|
||||
|
||||
Installation Guide
|
||||
==================
|
||||
|
||||
Zabbix plugin installation
|
||||
---------------------------
|
||||
|
||||
To install Zabbix plugin, follow these steps:
|
||||
|
||||
1. Download the plugin from
|
||||
[Fuel Plugins Catalog](https://software.mirantis.com/fuel-plugins)
|
||||
|
||||
2. Copy the plugin on already installed Fuel Master node; ssh can be used for
|
||||
that. If you do not have the Fuel Master node yet, see
|
||||
[Quick Start Guide](https://software.mirantis.com/quick-start/) :
|
||||
|
||||
# scp zabbix_monitoring-<version>.noarch.rpm root@<Fuel_Master_ip>:/tmp
|
||||
|
||||
3. Install the plugin:
|
||||
|
||||
# cd /tmp
|
||||
# fuel plugins --install zabbix_monitoring-<version>.noarch.rpm
|
||||
|
||||
4. Check if the plugin was installed successfully:
|
||||
|
||||
# fuel plugins
|
||||
id | name | version | package_version
|
||||
---|-------------------|---------|----------------
|
||||
1 | zabbix_monitoring | 2.5.3 | 3.0.0
|
||||
|
||||
For further details see the Zabbix Plugin Guide in the
|
||||
[Fuel Plugins Catalog](https://software.mirantis.com/fuel-plugins)
|
||||
|
||||
Zabbix plugin configuration
|
||||
----------------------------
|
||||
|
||||
1. Create an environment.
|
||||
2. Enable the plugin on the Settings tab of the Fuel web UI.
|
||||
3. Optionally, change values in the form:
|
||||
* username/password - access credentials for Zabbix Administrator
|
||||
* database password - password for Zabbix database in MySQL
|
||||
4. Deploy the environment.
|
||||
5. Zabbix frontend is available at: http://<public_VIP>/zabbix
|
||||
|
||||
For more information and instructions, see the Zabbix Plugin Guide in the
|
||||
[Fuel Plugins Catalog](https://software.mirantis.com/fuel-plugins)
|
||||
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
Dmitry Klenov <dklenov@mirantis.com> (PM)
|
||||
Piotr Misiak <pmisiak@mirantis.com> (developer)
|
||||
Szymon Bańka <sbanka@mirantis.com> (developer)
|
||||
Bartosz Kupidura <bkupidura@mirantis.com> (developer)
|
||||
Alexander Zatserklyany <azatserklyany@mirantis.com> (QA engineer)
|
||||
Maciej Relewicz <mrelewicz@mirantis.com> (developer)
|
||||
Swann Croiset <scroiset@mirantis.com> (developer)
|
||||
Olivier Bourdon <obourdon@mirantis.com> (developer)
|
|
@ -0,0 +1,10 @@
|
|||
This project is no longer maintained.
|
||||
|
||||
The contents of this repository are still available in the Git
|
||||
source code management system. To see the contents of this
|
||||
repository before it reached its end of life, please check out the
|
||||
previous commit with "git checkout HEAD^1".
|
||||
|
||||
For any further questions, please email
|
||||
openstack-discuss@lists.openstack.org or join #openstack-dev on
|
||||
Freenode.
|
|
@ -1,21 +0,0 @@
|
|||
# Copyright 2015 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.
|
||||
source 'https://rubygems.org'
|
||||
|
||||
group :development, :test do
|
||||
gem 'rake'
|
||||
gem "puppet", ENV['PUPPET_VERSION'] || '~> 3.4.0'
|
||||
gem 'puppetlabs_spec_helper'
|
||||
gem 'puppet-lint'
|
||||
end
|
|
@ -1,13 +0,0 @@
|
|||
require 'puppet-lint/tasks/puppet-lint'
|
||||
require 'puppet-syntax/tasks/puppet-syntax'
|
||||
|
||||
PuppetLint.configuration.fail_on_warnings = true
|
||||
PuppetLint.configuration.send('disable_80chars')
|
||||
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
|
||||
PuppetLint.configuration.send('disable_class_parameter_defaults')
|
||||
|
||||
desc "Run lint, and syntax tests."
|
||||
task :test => [
|
||||
:lint,
|
||||
:syntax,
|
||||
]
|
|
@ -1,52 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
notice('fuel-plugin-external-zabbix: agent.pp')
|
||||
|
||||
$fuel_version = 0 + hiera('fuel_version')
|
||||
$network_metadata = hiera_hash('network_metadata')
|
||||
$primary_controller_nodes = get_nodes_hash_by_roles($network_metadata, ['primary-controller'])
|
||||
$controllers = get_nodes_hash_by_roles($network_metadata, ['primary-controller', 'controller'])
|
||||
$controller_internal_addresses = get_node_to_ipaddr_map_by_network_role($controllers, 'management')
|
||||
$controller_nodes = ipsort(values($controller_internal_addresses))
|
||||
$uid = hiera('uid')
|
||||
$node_hostname = "node-${uid}"
|
||||
$hostinfo = $network_metadata['nodes'][$node_hostname]
|
||||
$netinfo = $hostinfo['network_roles']
|
||||
$internal_address = $netinfo['management']
|
||||
$public_address = $netinfo['ex']
|
||||
$swift_address = $netinfo['storage']
|
||||
|
||||
if $fuel_version < 8.0 {
|
||||
$cur_node_roles = node_roles(hiera_array('nodes'), hiera('uid'))
|
||||
$is_base_os = member($cur_node_roles, 'base-os')
|
||||
$is_virt = member($cur_node_roles, 'virt')
|
||||
$is_controller = member($cur_node_roles, 'controller') or
|
||||
member($cur_node_roles, 'primary-controller')
|
||||
$roles_nb = size($cur_node_roles)
|
||||
} else {
|
||||
$is_base_os = roles_include(['base-os'])
|
||||
$is_virt = roles_include(['virt'])
|
||||
$is_controller = roles_include(['controller', 'primary-controller'])
|
||||
$roles_nb = size($network_metadata['nodes'][$node_hostname]['node_roles'])
|
||||
}
|
||||
|
||||
class { 'plugin_zabbix::monitoring':
|
||||
server_ips => $controller_nodes,
|
||||
roles_nb => $roles_nb,
|
||||
has_role_baseos => $is_base_os,
|
||||
has_role_virt => $is_virt,
|
||||
has_role_controller => $is_controller,
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
# Copyright 2016 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.
|
||||
|
||||
notice('fuel-plugin-external-zabbix: cleanup_apt_config.pp')
|
||||
|
||||
case $::osfamily {
|
||||
'Debian': {
|
||||
file { '/etc/apt/apt.conf.d/99norecommends':
|
||||
ensure => absent,
|
||||
}
|
||||
}
|
||||
default: {
|
||||
# Currently only Debian like distributions need specific configuration.
|
||||
}
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
# Copyright 2016 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.
|
||||
|
||||
notice('fuel-plugin-external-zabbix: configure_apt.pp')
|
||||
|
||||
$str = 'APT::Install-Suggests "0";
|
||||
APT::Install-Recommends "0";
|
||||
'
|
||||
|
||||
case $::osfamily {
|
||||
'Debian': {
|
||||
file { '/etc/apt/apt.conf.d/99norecommends':
|
||||
ensure => file,
|
||||
content => $str,
|
||||
}
|
||||
}
|
||||
default: {
|
||||
# Currently only Debian like distributions need specific configuration.
|
||||
}
|
||||
}
|
||||
|
||||
$fuel_version = 0 + hiera('fuel_version')
|
||||
if $fuel_version < 8.0 {
|
||||
$cur_node_roles = node_roles(hiera_array('nodes'), hiera('uid'))
|
||||
$is_controller = member($cur_node_roles, 'controller') or
|
||||
member($cur_node_roles, 'primary-controller')
|
||||
} else {
|
||||
$is_controller = roles_include(['controller', 'primary-controller'])
|
||||
}
|
||||
|
||||
if $is_controller {
|
||||
# The OCF script should exist before any node tries to configure the
|
||||
# Zabbix with Pacemaker. This is why it is shipped by this manifest.
|
||||
file { 'zabbix-server-ocf' :
|
||||
ensure => present,
|
||||
path => '/usr/lib/ocf/resource.d/fuel/zabbix-server',
|
||||
mode => '0755',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
source => 'puppet:///modules/plugin_zabbix/zabbix-server.ocf',
|
||||
}
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
notice('fuel-plugin-external-zabbix: controller.pp')
|
||||
|
||||
include plugin_zabbix::controller
|
|
@ -1,10 +0,0 @@
|
|||
notice('zabbix_monitoring/override_configuration')
|
||||
|
||||
file { '/etc/hiera/plugins/zabbix_monitoring.yaml':
|
||||
ensure => present,
|
||||
content => template('plugin_zabbix/config_override.erb'),
|
||||
owner => root,
|
||||
group => root,
|
||||
mode => '0644',
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
notice('fuel-plugin-external-zabbix: primary_controller.pp')
|
||||
|
||||
include plugin_zabbix::primary_controller
|
|
@ -1,18 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
notice('fuel-plugin-external-zabbix: zabbix_server_config.pp')
|
||||
|
||||
include plugin_zabbix::server::config
|
|
@ -1,6 +0,0 @@
|
|||
Damian Szeluga <dszeluga@mirantis.com>
|
||||
Kamil Swiatkowski <kswiatkowski@mirantis.com>
|
||||
Szymon Banka <sbanka@mirantis.com>
|
||||
Tomasz 'Zen' Napierala <tomasz@napierala.org>
|
||||
Dmitry Nikishov <dnikishov@mirantis.com>
|
||||
Piotr Misiak <pmisiak@mirantis.com>
|
|
@ -1,22 +0,0 @@
|
|||
# Copyright 2015 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.
|
||||
source 'https://rubygems.org'
|
||||
|
||||
group :development, :test do
|
||||
gem 'rake'
|
||||
gem "puppet", ENV['PUPPET_VERSION'] || '~> 3.4.0'
|
||||
gem 'puppetlabs_spec_helper'
|
||||
gem 'puppet-lint'
|
||||
end
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
require 'puppetlabs_spec_helper/rake_tasks'
|
||||
require 'puppet-lint/tasks/puppet-lint'
|
||||
require 'puppet-syntax/tasks/puppet-syntax'
|
||||
|
||||
PuppetLint.configuration.fail_on_warnings = true
|
||||
PuppetLint.configuration.send('disable_80chars')
|
||||
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
|
||||
PuppetLint.configuration.send('disable_class_parameter_defaults')
|
||||
PuppetLint.configuration.send('disable_autoloader_layout')
|
||||
|
||||
desc "Run lint, and syntax and spec tests."
|
||||
task :test => [
|
||||
:lint,
|
||||
:syntax,
|
||||
:spec,
|
||||
]
|
||||
|
|
@ -1,102 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2015-10-30T15:18:12Z</date>
|
||||
<screens>
|
||||
<screen>
|
||||
<name>Ceph</name>
|
||||
<hsize>2</hsize>
|
||||
<vsize>2</vsize>
|
||||
<screen_items>
|
||||
<screen_item>
|
||||
<resourcetype>0</resourcetype>
|
||||
<width>500</width>
|
||||
<height>100</height>
|
||||
<x>1</x>
|
||||
<y>1</y>
|
||||
<colspan>1</colspan>
|
||||
<rowspan>1</rowspan>
|
||||
<elements>0</elements>
|
||||
<valign>0</valign>
|
||||
<halign>0</halign>
|
||||
<style>0</style>
|
||||
<url/>
|
||||
<dynamic>0</dynamic>
|
||||
<sort_triggers>0</sort_triggers>
|
||||
<resource>
|
||||
<name>PG breakdown by state</name>
|
||||
<host>CephCluster</host>
|
||||
</resource>
|
||||
<max_columns>3</max_columns>
|
||||
<application/>
|
||||
</screen_item>
|
||||
<screen_item>
|
||||
<resourcetype>0</resourcetype>
|
||||
<width>500</width>
|
||||
<height>100</height>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<colspan>1</colspan>
|
||||
<rowspan>1</rowspan>
|
||||
<elements>0</elements>
|
||||
<valign>0</valign>
|
||||
<halign>0</halign>
|
||||
<style>0</style>
|
||||
<url/>
|
||||
<dynamic>0</dynamic>
|
||||
<sort_triggers>0</sort_triggers>
|
||||
<resource>
|
||||
<name>PG number vs Object number</name>
|
||||
<host>CephCluster</host>
|
||||
</resource>
|
||||
<max_columns>3</max_columns>
|
||||
<application/>
|
||||
</screen_item>
|
||||
<screen_item>
|
||||
<resourcetype>0</resourcetype>
|
||||
<width>500</width>
|
||||
<height>100</height>
|
||||
<x>1</x>
|
||||
<y>0</y>
|
||||
<colspan>1</colspan>
|
||||
<rowspan>1</rowspan>
|
||||
<elements>0</elements>
|
||||
<valign>0</valign>
|
||||
<halign>0</halign>
|
||||
<style>0</style>
|
||||
<url/>
|
||||
<dynamic>0</dynamic>
|
||||
<sort_triggers>0</sort_triggers>
|
||||
<resource>
|
||||
<name>Storage capacity</name>
|
||||
<host>CephCluster</host>
|
||||
</resource>
|
||||
<max_columns>3</max_columns>
|
||||
<application/>
|
||||
</screen_item>
|
||||
<screen_item>
|
||||
<resourcetype>0</resourcetype>
|
||||
<width>500</width>
|
||||
<height>100</height>
|
||||
<x>0</x>
|
||||
<y>1</y>
|
||||
<colspan>1</colspan>
|
||||
<rowspan>1</rowspan>
|
||||
<elements>0</elements>
|
||||
<valign>0</valign>
|
||||
<halign>0</halign>
|
||||
<style>0</style>
|
||||
<url/>
|
||||
<dynamic>0</dynamic>
|
||||
<sort_triggers>0</sort_triggers>
|
||||
<resource>
|
||||
<name>OSD breakdown by state</name>
|
||||
<host>CephCluster</host>
|
||||
</resource>
|
||||
<max_columns>3</max_columns>
|
||||
<application/>
|
||||
</screen_item>
|
||||
</screen_items>
|
||||
</screen>
|
||||
</screens>
|
||||
</zabbix_export>
|
|
@ -1,137 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2014-12-10T10:36:40Z</date>
|
||||
<screens>
|
||||
<screen>
|
||||
<name>Openstack Cluster</name>
|
||||
<hsize>2</hsize>
|
||||
<vsize>3</vsize>
|
||||
<screen_items>
|
||||
<screen_item>
|
||||
<resourcetype>0</resourcetype>
|
||||
<width>500</width>
|
||||
<height>100</height>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<colspan>1</colspan>
|
||||
<rowspan>1</rowspan>
|
||||
<elements>0</elements>
|
||||
<valign>0</valign>
|
||||
<halign>0</halign>
|
||||
<style>0</style>
|
||||
<url/>
|
||||
<dynamic>0</dynamic>
|
||||
<sort_triggers>0</sort_triggers>
|
||||
<resource>
|
||||
<name>Cluster CPU Load</name>
|
||||
<host>OpenStackCluster</host>
|
||||
</resource>
|
||||
<application/>
|
||||
</screen_item>
|
||||
<screen_item>
|
||||
<resourcetype>0</resourcetype>
|
||||
<width>500</width>
|
||||
<height>100</height>
|
||||
<x>0</x>
|
||||
<y>1</y>
|
||||
<colspan>1</colspan>
|
||||
<rowspan>1</rowspan>
|
||||
<elements>0</elements>
|
||||
<valign>0</valign>
|
||||
<halign>0</halign>
|
||||
<style>0</style>
|
||||
<url/>
|
||||
<dynamic>0</dynamic>
|
||||
<sort_triggers>0</sort_triggers>
|
||||
<resource>
|
||||
<name>CPUs in Cluster</name>
|
||||
<host>OpenStackCluster</host>
|
||||
</resource>
|
||||
<application/>
|
||||
</screen_item>
|
||||
<screen_item>
|
||||
<resourcetype>0</resourcetype>
|
||||
<width>500</width>
|
||||
<height>100</height>
|
||||
<x>1</x>
|
||||
<y>1</y>
|
||||
<colspan>1</colspan>
|
||||
<rowspan>1</rowspan>
|
||||
<elements>0</elements>
|
||||
<valign>0</valign>
|
||||
<halign>0</halign>
|
||||
<style>0</style>
|
||||
<url/>
|
||||
<dynamic>0</dynamic>
|
||||
<sort_triggers>0</sort_triggers>
|
||||
<resource>
|
||||
<name>RAM in Cluster</name>
|
||||
<host>OpenStackCluster</host>
|
||||
</resource>
|
||||
<application/>
|
||||
</screen_item>
|
||||
<screen_item>
|
||||
<resourcetype>13</resourcetype>
|
||||
<width>500</width>
|
||||
<height>100</height>
|
||||
<x>1</x>
|
||||
<y>0</y>
|
||||
<colspan>1</colspan>
|
||||
<rowspan>1</rowspan>
|
||||
<elements>10</elements>
|
||||
<valign>0</valign>
|
||||
<halign>0</halign>
|
||||
<style>0</style>
|
||||
<url/>
|
||||
<dynamic>0</dynamic>
|
||||
<sort_triggers>0</sort_triggers>
|
||||
<resource>0</resource>
|
||||
<application/>
|
||||
</screen_item>
|
||||
<screen_item>
|
||||
<resourcetype>0</resourcetype>
|
||||
<width>500</width>
|
||||
<height>100</height>
|
||||
<x>0</x>
|
||||
<y>2</y>
|
||||
<colspan>1</colspan>
|
||||
<rowspan>1</rowspan>
|
||||
<elements>0</elements>
|
||||
<valign>0</valign>
|
||||
<halign>0</halign>
|
||||
<style>0</style>
|
||||
<url/>
|
||||
<dynamic>0</dynamic>
|
||||
<sort_triggers>0</sort_triggers>
|
||||
<resource>
|
||||
<name>Number of instances</name>
|
||||
<host>OpenStackCluster</host>
|
||||
</resource>
|
||||
<application/>
|
||||
</screen_item>
|
||||
<screen_item>
|
||||
<resourcetype>0</resourcetype>
|
||||
<width>500</width>
|
||||
<height>100</height>
|
||||
<x>1</x>
|
||||
<y>2</y>
|
||||
<colspan>1</colspan>
|
||||
<rowspan>1</rowspan>
|
||||
<elements>0</elements>
|
||||
<valign>0</valign>
|
||||
<halign>0</halign>
|
||||
<style>0</style>
|
||||
<url/>
|
||||
<dynamic>0</dynamic>
|
||||
<sort_triggers>0</sort_triggers>
|
||||
<resource>
|
||||
<name>Openstack Offline Services</name>
|
||||
<host>OpenStackCluster</host>
|
||||
</resource>
|
||||
<application/>
|
||||
</screen_item>
|
||||
</screen_items>
|
||||
</screen>
|
||||
</screens>
|
||||
</zabbix_export>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,482 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:14:51Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App Iptables Stats</template>
|
||||
<name>Template App Iptables Stats</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Iptables Stats</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>tcp close</name>
|
||||
<type>0</type>
|
||||
<snmp_community>public</snmp_community>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
||||
<key>iptstate.tcp.close</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units>Packets</units>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Iptables Stats</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>tcp established</name>
|
||||
<type>0</type>
|
||||
<snmp_community>public</snmp_community>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
||||
<key>iptstate.tcp.established</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units>Packets</units>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Iptables Stats</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>tcp syn</name>
|
||||
<type>0</type>
|
||||
<snmp_community>public</snmp_community>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
||||
<key>iptstate.tcp.syn</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units>Packets</units>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Iptables Stats</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>tcp timewait</name>
|
||||
<type>0</type>
|
||||
<snmp_community>public</snmp_community>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
||||
<key>iptstate.tcp.timewait</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units>Packets</units>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Iptables Stats</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>total icmp</name>
|
||||
<type>0</type>
|
||||
<snmp_community>public</snmp_community>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
||||
<key>iptstate.icmp</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units>Packets</units>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Iptables Stats</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>total other</name>
|
||||
<type>0</type>
|
||||
<snmp_community>public</snmp_community>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
||||
<key>iptstate.other</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units>Packets</units>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Iptables Stats</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>total tcp</name>
|
||||
<type>0</type>
|
||||
<snmp_community>public</snmp_community>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
||||
<key>iptstate.tcp</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units>Packets</units>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Iptables Stats</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>total udp</name>
|
||||
<type>0</type>
|
||||
<snmp_community>public</snmp_community>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
||||
<key>iptstate.udp</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units>Packets</units>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Iptables Stats</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<graphs>
|
||||
<graph>
|
||||
<name>FLUX</name>
|
||||
<width>900</width>
|
||||
<height>200</height>
|
||||
<yaxismin>0.0000</yaxismin>
|
||||
<yaxismax>100.0000</yaxismax>
|
||||
<show_work_period>1</show_work_period>
|
||||
<show_triggers>1</show_triggers>
|
||||
<type>1</type>
|
||||
<show_legend>1</show_legend>
|
||||
<show_3d>0</show_3d>
|
||||
<percent_left>0.0000</percent_left>
|
||||
<percent_right>0.0000</percent_right>
|
||||
<ymin_type_1>0</ymin_type_1>
|
||||
<ymax_type_1>0</ymax_type_1>
|
||||
<ymin_item_1>0</ymin_item_1>
|
||||
<ymax_item_1>0</ymax_item_1>
|
||||
<graph_items>
|
||||
<graph_item>
|
||||
<sortorder>3</sortorder>
|
||||
<drawtype>1</drawtype>
|
||||
<color>00CC00</color>
|
||||
<yaxisside>1</yaxisside>
|
||||
<calc_fnc>2</calc_fnc>
|
||||
<type>0</type>
|
||||
<item>
|
||||
<host>Template App Iptables Stats</host>
|
||||
<key>iptstate.udp</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>2</sortorder>
|
||||
<drawtype>1</drawtype>
|
||||
<color>FFFF00</color>
|
||||
<yaxisside>1</yaxisside>
|
||||
<calc_fnc>2</calc_fnc>
|
||||
<type>0</type>
|
||||
<item>
|
||||
<host>Template App Iptables Stats</host>
|
||||
<key>iptstate.icmp</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>1</sortorder>
|
||||
<drawtype>1</drawtype>
|
||||
<color>FF3333</color>
|
||||
<yaxisside>1</yaxisside>
|
||||
<calc_fnc>2</calc_fnc>
|
||||
<type>0</type>
|
||||
<item>
|
||||
<host>Template App Iptables Stats</host>
|
||||
<key>iptstate.other</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>4</sortorder>
|
||||
<drawtype>1</drawtype>
|
||||
<color>0000CC</color>
|
||||
<yaxisside>1</yaxisside>
|
||||
<calc_fnc>2</calc_fnc>
|
||||
<type>0</type>
|
||||
<item>
|
||||
<host>Template App Iptables Stats</host>
|
||||
<key>iptstate.tcp</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
</graph_items>
|
||||
</graph>
|
||||
<graph>
|
||||
<name>TCP</name>
|
||||
<width>900</width>
|
||||
<height>200</height>
|
||||
<yaxismin>0.0000</yaxismin>
|
||||
<yaxismax>100.0000</yaxismax>
|
||||
<show_work_period>1</show_work_period>
|
||||
<show_triggers>1</show_triggers>
|
||||
<type>1</type>
|
||||
<show_legend>1</show_legend>
|
||||
<show_3d>0</show_3d>
|
||||
<percent_left>0.0000</percent_left>
|
||||
<percent_right>0.0000</percent_right>
|
||||
<ymin_type_1>0</ymin_type_1>
|
||||
<ymax_type_1>0</ymax_type_1>
|
||||
<ymin_item_1>0</ymin_item_1>
|
||||
<ymax_item_1>0</ymax_item_1>
|
||||
<graph_items>
|
||||
<graph_item>
|
||||
<sortorder>1</sortorder>
|
||||
<drawtype>1</drawtype>
|
||||
<color>0000CC</color>
|
||||
<yaxisside>1</yaxisside>
|
||||
<calc_fnc>2</calc_fnc>
|
||||
<type>0</type>
|
||||
<item>
|
||||
<host>Template App Iptables Stats</host>
|
||||
<key>iptstate.tcp.established</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>3</sortorder>
|
||||
<drawtype>1</drawtype>
|
||||
<color>FFFF00</color>
|
||||
<yaxisside>1</yaxisside>
|
||||
<calc_fnc>2</calc_fnc>
|
||||
<type>0</type>
|
||||
<item>
|
||||
<host>Template App Iptables Stats</host>
|
||||
<key>iptstate.tcp.syn</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>2</sortorder>
|
||||
<drawtype>1</drawtype>
|
||||
<color>009999</color>
|
||||
<yaxisside>1</yaxisside>
|
||||
<calc_fnc>2</calc_fnc>
|
||||
<type>0</type>
|
||||
<item>
|
||||
<host>Template App Iptables Stats</host>
|
||||
<key>iptstate.tcp.timewait</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>4</sortorder>
|
||||
<drawtype>1</drawtype>
|
||||
<color>666666</color>
|
||||
<yaxisside>1</yaxisside>
|
||||
<calc_fnc>2</calc_fnc>
|
||||
<type>0</type>
|
||||
<item>
|
||||
<host>Template App Iptables Stats</host>
|
||||
<key>iptstate.tcp.close</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
</graph_items>
|
||||
</graph>
|
||||
</graphs>
|
||||
</zabbix_export>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,430 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2014-05-23T15:04:32Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Ceilometer</template>
|
||||
<name>Template App OpenStack Ceilometer</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Ceilometer Agent Central process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,ceilometer,,bin/python.*bin/ceilometer-agent-central]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Ceilometer Agent Central should run on this node</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>crm.node.check[p_openstack-ceilometer-agent-central]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Ceilometer Alarm Evaluator process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,ceilometer,,bin/python.*bin/ceilometer-alarm-evaluator]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Ceilometer Alarm Evaluator should run on this node</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>crm.node.check[p_openstack-ceilometer-alarm-evaluator]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Ceilometer Alarm Notifier process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,ceilometer,,bin/python.*bin/ceilometer-alarm-notifier]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Ceilometer API process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,ceilometer,,bin/python.*bin/ceilometer-api]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Ceilometer API Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},8777]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Ceilometer Collector process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,ceilometer,,bin/python.*bin/ceilometer-collector]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Ceilometer:proc.num[,ceilometer,,bin/python.*bin/ceilometer-agent-central].last(0)}=0 & {Template App OpenStack Ceilometer:crm.node.check[p_openstack-ceilometer-agent-central].last(0)}=1</expression>
|
||||
<name>Ceilometer Alarm Agent Central service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Ceilometer:proc.num[,ceilometer,,bin/python.*bin/ceilometer-alarm-evaluator].last(0)}=0 & {Template App OpenStack Ceilometer:crm.node.check[p_openstack-ceilometer-alarm-evaluator].last(0)}=1</expression>
|
||||
<name>Ceilometer Alarm Alarm Evaluator service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Ceilometer:proc.num[,ceilometer,,bin/python.*bin/ceilometer-alarm-notifier].last(0)}=0</expression>
|
||||
<name>Ceilometer Alarm Notifier service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Ceilometer:proc.num[,ceilometer,,bin/python.*bin/ceilometer-api].last(0)}=0</expression>
|
||||
<name>Ceilometer API Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Ceilometer:net.tcp.service[http,{$IP_MANAGEMENT},8777].last()}=0</expression>
|
||||
<name>Ceilometer API Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Ceilometer:proc.num[,ceilometer,,bin/python.*bin/ceilometer-collector].last(0)}=0</expression>
|
||||
<name>Ceilometer Collector service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,86 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2014-06-27T08:32:31Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Ceilometer Compute</template>
|
||||
<name>Template App OpenStack Ceilometer Compute</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Ceilometer Agent Compute process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,ceilometer,,bin/python.*bin/ceilometer-agent-compute]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceilometer</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Ceilometer Compute:proc.num[,ceilometer,,bin/python.*bin/ceilometer-agent-compute].last(0)}=0</expression>
|
||||
<name>Ceilometer Agent Compute service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,86 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2014-12-04T13:12:00Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Ceph</template>
|
||||
<name>Template App OpenStack Ceph</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceph</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Ceph health is OK</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>ceph.health</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>3</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceph</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Ceph:ceph.health.last(0)}=0</expression>
|
||||
<name>Ceph health is not OK from {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-02-25T14:34:53Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Ceph MON</template>
|
||||
<name>Template App OpenStack Ceph MON</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceph MON</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Number of ceph-mon processes</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,,,/usr/bin/ceph-mon]</key>
|
||||
<delay>60</delay>
|
||||
<history>7</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceph MON</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Ceph MON:proc.num[,,,/usr/bin/ceph-mon].last(0)}=0</expression>
|
||||
<name>Ceph MON is not running on {HOSTNAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2015-10-26T16:42:00Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Ceph OSD</template>
|
||||
<name>Template App OpenStack Ceph OSD</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceph OSD</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Number of running Ceph OSD processes</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,,,/usr/bin/ceph-osd]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Ceph OSD</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Ceph OSD:proc.num[,,,/usr/bin/ceph-osd].last(0)}=0</expression>
|
||||
<name>Ceph OSD process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,132 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:15:29Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Cinder API</template>
|
||||
<name>Template App OpenStack Cinder API</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Cinder API</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Cinder API Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},8776]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Cinder API</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Cinder API server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,cinder,,bin/python.*bin/cinder-api]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Cinder API</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Cinder API:proc.num[,cinder,,bin/python.*bin/cinder-api].last(0)}=0</expression>
|
||||
<name>Cinder API Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Cinder API:net.tcp.service[http,{$IP_MANAGEMENT},8776].last(0)}=0</expression>
|
||||
<name>Cinder API Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:15:49Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Cinder API check</template>
|
||||
<name>Template App OpenStack Cinder API check</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Cinder API check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Cinder API test succeeded</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>cinder.api.status</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Cinder API check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Cinder API check:cinder.api.status.last(0)}=0</expression>
|
||||
<name>Cinder API test failed</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:16:07Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Cinder Scheduler</template>
|
||||
<name>Template App OpenStack Cinder Scheduler</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Cinder Scheduler</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Cinder Scheduler Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,cinder,,bin/python.*bin/cinder-scheduler]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Cinder Scheduler</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Cinder Scheduler:proc.num[,cinder,,bin/python.*bin/cinder-scheduler].last(0)}=0</expression>
|
||||
<name>Cinder Scheduler process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,86 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2014-12-11T12:22:08Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Cinder Volume</template>
|
||||
<name>Template App OpenStack Cinder Volume</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Cinder Volume</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Cinder Volume process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,cinder,,bin/python.*bin/cinder-volume]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Cinder Volume</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Cinder Volume:proc.num[,cinder,,bin/python.*bin/cinder-volume].last(0)}=0</expression>
|
||||
<name>Cinder Volume process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,132 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:16:32Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Glance API</template>
|
||||
<name>Template App OpenStack Glance API</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Glance API</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Glance API Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},9292]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Glance API</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Glance API Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,glance,,bin/python.*bin/glance-api]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Glance API</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Glance API:proc.num[,glance,,bin/python.*bin/glance-api].last(0)}=0</expression>
|
||||
<name>Glance API Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Glance API:net.tcp.service[http,{$IP_MANAGEMENT},9292].last(0)}=0</expression>
|
||||
<name>Glance API Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:16:53Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Glance API check</template>
|
||||
<name>Template App OpenStack Glance API check</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Glance API check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Glance API test succeeded</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>glance.api.status</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Glance API check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Glance API check:glance.api.status.last(0)}=0</expression>
|
||||
<name>Glance API test failed on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,132 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:17:07Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Glance Registry</template>
|
||||
<name>Template App OpenStack Glance Registry</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Glance Registry</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Glance Registry Server is listening on port</name>
|
||||
<type>3</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},9191]</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Glance Registry</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Glance Registry Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,glance,,bin/python.*bin/glance-registry]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Glance Registry</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Glance Registry:proc.num[,glance,,bin/python.*bin/glance-registry].last(0)}=0</expression>
|
||||
<name>Glance Registry Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Glance Registry:net.tcp.service[http,{$IP_MANAGEMENT},9191].last(0)}=0</expression>
|
||||
<name>Glance Registry Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,181 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:17:23Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Horizon</template>
|
||||
<name>Template App OpenStack Horizon</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Horizon</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Horizon HTTP Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},80]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Horizon</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Horizon HTTP Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,{$APACHE_USER},,/usr/sbin/{$APACHE_NAME}]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Horizon</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Horizon HTTPS Server is listening on port</name>
|
||||
<type>3</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[https,{$IP_MANAGEMENT},443]</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>1</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Horizon</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Horizon:proc.num[,{$APACHE_USER},,/usr/sbin/{$APACHE_NAME}].last(0)}=0</expression>
|
||||
<name>Horizon HTTP Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Horizon:net.tcp.service[http,{$IP_MANAGEMENT},80].last(0)}=0</expression>
|
||||
<name>Horizon HTTP Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Horizon:net.tcp.service[https,{$IP_MANAGEMENT},443].last(0)}=0</expression>
|
||||
<name>Horizon HTTPS Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,230 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:17:37Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Keystone</template>
|
||||
<name>Template App OpenStack Keystone</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Keystone</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Keystone Admin API Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},35357]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Keystone</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Keystone API Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},5000]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Keystone</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Keystone Main Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,keystone,,keystone-main]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Keystone</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Keystone Admin Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,keystone,,keystone-admin]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Keystone</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Keystone:net.tcp.service[http,{$IP_MANAGEMENT},35357].last(0)}=0</expression>
|
||||
<name>Keystone Admin API Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Keystone:net.tcp.service[http,{$IP_MANAGEMENT},5000].last(0)}=0</expression>
|
||||
<name>Keystone API Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Keystone:proc.num[,keystone,,keystone-main].last(0)}=0</expression>
|
||||
<name>Keystone Main Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Keystone:proc.num[,keystone,,keystone-admin].last(0)}=0</expression>
|
||||
<name>Keystone Admin Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,132 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:17:50Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Keystone API check</template>
|
||||
<name>Template App OpenStack Keystone API check</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Keystone API check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Keystone API test succeeded</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>keystone.api.status</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Keystone API check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Keystone Service API test succeeded</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>keystone.service.api.status</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Keystone API check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Keystone API check:keystone.api.status.last(0)}=0</expression>
|
||||
<name>Keystone API test failed on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Keystone API check:keystone.service.api.status.last(0)}=0</expression>
|
||||
<name>Keystone Service API test failed on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:18:03Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Libvirt</template>
|
||||
<name>Template App OpenStack Libvirt</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Libvirt</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Libvirtd process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[libvirtd,root,,]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Libvirt</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Libvirt:proc.num[libvirtd,root,,].last(0)}=0</expression>
|
||||
<name>Libvirtd process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:19:34Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Neutron API check</template>
|
||||
<name>Template App OpenStack Neutron API check</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron API check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Neutron API test succeeded</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>neutron.api.status</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron API check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Neutron API check:neutron.api.status.last(0)}=0</expression>
|
||||
<name>Neutron API test failed on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,86 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2014-05-23T08:33:55Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Neutron DHCP Agent</template>
|
||||
<name>Template App OpenStack Neutron DHCP Agent</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron DHCP Agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Neutron DHCP Agent process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,neutron,,bin/python.*bin/neutron-dhcp-agent]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron DHCP Agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Neutron DHCP Agent:proc.num[,neutron,,bin/python.*bin/neutron-dhcp-agent].last(0)}=0</expression>
|
||||
<name>Neutron DHCP Agent process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,86 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2014-05-23T08:53:02Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Neutron L3 Agent</template>
|
||||
<name>Template App OpenStack Neutron L3 Agent</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron L3 Agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Neutron L3 Agent process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,neutron,,bin/python.*bin/neutron-l3-agent]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron L3 Agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Neutron L3 Agent:proc.num[,neutron,,bin/python.*bin/neutron-l3-agent].last(0)}=0</expression>
|
||||
<name>Neutron L3 Agent process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-15T21:42:33Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Neutron Metadata Agent</template>
|
||||
<name>Template App OpenStack Neutron Metadata Agent</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron Metadata Agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Neutron Metadata Agent process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,neutron,,bin/python.*bin/neutron-metadata-agent]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron Metadata Agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Neutron Metadata Agent:proc.num[,neutron,,bin/python.*bin/neutron-metadata-agent].last(0)}=0</expression>
|
||||
<name>Neutron Metadata Agent process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-15T21:42:33Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Neutron OVS Agent</template>
|
||||
<name>Template App OpenStack Neutron OVS Agent</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron OVS Agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Neutron OVS Agent process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,neutron,,bin/python.*bin/neutron-openvswitch-agent]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron OVS Agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Neutron OVS Agent:proc.num[,neutron,,bin/python.*bin/neutron-openvswitch-agent].last(0)}=0</expression>
|
||||
<name>Neutron OVS Agent process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,138 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2014-04-24T19:16:37Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Neutron Server</template>
|
||||
<name>Template App OpenStack Neutron Server</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron Server</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Neutron Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},9696]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron Server</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Neutron Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,neutron,,bin/python.*bin/neutron-server]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Neutron Server</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Neutron Server:proc.num[,neutron,,bin/python.*bin/neutron-server].last(0)}=0</expression>
|
||||
<name>Neutron Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Neutron Server:net.tcp.service[http,{$IP_MANAGEMENT},9696].last(0)}=0</expression>
|
||||
<name>Neutron Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:18:18Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova API</template>
|
||||
<name>Template App OpenStack Nova API</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova API</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova API Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,nova,,bin/python.*bin/nova-api]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova API</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova API:proc.num[,nova,,bin/python.*bin/nova-api].last(0)}=0</expression>
|
||||
<name>Nova API process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:18:30Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova API EC2</template>
|
||||
<name>Template App OpenStack Nova API EC2</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova API EC2</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova API EC2 Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},8773]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova API EC2</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova API EC2:net.tcp.service[http,{$IP_MANAGEMENT},8773].last(0)}=0</expression>
|
||||
<name>Nova API EC2 Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:18:50Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova API Metadata</template>
|
||||
<name>Template App OpenStack Nova API Metadata</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova API Metadata</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova API Metadata Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},8775]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova API Metadata</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova API Metadata:net.tcp.service[http,{$IP_MANAGEMENT},8775].last(0)}=0</expression>
|
||||
<name>Nova API Metadata Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:19:04Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova API OSAPI</template>
|
||||
<name>Template App OpenStack Nova API OSAPI</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova API OSAPI</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova API OSAPI Compute Server is listening on port</name>
|
||||
<type>3</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_MANAGEMENT},8774]</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova API OSAPI</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova API OSAPI:net.tcp.service[http,{$IP_MANAGEMENT},8774].last(0)}=0</expression>
|
||||
<name>Nova API OSAPI Compute Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:19:34Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova API OSAPI check</template>
|
||||
<name>Template App OpenStack Nova API OSAPI check</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova API OSAPI check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova API test succeeded</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>nova.api.status</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova API OSAPI check</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova API OSAPI check:nova.api.status.last(0)}=0</expression>
|
||||
<name>Nova API test failed on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-15T21:42:33Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova Cert</template>
|
||||
<name>Template App OpenStack Nova Cert</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova Cert</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova Cert Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,nova,,bin/python.*bin/nova-cert]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova Cert</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova Cert:proc.num[,nova,,bin/python.*bin/nova-cert].last(0)}=0</expression>
|
||||
<name>Nova Cert process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-15T21:55:39Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova Compute</template>
|
||||
<name>Template App OpenStack Nova Compute</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova Compute</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova Compute Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,nova,,bin/python.*bin/nova-compute]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova Compute</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova Compute:proc.num[,nova,,bin/python.*bin/nova-compute].last(0)}=0</expression>
|
||||
<name>Nova Compute process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2015-10-22T13:53:19Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova Conductor</template>
|
||||
<name>Template App OpenStack Nova Conductor</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova Conductor</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova Conductor Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,nova,,bin/python.*bin/nova-conductor]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova Conductor</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova Conductor:proc.num[,nova,,bin/python.*bin/nova-conductor].last(0)}=0</expression>
|
||||
<name>Nova Conductor process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-15T21:36:18Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova ConsoleAuth</template>
|
||||
<name>Template App OpenStack Nova ConsoleAuth</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova ConsoleAuth</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova ConsoleAuth Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,nova,,bin/python.*bin/nova-consoleauth]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova ConsoleAuth</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova ConsoleAuth:proc.num[,nova,,bin/python.*bin/nova-consoleauth].last(0)}=0</expression>
|
||||
<name>Nova ConsoleAuth process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-18T07:47:28Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova Network</template>
|
||||
<name>Template App OpenStack Nova Network</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova Network</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova Network Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,nova,,bin/python.*bin/nova-network]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova Network</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova Network:proc.num[,nova,,bin/python.*bin/nova-network].last(0)}=0</expression>
|
||||
<name>Nova Network process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2015-10-22T13:53:19Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova novncproxy</template>
|
||||
<name>Template App OpenStack Nova novncproxy</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova novncproxy</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova novncproxy Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,nova,,bin/python.*bin/nova-novncproxy]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova novncproxy</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova novncproxy:proc.num[,nova,,bin/python.*bin/nova-novncproxy].last(0)}=0</expression>
|
||||
<name>Nova novncproxy process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-15T22:01:03Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Nova Scheduler</template>
|
||||
<name>Template App OpenStack Nova Scheduler</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova Scheduler</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Nova Scheduler Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,nova,,bin/python.*bin/nova-scheduler]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Nova Scheduler</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Nova Scheduler:proc.num[,nova,,bin/python.*bin/nova-scheduler].last(0)}=0</expression>
|
||||
<name>Nova Scheduler process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,132 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:21:22Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Open vSwitch</template>
|
||||
<name>Template App OpenStack Open vSwitch</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Open vSwitch</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Open vSwitch DB Server server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,root,,ovsdb-server]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Open vSwitch</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Open vSwitch Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,root,,ovs-vswitchd]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Open vSwitch</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Open vSwitch:proc.num[,root,,ovsdb-server].last(0)}=0</expression>
|
||||
<name>Open vSwitch DB Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Open vSwitch:proc.num[,root,,ovs-vswitchd].last(0)}=0</expression>
|
||||
<name>Open vSwitch Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,494 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-18T13:46:42Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack HA RabbitMQ</template>
|
||||
<name>Template App OpenStack HA RabbitMQ</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>RabbitMQ AMQP is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.port[{$IP_MANAGEMENT},5673]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>RabbitMQ EPMD is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.port[,4369]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>RabbitMQ EPMD process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,,,epmd -(daemon|systemd)]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>RabbitMQ missing nodes</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>rabbitmq.missing.nodes</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>RabbitMQ missing queues</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>rabbitmq.missing.queues</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>RabbitMQ queue items</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>rabbitmq.queue.items</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>RabbitMQ queues without consumers</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>rabbitmq.queues.without.consumers</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>RabbitMQ Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.port[,41055]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>RabbitMQ BEAM process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,rabbitmq,,bin/beam]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>RabbitMQ unmirrored queues</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>rabbitmq.unmirror.queues</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>RabbitMQ</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack HA RabbitMQ:rabbitmq.unmirror.queues.last(0)}>0</expression>
|
||||
<name>RabbitMQ queues are not mirrored</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>3</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack HA RabbitMQ:rabbitmq.missing.nodes.last(0)}>0</expression>
|
||||
<name>RabbitMQ nodes missing from cluster</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>3</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack HA RabbitMQ:net.tcp.port[,4369].last(0)}=0</expression>
|
||||
<name>RabbitMQ EPMD service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack HA RabbitMQ:proc.num[,,,epmd -(daemon|systemd)].last(0)}=0</expression>
|
||||
<name>RabbitMQ EPMD process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack HA RabbitMQ:proc.num[,rabbitmq,,bin/beam].last(0)}=0</expression>
|
||||
<name>RabbitMQ BEAM process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack HA RabbitMQ:net.tcp.port[{$IP_MANAGEMENT},5673].last(0)}=0</expression>
|
||||
<name>RabbitMQ Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack HA RabbitMQ:net.tcp.port[,41055].last(0)}=0</expression>
|
||||
<name>RabbitMQ Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,181 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:22:14Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Swift Account</template>
|
||||
<name>Template App OpenStack Swift Account</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Account</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Swift Account Replicator process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,swift,,bin/python.*bin/swift-account-replicator]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Account</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Swift Account Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_STORAGE},6002]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Account</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Swift Account Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,swift,,bin/python.*bin/swift-account-server]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Account</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Account:proc.num[,swift,,bin/python.*bin/swift-account-replicator].last(0)}=0</expression>
|
||||
<name>Swift Account Replicator process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Account:proc.num[,swift,,bin/python.*bin/swift-account-server].last(0)}=0</expression>
|
||||
<name>Swift Account Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Account:net.tcp.service[http,{$IP_STORAGE},6002].last(0)}=0</expression>
|
||||
<name>Swift Account Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,181 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:22:26Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Swift Container</template>
|
||||
<name>Template App OpenStack Swift Container</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Container</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Swift Container Replicator process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,swift,,bin/python.*bin/swift-container-replicator]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Container</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Swift Container Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_STORAGE},6001]</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Container</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Swift Container Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,swift,,bin/python.*bin/swift-container-server]</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Container</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Container:proc.num[,swift,,bin/python.*bin/swift-container-replicator].last(0)}=0</expression>
|
||||
<name>Swift Container Replicator process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Container:proc.num[,swift,,bin/python.*bin/swift-container-server].last(0)}=0</expression>
|
||||
<name>Swift Container Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Container:net.tcp.service[http,{$IP_STORAGE},6001].last(0)}=0</expression>
|
||||
<name>Swift Container Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,181 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:22:38Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Swift Object</template>
|
||||
<name>Template App OpenStack Swift Object</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Object</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Swift Object Replicator process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,swift,,bin/python.*bin/swift-object-replicator]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Object</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Swift Object Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_STORAGE},6000]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Object</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Swift Object Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,swift,,bin/python.*bin/swift-object-server]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Object</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Object:proc.num[,swift,,bin/python.*bin/swift-object-replicator].last(0)}=0</expression>
|
||||
<name>Swift Object Replicator process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Object:proc.num[,swift,,bin/python.*bin/swift-object-server].last(0)}=0</expression>
|
||||
<name>Swift Object Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Object:net.tcp.service[http,{$IP_STORAGE},6000].last(0)}=0</expression>
|
||||
<name>Swift Object Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,132 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:22:52Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App OpenStack Swift Proxy</template>
|
||||
<name>Template App OpenStack Swift Proxy</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Proxy</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Swift Proxy Server is listening on port</name>
|
||||
<type>3</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.tcp.service[http,{$IP_STORAGE},8080]</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>1</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Proxy</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Swift Proxy Server process is running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>proc.num[,swift,,bin/python.*bin/swift-proxy-server]</key>
|
||||
<delay>60</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Swift Proxy</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Proxy:proc.num[,swift,,bin/python.*bin/swift-proxy-server].last(0)}=0</expression>
|
||||
<name>Swift Proxy Server process is not running on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App OpenStack Swift Proxy:net.tcp.service[http,{$IP_STORAGE},8080].last(0)}=0</expression>
|
||||
<name>Swift Proxy Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>4</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
|
@ -1,183 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2013-07-10T21:23:38Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template App Zabbix Agent</template>
|
||||
<name>Template App Zabbix Agent</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Zabbix agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>Agent ping</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>agent.ping</key>
|
||||
<delay>60</delay>
|
||||
<history>7</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description>The agent always returns 1 for this item. It could be used in combination with nodata() for availability check.</description>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Zabbix agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap>
|
||||
<name>Zabbix agent ping status</name>
|
||||
</valuemap>
|
||||
</item>
|
||||
<item>
|
||||
<name>Host name of zabbix_agentd running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>agent.hostname</key>
|
||||
<delay>3600</delay>
|
||||
<history>7</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>1</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Zabbix agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
<item>
|
||||
<name>Version of zabbix_agent(d) running</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>agent.version</key>
|
||||
<delay>3600</delay>
|
||||
<history>7</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>1</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Zabbix agent</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules/>
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template App Zabbix Agent:agent.hostname.diff(0)}>0</expression>
|
||||
<name>Host name of zabbix_agentd was changed on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>1</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App Zabbix Agent:agent.version.diff(0)}>0</expression>
|
||||
<name>Version of zabbix_agent(d) was changed on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>1</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
<trigger>
|
||||
<expression>{Template App Zabbix Agent:agent.ping.nodata(5m)}=1</expression>
|
||||
<name>Zabbix agent on {HOST.NAME} is unreachable for 5 minutes</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>3</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
</zabbix_export>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,88 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2014-12-11T12:21:22Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template NTP binding</template>
|
||||
<name>Template NTP binding</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Core Services</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>NTP Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>net.udp.listen[123]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Core Services</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules />
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template NTP binding:net.udp.listen[123].last(0)}=0</expression>
|
||||
<name>NTP Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>2</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
<graphs/>
|
||||
</zabbix_export>
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>2.0</version>
|
||||
<date>2014-12-11T12:21:22Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
<template>
|
||||
<template>Template OS Controller</template>
|
||||
<name>Template OS Controller</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Core Services</name>
|
||||
</application>
|
||||
</applications>
|
||||
<items>
|
||||
<item>
|
||||
<name>NTP Server is listening on port</name>
|
||||
<type>0</type>
|
||||
<snmp_community/>
|
||||
<multiplier>0</multiplier>
|
||||
<snmp_oid/>
|
||||
<key>netns.udp.listen[vrouter,123]</key>
|
||||
<delay>30</delay>
|
||||
<history>90</history>
|
||||
<trends>365</trends>
|
||||
<status>0</status>
|
||||
<value_type>3</value_type>
|
||||
<allowed_hosts/>
|
||||
<units/>
|
||||
<delta>0</delta>
|
||||
<snmpv3_contextname/>
|
||||
<snmpv3_securityname/>
|
||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
||||
<snmpv3_authpassphrase/>
|
||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
||||
<snmpv3_privpassphrase/>
|
||||
<formula>1</formula>
|
||||
<delay_flex/>
|
||||
<params/>
|
||||
<ipmi_sensor/>
|
||||
<data_type>0</data_type>
|
||||
<authtype>0</authtype>
|
||||
<username/>
|
||||
<password/>
|
||||
<publickey/>
|
||||
<privatekey/>
|
||||
<port/>
|
||||
<description/>
|
||||
<inventory_link>0</inventory_link>
|
||||
<applications>
|
||||
<application>
|
||||
<name>Core Services</name>
|
||||
</application>
|
||||
</applications>
|
||||
<valuemap/>
|
||||
</item>
|
||||
</items>
|
||||
<discovery_rules />
|
||||
<macros/>
|
||||
<templates/>
|
||||
<screens/>
|
||||
</template>
|
||||
</templates>
|
||||
<triggers>
|
||||
<trigger>
|
||||
<expression>{Template OS Controller:netns.udp.listen[vrouter,123].last(0)}=0</expression>
|
||||
<name>NTP Server service is down on {HOST.NAME}</name>
|
||||
<url/>
|
||||
<status>0</status>
|
||||
<priority>2</priority>
|
||||
<description/>
|
||||
<type>0</type>
|
||||
<dependencies/>
|
||||
</trigger>
|
||||
</triggers>
|
||||
<graphs/>
|
||||
</zabbix_export>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,135 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
# Copyright 2015 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.
|
||||
|
||||
import json
|
||||
import logging
|
||||
import re
|
||||
import subprocess
|
||||
import time
|
||||
import traceback
|
||||
|
||||
ERROR_RE = "[Ff]ailed: (\d+);"
|
||||
OK_RE = "[Pp]rocessed: (\d+);"
|
||||
|
||||
class ZabbixSender(object):
|
||||
""" Base class for writing Python plugins.
|
||||
"""
|
||||
|
||||
def __init__(self, zbx_server_ip, zbx_hostname, zbx_server_port=10051,
|
||||
timeout=5, debug=False, log_file='/var/log/zabbix/sender.log'):
|
||||
self.timeout = timeout
|
||||
self.debug = debug
|
||||
if debug:
|
||||
level = logging.DEBUG
|
||||
else:
|
||||
level = logging.INFO
|
||||
logging.basicConfig(filename=log_file, level=level)
|
||||
self.logger = logging
|
||||
|
||||
self.server_port = zbx_server_port
|
||||
self.server_ip = zbx_server_ip
|
||||
self.hostname = zbx_hostname
|
||||
|
||||
def execute(self, cmd, shell=True, cwd=None, outputs_on_error=False):
|
||||
"""
|
||||
Executes a program with arguments.
|
||||
|
||||
Args:
|
||||
cmd: a list of program arguments where the first item is the
|
||||
program name.
|
||||
shell: whether to use the shell as the program to execute (default=
|
||||
True).
|
||||
cwd: the directory to change to before running the program
|
||||
(default=None).
|
||||
|
||||
Returns:
|
||||
A tuple containing the standard output and error strings if the
|
||||
program execution has been successful.
|
||||
|
||||
("foobar\n", "")
|
||||
|
||||
None if the command couldn't be executed or returned a non-zero
|
||||
status code unless outputs_on_error is True
|
||||
"""
|
||||
start_time = time.time()
|
||||
try:
|
||||
proc = subprocess.Popen(
|
||||
cmd,
|
||||
cwd=cwd,
|
||||
shell=shell,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE
|
||||
)
|
||||
(stdout, stderr) = proc.communicate()
|
||||
stdout = stdout.rstrip('\n')
|
||||
except Exception as e:
|
||||
self.logger.error("Cannot execute command '%s': %s : %s" %
|
||||
(cmd, str(e), traceback.format_exc()))
|
||||
return None
|
||||
|
||||
returncode = proc.returncode
|
||||
|
||||
if returncode != 0:
|
||||
self.logger.error("Command '%s' failed (return code %d): %s %s" %
|
||||
(cmd, returncode, stderr, stdout))
|
||||
if not outputs_on_error:
|
||||
return None
|
||||
|
||||
elapsedtime = time.time() - start_time
|
||||
|
||||
if self.debug:
|
||||
self.logger.info("Command '%s' returned %s in %0.3fs" %
|
||||
(cmd, returncode, elapsedtime))
|
||||
|
||||
if not stdout and self.debug:
|
||||
self.logger.info("Command '%s' returned no output!", cmd)
|
||||
|
||||
return (stdout, stderr)
|
||||
|
||||
def execute_to_json(self, *args, **kwargs):
|
||||
"""
|
||||
Executes a program and decodes the output as a JSON string.
|
||||
|
||||
See execute().
|
||||
|
||||
Returns:
|
||||
A Python object or None if the execution of the program failed.
|
||||
"""
|
||||
outputs = self.execute(*args, **kwargs)
|
||||
if outputs:
|
||||
return json.loads(outputs[0])
|
||||
return
|
||||
|
||||
def _response_has_error(self, response):
|
||||
err = re.findall(ERROR_RE, response)
|
||||
ok = re.findall(OK_RE, response)
|
||||
if (len(err) > 0 and err[0] != '0') or (len(ok) > 0 and int(ok[0]) == 0):
|
||||
return True
|
||||
return False
|
||||
|
||||
def zabbix_sender(self, key, value):
|
||||
""" Use zabbix_sender to send metrics to zabbix server.
|
||||
|
||||
Return True if successfully processed else False
|
||||
"""
|
||||
|
||||
#TODO(scroiset): implement zabbix_sender in pure python to avoid forking process
|
||||
cmd = "zabbix_sender -z {server_ip} -p {server_port} -s {hostname} "\
|
||||
"-k {key} -o {value}".format(
|
||||
server_ip=self.server_ip, hostname=self.hostname,
|
||||
server_port= self.server_port, key = key, value= value
|
||||
)
|
||||
resp = self.execute(cmd, outputs_on_error=True)
|
||||
return self._response_has_error(resp[0])
|
|
@ -1,266 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
# Copyright 2015 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.
|
||||
|
||||
import base
|
||||
import socket
|
||||
import sys
|
||||
|
||||
class CephMonPlugin(base.ZabbixSender):
|
||||
""" Collect states and information about ceph cluster and placement groups.
|
||||
"""
|
||||
def itermetrics_status(self):
|
||||
status = self.execute_to_json('ceph -s --format json')
|
||||
if not status:
|
||||
return
|
||||
|
||||
if 'mons' in status['monmap']:
|
||||
monitor_nb = len(status['monmap']['mons'])
|
||||
else:
|
||||
monitor_nb = 0
|
||||
yield {
|
||||
'type': 'monitor_count',
|
||||
'value': monitor_nb
|
||||
}
|
||||
|
||||
yield {
|
||||
'type': 'quorum_count',
|
||||
'value': len(status.get('quorum', []))
|
||||
}
|
||||
|
||||
pgmap = status['pgmap']
|
||||
yield {
|
||||
'type': 'pg_bytes_used',
|
||||
'value': pgmap['bytes_used'],
|
||||
}
|
||||
yield {
|
||||
'type': 'pg_bytes_free',
|
||||
'value': pgmap['bytes_avail'],
|
||||
}
|
||||
yield {
|
||||
'type': 'pg_bytes_total',
|
||||
'value': pgmap['bytes_total'],
|
||||
}
|
||||
yield {
|
||||
'type': 'pg_data_bytes',
|
||||
'value': pgmap['data_bytes']
|
||||
}
|
||||
yield {
|
||||
'type': 'pg_count',
|
||||
'value': pgmap['num_pgs']
|
||||
}
|
||||
|
||||
# see: http://ceph.com/docs/master/rados/operations/pg-states/
|
||||
pg_states = {
|
||||
'creating': 0,
|
||||
'active': 0,
|
||||
'clean': 0,
|
||||
'down': 0,
|
||||
'replay': 0,
|
||||
'splitting': 0,
|
||||
'scrubbing': 0,
|
||||
'deep': 0,
|
||||
'degraded': 0,
|
||||
'inconsistent': 0,
|
||||
'peering': 0,
|
||||
'repair': 0,
|
||||
'recovering': 0,
|
||||
'backfill': 0,
|
||||
'waitbackfill': 0,
|
||||
'backfilltoofull': 0,
|
||||
'incomplete': 0,
|
||||
'stale': 0,
|
||||
'remapped': 0,
|
||||
'undersized': 0,
|
||||
'peered': 0,
|
||||
}
|
||||
|
||||
for state in pgmap['pgs_by_state']:
|
||||
if '+' in state['state_name']:
|
||||
states = state['state_name'].split('+')
|
||||
else:
|
||||
states = [state['state_name']]
|
||||
|
||||
if not states:
|
||||
self.logger.error("Unknown state {}".format(state['state_name']))
|
||||
continue
|
||||
|
||||
for s in states:
|
||||
if s in pg_states:
|
||||
pg_states[s] += state['count']
|
||||
else:
|
||||
self.logger.warning("PG state not known {}".format(s))
|
||||
|
||||
for n, num in pg_states.iteritems():
|
||||
yield {
|
||||
'type': 'pg_state_count_{}'.format(n),
|
||||
'value': num
|
||||
}
|
||||
|
||||
def itermetrics_df(self):
|
||||
df = self.execute_to_json('ceph df --format json')
|
||||
if not df:
|
||||
return
|
||||
|
||||
objects_count = 0
|
||||
for pool in df['pools']:
|
||||
objects_count += pool['stats'].get('objects', 0)
|
||||
# TODO(scroiset): add low level discovery for pool names
|
||||
#for m in ('bytes_used', 'max_avail', 'objects'):
|
||||
# yield {
|
||||
# 'type': 'pool_%s' % m,
|
||||
# 'type_instance': pool['name'],
|
||||
# 'value': pool['stats'].get(m, 0),
|
||||
# }
|
||||
|
||||
yield {
|
||||
'type': 'objects_count',
|
||||
'value': objects_count
|
||||
}
|
||||
yield {
|
||||
'type': 'pool_count',
|
||||
'value': len(df['pools'])
|
||||
}
|
||||
|
||||
if 'total_bytes' in df['stats']:
|
||||
# compatibility with 0.84+
|
||||
total = df['stats']['total_bytes']
|
||||
used = df['stats']['total_used_bytes']
|
||||
avail = df['stats']['total_avail_bytes']
|
||||
else:
|
||||
# compatibility with <0.84
|
||||
total = df['stats']['total_space'] * 1024
|
||||
used = df['stats']['total_used'] * 1024
|
||||
avail = df['stats']['total_avail'] * 1024
|
||||
|
||||
yield {
|
||||
'type': 'pool_total_bytes_used',
|
||||
'value': used
|
||||
}
|
||||
yield {
|
||||
'type': 'pool_total_bytes_free',
|
||||
'value': avail
|
||||
}
|
||||
yield {
|
||||
'type': 'pool_total_bytes_total',
|
||||
'value': total
|
||||
}
|
||||
yield {
|
||||
'type': 'pool_total_percent_used',
|
||||
'value': 100.0 * used / total
|
||||
}
|
||||
yield {
|
||||
'type': 'pool_total_percent_free',
|
||||
'value': 100.0 * avail / total
|
||||
}
|
||||
|
||||
# TODO(scroiset): add low level discovery for pool names
|
||||
#def itermetrics_pool(self):
|
||||
# stats = self.execute_to_json('ceph osd pool stats --format json')
|
||||
# if not stats:
|
||||
# return
|
||||
|
||||
# for pool in stats:
|
||||
# client_io_rate = pool.get('client_io_rate', {})
|
||||
# yield {
|
||||
# 'type': 'pool_bytes_rate',
|
||||
# 'type_instance': pool['pool_name'],
|
||||
# 'value': [client_io_rate.get('read_bytes_sec', 0),
|
||||
# client_io_rate.get('write_bytes_sec', 0)]
|
||||
# }
|
||||
# yield {
|
||||
# 'type': 'pool_ops_rate',
|
||||
# 'type_instance': pool['pool_name'],
|
||||
# 'value': client_io_rate.get('op_per_sec', 0)
|
||||
# }
|
||||
|
||||
def itermetrics_osd(self):
|
||||
osd = self.execute_to_json('ceph osd dump --format json')
|
||||
if not osd:
|
||||
return
|
||||
|
||||
# TODO(scroiset): add low level discovery for pool names
|
||||
#for pool in osd['pools']:
|
||||
# for name in ('size', 'pg_num', 'pg_placement_num'):
|
||||
# yield {
|
||||
# 'type': 'pool_%s' % name,
|
||||
# 'type_instance': pool['pool_name'],
|
||||
# 'value': pool[name]
|
||||
# }
|
||||
|
||||
_up, _down, _in, _out = (0, 0, 0, 0)
|
||||
for osd in osd['osds']:
|
||||
if osd['up'] == 1:
|
||||
_up += 1
|
||||
else:
|
||||
_down += 1
|
||||
if osd['in'] == 1:
|
||||
_in += 1
|
||||
else:
|
||||
_out += 1
|
||||
|
||||
yield {
|
||||
'type': 'osd_count_up',
|
||||
'value': _up
|
||||
}
|
||||
yield {
|
||||
'type': 'osd_count_down',
|
||||
'value': _down
|
||||
}
|
||||
yield {
|
||||
'type': 'osd_count_in',
|
||||
'value': _in
|
||||
}
|
||||
yield {
|
||||
'type': 'osd_count_out',
|
||||
'value': _out
|
||||
}
|
||||
|
||||
def send(self):
|
||||
has_error = False
|
||||
for m in plugin.itermetrics_status():
|
||||
has_error = self.zabbix_sender(m['type'], m['value'])
|
||||
for m in plugin.itermetrics_df():
|
||||
has_error = self.zabbix_sender(m['type'], m['value'])
|
||||
for m in plugin.itermetrics_osd():
|
||||
has_error = self.zabbix_sender(m['type'], m['value'])
|
||||
return has_error
|
||||
|
||||
|
||||
# print and return codes:
|
||||
# 0: no error
|
||||
# 1: failed to send some/all metrics
|
||||
# 2: exception occured while retrieving metrics
|
||||
# 3: missing arguments
|
||||
|
||||
if not len(sys.argv) == 3:
|
||||
# missing arguments!
|
||||
print 3
|
||||
sys.exit(3)
|
||||
|
||||
hostname = sys.argv[1]
|
||||
server_ip = sys.argv[2]
|
||||
plugin = CephMonPlugin(zbx_server_ip=server_ip, zbx_hostname=hostname)
|
||||
|
||||
try:
|
||||
has_error = plugin.send()
|
||||
if has_error:
|
||||
print 1
|
||||
sys.exit(1)
|
||||
else:
|
||||
print 0
|
||||
except Exception as e:
|
||||
plugin.logger.error(e)
|
||||
print 2
|
||||
sys.exit(2)
|
|
@ -1,22 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
sudo ceph health | grep -q HEALTH_OK;
|
||||
if [ $? -eq 0 ]; then
|
||||
echo 1
|
||||
else
|
||||
echo 0
|
||||
fi
|
|
@ -1,114 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
import urllib2
|
||||
import sys
|
||||
import simplejson as json
|
||||
import ConfigParser
|
||||
from zabbix_checks_logger import get_logger
|
||||
|
||||
CONF_FILE = '/etc/zabbix/check_api.conf'
|
||||
|
||||
|
||||
class OSAPI(object):
|
||||
"""Openstack API"""
|
||||
|
||||
def __init__(self, logger, config):
|
||||
self.logger = logger
|
||||
self.config = config
|
||||
self.username = self.config.get('api', 'user')
|
||||
self.password = self.config.get('api', 'password')
|
||||
self.tenant_name = self.config.get('api', 'tenant')
|
||||
self.endpoint_keystone = self.config.get('api',
|
||||
'keystone_endpoints'
|
||||
).split(',')
|
||||
self.token = None
|
||||
self.tenant_id = None
|
||||
self.get_token()
|
||||
|
||||
def get_timeout(self, service):
|
||||
try:
|
||||
return int(self.config.get('api', '%s_timeout' % service))
|
||||
except ConfigParser.NoOptionError:
|
||||
return 1
|
||||
|
||||
def get_token(self):
|
||||
data = json.dumps({
|
||||
"auth":
|
||||
{
|
||||
'tenantName': self.tenant_name,
|
||||
'passwordCredentials':
|
||||
{
|
||||
'username': self.username,
|
||||
'password': self.password
|
||||
}
|
||||
}
|
||||
})
|
||||
for keystone in self.endpoint_keystone:
|
||||
self.logger.info("Trying to get token from '%s'" % keystone)
|
||||
try:
|
||||
request = urllib2.Request(
|
||||
'%s/tokens' % keystone,
|
||||
data=data,
|
||||
headers={
|
||||
'Content-type': 'application/json'
|
||||
})
|
||||
data = json.loads(
|
||||
urllib2.urlopen(
|
||||
request, timeout=self.get_timeout('keystone')).read())
|
||||
self.token = data['access']['token']['id']
|
||||
self.tenant_id = data['access']['token']['tenant']['id']
|
||||
self.logger.debug("Got token '%s'" % self.token)
|
||||
return
|
||||
except Exception as e:
|
||||
self.logger.debug("Got exception '%s'" % e)
|
||||
self.logger.critical(0)
|
||||
sys.exit(1)
|
||||
|
||||
def check_api(self, url, service):
|
||||
self.logger.info("Trying '%s' on '%s'" % (service, url))
|
||||
try:
|
||||
request = urllib2.Request(url,
|
||||
headers={
|
||||
'X-Auth-Token': self.token,
|
||||
})
|
||||
urllib2.urlopen(request, timeout=self.get_timeout(service))
|
||||
except Exception as e:
|
||||
self.logger.debug("Got exception from '%s' '%s'" % (service, e))
|
||||
self.logger.critical(0)
|
||||
sys.exit(1)
|
||||
self.logger.critical(1)
|
||||
|
||||
|
||||
def main():
|
||||
config = ConfigParser.RawConfigParser()
|
||||
config.read(CONF_FILE)
|
||||
logger = get_logger(config.get('api', 'log_level'))
|
||||
|
||||
API = OSAPI(logger, config)
|
||||
|
||||
if len(sys.argv) < 5:
|
||||
logger.critical('No argvs, dunno what to do')
|
||||
sys.exit(1)
|
||||
map = config.get('api', '%s_map' % sys.argv[1])
|
||||
|
||||
url = '%s://%s:%s/%s' % (sys.argv[2], sys.argv[3], sys.argv[4], map)
|
||||
url = url % API.__dict__
|
||||
|
||||
API.check_api(url, sys.argv[1])
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -1,134 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
import urllib2
|
||||
import simplejson as json
|
||||
import sys
|
||||
import base64
|
||||
import ConfigParser
|
||||
from zabbix_checks_logger import get_logger
|
||||
|
||||
CONF_FILE = '/etc/zabbix/check_rabbit.conf'
|
||||
|
||||
|
||||
class RabbitmqAPI(object):
|
||||
def __init__(self, logger, config):
|
||||
self.logger = logger
|
||||
self.login = config.get('rabbitmq', 'user')
|
||||
self.password = config.get('rabbitmq', 'password')
|
||||
self.host = config.get('rabbitmq', 'host')
|
||||
self.auth_string = base64.encodestring('%s:%s' %
|
||||
(self.login,
|
||||
self.password)
|
||||
).replace('\n', '')
|
||||
self.max_queues = int(config.get('rabbitmq', 'max_queues'))
|
||||
|
||||
def get_http(self, url):
|
||||
try:
|
||||
request = urllib2.Request('%s/api/%s' % (self.host, url))
|
||||
request.add_header("Authorization", "Basic %s" % self.auth_string)
|
||||
return json.loads(urllib2.urlopen(request, timeout=2).read())
|
||||
except urllib2.URLError as e:
|
||||
self.logger.error("URL error: '%s'" % e)
|
||||
sys.exit(1)
|
||||
except ValueError as e:
|
||||
self.logger.error("Value error: '%s'" % e)
|
||||
sys.exit(1)
|
||||
|
||||
def get_queues_items(self):
|
||||
response = self.get_http('overview')
|
||||
if 'queue_totals' in response:
|
||||
self.logger.critical(response['queue_totals']['messages'])
|
||||
else:
|
||||
self.logger.error('No queue_totals in response')
|
||||
|
||||
def get_missing_queues(self):
|
||||
queues = 0
|
||||
response = self.get_http('queues')
|
||||
for queue in response:
|
||||
queues += 1
|
||||
self.logger.critical(self.max_queues-queues)
|
||||
|
||||
def get_queues_without_consumers(self):
|
||||
queues_without_consumers = 0
|
||||
response = self.get_http('queues')
|
||||
for queue in response:
|
||||
queues_without_consumers += 1
|
||||
if ('consumers' in queue and
|
||||
queue['consumers'] > 0):
|
||||
queues_without_consumers -= 1
|
||||
self.logger.critical(queues_without_consumers)
|
||||
|
||||
def get_missing_nodes(self):
|
||||
missing_nodes = 0
|
||||
response = self.get_http('nodes')
|
||||
for node in response:
|
||||
if not node['running']:
|
||||
missing_nodes += 1
|
||||
self.logger.critical(missing_nodes)
|
||||
|
||||
def get_unmirror_queues(self):
|
||||
response = self.get_http('nodes')
|
||||
if (len(response) < 2):
|
||||
self.logger.critical(0)
|
||||
return
|
||||
|
||||
response = self.get_http('queues')
|
||||
unmirror_queues = 0
|
||||
for queue in response:
|
||||
if ('policy' in queue and
|
||||
queue['policy'] == 'ha-all'):
|
||||
unmirror_queues += 1
|
||||
if ('synchronised_slave_nodes' in queue and
|
||||
len(queue['synchronised_slave_nodes']) > 0):
|
||||
unmirror_queues -= 1
|
||||
self.logger.critical(unmirror_queues)
|
||||
|
||||
def usage():
|
||||
print("check_rabbit.py usage:\n \
|
||||
queues-items - item count in queues\n \
|
||||
queues-without-consumers - count queues without consumers\n \
|
||||
missing-nodes - count missing nodes from rabbitmq cluster\n \
|
||||
unmirror-queues - count unmirrored queues\n \
|
||||
missing-queues max_queues - compare queues count to max_queues\n")
|
||||
|
||||
|
||||
def main():
|
||||
config = ConfigParser.RawConfigParser()
|
||||
config.read(CONF_FILE)
|
||||
logger = get_logger(config.get('rabbitmq', 'log_level'))
|
||||
|
||||
API = RabbitmqAPI(logger, config)
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
logger.critical('No argvs, dunno what to do')
|
||||
sys.exit(1)
|
||||
|
||||
if sys.argv[1] == 'missing-queues':
|
||||
API.get_missing_queues()
|
||||
elif sys.argv[1] == 'queues-items':
|
||||
API.get_queues_items()
|
||||
elif sys.argv[1] == 'queues-without-consumers':
|
||||
API.get_queues_without_consumers()
|
||||
elif sys.argv[1] == 'missing-nodes':
|
||||
API.get_missing_nodes()
|
||||
elif sys.argv[1] == 'unmirror-queues':
|
||||
API.get_unmirror_queues()
|
||||
else:
|
||||
usage()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -1,27 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
NODES=$(/usr/bin/sudo /usr/sbin/crm_resource --locate --quiet --resource $1)
|
||||
HOSTNAME=$(/bin/hostname)
|
||||
|
||||
for NODE in $NODES
|
||||
do
|
||||
if [ "$NODE" == "$HOSTNAME" ]; then
|
||||
echo 1
|
||||
exit
|
||||
fi
|
||||
done
|
||||
echo 0
|
|
@ -1,100 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
# This script is a wrapper to HAproxy statistics which are in a CSV format.
|
||||
# Output format is compatible with Zabbix.
|
||||
# It can be used for HAproxy frontends and/or backends discovery and for
|
||||
# gathering statistics about particular frontend,backend or server.
|
||||
|
||||
case $1 in
|
||||
"-f")
|
||||
OPER='discovery'
|
||||
FESQ='grep FRONTEND'
|
||||
;;
|
||||
"-b")
|
||||
OPER='discovery'
|
||||
FESQ='grep BACKEND'
|
||||
;;
|
||||
"-s")
|
||||
OPER='discovery'
|
||||
FESQ='grep -v FRONTEND\|BACKEND\|^$\|^#'
|
||||
;;
|
||||
"-v")
|
||||
OPER='value'
|
||||
HAPX=$2
|
||||
HASV=$3
|
||||
ITEM=$4
|
||||
FESQ="grep ^${HAPX},${HASV},"
|
||||
;;
|
||||
*)
|
||||
echo "Wrong arguments supplied, exiting...
|
||||
|
||||
Usage:
|
||||
$0 -f|-b|-s|-v <group>.<server>.<item>
|
||||
|
||||
-f frontend discovery
|
||||
-b backend discovery
|
||||
-s server discovery
|
||||
-v <group>.<server>.<item> get particular item value, for example:
|
||||
|
||||
-v zabbix-agent.node-1.smax
|
||||
will print smax item value for server node-1 in group zabbix-agent
|
||||
-v zabbix-agent.FRONTEND.smax
|
||||
will print smax item value for FRONTEND part of zabbix-agent group
|
||||
-v zabbix-agent.BACKEND.smax
|
||||
will print smax item value for BACKEND part of zabbix-agent group
|
||||
"
|
||||
exit 1
|
||||
esac
|
||||
STATHEAD=( pxname svname qcur qmax scur smax slim stot bin bout dreq
|
||||
dresp ereq econ eresp wretr wredis status weight act bck chkfail
|
||||
chkdown lastchg downtime qlimit pid iid sid throttle lbtot tracked
|
||||
type rate rate_lim rate_max check_status check_code check_duration
|
||||
hrsp_1xx hrsp_2xx hrsp_3xx hrsp_4xx hrsp_5xx hrsp_other hanafail
|
||||
req_rate req_rate_max req_tot cli_abrt srv_abrt )
|
||||
|
||||
FES=`echo "show stat" | sudo socat /var/lib/haproxy/stats stdio | sed 's/ /_/g' |grep -v -i 'zabbix-server' | $FESQ`
|
||||
if [ "$OPER" == "discovery" ]; then
|
||||
POSITION=1
|
||||
echo "{"
|
||||
echo " \"data\":["
|
||||
for FE in $FES
|
||||
do
|
||||
IFS=$','
|
||||
FEA=($FE)
|
||||
unset IFS
|
||||
HAPX=${FEA[0]}
|
||||
HASV=${FEA[1]}
|
||||
HASTAT=${HAPX}-${HASV}
|
||||
if [ $POSITION -gt 1 ]
|
||||
then
|
||||
echo ","
|
||||
fi
|
||||
echo -n " { \"{#HAPX}\": \"$HAPX\", \"{#HASTAT}\": \"$HASTAT\", \"{#HASV}\": \"$HASV\" }"
|
||||
POSITION=$[POSITION+1]
|
||||
done
|
||||
echo ""
|
||||
echo " ]"
|
||||
echo "}"
|
||||
elif [ "$OPER" == "value" ]; then
|
||||
IFS=$','
|
||||
FEA=($FES)
|
||||
unset IFS
|
||||
cnt=0; for el in "${STATHEAD[@]}"; do
|
||||
[[ "$el" == "$ITEM" ]] && echo ${FEA[$cnt]} && break
|
||||
((++cnt))
|
||||
done
|
||||
fi
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
PROTO=$1
|
||||
NS=$2
|
||||
PORT=$3
|
||||
IP=$4
|
||||
|
||||
if test -z "$NS"; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$PROTO" -o -z "$PORT"; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "$IP" ]; then
|
||||
ADDRESS="$PROTO""@""$IP:$PORT"
|
||||
else
|
||||
ADDRESS="$PROTO"":$PORT"
|
||||
fi
|
||||
|
||||
num=$(/bin/ip netns exec "$NS" /usr/bin/lsof -i"$ADDRESS" 2>/dev/null|wc -l)
|
||||
|
||||
if [ "$num" -gt 0 ]; then
|
||||
echo 1
|
||||
else
|
||||
echo 0
|
||||
fi
|
||||
exit 0
|
|
@ -1,57 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
import ConfigParser
|
||||
import sys
|
||||
import sqlalchemy
|
||||
from zabbix_checks_logger import get_logger
|
||||
|
||||
CONF_FILE = '/etc/zabbix/check_db.conf'
|
||||
|
||||
|
||||
def query_db(logger, connection_string, query_string):
|
||||
try:
|
||||
engine = sqlalchemy.create_engine(connection_string)
|
||||
res = engine.execute(query_string).first()
|
||||
except sqlalchemy.exc.OperationalError as e:
|
||||
logger.critical("Operational error '%s'" % e)
|
||||
except sqlalchemy.exc.ProgrammingError as e:
|
||||
logger.critical("Programming error '%s'" % e)
|
||||
else:
|
||||
return res[0]
|
||||
|
||||
config = ConfigParser.RawConfigParser()
|
||||
config.read(CONF_FILE)
|
||||
|
||||
logger = get_logger(config.get('query_db', 'log_level'))
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) < 2:
|
||||
logger.critical('No argvs, dunno what to do')
|
||||
sys.exit(1)
|
||||
|
||||
item = sys.argv[1]
|
||||
try:
|
||||
sql_connection = config.get('query_db', '%s_connection' % item)
|
||||
sql_query = config.get('query_db', '%s_query' % item)
|
||||
except ConfigParser.NoOptionError as e:
|
||||
logger.critical("Item '%s' not configured" % item)
|
||||
sys.exit(2)
|
||||
|
||||
logger.info("Get request for item '%s'" % item)
|
||||
logger.debug("Sql connection: '%s', sql query: '%s'" %
|
||||
(sql_connection, sql_query))
|
||||
logger.critical(query_db(logger, sql_connection, sql_query))
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
#Zabbix vfs.dev.discovery implementation
|
||||
|
||||
echo -e "{\n\t\"data\" : ["
|
||||
|
||||
# we have to end each line with a comma except the last one (JSON SIC!)
|
||||
# so we have to manage the line separator manually in awk :/
|
||||
egrep -v 'major|^$|dm-|[0-9]$' /proc/partitions | awk '
|
||||
BEGIN{ORS="";n=0}
|
||||
{
|
||||
if (n++) print ",\n";
|
||||
print "\t{ \"{#DEVNAME}\" : \""$4"\" }"
|
||||
}
|
||||
'
|
||||
|
||||
echo -e "\n\t]\n}"
|
|
@ -1,32 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
#Zabbix vfs.mdadm.discovery implementation
|
||||
|
||||
echo -e "{\n\t\"data\" : ["
|
||||
|
||||
# we have to end each line with a comma except the last one (JSON SIC!)
|
||||
# so we have to manage the line separator manually in awk :/
|
||||
awk -F: '
|
||||
BEGIN{ORS="";n=0}
|
||||
$1 ~ /^md.?/ {
|
||||
gsub(" *$","",$1);
|
||||
if (n++) print ",\n";
|
||||
print "\t{ \"{#MDEVICE}\" : \""$1"\" }"
|
||||
}
|
||||
' /proc/mdstat
|
||||
|
||||
echo -e "\n\t]\n}"
|
|
@ -1,32 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
import sys
|
||||
import logging
|
||||
|
||||
LOGGING_LEVELS = {
|
||||
'CRITICAL': logging.CRITICAL,
|
||||
'WARNING': logging.WARNING,
|
||||
'INFO': logging.INFO,
|
||||
'DEBUG': logging.DEBUG
|
||||
}
|
||||
|
||||
|
||||
def get_logger(level):
|
||||
logger = logging.getLogger()
|
||||
ch = logging.StreamHandler(sys.stdout)
|
||||
logger.setLevel(LOGGING_LEVELS[level])
|
||||
logger.addHandler(ch)
|
||||
return logger
|
|
@ -1,2 +0,0 @@
|
|||
dbc_install='false'
|
||||
dbc_upgrade='false'
|
|
@ -1,273 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
# Zabbix server OCF script
|
||||
#
|
||||
# Description: Manages Zabbix server process as a HA resource
|
||||
#
|
||||
# Authors: Mirantis inc.
|
||||
#
|
||||
# Support: openstack@lists.launchpad.net
|
||||
#
|
||||
# See usage() function below for more details ...
|
||||
#
|
||||
# OCF instance parameters:
|
||||
# OCF_RESKEY_binary
|
||||
# OCF_RESKEY_config
|
||||
# OCF_RESKEY_user
|
||||
# OCF_RESKEY_pid
|
||||
# OCF_RESKEY_additional_parameters
|
||||
# OCF_RESKEY_namespace
|
||||
#######################################################################
|
||||
# Initialization:
|
||||
|
||||
: ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat}
|
||||
. ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs
|
||||
|
||||
#######################################################################
|
||||
|
||||
# Fill in some defaults if no values are specified
|
||||
|
||||
SERVICE_NAME="Zabbix-server"
|
||||
|
||||
OCF_RESKEY_binary_default="/usr/sbin/zabbix_server"
|
||||
OCF_RESKEY_pid_default="/var/run/zabbix/zabbix_server.pid"
|
||||
OCF_RESKEY_namespace_default="zabbix"
|
||||
|
||||
: ${OCF_RESKEY_binary=${OCF_RESKEY_binary_default}}
|
||||
: ${OCF_RESKEY_pid=${OCF_RESKEY_pid_default}}
|
||||
: ${OCF_RESKEY_namespace=${OCF_RESKEY_namespace_default}}
|
||||
|
||||
#######################################################################
|
||||
|
||||
usage() {
|
||||
cat <<UEND
|
||||
usage: $0 (start|stop|validate-all|meta-data|status|monitor)
|
||||
|
||||
$0 manages the ${SERVICE_NAME} process as an HA resource
|
||||
|
||||
The 'start' operation starts the ${SERVICE_NAME}
|
||||
The 'stop' operation stops the ${SERVICE_NAME}
|
||||
The 'validate-all' operation reports whether the parameters are valid
|
||||
The 'meta-data' operation reports this RA's meta-data information
|
||||
The 'status' operation reports whether the ${SERVICE_NAME} is running
|
||||
The 'monitor' operation reports whether the ${SERVICE_NAME} is running
|
||||
|
||||
UEND
|
||||
}
|
||||
|
||||
meta_data() {
|
||||
cat <<END
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
|
||||
<resource-agent name="zabbix-server">
|
||||
<version>1.0</version>
|
||||
|
||||
<longdesc lang="en">
|
||||
Manages Zabbix server daemon as a Pacemaker Resource.
|
||||
</longdesc>
|
||||
<shortdesc lang="en">Manages Zabbix server</shortdesc>
|
||||
<parameters>
|
||||
|
||||
<parameter name="binary" unique="0" required="0">
|
||||
<longdesc lang="en">
|
||||
Name of zabbix-server file that will be run.
|
||||
</longdesc>
|
||||
<shortdesc lang="en">zabbix-server binary file</shortdesc>
|
||||
<content type="string" default="${OCF_RESKEY_binary_default}" />
|
||||
</parameter>
|
||||
|
||||
<parameter name="pid" unique="0" required="0">
|
||||
<longdesc lang="en">
|
||||
The pid file to use for this process
|
||||
</longdesc>
|
||||
<shortdesc lang="en">zabbix-server pid file</shortdesc>
|
||||
<content type="string" default="${OCF_RESKEY_pid_default}" />
|
||||
</parameter>
|
||||
|
||||
<parameter name="namespace" unique="0" required="0">
|
||||
<longdesc lang="en">
|
||||
The namespace in which this process should be run
|
||||
</longdesc>
|
||||
<shortdesc lang="en">zabbix-server namespace</shortdesc>
|
||||
<content type="string" default="${OCF_RESKEY_namespace_default}" />
|
||||
</parameter>
|
||||
|
||||
</parameters>
|
||||
|
||||
<actions>
|
||||
<action name="start" timeout="20" />
|
||||
<action name="stop" timeout="20" />
|
||||
<action name="status" timeout="20" />
|
||||
<action name="monitor" timeout="30" interval="20" />
|
||||
<action name="validate-all" timeout="5" />
|
||||
<action name="meta-data" timeout="5" />
|
||||
</actions>
|
||||
</resource-agent>
|
||||
END
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# Functions invoked by resource manager actions
|
||||
|
||||
service_validate() {
|
||||
local rc
|
||||
|
||||
check_binary $OCF_RESKEY_binary
|
||||
|
||||
# A config file on shared storage that is not available
|
||||
# during probes is OK.
|
||||
#if [ ! -f $OCF_RESKEY_config ]; then
|
||||
# if ! ocf_is_probe; then
|
||||
# ocf_log err "Config $OCF_RESKEY_config doesn't exist"
|
||||
# return $OCF_ERR_INSTALLED
|
||||
# fi
|
||||
# ocf_log_warn "Config $OCF_RESKEY_config not available during a probe"
|
||||
#fi
|
||||
|
||||
true
|
||||
}
|
||||
|
||||
service_status() {
|
||||
local pid
|
||||
local rc
|
||||
|
||||
if [ ! -f $OCF_RESKEY_pid ]; then
|
||||
ocf_log info "${SERVICE_NAME} is not running"
|
||||
return $OCF_NOT_RUNNING
|
||||
else
|
||||
pid=`cat $OCF_RESKEY_pid`
|
||||
fi
|
||||
|
||||
ocf_run -warn kill -s 0 $pid
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
return $OCF_SUCCESS
|
||||
else
|
||||
ocf_log info "Old PID file found, but ${SERVICE_NAME} is not running"
|
||||
return $OCF_NOT_RUNNING
|
||||
fi
|
||||
}
|
||||
|
||||
service_monitor() {
|
||||
service_status
|
||||
}
|
||||
|
||||
service_start() {
|
||||
local rc
|
||||
|
||||
service_status
|
||||
rc=$?
|
||||
if [ $rc -eq $OCF_SUCCESS ]; then
|
||||
ocf_log info "${SERVICE_NAME} is already running"
|
||||
return $OCF_SUCCESS
|
||||
fi
|
||||
|
||||
ip netns exec ${OCF_RESKEY_namespace} ${OCF_RESKEY_binary}
|
||||
|
||||
# Spin waiting for the server to come up.
|
||||
# Let the CRM/LRM time us out if required
|
||||
while true; do
|
||||
service_monitor
|
||||
rc=$?
|
||||
[ $rc -eq $OCF_SUCCESS ] && break
|
||||
if [ $rc -ne $OCF_NOT_RUNNING ]; then
|
||||
ocf_log err "${SERVICE_NAME} start failed"
|
||||
exit $OCF_ERR_GENERIC
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
ocf_log info "${SERVICE_NAME} started"
|
||||
return $OCF_SUCCESS
|
||||
}
|
||||
|
||||
service_stop() {
|
||||
local rc
|
||||
local pid
|
||||
|
||||
service_status
|
||||
rc=$?
|
||||
if [ $rc -eq $OCF_NOT_RUNNING ]; then
|
||||
ocf_log info "${SERVICE_NAME} is already stopped"
|
||||
return $OCF_SUCCESS
|
||||
fi
|
||||
|
||||
# Try SIGTERM
|
||||
pid=`cat $OCF_RESKEY_pid`
|
||||
ocf_run kill -s TERM $pid
|
||||
rc=$?
|
||||
if [ $rc -ne 0 ]; then
|
||||
ocf_log err "${SERVICE_NAME} couldn't be stopped"
|
||||
exit $OCF_ERR_GENERIC
|
||||
fi
|
||||
|
||||
# stop waiting
|
||||
shutdown_timeout=15
|
||||
if [ -n "$OCF_RESKEY_CRM_meta_timeout" ]; then
|
||||
shutdown_timeout=$((($OCF_RESKEY_CRM_meta_timeout/1000)-5))
|
||||
fi
|
||||
count=0
|
||||
while [ $count -lt $shutdown_timeout ]; do
|
||||
service_status
|
||||
rc=$?
|
||||
if [ $rc -eq $OCF_NOT_RUNNING ]; then
|
||||
break
|
||||
fi
|
||||
count=`expr $count + 1`
|
||||
sleep 1
|
||||
ocf_log debug "${SERVICE_NAME} still hasn't stopped yet. Waiting ..."
|
||||
done
|
||||
|
||||
service_status
|
||||
rc=$?
|
||||
if [ "${rc}" -ne "${OCF_NOT_RUNNING}" ]; then
|
||||
# SIGTERM didn't help either, try SIGKILL
|
||||
ocf_log info "${SERVICE_NAME} failed to stop after ${shutdown_timeout}s using SIGTERM. Trying SIGKILL ..."
|
||||
ocf_run kill -s KILL "${pid}"
|
||||
fi
|
||||
|
||||
ocf_log info "${SERVICE_NAME} stopped"
|
||||
|
||||
rm -f "${OCF_RESKEY_pid}"
|
||||
|
||||
return "${OCF_SUCCESS}"
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
|
||||
case "$1" in
|
||||
meta-data) meta_data
|
||||
exit $OCF_SUCCESS;;
|
||||
usage|help) usage
|
||||
exit $OCF_SUCCESS;;
|
||||
esac
|
||||
|
||||
# Anything except meta-data and help must pass validation
|
||||
service_validate || exit $?
|
||||
|
||||
# What kind of method was invoked?
|
||||
case "$1" in
|
||||
start) service_start;;
|
||||
stop) service_stop;;
|
||||
status) service_status;;
|
||||
monitor) service_monitor;;
|
||||
validate-all) ;;
|
||||
*) usage
|
||||
exit $OCF_ERR_UNIMPLEMENTED;;
|
||||
esac
|
||||
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
Defaults:zabbix !requiretty
|
||||
zabbix ALL = NOPASSWD: /usr/bin/socat /var/lib/haproxy/stats stdio
|
||||
zabbix ALL = NOPASSWD: /usr/sbin/iptstate
|
||||
zabbix ALL = NOPASSWD: /usr/sbin/crm_resource --locate --quiet --resource *
|
||||
zabbix ALL = NOPASSWD: /usr/bin/ceph health
|
||||
zabbix ALL = NOPASSWD: /etc/zabbix/scripts/netns.listen.sh
|
|
@ -1,28 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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_pacemaker.rb
|
||||
|
||||
Facter.add('check_zabbix_pacemaker') do
|
||||
setcode do
|
||||
crm_cmd = Facter::Util::Resolution.exec('/bin/which crm')
|
||||
if crm_cmd.nil? then
|
||||
''
|
||||
else
|
||||
crm_res = Facter::Util::Resolution.exec(crm_cmd + ' status | grep zabbix' )
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,36 +0,0 @@
|
|||
#
|
||||
# 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
|
|
@ -1,39 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
Puppet::Parser::Functions::newfunction(
|
||||
:defined_in_state,
|
||||
:type => :rvalue,
|
||||
:doc => 'Returns True when resource is defined in state.yaml file'
|
||||
) do |args|
|
||||
|
||||
yaml_file = '/var/lib/puppet/state/state.yaml'
|
||||
|
||||
raise(Puppet::ParseError, "defined_in_state(): Wrong number of arguments " +
|
||||
"given (#{args.size} for 1)") if args.size != 1
|
||||
|
||||
resource = args[0]
|
||||
|
||||
begin
|
||||
yaml = YAML.load_file(yaml_file)
|
||||
if ! yaml["#{resource}"].nil?
|
||||
return true
|
||||
end
|
||||
rescue Exception => e
|
||||
Puppet.warning("#{e}")
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
|
@ -1,30 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
Puppet::Parser::Functions::newfunction(
|
||||
:get_server_by_role,
|
||||
:type => :rvalue,
|
||||
:doc => 'Returns server node hash by role'
|
||||
) do |args|
|
||||
fuel_nodes = args[0]
|
||||
requested_roles = args[1]
|
||||
server = ""
|
||||
fuel_nodes.each do |node|
|
||||
next unless requested_roles.include?(node['role'])
|
||||
server = node
|
||||
end
|
||||
server
|
||||
end
|
||||
|
|
@ -1,130 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
require 'puppet'
|
||||
require 'json'
|
||||
require 'net/http'
|
||||
class Puppet::Provider::Plugin_zabbix < Puppet::Provider
|
||||
|
||||
@@auth_hash = ""
|
||||
|
||||
def self.message_json(body)
|
||||
if body[:method] == "user.login"
|
||||
message = {
|
||||
:method => body[:method],
|
||||
:params => body[:params],
|
||||
:id => rand(9000),
|
||||
:jsonrpc => '2.0'
|
||||
}
|
||||
else
|
||||
message = {
|
||||
:method => body[:method],
|
||||
:params => body[:params],
|
||||
:auth => auth_hash,
|
||||
:id => rand(9000),
|
||||
:jsonrpc => '2.0'
|
||||
}
|
||||
end
|
||||
JSON.generate(message)
|
||||
end
|
||||
|
||||
def self.make_request(api, body)
|
||||
uri = URI.parse(api["endpoint"])
|
||||
http = Net::HTTP.new(uri.host, uri.port)
|
||||
http.use_ssl = uri.scheme == 'https'
|
||||
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
||||
request = Net::HTTP::Post.new(uri.request_uri)
|
||||
request.add_field("Content-Type", "application/json-rpc")
|
||||
request.body = message_json(body)
|
||||
response = http.request(request)
|
||||
Puppet::debug("request = #{request.body}")
|
||||
Puppet::debug("response = #{response.body}")
|
||||
response.value
|
||||
result = JSON.parse(response.body)
|
||||
result
|
||||
end
|
||||
|
||||
def self.api_request(api, body, retries=10)
|
||||
cooldown = 1
|
||||
Puppet.info("Trying to make a request to zabbix server, will try #{retries} times with #{cooldown} seconds between tries")
|
||||
retries.times do |r|
|
||||
begin
|
||||
Puppet.info("Retry ##{r}/#{retries}:")
|
||||
result = make_request(api, body)
|
||||
|
||||
if result.has_key? "error"
|
||||
raise(Puppet::Error, "Zabbix API returned error code #{result["error"]["code"]}: #{result["error"]["message"]}, #{result["error"]["data"]}")
|
||||
end
|
||||
|
||||
return result["result"]
|
||||
|
||||
rescue => e
|
||||
if r == retries - 1
|
||||
Puppet.warning("Out of retries to make a request to zabbix server (#{retries})")
|
||||
raise e
|
||||
else
|
||||
Puppet.warning("Could not make request to zabbix: #{e}, sleeping #{cooldown*r} (retry (##{r}/#{retries}))")
|
||||
sleep(cooldown*r)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.auth(api)
|
||||
body = {:method => "user.login",
|
||||
:params => {:user => api["username"],
|
||||
:password => api["password"]}}
|
||||
@@auth_hash = api_request(api, body)
|
||||
end
|
||||
|
||||
def auth(api)
|
||||
self.class.auth(api)
|
||||
end
|
||||
|
||||
def api_request(api, body)
|
||||
self.class.api_request(api, body)
|
||||
end
|
||||
|
||||
def self.auth_hash
|
||||
@@auth_hash
|
||||
end
|
||||
|
||||
def auth_hash
|
||||
self.class.auth_hash
|
||||
end
|
||||
|
||||
def self.get_host(api, name)
|
||||
Puppet::debug("gethost #{name}")
|
||||
api_request(api,
|
||||
{:method => "host.get",
|
||||
:params => {:filter => {:name => [name]}}})
|
||||
end
|
||||
|
||||
def self.get_hostgroup(api, name)
|
||||
Puppet::debug("gethostgroup #{name}")
|
||||
api_request(api,
|
||||
{:method => "hostgroup.get",
|
||||
:params => {:filter => {:name => [name]}}})
|
||||
end
|
||||
|
||||
def get_host(api, name)
|
||||
self.class.get_host(api, name)
|
||||
end
|
||||
|
||||
def get_hostgroup(api, name)
|
||||
self.class.get_hostgroup(api, name)
|
||||
end
|
||||
|
||||
end
|
|
@ -1,116 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
$LOAD_PATH.push(File.join(File.dirname(__FILE__), '..', '..', '..'))
|
||||
require 'puppet/provider/plugin_zabbix'
|
||||
require 'digest/md5'
|
||||
|
||||
Puppet::Type.type(:plugin_zabbix_configuration_import).provide(:ruby,
|
||||
:parent => Puppet::Provider::Plugin_zabbix) do
|
||||
|
||||
def exists?
|
||||
auth(resource[:api])
|
||||
macroname = '{$TMPL_' + Pathname.new(resource[:xml_file]).basename.to_s.gsub('.', '_').upcase + '}'
|
||||
macroid = nil
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {:globalmacro => true,
|
||||
:output => 'extend'}})
|
||||
result.each { |macro| macroid = macro['globalmacroid'] if macro['macro'] == macroname }
|
||||
not macroid.nil?
|
||||
end
|
||||
|
||||
def create
|
||||
macroname = '{$TMPL_' + Pathname.new(resource[:xml_file]).basename.to_s.gsub('.', '_').upcase + '}'
|
||||
xml_file_checksum = config_import(resource[:xml_file])
|
||||
api_request(resource[:api],
|
||||
{:method => 'usermacro.createglobal',
|
||||
:params => {:macro => macroname,
|
||||
:value => xml_file_checksum}})
|
||||
end
|
||||
|
||||
def destroy
|
||||
macroname = '{$TMPL_' + Pathname.new(resource[:xml_file]).basename.to_s.gsub('.', '_').upcase + '}'
|
||||
macroid = nil
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {:globalmacro => true,
|
||||
:output => 'extend'}})
|
||||
result.each { |macro| macroid = macro['globalmacroid'] if macro['macro'] == macroname }
|
||||
api_request(resource[:api],
|
||||
{:method => 'usermacro.deleteglobal',
|
||||
:params => [macroid]})
|
||||
end
|
||||
|
||||
def xml_file
|
||||
macrovalue = nil
|
||||
macroname = '{$TMPL_' + Pathname.new(resource[:xml_file]).basename.to_s.gsub('.', '_').upcase + '}'
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {:globalmacro => true,
|
||||
:output => 'extend'}})
|
||||
result.each { |macro| macrovalue = macro['value'] if macro['macro'] == macroname }
|
||||
macrovalue
|
||||
end
|
||||
|
||||
def xml_file=(v)
|
||||
macroid = nil
|
||||
xml_file_checksum = config_import(resource[:xml_file])
|
||||
macroname = '{$TMPL_' + Pathname.new(resource[:xml_file]).basename.to_s.gsub('.', '_').upcase + '}'
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {:globalmacro => true,
|
||||
:output => 'extend'}})
|
||||
result.each { |macro| macroid = macro['globalmacroid'] if macro['macro'] == macroname }
|
||||
api_request(resource[:api],
|
||||
{:method => 'usermacro.updateglobal',
|
||||
:params => {:globalmacroid => macroid,
|
||||
:value => xml_file_checksum}})
|
||||
end
|
||||
|
||||
def config_import(xml_file)
|
||||
xml_file_content = Puppet::Util::FileType.filetype(:flat).new(xml_file).read
|
||||
xml_file_checksum = Digest::MD5.hexdigest(xml_file_content)
|
||||
api_request(resource[:api],
|
||||
{:method => 'configuration.import',
|
||||
:params => {:format => 'xml',
|
||||
:source => xml_file_content,
|
||||
:rules => {:applications => {:createMissing => true,
|
||||
:updateExisting => true},
|
||||
:discoveryRules => {:createMissing => true,
|
||||
:updateExisting => true},
|
||||
:graphs => {:createMissing => true,
|
||||
:updateExisting => true},
|
||||
:groups => {:createMissing => true,
|
||||
:updateExisting => true},
|
||||
:images => {:createMissing => true,
|
||||
:updateExisting => true},
|
||||
:items => {:createMissing => true,
|
||||
:updateExisting => true},
|
||||
:maps => {:createMissing => true,
|
||||
:updateExisting => true},
|
||||
:screens => {:createMissing => true,
|
||||
:updateExisting => true},
|
||||
:templateLinkage => {:createMissing => true},
|
||||
:templates => {:createMissing => true,
|
||||
:updateExisting => true},
|
||||
:templateScreens => {:createMissing => true,
|
||||
:updateExisting => true},
|
||||
:triggers => {:createMissing => true,
|
||||
:updateExisting => true}}}})
|
||||
xml_file_checksum
|
||||
end
|
||||
|
||||
end
|
|
@ -1,67 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
$LOAD_PATH.push(File.join(File.dirname(__FILE__), '..', '..', '..'))
|
||||
require 'puppet/provider/plugin_zabbix'
|
||||
|
||||
Puppet::Type.type(:plugin_zabbix_host).provide(:ruby,
|
||||
:parent => Puppet::Provider::Plugin_zabbix) do
|
||||
|
||||
def exists?
|
||||
auth(resource[:api])
|
||||
result = get_host(resource[:api], resource[:name])
|
||||
not result.empty?
|
||||
end
|
||||
|
||||
def create
|
||||
groups = Array.new
|
||||
resource[:groups].each do |group|
|
||||
group_id = get_hostgroup(resource[:api], group)
|
||||
raise(Puppet::Error, "Group #{group} does not exist") unless not group_id.empty?
|
||||
groups.push({
|
||||
:groupid => group_id[0]["groupid"]
|
||||
})
|
||||
end
|
||||
|
||||
params = {:host => resource[:host],
|
||||
:status => resource[:status],
|
||||
:interfaces => [{:type => resource[:type] == nil ? "1" : resource[:type],
|
||||
:main =>1,
|
||||
:useip => resource[:ip] == nil ? 0 : 1,
|
||||
:usedns => resource[:ip] == nil ? 1 : 0,
|
||||
:dns => resource[:host],
|
||||
:ip => resource[:ip] == nil ? "" : resource[:ip],
|
||||
:port => resource[:port] == nil ? "10050" : resource[:port],}],
|
||||
:proxy_hostid => resource[:proxy_hostid] == nil ? 0 : resource[:proxy_hostid],
|
||||
:groups => groups}
|
||||
|
||||
api_request(resource[:api],
|
||||
{:method => "host.create",
|
||||
:params => params})
|
||||
end
|
||||
|
||||
def destroy
|
||||
hostid = get_host(resource[:api], resource[:name])[0]["hostid"]
|
||||
# deactivate before removing
|
||||
api_request(resource[:api],
|
||||
{:method => 'host.update',
|
||||
:params => {:hostid => hostid,
|
||||
:status => 1}})
|
||||
|
||||
api_request(resource[:api],
|
||||
{:method => 'host.delete',
|
||||
:params => [{:hostid => hostid}]})
|
||||
end
|
||||
end
|
|
@ -1,40 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
$LOAD_PATH.push(File.join(File.dirname(__FILE__), '..', '..', '..'))
|
||||
require 'puppet/provider/plugin_zabbix'
|
||||
|
||||
Puppet::Type.type(:plugin_zabbix_hostgroup).provide(:ruby,
|
||||
:parent => Puppet::Provider::Plugin_zabbix) do
|
||||
|
||||
def exists?
|
||||
auth(resource[:api])
|
||||
result = get_hostgroup(resource[:api], resource[:name])
|
||||
not result.empty?
|
||||
end
|
||||
|
||||
def create
|
||||
api_request(resource[:api],
|
||||
{:method => "hostgroup.create",
|
||||
:params => {:name => resource[:name]}})
|
||||
end
|
||||
|
||||
def destroy
|
||||
groupid = get_hostgroup(resource[:api], resource[:name])[0]["groupid"]
|
||||
api_request(resource[:api],
|
||||
{:method => "hostgroup.delete",
|
||||
:params => [groupid]})
|
||||
end
|
||||
end
|
|
@ -1,66 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
$LOAD_PATH.push(File.join(File.dirname(__FILE__), '..', '..', '..'))
|
||||
require 'puppet/provider/plugin_zabbix'
|
||||
require 'digest/md5'
|
||||
|
||||
Puppet::Type.type(:plugin_zabbix_template_link).provide(:ruby,
|
||||
:parent => Puppet::Provider::Plugin_zabbix) do
|
||||
|
||||
def get_ids_by_host(hostid)
|
||||
results = []
|
||||
api_request(resource[:api],
|
||||
{:method => "template.get",
|
||||
:params => {:hostids => [hostid]}}).each do |template|
|
||||
results << template["templateid"]
|
||||
end
|
||||
results
|
||||
end
|
||||
|
||||
def exists?
|
||||
auth(resource[:api])
|
||||
hostid = get_host(resource[:api], resource[:host])
|
||||
raise(Puppet::Error, "Host #{resource[:host]} does not exist") unless not hostid.empty?
|
||||
templateid = api_request(resource[:api],
|
||||
{:method => "template.get",
|
||||
:params => {:filter => {:host => [resource[:template]]}}})
|
||||
raise(Puppet::Error, "Template #{resource[:template]} does not exist") unless not templateid.empty?
|
||||
|
||||
get_ids_by_host(hostid[0]["hostid"]).include?(templateid[0]["templateid"])
|
||||
end
|
||||
|
||||
def create
|
||||
hostid = get_host(resource[:api], resource[:host])
|
||||
templateid = api_request(resource[:api],
|
||||
{:method => "template.get",
|
||||
:params => {:filter => {:host => [resource[:template]]}}})
|
||||
api_request(resource[:api],
|
||||
{:method => "template.massAdd",
|
||||
:params => {:hosts => [{:hostid => hostid[0]["hostid"]}],
|
||||
:templates => [{:templateid => templateid[0]["templateid"]}]}})
|
||||
end
|
||||
|
||||
def destroy
|
||||
hostid = get_host(resource[:api], resource[:host])
|
||||
templateid = api_request(resource[:api],
|
||||
{:method => "template.get",
|
||||
:params => {:filter => {:host => [resource[:template]]}}})
|
||||
api_request(resource[:api],
|
||||
{:method => "template.massRemove",
|
||||
:params => {:hostids => [hostid[0]["hostid"]],
|
||||
:templateids => templateid[0]["templateid"]}})
|
||||
end
|
||||
end
|
|
@ -1,131 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
$LOAD_PATH.push(File.join(File.dirname(__FILE__), '..', '..', '..'))
|
||||
require 'puppet/provider/plugin_zabbix'
|
||||
|
||||
Puppet::Type.type(:plugin_zabbix_usermacro).provide(:ruby,
|
||||
:parent => Puppet::Provider::Plugin_zabbix) do
|
||||
|
||||
def exists?
|
||||
auth(resource[:api])
|
||||
macroid = nil
|
||||
if resource[:global] == :true
|
||||
result = api_request(resource[:api],
|
||||
{:method => "usermacro.get",
|
||||
:params => {:globalmacro => true,
|
||||
:output => "extend"}})
|
||||
result.each { |macro| macroid = macro["globalmacroid"] if macro['macro'] == resource[:macro] }
|
||||
else
|
||||
hostid = get_host(resource[:api], resource[:host])
|
||||
raise(Puppet::Error, "Host #{resource[:host]} does not exist") unless not hostid.empty?
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {"hostids" => hostid[0]["hostid"],
|
||||
:output => "extend"}})
|
||||
macroid = nil
|
||||
result.each { |macro| macroid = macro['hostmacroid'] if macro['macro'] == resource[:macro] }
|
||||
end
|
||||
not macroid.nil?
|
||||
end
|
||||
|
||||
def create
|
||||
if resource[:global] == :true
|
||||
api_request(resource[:api],
|
||||
{:method => 'usermacro.createglobal',
|
||||
:params => {:macro => resource[:macro],
|
||||
:value => resource[:value]}})
|
||||
else
|
||||
hostid = get_host(resource[:api], resource[:host])
|
||||
api_request(resource[:api],
|
||||
{:method => 'usermacro.create',
|
||||
:params => {:macro => resource[:macro],
|
||||
:value => resource[:value],
|
||||
:hostid => hostid[0]["hostid"]}})
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
macroid = nil
|
||||
if resource[:global] == :true
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {:globalmacro => true,
|
||||
:output => "extend"}})
|
||||
result.each { |macro| macroid = macro['globalmacroid'] if macro['macro'] == resource[:macro] }
|
||||
api_request(resource[:api],
|
||||
{:method => 'usermacro.deleteglobal',
|
||||
:params => [macroid]})
|
||||
else
|
||||
hostid = get_host(resource[:api], resource[:host])
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {:hostids => hostid[0]["hostid"],
|
||||
:output => "extend"}})
|
||||
result.each { |macro| macroid = macro['hostmacroid'] if macro['macro'] == resource[:macro] }
|
||||
api_request(resource[:api],
|
||||
{:method => 'usermacro.delete',
|
||||
:params => [macroid]})
|
||||
end
|
||||
end
|
||||
|
||||
def value
|
||||
#get value
|
||||
macrovalue = nil
|
||||
if resource[:global] == :true
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {:globalmacro => true,
|
||||
:output => "extend"}})
|
||||
result.each { |macro| macrovalue = macro['value'] if macro['macro'] == resource[:macro] }
|
||||
else
|
||||
hostid = get_host(resource[:api], resource[:host])
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {:hostids => hostid[0]["hostid"],
|
||||
:output => "extend"}})
|
||||
result.each { |macro| macrovalue = macro['value'] if macro['macro'] == resource[:macro] }
|
||||
end
|
||||
macrovalue
|
||||
end
|
||||
|
||||
def value=(v)
|
||||
#set value
|
||||
macroid = nil
|
||||
if resource[:global] == :true
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {:globalmacro => true,
|
||||
:output => "extend"}})
|
||||
result.each { |macro| macroid = macro['globalmacroid'].to_i if macro['macro'] == resource[:macro] }
|
||||
api_request(resource[:api],
|
||||
{:method => 'usermacro.updateglobal',
|
||||
:params => {:globalmacroid => macroid,
|
||||
:value => resource[:value]}})
|
||||
else
|
||||
hostid = get_host(resource[:api], resource[:host])
|
||||
result = api_request(resource[:api],
|
||||
{:method => 'usermacro.get',
|
||||
:params => {:hostids => hostid[0]["hostid"],
|
||||
:output => "extend"}})
|
||||
result.each { |macro| macroid = macro['hostmacroid'].to_i if macro['macro'] == resource[:macro] }
|
||||
api_request(resource[:api],
|
||||
{:method => 'usermacro.update',
|
||||
:params => {:hostmacroid => macroid,
|
||||
:value => resource[:value]}})
|
||||
end
|
||||
end
|
||||
|
||||
end
|
|
@ -1,74 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
require 'puppet/util/filetype'
|
||||
require 'digest/md5'
|
||||
|
||||
Puppet::Type.newtype(:plugin_zabbix_configuration_import) do
|
||||
desc <<-EOT
|
||||
Import Zabbix configuration from a file.
|
||||
EOT
|
||||
|
||||
ensurable
|
||||
# do
|
||||
# defaultvalues
|
||||
# defaultto :present
|
||||
# end
|
||||
|
||||
newparam(:name, :namevar => true) do
|
||||
desc 'Name of import.'
|
||||
end
|
||||
|
||||
newparam(:api) do
|
||||
desc 'Zabbix api info: endpoint, username, password.'
|
||||
isrequired
|
||||
|
||||
validate do |value|
|
||||
fail("api is not a hash") unless value.kind_of?(Hash)
|
||||
fail("api hash does not contain username") unless value.has_key?("username")
|
||||
fail("username is not valid") unless value['username'] =~ /.+/
|
||||
fail("api hash does not contain password") unless value.has_key?("password")
|
||||
fail("password is not valid") unless value['password'] =~ /.+/
|
||||
fail("api hash does not contain endpoint") unless value.has_key?("endpoint")
|
||||
fail("endpoint is not valid") unless value['endpoint'] =~ /http(s)?:\/\/.+/
|
||||
end
|
||||
end
|
||||
|
||||
newproperty(:xml_file) do
|
||||
desc 'xml file'
|
||||
isrequired
|
||||
|
||||
validate do |value|
|
||||
unless Pathname.new(value).absolute?
|
||||
fail("Invalid xml_file path #{value}")
|
||||
end
|
||||
end
|
||||
|
||||
def insync?(is)
|
||||
xml_file_content = Puppet::Util::FileType.filetype(:flat).new(value).read
|
||||
if is == Digest::MD5.hexdigest(xml_file_content)
|
||||
true
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
autorequire(:file) do
|
||||
[@parameters[:xml_file]]
|
||||
end
|
||||
|
||||
end
|
|
@ -1,123 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
|
||||
Puppet::Type.newtype(:plugin_zabbix_host) do
|
||||
desc <<-EOT
|
||||
Manage a host in Zabbix
|
||||
EOT
|
||||
|
||||
ensurable do
|
||||
defaultvalues
|
||||
defaultto :present
|
||||
end
|
||||
|
||||
newparam(:host, :namevar => true) do
|
||||
desc 'Technical name of the host.'
|
||||
newvalues(/.+/)
|
||||
end
|
||||
|
||||
newparam(:ip) do
|
||||
desc <<-EOT
|
||||
IP of the host.
|
||||
|
||||
Set this for the default interface to be
|
||||
ip based. Use zabbix_host_interface to add
|
||||
additional interfaces if you want dns on
|
||||
the main agent and an ip for others.
|
||||
EOT
|
||||
isrequired
|
||||
newvalues(/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/)
|
||||
end
|
||||
|
||||
newparam(:type) do
|
||||
desc <<-EOT
|
||||
Zabbix host type.
|
||||
1 - ip interface
|
||||
2 - snmp interface
|
||||
...
|
||||
EOT
|
||||
end
|
||||
|
||||
newparam(:port) do
|
||||
desc <<-EOT
|
||||
Port of the host.
|
||||
|
||||
EOT
|
||||
newvalues(/^[0-9]{1,5}$/)
|
||||
end
|
||||
|
||||
newparam(:groups) do
|
||||
desc 'Host groups to add the host to.'
|
||||
isrequired
|
||||
|
||||
validate do |value|
|
||||
fail("groups is not an array") unless value.kind_of?(Array) or value.kind_of?(String)
|
||||
fail("groups array is empty") if value.empty?
|
||||
if value.kind_of?(String) then
|
||||
value = [value]
|
||||
end
|
||||
value.each do |item|
|
||||
fail("group name is not a string") unless item.kind_of?(String)
|
||||
fail("group name is empty") unless item =~ /.+/
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
newparam(:hostname) do
|
||||
desc 'Visible name of the host.'
|
||||
|
||||
validate do |value|
|
||||
raise(Puppet::Error, 'Invalid value') unless value.kind_of?(String)
|
||||
end
|
||||
newvalues(/.+/)
|
||||
end
|
||||
|
||||
newparam(:proxy_hostid) do
|
||||
desc 'ID of the proxy that is used to monitor the host.'
|
||||
|
||||
validate do |value|
|
||||
fail("proxy_hostid is not an integer or integer string") unless value.kind_of?(Integer) or value =~ /[0-9]+/
|
||||
end
|
||||
end
|
||||
|
||||
newparam(:status) do
|
||||
desc <<-EOT
|
||||
Status and function of the host.
|
||||
|
||||
Possible values are:
|
||||
* 0 - (default) monitored host;
|
||||
* 1 - unmonitored host.
|
||||
EOT
|
||||
newvalues(0, 1)
|
||||
defaultto 0
|
||||
end
|
||||
|
||||
newparam(:api) do
|
||||
desc 'Zabbix api info: endpoint, username, password.'
|
||||
isrequired
|
||||
|
||||
validate do |value|
|
||||
fail("api is not a hash") unless value.kind_of?(Hash)
|
||||
fail("api hash does not contain username") unless value.has_key?("username")
|
||||
fail("username is not valid") unless value['username'] =~ /.+/
|
||||
fail("api hash does not contain password") unless value.has_key?("password")
|
||||
fail("password is not valid") unless value['password'] =~ /.+/
|
||||
fail("api hash does not contain endpoint") unless value.has_key?("endpoint")
|
||||
fail("endpoint is not valid") unless value['endpoint'] =~ /http(s)?:\/\/.+/
|
||||
end
|
||||
end
|
||||
|
||||
end
|
|
@ -1,46 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
|
||||
Puppet::Type.newtype(:plugin_zabbix_hostgroup) do
|
||||
desc <<-EOT
|
||||
Manage a host group in Zabbix
|
||||
EOT
|
||||
|
||||
ensurable do
|
||||
defaultvalues
|
||||
defaultto :present
|
||||
end
|
||||
|
||||
newparam(:name, :namevar => true) do
|
||||
desc 'Name of the host group.'
|
||||
newvalues(/.+/)
|
||||
end
|
||||
|
||||
newparam(:api) do
|
||||
desc 'Zabbix api info: endpoint, username, password.'
|
||||
isrequired
|
||||
|
||||
validate do |value|
|
||||
fail("api is not a hash") unless value.kind_of?(Hash)
|
||||
fail("api hash does not contain username") unless value.has_key?("username")
|
||||
fail("username is not valid") unless value['username'] =~ /.+/
|
||||
fail("api hash does not contain password") unless value.has_key?("password")
|
||||
fail("password is not valid") unless value['password'] =~ /.+/
|
||||
fail("api hash does not contain endpoint") unless value.has_key?("endpoint")
|
||||
fail("endpoint is not valid") unless value['endpoint'] =~ /http(s)?:\/\/.+/
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,59 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
|
||||
Puppet::Type.newtype(:plugin_zabbix_template_link) do
|
||||
desc <<-EOT
|
||||
Manage a template link in Zabbix
|
||||
EOT
|
||||
|
||||
ensurable do
|
||||
defaultvalues
|
||||
defaultto :present
|
||||
end
|
||||
|
||||
newparam(:name, :namevar => true) do
|
||||
desc 'Template link name.'
|
||||
newvalues(/.+/)
|
||||
end
|
||||
|
||||
newparam(:host) do
|
||||
desc 'Technical name of the host.'
|
||||
newvalues(/.+/)
|
||||
isrequired
|
||||
end
|
||||
|
||||
newparam(:template) do
|
||||
desc 'Template name to link the host to.'
|
||||
newvalues(/.+/)
|
||||
isrequired
|
||||
end
|
||||
|
||||
newparam(:api) do
|
||||
desc 'Zabbix api info: endpoint, username, password.'
|
||||
isrequired
|
||||
|
||||
validate do |value|
|
||||
fail("api is not a hash") unless value.kind_of?(Hash)
|
||||
fail("api hash does not contain username") unless value.has_key?("username")
|
||||
fail("username is not valid") unless value['username'] =~ /.+/
|
||||
fail("api hash does not contain password") unless value.has_key?("password")
|
||||
fail("password is not valid") unless value['password'] =~ /.+/
|
||||
fail("api hash does not contain endpoint") unless value.has_key?("endpoint")
|
||||
fail("endpoint is not valid") unless value['endpoint'] =~ /http(s)?:\/\/.+/
|
||||
end
|
||||
end
|
||||
|
||||
end
|
|
@ -1,79 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
Puppet::Type.newtype(:plugin_zabbix_usermacro) do
|
||||
desc <<-EOT
|
||||
Manage a macro in Zabbix.
|
||||
EOT
|
||||
|
||||
ensurable do
|
||||
defaultvalues
|
||||
defaultto :present
|
||||
end
|
||||
|
||||
newparam(:name, :namevar => true) do
|
||||
desc 'namevar'
|
||||
newvalues(/.+/)
|
||||
end
|
||||
|
||||
newparam(:api) do
|
||||
desc 'Zabbix api info: endpoint, username, password.'
|
||||
isrequired
|
||||
|
||||
validate do |value|
|
||||
fail("api is not a hash") unless value.kind_of?(Hash)
|
||||
fail("api hash does not contain username") unless value.has_key?("username")
|
||||
fail("username is not valid") unless value['username'] =~ /.+/
|
||||
fail("api hash does not contain password") unless value.has_key?("password")
|
||||
fail("password is not valid") unless value['password'] =~ /.+/
|
||||
fail("api hash does not contain endpoint") unless value.has_key?("endpoint")
|
||||
fail("endpoint is not valid") unless value['endpoint'] =~ /http(s)?:\/\/.+/
|
||||
end
|
||||
end
|
||||
|
||||
newparam(:macro) do
|
||||
desc 'Macro name'
|
||||
isrequired
|
||||
newvalues(/.+/)
|
||||
end
|
||||
|
||||
newproperty(:value) do
|
||||
desc 'Macro value'
|
||||
isrequired
|
||||
newvalues(/.+/)
|
||||
end
|
||||
|
||||
newparam(:global) do
|
||||
desc <<-EOT
|
||||
Macro global flag. If true macro is global.
|
||||
If false macro belongs to host/template.
|
||||
EOT
|
||||
defaultto(:false)
|
||||
newvalues(:true, :false)
|
||||
end
|
||||
|
||||
newparam(:host) do
|
||||
desc 'Host'
|
||||
newvalues(/.+/)
|
||||
end
|
||||
|
||||
validate do
|
||||
fail('host should not be provided when global is true') if
|
||||
self[:global] == :true and not self[:host].nil?
|
||||
fail('host is required when global is false') if
|
||||
self[:global] == :false and self[:host].nil?
|
||||
end
|
||||
end
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
class plugin_zabbix::agent(
|
||||
$api_hash = undef,
|
||||
) {
|
||||
|
||||
include plugin_zabbix::params
|
||||
|
||||
$fuel_version = 0 + hiera('fuel_version')
|
||||
|
||||
if $fuel_version < 8.0 {
|
||||
$cur_node_roles = node_roles(hiera_array('nodes'), hiera('uid'))
|
||||
$is_controller = member($cur_node_roles, 'controller') or
|
||||
member($cur_node_roles, 'primary-controller')
|
||||
} else {
|
||||
$is_controller = roles_include(['controller', 'primary-controller'])
|
||||
}
|
||||
|
||||
$zabbix_agent_port = $plugin_zabbix::params::zabbix_ports['backend_agent'] ? {
|
||||
unset=>$plugin_zabbix::params::zabbix_ports['agent'],
|
||||
default=>$plugin_zabbix::params::zabbix_ports['backend_agent'],
|
||||
}
|
||||
|
||||
firewall { '997 zabbix agent':
|
||||
port => $zabbix_agent_port,
|
||||
proto => 'tcp',
|
||||
action => 'accept'
|
||||
}
|
||||
|
||||
package { $plugin_zabbix::params::agent_pkg:
|
||||
ensure => present
|
||||
} ->
|
||||
package { $plugin_zabbix::params::sender_pkg:
|
||||
ensure => present
|
||||
} ->
|
||||
package { $plugin_zabbix::params::get_pkg:
|
||||
ensure => present
|
||||
} ->
|
||||
file { $plugin_zabbix::params::agent_include:
|
||||
ensure => directory,
|
||||
mode => '0500',
|
||||
owner => 'zabbix',
|
||||
group => 'zabbix'
|
||||
} ->
|
||||
file { $plugin_zabbix::params::agent_config:
|
||||
ensure => present,
|
||||
content => template($plugin_zabbix::params::agent_config_template),
|
||||
notify => Service[$plugin_zabbix::params::agent_service]
|
||||
} ->
|
||||
service { $plugin_zabbix::params::agent_service:
|
||||
ensure => running,
|
||||
enable => true,
|
||||
}
|
||||
|
||||
if $is_controller {
|
||||
$groups = union($plugin_zabbix::params::host_groups_base, $plugin_zabbix::params::host_groups_controller)
|
||||
} elsif defined_in_state(Class['nova::compute']) {
|
||||
$groups = union($plugin_zabbix::params::host_groups_base, $plugin_zabbix::params::host_groups_compute)
|
||||
} else {
|
||||
$groups = $plugin_zabbix::params::host_groups_base
|
||||
}
|
||||
|
||||
if defined_in_state(Class['ceph::osds']){
|
||||
$ceph_osd_group = $plugin_zabbix::params::host_groups_ceph_osd
|
||||
$ceph_osd_used = true
|
||||
} else {
|
||||
$ceph_osd_group = []
|
||||
$ceph_osd_used = false
|
||||
}
|
||||
|
||||
if defined_in_state(Class['ceph::mon']){
|
||||
$ceph_mon_group = $plugin_zabbix::params::host_groups_ceph_mon
|
||||
$ceph_mon_used = true
|
||||
} else {
|
||||
$ceph_mon_group = []
|
||||
$ceph_mon_used = false
|
||||
}
|
||||
|
||||
if $ceph_osd_used or $ceph_mon_used {
|
||||
$ceph_cluster_group = $plugin_zabbix::params::host_groups_ceph_cluster
|
||||
} else {
|
||||
$ceph_cluster_group = []
|
||||
}
|
||||
|
||||
if ! empty($ceph_cluster_group){
|
||||
$all_groups = parseyaml(
|
||||
inline_template('<%= @groups.concat(@ceph_mon_group).concat(@ceph_osd_group).concat(@ceph_cluster_group).to_yaml %>')
|
||||
)
|
||||
} else {
|
||||
$all_groups = $groups
|
||||
}
|
||||
|
||||
plugin_zabbix_host { $plugin_zabbix::params::host_name:
|
||||
host => $plugin_zabbix::params::host_name,
|
||||
ip => $plugin_zabbix::params::host_ip,
|
||||
groups => $all_groups,
|
||||
api => $api_hash
|
||||
}
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
class plugin_zabbix::agent::scripts {
|
||||
|
||||
include plugin_zabbix::params
|
||||
|
||||
file { $plugin_zabbix::params::agent_scripts:
|
||||
ensure => directory,
|
||||
recurse => true,
|
||||
purge => true,
|
||||
force => true,
|
||||
mode => '0755',
|
||||
source => 'puppet:///modules/plugin_zabbix/scripts',
|
||||
}
|
||||
|
||||
file { '/etc/zabbix/check_api.conf':
|
||||
ensure => present,
|
||||
content => template('plugin_zabbix/check_api.conf.erb'),
|
||||
}
|
||||
|
||||
file { '/etc/zabbix/check_rabbit.conf':
|
||||
ensure => present,
|
||||
content => template('plugin_zabbix/check_rabbit.conf.erb'),
|
||||
}
|
||||
|
||||
file { '/etc/zabbix/check_db.conf':
|
||||
ensure => present,
|
||||
content => template('plugin_zabbix/check_db.conf.erb'),
|
||||
}
|
||||
|
||||
if ! defined(Package['sudo']) {
|
||||
package { 'sudo':
|
||||
ensure => installed
|
||||
}
|
||||
}
|
||||
|
||||
file { 'zabbix_no_requiretty':
|
||||
path => '/etc/sudoers.d/zabbix',
|
||||
mode => '0440',
|
||||
owner => root,
|
||||
group => root,
|
||||
source => 'puppet:///modules/plugin_zabbix/zabbix-sudo',
|
||||
require => Package['sudo'],
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
#
|
||||
# Copyright 2015 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.
|
||||
#
|
||||
define plugin_zabbix::agent::userparameter (
|
||||
$ensure = present,
|
||||
$command = undef,
|
||||
$key = undef,
|
||||
$index = undef,
|
||||
$file = undef,
|
||||
$template = 'plugin_zabbix/zabbix_agent_userparam.conf.erb'
|
||||
) {
|
||||
|
||||
include plugin_zabbix::params
|
||||
|
||||
$key_real = $key ? {
|
||||
undef => $name,
|
||||
default => $key
|
||||
}
|
||||
|
||||
$index_real = $index ? {
|
||||
undef => '',
|
||||
default => "${index}_",
|
||||
}
|
||||
|
||||
$file_real = $file ? {
|
||||
undef => "${::plugin_zabbix::params::agent_include}/${index_real}${name}.conf",
|
||||
default => $file,
|
||||
}
|
||||
|
||||
file { $file_real:
|
||||
ensure => $ensure,
|
||||
content => template($template),
|
||||
notify => Service[$plugin_zabbix::params::agent_service]
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue