Compare commits

..

26 Commits

Author SHA1 Message Date
Jeremy Gardais 202ada89cd
Fix "Can't check kernel version" warning message
On Ubuntu only by default.
2025-03-24 13:31:46 +01:00
Jeremy Gardais 56ddaab1fd Merge pull request 'refresh-2024' (#1) from refresh-2024 into master
Reviewed-on: #1
2024-09-30 16:30:19 +02:00
Jeremy Gardais b7f9be38a4
Update SSSD path for libs white list 2024-09-30 16:29:50 +02:00
Jeremy Gardais 38ffb9af77
Allow multi-lines with ansible_managed | comment 2024-09-30 16:29:04 +02:00
Jeremy Gardais 745f3bd3a6
Update domain for git.ipr 2023-11-03 16:08:32 +01:00
Jeremy Gardais e4e2518625
Remove hddtemp dependency
Package is no longer available in Debian Bookworm and can be replaced by
 **drivetemp** kernel module (working since Debian Bullseye 👍).
2023-04-27 13:52:15 +02:00
Jeremy Gardais 5a87fc07fb
20230301 Update dependencies for libs probe 2023-04-26 14:47:00 +02:00
Jeremy Gardais 241ecaac17
Add new kern probe management 2023-04-26 14:20:22 +02:00
Jeremy Gardais c6115085a9
Prefix module with "ansible.builtin." 2023-01-24 11:50:15 +01:00
Jeremy Gardais af8963bb47
Use flatten to manage packages list 2023-01-24 11:45:30 +01:00
Jeremy Gardais 23a0dfa558
Works with Debian Bullseye 2021-11-17 13:51:22 +01:00
Jeremy Gardais 8fa4ebaf77
Prefix net probe command with sudo
Required for some interfaces.
2021-11-17 13:45:48 +01:00
Jeremy Gardais 277308637b
Correct the path for ZFS probe 2021-07-22 12:22:21 +02:00
Jeremy Gardais c3b0b935e5
Publish v2.0.0 2020-12-22 13:23:31 +01:00
Jeremy Gardais 8aad270520
Add ntpq probe management
The ntp package will not be managed in this role because it can break
the "ntp" on the system according to the choosen client (systemd,
chrony,…).
2020-12-22 13:13:31 +01:00
Jeremy Gardais f0af1328ea
Add extra var for Nvidia support with temp plugin 2020-11-03 17:48:21 +01:00
Jeremy Gardais 9f84ed3c6d
Split pkg_list to separate hobbit-plugins
This way, xymon-client can be installed without "hobbit-plugins".
2020-11-03 17:41:37 +01:00
Jeremy Gardais 61d7aa4e3a
All vars now starts with "xymon_cli__" 2020-11-03 15:17:08 +01:00
Jeremy Gardais d5bffb2252
Combine clientlaunch files for plugins
This leads to manage them in one dedicated task instead of 12…
2020-11-03 13:31:35 +01:00
Jeremy Gardais 79f3831acd
Info Buster support and increase min_ansible_version 2020-11-03 10:12:17 +01:00
Jeremy Gardais 6401a1e836
Combine packages vars of all enabled plugins
This leads to install dependencies in one task instead of 9.
2020-11-03 10:09:48 +01:00
Jeremy Gardais 1c0157dd68
Add megaraid probe management 2020-11-02 18:04:12 +01:00
Jeremy Gardais 052d5a3b3a
Add min version of hobbit-plugins for `net` plugin 2020-11-02 14:13:56 +01:00
Jeremy Gardais 7966645f99
Remove unecessary netstats dependencies 2020-10-30 14:17:18 +01:00
Jeremy Gardais 726300ae1e
Add configuration file for `net` script 2020-10-30 12:42:29 +01:00
Jeremy Gardais dacdd47d9f
Add net probe management 2020-10-29 17:52:19 +01:00
30 changed files with 557 additions and 388 deletions

View File

@ -1,3 +1,64 @@
## v2.3.0
### Enhancements
* Add variable/template to fix **kern**'s probe related message on Ubuntu
(`Can't check kernel version!`)
* See : https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725/comments/35
## v2.2.0
### Enhancements
* Use **comment** filter for ansible_managed, to allow multi-lines.
* Update SSSD path for libs white list.
## v2.1.0
### Enhancements
* Add new kern probe management.
* Update dependencies for libs probe after hobbit-plugins 20230301 upgrade
### Removed
* Remove hddtemp dependency. Package is no longer available in Debian Bookworm
and replaced by **drivetemp** kernel module (working since Debian Bullseye).
## v2.0.3
### Fix
* Use flatten to manage packages list.
* Prefix module with "ansible.builtin.".
### Enhancements
* Works with Debian Bullseye
## v2.0.2
### Fix
* Prefix **net** probe command with **sudo** (required for some interfaces).
## v2.0.1
### Fix
* Correct the path for ZFS probe.
## v2.0.0
### Enhancements
* All vars now starts with "xymon_cli__" for more readability.
No backward compatibility with old variable naming! Update your configuration!
* Add megaraid probe management.
* Add net probe management.
* Add ntpq probe management.
* Add configuration file for `net` script (/etc/xymon/net.yaml) and
possibility to set your own template. Check [net documentation](net plugin doc).
* Remove unecessary netstats dependencies (due to a previous misunderstanding)
between `net` and `netstats` probes. `netstats` only
reads /proc/net/{netstat,snmp} files.
* Combine packages vars of all enabled plugins to install them in _one_ task.
* Combine clientlaunch files for plugins to manage them in _one_ dedicated task.
* Split base package list in order to allow installation of `xymon-client` without
"hobbit-plugins".
* Add extra var for Nvidia support with temp plugin.
## v1.5.1
### Enhancements
@ -8,7 +69,7 @@
### Enhancements
* Possibility to define URLs in order to get the latest version of SMART's scripts.
* Add sge plugin from https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/sge.sh
* Add sge plugin from https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/sge.sh
## v1.4.0
@ -16,7 +77,7 @@
* Add variables to manage plugin interval.
* Add netstats plugin managment.
* Add smart plugin from https://github.com/skazi0/xymon-plugins
* Add smartoverall plugin from https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
* Add smartoverall plugin from https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
* Add description for plugins.
### Fix
@ -85,3 +146,4 @@
* Allow to set Xymon servers list for `xymon-client` config.
[20180711 hobbit-plugins debian changelog]: https://salsa.debian.org/debian/hobbit-plugins/blob/debian-20180711/debian/changelog
[net plugin doc]: https://salsa.debian.org/debian/hobbit-plugins#net-check-network-interface-states

158
README.md
View File

@ -2,7 +2,7 @@
1. [Overview](#overview)
2. [Role Variables](#role-variables)
* [Plugins Specific Variables](#plugins-specific-variables)
* [Plugins Specific Variables](#plugins-variables)
* [OS Specific Variables](#os-specific-variables)
3. [Example Playbook](#example-playbook)
4. [Configuration](#configuration)
@ -17,34 +17,37 @@ Manage Xymon (client) installation and configuration.
## Role Variables
* **xymon_cli_manage**: If `xymon-client` should be managed with this role [default: `true`].
* **xymon_cli_pkg_state**: State of new `xymon-client` package(s) [default: `present`].
* **xymon_cli_default_conf_path**: Configuration file for `xymon-client` [default: `/etc/default/xymon-client`].
* **xymon_cli_default_conf_tpl**: Template used to generate the previous config file [default: `etc/default/xymon-client.j2`].
* **xymon_cli_hostname**: Allow to override default value of CLIENTHOSTNAME var [default: `{{ ansible_fqdn }}`].
* **xymon_user_groups**: List of 'xymon' user's groups [default: `xymon`].
* **xymon_cli_service_manage**: If `xymon-client` service should be managed with this role [default: `true`].
* **xymon_cli_service_name**: `xymon-client` service name [default: `xymon-client`].
* **xymon_cli_service_enabled**: Set `xymon-client` service available at startup [default: `true`].
* **xymon_srv_list**: The list of Xymon servers (you must give an hostname, IP,… reachable from any clients) [defaults: `monitoring.{{ ansible_domain }}`].
* **xymon_plug_manage**: If this role should manage plugins configuration [default: `true`].
* **xymon_cli__manage**: If `xymon-client` should be managed with this role [default: `true`].
* **xymon_cli__pkg_state**: State of new `xymon-client` package(s) [default: `present`].
* **xymon_cli__default_conf_path**: Configuration file for `xymon-client` [default: `/etc/default/xymon-client`].
* **xymon_cli__default_conf_tpl**: Template used to generate the previous config file [default: `etc/default/xymon-client.j2`].
* **xymon_cli__hostname**: Allow to override default value of CLIENTHOSTNAME var [default: `{{ ansible_fqdn }}`].
* **xymon_cli__user_groups**: List of 'xymon' user's groups [default: `xymon`].
* **xymon_cli__service_manage**: If `xymon-client` service should be managed with this role [default: `true`].
* **xymon_cli__service_name**: `xymon-client` service name [default: `xymon-client`].
* **xymon_cli__service_enabled**: Set `xymon-client` service available at startup [default: `true`].
* **xymon_cli__srv_list**: The list of Xymon servers (you must give an hostname, IP,… reachable from any clients) [defaults: `monitoring.{{ ansible_domain }}`].
* **xymon_cli__plug_manage**: If this role should manage plugins configuration [default: `true`].
### Plugins Variables
* **xymon_cli__plug_combined_packages**: Combine all packages vars related to plugins (only enabled plugins).
* **xymon_cli__plug_combined_clientlaunch**: Combine clientlaunch files for all plugins.
#### APT
Variables for the APT plugin from hobbit-plugins. The plugin check for
outstanding updates.
* **xymon_plug_apt_state**: The state of plugin `apt` [default: `true`].
* **xymon_plug_apt_package**: The packages to install to provide `apt` plugin [default: `[ 'libtimedate-perl' ]`].
* **xymon_plug_apt_path**: Configuration file for the `apt` plugin [default: `/etc/xymon/clientlaunch.d/apt.cfg`].
* **xymon_plug_apt_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/apt.cfg.j2`].
* **xymon_plug_apt_interval**: Time between each run of the `apt` plugin [default: `5m`].
* **xymon_plug_apt_default_whitelist**: Default list of allowed packages not installed from repositories [default: `[]`].
* **xymon_plug_apt_whitelist**: All hosts list of allowed packages not installed from repositories [default: `[]`].
* **xymon_plug_apt_group_whitelist**: Group list of allowed packages not installed from repositories [default: `[]`].
* **xymon_plug_apt_host_whitelist**: Host list of allowed packages not installed from repositories [default: `[]`].
* **xymon_cli__plug_apt_state**: The state of plugin `apt` [default: `true`].
* **xymon_cli__plug_apt_package**: The packages to install to provide `apt` plugin [default: `[ 'libtimedate-perl' ]`].
* **xymon_cli__plug_apt_path**: Configuration file for the `apt` plugin [default: `/etc/xymon/clientlaunch.d/apt.cfg`].
* **xymon_cli__plug_apt_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/apt.cfg.j2`].
* **xymon_cli__plug_apt_interval**: Time between each run of the `apt` plugin [default: `5m`].
* **xymon_cli__plug_apt_default_whitelist**: Default list of allowed packages not installed from repositories [default: `[]`].
* **xymon_cli__plug_apt_whitelist**: All hosts list of allowed packages not installed from repositories [default: `[]`].
* **xymon_cli__plug_apt_group_whitelist**: Group list of allowed packages not installed from repositories [default: `[]`].
* **xymon_cli__plug_apt_host_whitelist**: Host list of allowed packages not installed from repositories [default: `[]`].
#### IPMI
@ -57,43 +60,99 @@ sensors and event log.
* **xymon_cli__plug_ipmi_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/ipmi.cfg.j2`].
* **xymon_cli__plug_ipmi_interval**: Time between each run of the `ipmi` plugin [default: `5m`].
#### Kern
Variables for the kern plugin from hobbit-plugins. The plugin check for running
outdated running kernel and need for reboot.
* **xymon_cli__plug_kern_state**: The state of plugin `kern` [default: `true`].
* **xymon_cli__plug_kern_package**: The packages to install to provide `kern` plugin [default: `[ 'binutils', 'libfile-slurp-perl', 'libsort-naturally-perl' ]`].
* **xymon_cli__plug_kern_path**: Configuration file for the `kern` plugin [default: `/etc/xymon/clientlaunch.d/kern.cfg`].
* **xymon_cli__plug_kern_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/kern.cfg.j2`].
* **xymon_cli__plug_kern_interval**: Time between each run of the `kern` plugin [default: `5m`].
#### Libs
Variables for the Libs plugin from hobbit-plugins. The plugin check for running
processes with upgraded libraries.
* **xymon_plug_libs_state**: The state of plugin `libs` [default: `true`].
* **xymon_plug_libs_package**: The packages to install to provide `libs` plugin [default: `[ 'binutils', 'lsof', 'libyaml-tiny-perl', 'libfile-slurp-perl', 'libsort-naturally-perl' ]`].
* **xymon_plug_libs_path**: Configuration file for the `libs` plugin [default: `/etc/xymon/clientlaunch.d/libs.cfg`].
* **xymon_plug_libs_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/libs.cfg.j2`].
* **xymon_plug_libs_interval**: Time between each run of the `libs` plugin [default: `5m`].
* **xymon_plug_libs_default_whitelist**: Default whitelist of processes that should not be monitored with `libs` plugin.
* **xymon_plug_libs_whitelist**: All hosts whitelist of processes that should not be monitored with `libs` plugin.
* **xymon_plug_libs_group_whitelist**: Group whitelist of processes that should not be monitored with `libs` plugin.
* **xymon_plug_libs_host_whitelist**: Host whitelist of processes that should not be monitored with `libs` plugin.
* **xymon_cli__plug_libs_state**: The state of plugin `libs` [default: `true`].
* **xymon_cli__plug_libs_package**: The packages to install to provide `libs` plugin [default: `[ 'lsof', 'sudo', 'libyaml-tiny-perl' ]`].
* **xymon_cli__plug_libs_path**: Configuration file for the `libs` plugin [default: `/etc/xymon/clientlaunch.d/libs.cfg`].
* **xymon_cli__plug_libs_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/libs.cfg.j2`].
* **xymon_cli__plug_libs_interval**: Time between each run of the `libs` plugin [default: `5m`].
* **xymon_cli__plug_libs_default_whitelist**: Default whitelist of processes that should not be monitored with `libs` plugin.
* **xymon_cli__plug_libs_whitelist**: All hosts whitelist of processes that should not be monitored with `libs` plugin.
* **xymon_cli__plug_libs_group_whitelist**: Group whitelist of processes that should not be monitored with `libs` plugin.
* **xymon_cli__plug_libs_host_whitelist**: Host whitelist of processes that should not be monitored with `libs` plugin.
#### Net
Require hobbit-plugins > 20200525.
Variables for the Megaraid plugin from hobbit-plugins. The plugin check
hardware raid status with Megacli tools [from hwraid.le-vert](url hwraid).
You will need to install `megaclisas-status` by your own to get this plugin
running correctly. Please take a look to the [Readme](megaraid plugin doc) of
the project for more informations.
* **xymon_cli__plug_megaraid_state**: The state of plugin `megaraid` [default: `false`].
* **xymon_cli__plug_megaraid_package**: The packages to install to provide `megaraid` plugin [default: `[ 'libipc-run-perl' ]`].
* **xymon_cli__plug_megaraid_path**: Configuration file for the `megaraid` plugin [default: `/etc/xymon/clientlaunch.d/megaraid.cfg`].
* **xymon_cli__plug_megaraid_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/megaraid.cfg.j2`].
* **xymon_cli__plug_megaraid_interval**: Time between each run of the `megaraid` plugin [default: `5m`].
#### Mq
Variables for the Mq plugin from hobbit-plugins. The plugin check Postfix's
mail queue.
* **xymon_plug_mq_state**: The state of plugin `mq` [default: `true`].
* **xymon_plug_mq_package**: The packages to install to provide `mq` plugin [default: `[ 'libtimedate-perl' ]`].
* **xymon_plug_mq_path**: Configuration file for the `mq` plugin [default: `/etc/xymon/clientlaunch.d/mq.cfg`].
* **xymon_plug_mq_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/mq.cfg.j2`].
* **xymon_plug_mq_interval**: Time between each run of the `mq` plugin [default: `5m`].
* **xymon_cli__plug_mq_state**: The state of plugin `mq` [default: `true`].
* **xymon_cli__plug_mq_package**: The packages to install to provide `mq` plugin [default: `[ 'libtimedate-perl' ]`].
* **xymon_cli__plug_mq_path**: Configuration file for the `mq` plugin [default: `/etc/xymon/clientlaunch.d/mq.cfg`].
* **xymon_cli__plug_mq_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/mq.cfg.j2`].
* **xymon_cli__plug_mq_interval**: Time between each run of the `mq` plugin [default: `5m`].
#### Net
Require hobbit-plugins > 20190129.
Variables for the Net plugin from hobbit-plugins. The plugin check network
interface states. Check the [Readme](net plugin doc) of the project for more
informations.
* **xymon_cli__plug_net_state**: The state of plugin `net` [default: `false`].
* **xymon_cli__plug_net_package**: The packages to install to provide `net` plugin [default: `[ 'ethtool', 'iproute2', 'libfile-slurp-perl', 'libfile-which-perl', 'libipc-run-perl', 'libyaml-tiny-perl' ]`].
* **xymon_cli__plug_net_path**: Configuration file for the `net` plugin [default: `/etc/xymon/clientlaunch.d/net.cfg`].
* **xymon_cli__plug_net_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/net.cfg.j2`].
* **xymon_cli__plug_net_interval**: Time between each run of the `net` plugin [default: `5m`].
* **xymon_cli__plug_net_conf_path**: Configuration file for the `net` script (probe silently exit if not present) [default: `/etc/xymon/net.yaml`].
* **xymon_cli__plug_net_conf_tpl**: Template used to generate the previous config file [default: `etc/xymon/net.yaml.j2`].
You really should consider writing your own template for `net` script,
specific to your host(s) network configuration and override
**xymon_cli__plug_net_conf_tpl** variable.
#### Netstats
Variables for the Net/Netstats plugin from hobbit-plugins. The plugin check
Variables for the Netstats plugin from hobbit-plugins. The plugin check
network interface states.
* **xymon_cli__plug_netstats_state**: The state of plugin `netstats` [default: `false`].
* **xymon_cli__plug_netstats_package**: The packages to install to provide `netstats` plugin [default: `[ 'libfile-which-perl', 'libfile-slurp-perl', 'libipc-run-perl', 'libyaml-tiny-perl', 'iproute2', 'ethtool' ]`].
* **xymon_cli__plug_netstats_path**: Configuration file for the `netstats` plugin [default: `/etc/xymon/clientlaunch.d/netstats.cfg`].
* **xymon_cli__plug_netstats_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/netstats.cfg.j2`].
* **xymon_cli__plug_netstats_interval**: Time between each run of the `netstats` plugin [default: `5m`].
#### Ntpq
Variables for the Ntpq plugin from hobbit-plugins. The plugin check
the ntpd daemon synchronization status (needs manual ntp installation).
* **xymon_cli__plug_ntpq_state**: The state of plugin `ntpq` [default: `false`].
* **xymon_cli__plug_ntpq_path**: Configuration file for the `ntpq` plugin [default: `/etc/xymon/clientlaunch.d/ntpq.cfg`].
* **xymon_cli__plug_ntpq_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/ntpq.cfg.j2`].
* **xymon_cli__plug_ntpq_interval**: Time between each run of the `ntpq` plugin [default: `5m`].
#### SGE
Variables for sge plugin from [ipr-cnrs.scripts][sge plugin source].
@ -142,22 +201,22 @@ one's recommended by the vendor and check a recent (<24h) test was done.
#### Temp
Variables for the Mq plugin from hobbit-plugins. Simple temperature monitor.
Variables for the temp plugin from hobbit-plugins. Simple temperature monitor.
* **xymon_cli__plug_temp_state**: The state of plugin `temp` [default: `False`].
* **xymon_cli__plug_temp_package**: The packages to install to provide `temp` plugin [default: `[ 'libfile-which-perl', 'libyaml-tiny-perl', 'hddtemp', 'smartmontools', 'libxml-twig-perl' ]`].
* **xymon_cli__plug_temp_package**: The packages to install to provide `temp` plugin [default: `[ 'libfile-which-perl', 'libyaml-tiny-perl', 'smartmontools', 'libxml-twig-perl' ]`].
* **xymon_cli__plug_temp_path**: Configuration file for the `temp` plugin [default: `'/etc/xymon/clientlaunch.d/temp.cfg'`].
* **xymon_cli__plug_temp_tpl**: Template used to generate the previous config file [default: `'etc/xymon/clientlaunch.d/temp.cfg.j2'`].
* **xymon_cli__plug_temp_interval**: Time between each run of the `temp` plugin [default: `'5m'`]
##### Nvidia support
The temp can also checks NVidia GPU temperature. In order to get those
informations, you need to install `nvidia-smi` package by your own or override
**xymon_cli__plug_temp_package** var:
The temp plugin can also checks NVidia GPU temperature. In order to get those
informations, you need to install `nvidia-smi` package by your own or define
**xymon_cli__plug_temp_extra_package** var:
``` yml
xymon_cli__plug_temp_package: [ 'libfile-which-perl', 'libyaml-tiny-perl', 'hddtemp', 'smartmontools', 'libxml-twig-perl', 'nvidia-smi' ]
xymon_cli__plug_temp_extra_package: [ 'nvidia-smi' ]
```
#### ZFS
@ -188,7 +247,8 @@ xymon_cli__plug_temp_state: '{{ True
Please see default value by Operating System file in [vars][vars directory] directory.
* **xymon_cli_pkg_list**: The list of packages to install to provide `xymon-client`.
* **xymon_cli__pkg_list**: The list of packages to install to provide `xymon-client`.
* **xymon_cli__plug_pkg_list**: The list of packages to install to provide extra plugins to Xymon client.
## Example Playbook
@ -211,6 +271,7 @@ This role will:
Some plugins and options can be managed with this role:
* apt: Check state of packages and repositories.
* kern: Check for outdated running kernel and need for reboot.
* libs: Check for running processes with upgraded libraries.
* mq: Check mail queue.
* zfs: Check ZFS pools status.
@ -235,12 +296,15 @@ Jérémy Gardais
[vars directory]: ./vars
[gogs to github hook]: https://stackoverflow.com/a/21998477
[xymon source]: https://git.ipr.univ-rennes1.fr/cellinfo/ansible.xymon
[xymon source]: https://git.ipr.univ-rennes.fr/cellinfo/ansible.xymon
[xymon github]: https://github.com/ipr-cnrs/xymon
[wtfpl website]: http://www.wtfpl.net/about/
[ipr website]: https://ipr.univ-rennes1.fr/
[sge plugin source]: https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/sge.sh
[smartoverall plugin source]: https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
[url hwraid]: https://hwraid.le-vert.net/wiki/DebianPackages
[megaraid plugin doc]: https://salsa.debian.org/debian/hobbit-plugins#megaraid-check-state-of-lsi-megaraid-sas-controllers
[net plugin doc]: https://salsa.debian.org/debian/hobbit-plugins#net-check-network-interface-states
[sge plugin source]: https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/sge.sh
[smartoverall plugin source]: https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
[smart plugin source]: https://github.com/skazi0/xymon-plugins
[zfs plugin source]: https://wiki.xymonton.org/doku.php/monitors:bb-zfs

View File

@ -7,12 +7,12 @@
# Packages and installation [[[
# -----------------------------
# .. envvar:: xymon_cli_manage [[[
# .. envvar:: xymon_cli__manage [[[
#
# If this role should manage the installation of Xymon client
xymon_cli_manage: true
xymon_cli__manage: true
# ]]]
# .. envvar:: xymon_cli_pkg_state [[[
# .. envvar:: xymon_cli__pkg_state [[[
#
# What is the desired state which this role's packages should be?
# Possible options:
@ -23,45 +23,45 @@ xymon_cli_manage: true
# ``absent``
# Ensure to remove the packages.
#
xymon_cli_pkg_state: 'present'
xymon_cli__pkg_state: 'present'
# ]]]
# ]]]
# Server configuration and service [[[
# ------------------------------------
## conf
xymon_cli_default_conf_path: '/etc/default/xymon-client'
xymon_cli_default_conf_tpl: 'etc/default/xymon-client.j2'
xymon_cli_hostname: "{{ ansible_fqdn }}"
xymon_user_groups: 'xymon'
xymon_cli__default_conf_path: '/etc/default/xymon-client'
xymon_cli__default_conf_tpl: 'etc/default/xymon-client.j2'
xymon_cli__hostname: "{{ ansible_fqdn }}"
xymon_cli__user_groups: 'xymon'
## service
xymon_cli_service_manage: true
xymon_cli_service_name: 'xymon-client'
xymon_cli_service_enabled: true
xymon_cli__service_manage: true
xymon_cli__service_name: 'xymon-client'
xymon_cli__service_enabled: true
# server
xymon_srv_list: "monitoring.{{ ansible_domain }}"
xymon_cli__srv_list: "monitoring.{{ ansible_domain }}"
# ]]]
# Plugins management [[[
# ----------------------
xymon_plug_manage: true
xymon_cli__plug_manage: true
## Plugin apt [[[
xymon_plug_apt_state: true
xymon_plug_apt_package: [ 'aptitude', 'dctrl-tools' ]
xymon_plug_apt_path: '/etc/xymon/clientlaunch.d/apt.cfg'
xymon_plug_apt_tpl: 'etc/xymon/clientlaunch.d/apt.cfg.j2'
xymon_plug_apt_interval: '5m'
xymon_plug_apt_default_whitelist: []
xymon_plug_apt_whitelist: []
xymon_plug_apt_group_whitelist: []
xymon_plug_apt_host_whitelist: []
xymon_plug_apt_combined_whitelist: '{{ xymon_plug_apt_default_whitelist
+ xymon_plug_apt_whitelist
+ xymon_plug_apt_group_whitelist
+ xymon_plug_apt_host_whitelist }}'
xymon_cli__plug_apt_state: true
xymon_cli__plug_apt_package: [ 'aptitude', 'dctrl-tools' ]
xymon_cli__plug_apt_path: '/etc/xymon/clientlaunch.d/apt.cfg'
xymon_cli__plug_apt_tpl: 'etc/xymon/clientlaunch.d/apt.cfg.j2'
xymon_cli__plug_apt_interval: '5m'
xymon_cli__plug_apt_default_whitelist: []
xymon_cli__plug_apt_whitelist: []
xymon_cli__plug_apt_group_whitelist: []
xymon_cli__plug_apt_host_whitelist: []
xymon_cli__plug_apt_combined_whitelist: '{{ xymon_cli__plug_apt_default_whitelist
+ xymon_cli__plug_apt_whitelist
+ xymon_cli__plug_apt_group_whitelist
+ xymon_cli__plug_apt_host_whitelist }}'
## ]]]
## Plugin ipmi [[[
@ -70,50 +70,98 @@ xymon_cli__plug_ipmi_package: ['ipmitool']
xymon_cli__plug_ipmi_path: '/etc/xymon/clientlaunch.d/ipmi.cfg'
xymon_cli__plug_ipmi_tpl: 'etc/xymon/clientlaunch.d/ipmi.cfg.j2'
xymon_cli__plug_ipmi_interval: '5m'
## ]]]
## Plugin libs [[[
xymon_plug_libs_state: true
xymon_plug_libs_package: [ 'binutils', 'lsof', 'libyaml-tiny-perl', 'libfile-slurp-perl', 'libsort-naturally-perl' ]
xymon_plug_libs_path: '/etc/xymon/clientlaunch.d/libs.cfg'
xymon_plug_libs_tpl: 'etc/xymon/clientlaunch.d/libs.cfg.j2'
xymon_plug_libs_interval: '5m'
xymon_plug_libs_default_whitelist:
## ]]]
## Plugin kern [[[
xymon_cli__plug_kern_state: true
xymon_cli__plug_kern_package: [ 'binutils', 'libfile-slurp-perl', 'libsort-naturally-perl' ]
xymon_cli__plug_kern_path: '/etc/xymon/clientlaunch.d/kern.cfg'
xymon_cli__plug_kern_tpl: 'etc/xymon/clientlaunch.d/kern.cfg.j2'
xymon_cli__plug_kern_interval: '5m'
### Related to "Ubuntu - Can't check kernel version" warning message
### See : https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725/comments/35
xymon_cli__plug_kern_fix: '{{ True if (ansible_distribution == "Ubuntu")
else False }}'
xymon_cli__plug_kern_fix_path: '/etc/kernel/postinst.d/statoverride'
xymon_cli__plug_kern_fix_tpl: 'etc/kernel/postinst.d/statoverride.j2'
# ]]]
## Plugin libs [[[
xymon_cli__plug_libs_state: true
xymon_cli__plug_libs_package: [ 'lsof', 'sudo', 'libyaml-tiny-perl' ]
xymon_cli__plug_libs_path: '/etc/xymon/clientlaunch.d/libs.cfg'
xymon_cli__plug_libs_tpl: 'etc/xymon/clientlaunch.d/libs.cfg.j2'
xymon_cli__plug_libs_interval: '5m'
xymon_cli__plug_libs_default_whitelist:
/lib/systemd/systemd:
- '.*'
/usr/lib/x86_64-linux-gnu/sssd/sssd_be:
/usr/libexec/sssd/sssd_autofs:
- '.*'
/usr/lib/x86_64-linux-gnu/sssd/sssd_autofs:
/usr/libexec/sssd/sssd_be:
- '.*'
/usr/lib/x86_64-linux-gnu/sssd/sssd_nss:
/usr/libexec/sssd/sssd_nss:
- '.*'
/usr/lib/x86_64-linux-gnu/sssd/sssd_pam:
/usr/libexec/sssd/sssd_pac:
- '.*'
/usr/libexec/sssd/sssd_pam:
- '.*'
/usr/libexec/sssd/sssd_ssh:
- '.*'
/usr/libexec/sssd/sssd_sudo:
- '.*'
/usr/sbin/sssd:
- '.*'
/sbin/multipathd:
- '.*'
xymon_plug_libs_whitelist: {}
xymon_plug_libs_group_whitelist: {}
xymon_plug_libs_host_whitelist: {}
xymon_cli__plug_libs_whitelist: {}
xymon_cli__plug_libs_group_whitelist: {}
xymon_cli__plug_libs_host_whitelist: {}
# ]]]
## Plugin Megaraid [[[
xymon_cli__plug_megaraid_state: false
xymon_cli__plug_megaraid_package: [ 'libipc-run-perl' ]
xymon_cli__plug_megaraid_path: '/etc/xymon/clientlaunch.d/megaraid.cfg'
xymon_cli__plug_megaraid_tpl: 'etc/xymon/clientlaunch.d/megaraid.cfg.j2'
xymon_cli__plug_megaraid_interval: '5m'
## ]]]
## Plugin mq [[[
xymon_plug_mq_state: true
xymon_plug_mq_package: ['libtimedate-perl']
xymon_plug_mq_path: '/etc/xymon/clientlaunch.d/mq.cfg'
xymon_plug_mq_tpl: 'etc/xymon/clientlaunch.d/mq.cfg.j2'
xymon_plug_mq_interval: '5m'
xymon_cli__plug_mq_state: true
xymon_cli__plug_mq_package: ['libtimedate-perl']
xymon_cli__plug_mq_path: '/etc/xymon/clientlaunch.d/mq.cfg'
xymon_cli__plug_mq_tpl: 'etc/xymon/clientlaunch.d/mq.cfg.j2'
xymon_cli__plug_mq_interval: '5m'
## ]]]
## Plugin net [[[
xymon_cli__plug_net_state: false
xymon_cli__plug_net_package: [ 'ethtool', 'iproute2', 'libfile-slurp-perl', 'libfile-which-perl', 'libipc-run-perl', 'libyaml-tiny-perl' ]
xymon_cli__plug_net_path: '/etc/xymon/clientlaunch.d/net.cfg'
xymon_cli__plug_net_tpl: 'etc/xymon/clientlaunch.d/net.cfg.j2'
xymon_cli__plug_net_interval: '5m'
xymon_cli__plug_net_conf_path: '/etc/xymon/net.yaml'
xymon_cli__plug_net_conf_tpl: 'etc/xymon/net.yaml.j2'
## ]]]
## Plugin netstats [[[
xymon_cli__plug_netstats_state: false
xymon_cli__plug_netstats_package: [ 'libfile-which-perl', 'libfile-slurp-perl', 'libipc-run-perl', 'libyaml-tiny-perl', 'iproute2', 'ethtool' ]
xymon_cli__plug_netstats_path: '/etc/xymon/clientlaunch.d/netstats.cfg'
xymon_cli__plug_netstats_tpl: 'etc/xymon/clientlaunch.d/netstats.cfg.j2'
xymon_cli__plug_netstats_interval: '5m'
## ]]]
## Plugin ntpq [[[
xymon_cli__plug_ntpq_state: true
xymon_cli__plug_ntpq_path: '/etc/xymon/clientlaunch.d/ntpq.cfg'
xymon_cli__plug_ntpq_tpl: 'etc/xymon/clientlaunch.d/ntpq.cfg.j2'
xymon_cli__plug_ntpq_interval: '5m'
## ]]]
## Plugin SGE [[[
### From https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/sge.sh
### From https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/sge.sh
xymon_cli__plug_sge_state: False
xymon_cli__plug_sge_script_path: '/usr/lib/xymon/client/ext/sge.sh'
xymon_cli__plug_sge_script_tpl: 'usr/lib/xymon/client/ext/sge.sh.j2'
@ -124,7 +172,7 @@ xymon_cli__plug_sge_interval: '5m'
# ]]]
## Plugin smartoverall [[[
### From https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
### From https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
### And based on https://www.xymon.com/xymon-cgi/viewconf.sh?smart
### Mostly for disks unknown from smartmontools's database
xymon_cli__plug_smartoverall_state: False
@ -152,7 +200,10 @@ xymon_cli__plug_smart_interval: '10m'
## Plugin temp [[[
### Enable by default on hardware host
xymon_cli__plug_temp_state: False
xymon_cli__plug_temp_package: [ 'libfile-which-perl', 'libyaml-tiny-perl', 'hddtemp', 'smartmontools', 'libxml-twig-perl' ]
xymon_cli__plug_temp_package: [ 'libfile-which-perl', 'libyaml-tiny-perl', 'smartmontools', 'libxml-twig-perl' ]
# Define xymon_cli__plug_temp_extra_package in your own inventory.
# See Nvidia support in README for more informations
#xymon_cli__plug_temp_extra_package: [ 'nvidia-smi' ]
xymon_cli__plug_temp_path: '/etc/xymon/clientlaunch.d/temp.cfg'
xymon_cli__plug_temp_tpl: 'etc/xymon/clientlaunch.d/temp.cfg.j2'
xymon_cli__plug_temp_interval: '5m'
@ -168,5 +219,73 @@ xymon_cli__plug_zfs_interval: '5m'
# ]]]
# .. envvar:: xymon_cli__plug_combined_packages [[[
#
# Combine all packages vars related to plugins (only enabled plugins).
#
xymon_cli__plug_combined_packages: '{{ ((xymon_cli__plug_pkg_list|d([]) if xymon_cli__plug_manage|bool else [])
+ (xymon_cli__plug_apt_package if xymon_cli__plug_apt_state|bool else [])
+ (xymon_cli__plug_ipmi_package if xymon_cli__plug_ipmi_state|bool else [])
+ (xymon_cli__plug_kern_package if xymon_cli__plug_kern_state|bool else [])
+ (xymon_cli__plug_libs_package if xymon_cli__plug_libs_state|bool else [])
+ (xymon_cli__plug_megaraid_package if xymon_cli__plug_megaraid_state|bool else [])
+ (xymon_cli__plug_mq_package if xymon_cli__plug_mq_state|bool else [])
+ (xymon_cli__plug_net_package if xymon_cli__plug_net_state|bool else [])
+ (xymon_cli__plug_smartoverall_package if xymon_cli__plug_smartoverall_state|bool else [])
+ (xymon_cli__plug_smart_package if xymon_cli__plug_smart_state|bool else [])
+ (xymon_cli__plug_temp_package if xymon_cli__plug_temp_state|bool else [])
+ (xymon_cli__plug_temp_extra_package|d([]) if xymon_cli__plug_temp_state|bool else []))
| sort | unique }}'
# ]]]
# .. envvar:: xymon_cli__plug_combined_clientlaunch [[[
#
# Combine clientlaunch files for all plugins
#
xymon_cli__plug_combined_clientlaunch:
- name: apt
path: '{{ xymon_cli__plug_apt_path }}'
template: '{{ xymon_cli__plug_apt_tpl }}'
- name: ipmi
path: '{{ xymon_cli__plug_ipmi_path }}'
template: '{{ xymon_cli__plug_ipmi_tpl }}'
- name: kern
path: '{{ xymon_cli__plug_kern_path }}'
template: '{{ xymon_cli__plug_kern_tpl }}'
- name: libs
path: '{{ xymon_cli__plug_libs_path }}'
template: '{{ xymon_cli__plug_libs_tpl }}'
- name: megaraid
path: '{{ xymon_cli__plug_megaraid_path }}'
template: '{{ xymon_cli__plug_megaraid_tpl }}'
- name: mq
path: '{{ xymon_cli__plug_mq_path }}'
template: '{{ xymon_cli__plug_mq_tpl }}'
- name: net
path: '{{ xymon_cli__plug_net_path }}'
template: '{{ xymon_cli__plug_net_tpl }}'
- name: netstats
path: '{{ xymon_cli__plug_netstats_path }}'
template: '{{ xymon_cli__plug_netstats_tpl }}'
- name: ntpq
path: '{{ xymon_cli__plug_ntpq_path }}'
template: '{{ xymon_cli__plug_ntpq_tpl }}'
- name: sge
path: '{{ xymon_cli__plug_sge_path }}'
template: '{{ xymon_cli__plug_sge_tpl }}'
- name: smartoverall
path: '{{ xymon_cli__plug_smartoverall_path }}'
template: '{{ xymon_cli__plug_smartoverall_tpl }}'
- name: smart
path: '{{ xymon_cli__plug_smart_path }}'
template: '{{ xymon_cli__plug_smart_tpl }}'
- name: temp
path: '{{ xymon_cli__plug_temp_path }}'
template: '{{ xymon_cli__plug_temp_tpl }}'
- name: zfs
path: '{{ xymon_cli__plug_zfs_path }}'
template: '{{ xymon_cli__plug_zfs_tpl }}'
# ]]]
# ]]]
# ]]]

View File

@ -1,5 +1,5 @@
---
# handlers file for ipr.ansible.xymon
- name: restart xymon-client service
service: name={{ xymon_cli_service_name }} state=restarted
when: xymon_cli_service_manage
service: name={{ xymon_cli__service_name }} state=restarted
when: xymon_cli__service_manage

View File

@ -7,11 +7,13 @@ galaxy_info:
description: "Manage Xymon configuration"
license: WTFPL
company: IPR
issue_tracker_url: https://git.ipr.univ-rennes1.fr/cellinfo/ansible.xymon/issues
min_ansible_version: 2.2
issue_tracker_url: https://git.ipr.univ-rennes.fr/cellinfo/ansible.xymon/issues
min_ansible_version: 2.7
platforms:
- name: Debian
versions:
- buster
- bullseye
- stretch
galaxy_tags:
- system

View File

@ -4,7 +4,7 @@
# tasks file for ipr.ansible.xymon
- name: Load specific OS vars for xymon
include_vars: "{{ item }}"
ansible.builtin.include_vars: "{{ item }}"
with_first_found:
- "{{ ansible_distribution|lower }}-{{ ansible_distribution_version }}.yml"
- "{{ ansible_distribution|lower }}.yml"
@ -12,369 +12,199 @@
# Manage required client packages [[[1
- name: client package
package:
name: '{{ item }}'
state: '{{ xymon_cli_pkg_state }}'
with_items:
- '{{ xymon_cli_pkg_list | to_nice_json }}'
ansible.builtin.package:
name: '{{ xymon_cli__pkg_list | flatten }}'
state: '{{ xymon_cli__pkg_state }}'
register: cli_result
until: cli_result is success
when: xymon_cli_manage|bool
when: xymon_cli__manage|bool
# Manage client configuration [[[1
- name: CONFIG xymon-client service
template:
src: '{{ xymon_cli_default_conf_tpl }}'
dest: '{{ xymon_cli_default_conf_path }}'
ansible.builtin.template:
src: '{{ xymon_cli__default_conf_tpl }}'
dest: '{{ xymon_cli__default_conf_path }}'
owner: root
group: root
mode: 0644
backup: true
when: xymon_cli_manage|bool
when: xymon_cli__manage|bool
notify: restart xymon-client service
- name: CONFIG xymon user's groups
user:
ansible.builtin.user:
name: xymon
groups: '{{ xymon_user_groups }}'
groups: '{{ xymon_cli__user_groups }}'
append: true
when: xymon_cli_manage|bool
when: xymon_cli__manage|bool
notify: restart xymon-client service
# Manage service [[[1
- name: SERVICE manage '{{ xymon_cli_service_name }}'
service:
name: '{{ xymon_cli_service_name }}'
- name: SERVICE manage '{{ xymon_cli__service_name }}'
ansible.builtin.service:
name: '{{ xymon_cli__service_name }}'
state: started
enabled: '{{ xymon_cli_service_enabled }}'
when: (xymon_cli_manage|bool and
xymon_cli_service_manage|bool)
enabled: '{{ xymon_cli__service_enabled }}'
when: (xymon_cli__manage|bool and
xymon_cli__service_manage|bool)
# Manage apt plugin [[[1
- name: PLUGIN apt packages
package:
name: '{{ item }}'
# Manage all plugins's packages [[[1
- name: PLUGINS package and dependencies
ansible.builtin.package:
name: '{{ xymon_cli__plug_combined_packages | flatten }}'
state: 'present'
with_items:
- '{{ xymon_plug_apt_package | to_nice_json }}'
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
xymon_plug_apt_state|bool)
register: apt_plug_result
until: apt_plug_result is success
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool)
register: combined_packages_plug_result
until: combined_packages_plug_result is success
notify: restart xymon-client service
- name: PLUGIN apt
template:
src: '{{ xymon_plug_apt_tpl }}'
dest: '{{ xymon_plug_apt_path }}'
# Manage plugins clientlaunch files [[[1
- name: PLUGINS clientlaunch files
ansible.builtin.template:
src: '{{ item.template }}'
dest: '{{ item.path }}'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
with_items:
- '{{ xymon_cli__plug_combined_clientlaunch }}'
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool)
notify: restart xymon-client service
# Manage apt plugin [[[1
- name: PLUGIN apt no_repo_accept whitelist
template:
ansible.builtin.template:
src: 'etc/xymon/apt_no_repo_accept.j2'
dest: '/etc/xymon/apt_no_repo_accept'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
notify: restart xymon-client service
# Manage ipmi plugin [[[1
- name: PLUGIN ipmi packages
package:
name: '{{ item }}'
state: 'present'
with_items:
- '{{ xymon_cli__plug_ipmi_package | to_nice_json }}'
register: ipmi_plug_result
until: ipmi_plug_result is success
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
xymon_cli__plug_ipmi_state|bool)
notify: restart xymon-client service
- name: PLUGIN ipmi
template:
src: '{{ xymon_cli__plug_ipmi_tpl }}'
dest: '{{ xymon_cli__plug_ipmi_path }}'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool)
notify: restart xymon-client service
# Manage libs plugin [[[1
- name: PLUGIN libs packages
package:
name: '{{ item }}'
state: 'present'
with_items:
- '{{ xymon_plug_libs_package | to_nice_json }}'
register: libs_plug_result
until: libs_plug_result is success
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
xymon_plug_libs_state|bool)
notify: restart xymon-client service
- name: PLUGIN libs
template:
src: '{{ xymon_plug_libs_tpl }}'
dest: '{{ xymon_plug_libs_path }}'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
notify: restart xymon-client service
- name: PLUGIN libs whitelist
template:
ansible.builtin.template:
src: 'etc/xymon/libs.local.yaml.j2'
dest: '/etc/xymon/libs.local.yaml'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool)
notify: restart xymon-client service
# Manage mq plugin [[[1
- name: PLUGIN mq packages
package:
name: '{{ item }}'
state: 'present'
with_items:
- '{{ xymon_plug_mq_package | to_nice_json }}'
register: mq_plug_result
until: mq_plug_result is success
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
xymon_plug_mq_state|bool)
# Manage kern plugin [[[1
- name: PLUGIN kern workaround
ansible.builtin.template:
src: '{{ xymon_cli__plug_kern_fix_tpl }}'
dest: '{{ xymon_cli__plug_kern_fix_path }}'
owner: root
group: root
mode: 0754
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool and
xymon_cli__plug_kern_fix|bool)
notify: restart xymon-client service
- name: PLUGIN mq
template:
src: '{{ xymon_plug_mq_tpl }}'
dest: '{{ xymon_plug_mq_path }}'
# Manage net plugin [[[1
- name: PLUGIN net config template
ansible.builtin.template:
src: '{{ xymon_cli__plug_net_conf_tpl }}'
dest: '{{ xymon_cli__plug_net_conf_path }}'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
notify: restart xymon-client service
# Manage netstats plugin [[[1
- name: PLUGIN netstats packages
package:
name: '{{ item }}'
state: 'present'
with_items:
- '{{ xymon_cli__plug_netstats_package | to_nice_json }}'
register: netstats_plug_result
until: netstats_plug_result is success
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
xymon_cli__plug_netstats_state|bool)
notify: restart xymon-client service
- name: PLUGIN netstats config
template:
src: '{{ xymon_cli__plug_netstats_tpl }}'
dest: '{{ xymon_cli__plug_netstats_path }}'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool)
notify: restart xymon-client service
# Manage sge plugin [[[1
- name: PLUGIN sge config
template:
src: '{{ xymon_cli__plug_sge_tpl }}'
dest: '{{ xymon_cli__plug_sge_path }}'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
notify: restart xymon-client service
- name: PLUGIN sge script file from template
template:
ansible.builtin.template:
src: '{{ xymon_cli__plug_sge_script_tpl }}'
dest: '{{ xymon_cli__plug_sge_script_path }}'
owner: root
group: xymon
mode: 0755
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool and
xymon_cli__plug_sge_script_url|length == 0 )
notify: restart xymon-client service
- name: PLUGIN sge script file from URL
get_url:
ansible.builtin.get_url:
url: '{{ xymon_cli__plug_sge_script_url }}'
dest: '{{ xymon_cli__plug_sge_script_path }}'
owner: root
group: xymon
mode: 0755
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool and
xymon_cli__plug_sge_script_url|length > 0 )
notify: restart xymon-client service
# Manage smartoverall plugin [[[1
- name: PLUGIN smartoverall packages
package:
name: '{{ item }}'
state: 'present'
with_items:
- '{{ xymon_cli__plug_smartoverall_package | to_nice_json }}'
register: smartoverall_plug_result
until: smartoverall_plug_result is success
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
xymon_cli__plug_smartoverall_state|bool)
notify: restart xymon-client service
- name: PLUGIN smartoverall config
template:
src: '{{ xymon_cli__plug_smartoverall_tpl }}'
dest: '{{ xymon_cli__plug_smartoverall_path }}'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
notify: restart xymon-client service
- name: PLUGIN smartoverall script file from template
template:
ansible.builtin.template:
src: '{{ xymon_cli__plug_smartoverall_script_tpl }}'
dest: '{{ xymon_cli__plug_smartoverall_script_path }}'
owner: root
group: xymon
mode: 0755
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool and
xymon_cli__plug_smartoverall_script_url|length == 0 )
notify: restart xymon-client service
- name: PLUGIN smartoverall script file from URL
get_url:
ansible.builtin.get_url:
url: '{{ xymon_cli__plug_smartoverall_script_url }}'
dest: '{{ xymon_cli__plug_smartoverall_script_path }}'
owner: root
group: xymon
mode: 0755
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool and
xymon_cli__plug_smartoverall_script_url|length > 0 )
notify: restart xymon-client service
# Manage smart plugin [[[1
- name: PLUGIN smart packages
package:
name: '{{ item }}'
state: 'present'
with_items:
- '{{ xymon_cli__plug_smart_package | to_nice_json }}'
register: smart_plug_result
until: smart_plug_result is success
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
xymon_cli__plug_smart_state|bool)
notify: restart xymon-client service
- name: PLUGIN smart config
template:
src: '{{ xymon_cli__plug_smart_tpl }}'
dest: '{{ xymon_cli__plug_smart_path }}'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
notify: restart xymon-client service
- name: PLUGIN smart script file from template
template:
ansible.builtin.template:
src: '{{ xymon_cli__plug_smart_script_tpl }}'
dest: '{{ xymon_cli__plug_smart_script_path }}'
owner: root
group: xymon
mode: 0755
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool and
xymon_cli__plug_smart_script_url|length == 0 )
notify: restart xymon-client service
- name: PLUGIN smart script file from URL
get_url:
ansible.builtin.get_url:
url: '{{ xymon_cli__plug_smart_script_url }}'
dest: '{{ xymon_cli__plug_smart_script_path }}'
owner: root
group: xymon
mode: 0755
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool and
xymon_cli__plug_smart_script_url|length > 0 )
notify: restart xymon-client service
# Manage temp plugin [[[1
- name: PLUGIN temp packages
package:
name: '{{ item }}'
state: 'present'
with_items:
- '{{ xymon_cli__plug_temp_package | to_nice_json }}'
register: temp_plug_result
until: temp_plug_result is success
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool and
xymon_cli__plug_temp_state|bool)
notify: restart xymon-client service
- name: PLUGIN temp
template:
src: '{{ xymon_cli__plug_temp_tpl }}'
dest: '{{ xymon_cli__plug_temp_path }}'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
notify: restart xymon-client service
# Manage zfs plugin [[[1
- name: PLUGIN zfs config file
template:
src: '{{ xymon_cli__plug_zfs_tpl }}'
dest: '{{ xymon_cli__plug_zfs_path }}'
owner: root
group: root
mode: 0644
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
notify: restart xymon-client service
- name: PLUGIN zfs script file
template:
ansible.builtin.template:
src: '{{ xymon_cli__plug_zfs_script_tpl }}'
dest: '{{ xymon_cli__plug_zfs_script_path }}'
owner: root
group: xymon
mode: 0755
when: (xymon_cli_manage|bool and
xymon_plug_manage|bool)
when: (xymon_cli__manage|bool and
xymon_cli__plug_manage|bool)
notify: restart xymon-client service

View File

@ -1,4 +1,4 @@
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
# Configure the Xymon client settings.
@ -13,7 +13,7 @@
# or (multiple servers)
# XYMONSERVERS="10.0.0.1 192.168.1.1"
XYMONSERVERS="{{ xymon_srv_list }}"
XYMONSERVERS="{{ xymon_cli__srv_list }}"
# The defaults usually suffice for the rest of this file,
# but you can tweak the hostname that the client reports
@ -23,7 +23,7 @@ XYMONSERVERS="{{ xymon_srv_list }}"
# CLIENTHOSTNAME=""
# CLIENTOS="rhel3"
CLIENTHOSTNAME="{{ xymon_cli_hostname }}"
CLIENTHOSTNAME="{{ xymon_cli__hostname }}"
# Optionally mount a tmpfs on /var/lib/xymon/tmp. On client systems this has
# the advantage that client reports will continue to work even if the /var

View File

@ -0,0 +1,18 @@
#!/bin/sh
{# Use | comment to manage multilines #}
# {{ ansible_managed | comment }}
# Ansible template : {{ template_path }}
#
# Allow to fix the warning :
# "Kernel image /boot/vmlinuz… unreadable. Can't check kernel version!"
# https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725
# See comment #34 - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725/comments/34
set -e
version="$1"
if [ -z "$version" ]; then
exit 0
fi
exec dpkg-statoverride --force-statoverride-add --update --add root root 0644 "/boot/vmlinuz-${version}"

View File

@ -1,5 +1,5 @@
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{% for package in xymon_plug_apt_combined_whitelist %}
{% for package in xymon_cli__plug_apt_combined_whitelist %}
{{ package }}
{% endfor %}

View File

@ -1,8 +1,8 @@
[apt]
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_plug_apt_state else 'DISABLED' }}
{{ '#DISABLED' if xymon_cli__plug_apt_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg
CMD $XYMONCLIENTHOME/ext/apt
LOGFILE /var/log/xymon/xymonclient.log
INTERVAL {{ xymon_plug_apt_interval }}
INTERVAL {{ xymon_cli__plug_apt_interval }}

View File

@ -1,5 +1,5 @@
[ipmi]
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_ipmi_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg

View File

@ -0,0 +1,8 @@
[kern]
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_kern_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg
CMD $XYMONCLIENTHOME/ext/kern
LOGFILE /var/log/xymon/xymonclient.log
INTERVAL {{ xymon_cli__plug_kern_interval }}

View File

@ -1,8 +1,8 @@
[libs]
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_plug_libs_state else 'DISABLED' }}
{{ '#DISABLED' if xymon_cli__plug_libs_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg
CMD $XYMONCLIENTHOME/ext/libs
LOGFILE /var/log/xymon/xymonclient.log
INTERVAL {{ xymon_plug_libs_interval }}
INTERVAL {{ xymon_cli__plug_libs_interval }}

View File

@ -0,0 +1,9 @@
# Requires megaclisas-status package from https://hwraid.le-vert.net/wiki/DebianPackages
[megaraid]
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_megaraid_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg
CMD /usr/bin/xynagios --test=megaraid -- sudo megaclisas-status --nagios
LOGFILE /var/log/xymon/xymonclient.log
INTERVAL 5m

View File

@ -1,8 +1,8 @@
[mq]
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_plug_mq_state else 'DISABLED' }}
{{ '#DISABLED' if xymon_cli__plug_mq_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg
CMD $XYMONCLIENTHOME/ext/mq
LOGFILE /var/log/xymon/xymonclient.log
INTERVAL {{ xymon_plug_mq_interval }}
INTERVAL {{ xymon_cli__plug_mq_interval }}

View File

@ -0,0 +1,8 @@
[net]
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_net_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg
CMD /usr/bin/sudo -E -u root $XYMONCLIENTHOME/ext/net
LOGFILE /var/log/xymon/xymonclient.log
INTERVAL {{ xymon_cli__plug_net_interval }}

View File

@ -1,5 +1,5 @@
[netstats]
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_netstats_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg

View File

@ -0,0 +1,8 @@
[ntpq]
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_ntpq_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg
CMD $XYMONCLIENTHOME/ext/ntpq
LOGFILE /var/log/xymon/xymonclient.log
INTERVAL {{ xymon_cli__plug_ntpq_interval }}

View File

@ -1,5 +1,5 @@
[sge]
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_sge_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg

View File

@ -1,5 +1,5 @@
[smart]
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_smart_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg

View File

@ -1,5 +1,5 @@
[smartoverall]
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_smartoverall_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg

View File

@ -1,5 +1,5 @@
[temp]
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_temp_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg

View File

@ -1,5 +1,5 @@
[zfs]
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_zfs_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg

View File

@ -1,9 +1,9 @@
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{% set inputmerged = xymon_plug_libs_default_whitelist.copy() %}
{% set _ = inputmerged.update(xymon_plug_libs_whitelist) %}
{% set _ = inputmerged.update(xymon_plug_libs_group_whitelist) %}
{% set _ = inputmerged.update(xymon_plug_libs_host_whitelist) %}
{% set inputmerged = xymon_cli__plug_libs_default_whitelist.copy() %}
{% set _ = inputmerged.update(xymon_cli__plug_libs_whitelist) %}
{% set _ = inputmerged.update(xymon_cli__plug_libs_group_whitelist) %}
{% set _ = inputmerged.update(xymon_cli__plug_libs_host_whitelist) %}
---
whitelist:
{% for group, rules in inputmerged|dictsort %}

View File

@ -0,0 +1,39 @@
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ ansible_hostname }}:
- {{ ansible_default_ipv4.interface }}
## This file is just here to allow the net probe, you juste enable,
## to send something.
## Check the README of hobbit-plugins project:
## https://salsa.debian.org/debian/hobbit-plugins#net-check-network-interface-states
## To get an overview of what can be done with this probe and how to get
## a working and more complete configuration file (check speed, mtu,…).
## You really should consider writing your own template and override
## `xymon_cli__plug_net_conf_tpl` variable.
## As the probe search for the hostname to get it's configuration, you can
## write one single configuration file with several hosts definition.
## And if you don't like template, you can simply put static informations ;)
## Example for "host1"
#host1:
# ### Ensure eno1 is up with a "Direct Attach Copper" (see ethtool) and
# ### with a speed of 10000Mb/s
# eno1:
# UP: red
# "Port: Direct Attach Copper": red
# "Speed: 10000Mb/s": red
# ### Ensure bond0 and vmbr0 are up
# bond0:
# UP: red
# vmbr0:
# UP: red
# ### Ensure vlan2 as MTU 9000
# vlan2:
# "mtu 9000": red
# ### Ensure eno3 is up with a speed of 1000Mb/s
# eno3:
# UP: red
# "1000Mb/s": red

View File

@ -1,8 +1,8 @@
#!/bin/sh
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
# From ipr-cnrs.xymon role
# https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/sge.sh
# https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/sge.sh
#
# SGE: Sun Grid Engine check - Xymon external script test
#

View File

@ -2,7 +2,7 @@
# $Id: sensors 70 2011-11-25 09:21:18Z skazi $
# Author: Jacek Tomasiak <jacek.tomasiak@gmail.com>
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
# From ipr-cnrs.xymon role
# Thanks to Jacek Tomasiak skazi0
# https://github.com/skazi0/xymon-plugins/blob/master/client/ext/smart

View File

@ -1,10 +1,10 @@
#!/bin/sh
# .. vim: foldmarker=[[[,]]]:foldmethod=marker
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
# From ipr-cnrs.xymon role
# Source:
# https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
# https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
# NOTE: Must be run as root, so you probably need to setup sudo for this.

View File

@ -1,6 +1,6 @@
#!/bin/ksh
# {{ ansible_managed }}
# {{ ansible_managed | comment }}
# From ipr-cnrs.xymon role
# Revision History:
@ -122,6 +122,6 @@ then
fi
# What: Sent out the final bb message to hobbit server.
$XYMON $XYMONSRV $XYMONSERVERS "status $MACHINE.$TEST $DISPCOLOR `date` $FIRST_LINE $STRING"
echo "$XYMON $XYMONSRV $XYMONSERVERS --debug status $MACHINE.$TEST $DISPCOLOR `date` $FIRST_LINE $STRING" > /tmp/xymon_zfs
echo "$XYMON $XYMONSRV $XYMONSERVERS --debug status $MACHINE.$TEST $DISPCOLOR `date` $FIRST_LINE $STRING" > /tmp/xymon_cli__zfs
$XYMON $XYMONSRV $XYMONSERVERS "data $MACHINE.$TEST $DISPCOLOR $(echo; echo "$DATA" ;echo;echo)"

View File

@ -1,5 +1,7 @@
---
# vars file for Debian-based distros
xymon_cli_pkg_list:
xymon_cli__pkg_list:
- xymon-client
xymon_cli__plug_pkg_list:
- hobbit-plugins