Compare commits

..

No commits in common. "master" and "v1.4.0" have entirely different histories.

30 changed files with 329 additions and 1001 deletions

View File

@ -1,83 +1,10 @@
## 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
* Add temp probe configuration.
* Add example to enable probes for hardware hosts.
## v1.5.0
### Enhancements
* Possibility to define URLs in order to get the latest version of SMART's scripts.
* Add sge plugin from https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/sge.sh
## v1.4.0 ## v1.4.0
### Enhancements ### Enhancements
* Add variables to manage plugin interval. * Add variables to manage plugin interval.
* Add netstats plugin managment. * Add netstats plugin managment.
* Add smart plugin from https://github.com/skazi0/xymon-plugins * Add smart plugin from https://github.com/skazi0/xymon-plugins
* Add smartoverall plugin from https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall * Add smartoverall plugin from https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
* Add description for plugins. * Add description for plugins.
### Fix ### Fix
@ -146,4 +73,3 @@
* Allow to set Xymon servers list for `xymon-client` config. * 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 [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

193
README.md
View File

@ -2,7 +2,7 @@
1. [Overview](#overview) 1. [Overview](#overview)
2. [Role Variables](#role-variables) 2. [Role Variables](#role-variables)
* [Plugins Specific Variables](#plugins-variables) * [Plugins Specific Variables](#plugins-specific-variables)
* [OS Specific Variables](#os-specific-variables) * [OS Specific Variables](#os-specific-variables)
3. [Example Playbook](#example-playbook) 3. [Example Playbook](#example-playbook)
4. [Configuration](#configuration) 4. [Configuration](#configuration)
@ -17,37 +17,34 @@ Manage Xymon (client) installation and configuration.
## Role Variables ## Role Variables
* **xymon_cli__manage**: If `xymon-client` should be managed with this role [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_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_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_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_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_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_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_name**: `xymon-client` service name [default: `xymon-client`].
* **xymon_cli__service_enabled**: Set `xymon-client` service available at startup [default: `true`]. * **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_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`]. * **xymon_plug_manage**: If this role should manage plugins configuration [default: `true`].
### Plugins Variables ### 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 #### APT
Variables for the APT plugin from hobbit-plugins. The plugin check for Variables for the APT plugin from hobbit-plugins. The plugin check for
outstanding updates. outstanding updates.
* **xymon_cli__plug_apt_state**: The state of plugin `apt` [default: `true`]. * **xymon_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_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_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_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_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_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_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_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: `[]`]. * **xymon_plug_apt_host_whitelist**: Host list of allowed packages not installed from repositories [default: `[]`].
#### IPMI #### IPMI
@ -60,113 +57,43 @@ 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_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`]. * **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 #### Libs
Variables for the Libs plugin from hobbit-plugins. The plugin check for running Variables for the Libs plugin from hobbit-plugins. The plugin check for running
processes with upgraded libraries. processes with upgraded libraries.
* **xymon_cli__plug_libs_state**: The state of plugin `libs` [default: `true`]. * **xymon_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_plug_libs_package**: The packages to install to provide `libs` plugin [default: `[ 'binutils', 'lsof', 'libyaml-tiny-perl', 'libfile-slurp-perl', 'libsort-naturally-perl' ]`].
* **xymon_cli__plug_libs_path**: Configuration file for the `libs` plugin [default: `/etc/xymon/clientlaunch.d/libs.cfg`]. * **xymon_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_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_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_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_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_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. * **xymon_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 #### Mq
Variables for the Mq plugin from hobbit-plugins. The plugin check Postfix's Variables for the Mq plugin from hobbit-plugins. The plugin check Postfix's
mail queue. mail queue.
* **xymon_cli__plug_mq_state**: The state of plugin `mq` [default: `true`]. * **xymon_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_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_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_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`]. * **xymon_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 #### Netstats
Variables for the Netstats plugin from hobbit-plugins. The plugin check Variables for the Net/Netstats plugin from hobbit-plugins. The plugin check
network interface states. network interface states.
* **xymon_cli__plug_netstats_state**: The state of plugin `netstats` [default: `false`]. * **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_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_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`]. * **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].
The plugin check health status for SGE queues and display informations about
SGE jobs and host.
* **xymon_cli__plug_sge_state**: The state of plugin `sge` [default: `False`].
* **xymon_cli__plug_sge_script_path**: Path to the `sge` script [default: `'/usr/lib/xymon/client/ext/sge'`].
* **xymon_cli__plug_sge_script_tpl**: Template used to generate the previous script [default: `'usr/lib/xymon/client/ext/sge.j2'`].
* **xymon_cli__plug_sge_script_url**: Use a remote file to get the previous script instead of a template [default: `''`].
* **xymon_cli__plug_sge_path**: Configuration file for the `sge` plugin [default: `'/etc/xymon/clientlaunch.d/sge.cfg'`].
* **xymon_cli__plug_sge_tpl**: Template used to generate the previous config file [default: `'etc/xymon/clientlaunch.d/sge.cfg.j2'`].
* **xymon_cli__plug_sge_interval**: Time between each run of the `sge` plugin [default: `'10m'`]
#### Smartoverall #### Smartoverall
Variables for Smartoverall plugin from [ipr-cnrs.scripts][smartoverall plugin source]. Variables for Smartoverall plugin from [ipr-cnrs.scripts][smartoverall plugin source].
@ -179,7 +106,6 @@ For more features, see the next Smart plugin.
* **xymon_cli__plug_smartoverall_package**: The packages to install to provide `smartoverall` plugin [default: `[ 'smartmontools' ]`]. * **xymon_cli__plug_smartoverall_package**: The packages to install to provide `smartoverall` plugin [default: `[ 'smartmontools' ]`].
* **xymon_cli__plug_smartoverall_script_path**: Path to the `smartoverall` script [default: `'/usr/lib/xymon/client/ext/smartoverall'`]. * **xymon_cli__plug_smartoverall_script_path**: Path to the `smartoverall` script [default: `'/usr/lib/xymon/client/ext/smartoverall'`].
* **xymon_cli__plug_smartoverall_script_tpl**: Template used to generate the previous script [default: `'usr/lib/xymon/client/ext/smartoverall.j2'`]. * **xymon_cli__plug_smartoverall_script_tpl**: Template used to generate the previous script [default: `'usr/lib/xymon/client/ext/smartoverall.j2'`].
* **xymon_cli__plug_smartoverall_script_url**: Use a remote file to get the previous script instead of a template [default: `''`].
* **xymon_cli__plug_smartoverall_path**: Configuration file for the `smartoverall` plugin [default: `'/etc/xymon/clientlaunch.d/smartoverall.cfg'`]. * **xymon_cli__plug_smartoverall_path**: Configuration file for the `smartoverall` plugin [default: `'/etc/xymon/clientlaunch.d/smartoverall.cfg'`].
* **xymon_cli__plug_smartoverall_tpl**: Template used to generate the previous config file [default: `'etc/xymon/clientlaunch.d/smartoverall.cfg.j2'`]. * **xymon_cli__plug_smartoverall_tpl**: Template used to generate the previous config file [default: `'etc/xymon/clientlaunch.d/smartoverall.cfg.j2'`].
* **xymon_cli__plug_smartoverall_interval**: Time between each run of the `smartoverall` plugin [default: `'10m'`] * **xymon_cli__plug_smartoverall_interval**: Time between each run of the `smartoverall` plugin [default: `'10m'`]
@ -194,31 +120,10 @@ one's recommended by the vendor and check a recent (<24h) test was done.
* **xymon_cli__plug_smart_package**: The packages to install to provide `smart` plugin [default: `[ 'smartmontools' ]`]. * **xymon_cli__plug_smart_package**: The packages to install to provide `smart` plugin [default: `[ 'smartmontools' ]`].
* **xymon_cli__plug_smart_script_path**: Path to the `smart` script [default: `'/usr/lib/xymon/client/ext/smart'`]. * **xymon_cli__plug_smart_script_path**: Path to the `smart` script [default: `'/usr/lib/xymon/client/ext/smart'`].
* **xymon_cli__plug_smart_script_tpl**: Template used to generate the previous script [default: `'usr/lib/xymon/client/ext/smart.j2'`]. * **xymon_cli__plug_smart_script_tpl**: Template used to generate the previous script [default: `'usr/lib/xymon/client/ext/smart.j2'`].
* **xymon_cli__plug_smart_script_url**: Use a remote file to get the previous script instead of a template [default: `''`].
* **xymon_cli__plug_smart_path**: Configuration file for the `smart` plugin [default: `'/etc/xymon/clientlaunch.d/smart.cfg'`]. * **xymon_cli__plug_smart_path**: Configuration file for the `smart` plugin [default: `'/etc/xymon/clientlaunch.d/smart.cfg'`].
* **xymon_cli__plug_smart_tpl**: Template used to generate the previous config file [default: `'etc/xymon/clientlaunch.d/smart.cfg.j2'`]. * **xymon_cli__plug_smart_tpl**: Template used to generate the previous config file [default: `'etc/xymon/clientlaunch.d/smart.cfg.j2'`].
* **xymon_cli__plug_smart_interval**: Time between each run of the `smart` plugin [default: `'10m'`] * **xymon_cli__plug_smart_interval**: Time between each run of the `smart` plugin [default: `'10m'`]
#### Temp
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', '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 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_extra_package: [ 'nvidia-smi' ]
```
#### ZFS #### ZFS
Variables for ZFS plugin from [Xymonton][zfs plugin source]. The plugin check Variables for ZFS plugin from [Xymonton][zfs plugin source]. The plugin check
@ -231,24 +136,11 @@ health (global and for pools), capacity and snapshot status.
* **xymon_cli__plug_zfs_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/zfs.cfg.j2`]. * **xymon_cli__plug_zfs_tpl**: Template used to generate the previous config file [default: `etc/xymon/clientlaunch.d/zfs.cfg.j2`].
* **xymon_cli__plug_zfs_interval**: Time between each run of the `zfs` plugin [default: `5m`]. * **xymon_cli__plug_zfs_interval**: Time between each run of the `zfs` plugin [default: `5m`].
#### Automatically enable some probes
It can be useful to automatically enable some probes according to the type of
servers:
* Enable temp probe on hardware hosts (also useful for Smartoverall and Smart):
``` yml
xymon_cli__plug_temp_state: '{{ True
if (ansible_virtualization_role == "host")
else False }}'
```
### OS Specific Variables ### OS Specific Variables
Please see default value by Operating System file in [vars][vars directory] directory. 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 ## Example Playbook
@ -271,7 +163,6 @@ This role will:
Some plugins and options can be managed with this role: Some plugins and options can be managed with this role:
* apt: Check state of packages and repositories. * 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. * libs: Check for running processes with upgraded libraries.
* mq: Check mail queue. * mq: Check mail queue.
* zfs: Check ZFS pools status. * zfs: Check ZFS pools status.
@ -296,15 +187,11 @@ Jérémy Gardais
[vars directory]: ./vars [vars directory]: ./vars
[gogs to github hook]: https://stackoverflow.com/a/21998477 [gogs to github hook]: https://stackoverflow.com/a/21998477
[xymon source]: https://git.ipr.univ-rennes.fr/cellinfo/ansible.xymon [xymon source]: https://git.ipr.univ-rennes1.fr/cellinfo/ansible.xymon
[xymon github]: https://github.com/ipr-cnrs/xymon [xymon github]: https://github.com/ipr-cnrs/xymon
[wtfpl website]: http://www.wtfpl.net/about/ [wtfpl website]: http://www.wtfpl.net/about/
[ipr website]: https://ipr.univ-rennes1.fr/ [ipr website]: https://ipr.univ-rennes1.fr/
[url hwraid]: https://hwraid.le-vert.net/wiki/DebianPackages [smartoverall plugin source]: https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
[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 [smart plugin source]: https://github.com/skazi0/xymon-plugins
[zfs plugin source]: https://wiki.xymonton.org/doku.php/monitors:bb-zfs [zfs plugin source]: https://wiki.xymonton.org/doku.php/monitors:bb-zfs

View File

@ -7,12 +7,12 @@
# Packages and installation [[[ # Packages and installation [[[
# ----------------------------- # -----------------------------
# .. envvar:: xymon_cli__manage [[[ # .. envvar:: xymon_cli_manage [[[
# #
# If this role should manage the installation of Xymon client # 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? # What is the desired state which this role's packages should be?
# Possible options: # Possible options:
@ -23,45 +23,45 @@ xymon_cli__manage: true
# ``absent`` # ``absent``
# Ensure to remove the packages. # Ensure to remove the packages.
# #
xymon_cli__pkg_state: 'present' xymon_cli_pkg_state: 'present'
# ]]] # ]]]
# ]]] # ]]]
# Server configuration and service [[[ # Server configuration and service [[[
# ------------------------------------ # ------------------------------------
## conf ## conf
xymon_cli__default_conf_path: '/etc/default/xymon-client' xymon_cli_default_conf_path: '/etc/default/xymon-client'
xymon_cli__default_conf_tpl: 'etc/default/xymon-client.j2' xymon_cli_default_conf_tpl: 'etc/default/xymon-client.j2'
xymon_cli__hostname: "{{ ansible_fqdn }}" xymon_cli_hostname: "{{ ansible_fqdn }}"
xymon_cli__user_groups: 'xymon' xymon_user_groups: 'xymon'
## service ## service
xymon_cli__service_manage: true xymon_cli_service_manage: true
xymon_cli__service_name: 'xymon-client' xymon_cli_service_name: 'xymon-client'
xymon_cli__service_enabled: true xymon_cli_service_enabled: true
# server # server
xymon_cli__srv_list: "monitoring.{{ ansible_domain }}" xymon_srv_list: "monitoring.{{ ansible_domain }}"
# ]]] # ]]]
# Plugins management [[[ # Plugins management [[[
# ---------------------- # ----------------------
xymon_cli__plug_manage: true xymon_plug_manage: true
## Plugin apt [[[ ## Plugin apt [[[
xymon_cli__plug_apt_state: true xymon_plug_apt_state: true
xymon_cli__plug_apt_package: [ 'aptitude', 'dctrl-tools' ] xymon_plug_apt_package: [ 'aptitude', 'dctrl-tools' ]
xymon_cli__plug_apt_path: '/etc/xymon/clientlaunch.d/apt.cfg' xymon_plug_apt_path: '/etc/xymon/clientlaunch.d/apt.cfg'
xymon_cli__plug_apt_tpl: 'etc/xymon/clientlaunch.d/apt.cfg.j2' xymon_plug_apt_tpl: 'etc/xymon/clientlaunch.d/apt.cfg.j2'
xymon_cli__plug_apt_interval: '5m' xymon_plug_apt_interval: '5m'
xymon_cli__plug_apt_default_whitelist: [] xymon_plug_apt_default_whitelist: []
xymon_cli__plug_apt_whitelist: [] xymon_plug_apt_whitelist: []
xymon_cli__plug_apt_group_whitelist: [] xymon_plug_apt_group_whitelist: []
xymon_cli__plug_apt_host_whitelist: [] xymon_plug_apt_host_whitelist: []
xymon_cli__plug_apt_combined_whitelist: '{{ xymon_cli__plug_apt_default_whitelist xymon_plug_apt_combined_whitelist: '{{ xymon_plug_apt_default_whitelist
+ xymon_cli__plug_apt_whitelist + xymon_plug_apt_whitelist
+ xymon_cli__plug_apt_group_whitelist + xymon_plug_apt_group_whitelist
+ xymon_cli__plug_apt_host_whitelist }}' + xymon_plug_apt_host_whitelist }}'
## ]]] ## ]]]
## Plugin ipmi [[[ ## Plugin ipmi [[[
@ -70,116 +70,50 @@ xymon_cli__plug_ipmi_package: ['ipmitool']
xymon_cli__plug_ipmi_path: '/etc/xymon/clientlaunch.d/ipmi.cfg' 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_tpl: 'etc/xymon/clientlaunch.d/ipmi.cfg.j2'
xymon_cli__plug_ipmi_interval: '5m' xymon_cli__plug_ipmi_interval: '5m'
## ]]] ## ]]]
## 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 [[[ ## Plugin libs [[[
xymon_cli__plug_libs_state: true xymon_plug_libs_state: true
xymon_cli__plug_libs_package: [ 'lsof', 'sudo', 'libyaml-tiny-perl' ] xymon_plug_libs_package: [ 'binutils', 'lsof', 'libyaml-tiny-perl', 'libfile-slurp-perl', 'libsort-naturally-perl' ]
xymon_cli__plug_libs_path: '/etc/xymon/clientlaunch.d/libs.cfg' xymon_plug_libs_path: '/etc/xymon/clientlaunch.d/libs.cfg'
xymon_cli__plug_libs_tpl: 'etc/xymon/clientlaunch.d/libs.cfg.j2' xymon_plug_libs_tpl: 'etc/xymon/clientlaunch.d/libs.cfg.j2'
xymon_cli__plug_libs_interval: '5m' xymon_plug_libs_interval: '5m'
xymon_cli__plug_libs_default_whitelist: xymon_plug_libs_default_whitelist:
/lib/systemd/systemd: /lib/systemd/systemd:
- '.*' - '.*'
/usr/libexec/sssd/sssd_autofs: /usr/lib/x86_64-linux-gnu/sssd/sssd_be:
- '.*'
/usr/libexec/sssd/sssd_be:
- '.*'
/usr/libexec/sssd/sssd_nss:
- '.*'
/usr/libexec/sssd/sssd_pac:
- '.*'
/usr/libexec/sssd/sssd_pam:
- '.*'
/usr/libexec/sssd/sssd_ssh:
- '.*'
/usr/libexec/sssd/sssd_sudo:
- '.*' - '.*'
/usr/sbin/sssd: /usr/sbin/sssd:
- '.*' - '.*'
/sbin/multipathd: /sbin/multipathd:
- '.*' - '.*'
xymon_cli__plug_libs_whitelist: {} xymon_plug_libs_whitelist: {}
xymon_cli__plug_libs_group_whitelist: {} xymon_plug_libs_group_whitelist: {}
xymon_cli__plug_libs_host_whitelist: {} xymon_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 [[[ ## Plugin mq [[[
xymon_cli__plug_mq_state: true xymon_plug_mq_state: true
xymon_cli__plug_mq_package: ['libtimedate-perl'] xymon_plug_mq_package: ['libtimedate-perl']
xymon_cli__plug_mq_path: '/etc/xymon/clientlaunch.d/mq.cfg' xymon_plug_mq_path: '/etc/xymon/clientlaunch.d/mq.cfg'
xymon_cli__plug_mq_tpl: 'etc/xymon/clientlaunch.d/mq.cfg.j2' xymon_plug_mq_tpl: 'etc/xymon/clientlaunch.d/mq.cfg.j2'
xymon_cli__plug_mq_interval: '5m' xymon_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 [[[ ## Plugin netstats [[[
xymon_cli__plug_netstats_state: false 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_path: '/etc/xymon/clientlaunch.d/netstats.cfg'
xymon_cli__plug_netstats_tpl: 'etc/xymon/clientlaunch.d/netstats.cfg.j2' xymon_cli__plug_netstats_tpl: 'etc/xymon/clientlaunch.d/netstats.cfg.j2'
xymon_cli__plug_netstats_interval: '5m' 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-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'
xymon_cli__plug_sge_script_url: ''
xymon_cli__plug_sge_path: '/etc/xymon/clientlaunch.d/sge.cfg'
xymon_cli__plug_sge_tpl: 'etc/xymon/clientlaunch.d/sge.cfg.j2'
xymon_cli__plug_sge_interval: '5m'
# ]]]
## Plugin smartoverall [[[ ## Plugin smartoverall [[[
### From https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall ### From https://git.ipr.univ-rennes1.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall
### And based on https://www.xymon.com/xymon-cgi/viewconf.sh?smart ### And based on https://www.xymon.com/xymon-cgi/viewconf.sh?smart
### Mostly for disks unknown from smartmontools's database ### Mostly for disks unknown from smartmontools's database
xymon_cli__plug_smartoverall_state: False xymon_cli__plug_smartoverall_state: False
xymon_cli__plug_smartoverall_package: [ 'smartmontools' ] xymon_cli__plug_smartoverall_package: [ 'smartmontools' ]
xymon_cli__plug_smartoverall_script_path: '/usr/lib/xymon/client/ext/smartoverall' xymon_cli__plug_smartoverall_script_path: '/usr/lib/xymon/client/ext/smartoverall'
xymon_cli__plug_smartoverall_script_tpl: 'usr/lib/xymon/client/ext/smartoverall.j2' xymon_cli__plug_smartoverall_script_tpl: 'usr/lib/xymon/client/ext/smartoverall.j2'
xymon_cli__plug_smartoverall_script_url: ''
xymon_cli__plug_smartoverall_path: '/etc/xymon/clientlaunch.d/smartoverall.cfg' xymon_cli__plug_smartoverall_path: '/etc/xymon/clientlaunch.d/smartoverall.cfg'
xymon_cli__plug_smartoverall_tpl: 'etc/xymon/clientlaunch.d/smartoverall.cfg.j2' xymon_cli__plug_smartoverall_tpl: 'etc/xymon/clientlaunch.d/smartoverall.cfg.j2'
xymon_cli__plug_smartoverall_interval: '10m' xymon_cli__plug_smartoverall_interval: '10m'
@ -191,23 +125,10 @@ xymon_cli__plug_smart_state: False
xymon_cli__plug_smart_package: [ 'smartmontools' ] xymon_cli__plug_smart_package: [ 'smartmontools' ]
xymon_cli__plug_smart_script_path: '/usr/lib/xymon/client/ext/smart' xymon_cli__plug_smart_script_path: '/usr/lib/xymon/client/ext/smart'
xymon_cli__plug_smart_script_tpl: 'usr/lib/xymon/client/ext/smart.j2' xymon_cli__plug_smart_script_tpl: 'usr/lib/xymon/client/ext/smart.j2'
xymon_cli__plug_smart_script_url: ''
xymon_cli__plug_smart_path: '/etc/xymon/clientlaunch.d/smart.cfg' xymon_cli__plug_smart_path: '/etc/xymon/clientlaunch.d/smart.cfg'
xymon_cli__plug_smart_tpl: 'etc/xymon/clientlaunch.d/smart.cfg.j2' xymon_cli__plug_smart_tpl: 'etc/xymon/clientlaunch.d/smart.cfg.j2'
xymon_cli__plug_smart_interval: '10m' 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', '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'
# ]]] # ]]]
## Plugin zfs [[[ ## Plugin zfs [[[
xymon_cli__plug_zfs_state: false xymon_cli__plug_zfs_state: false
@ -219,73 +140,5 @@ 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 # handlers file for ipr.ansible.xymon
- name: restart xymon-client service - name: restart xymon-client service
service: name={{ xymon_cli__service_name }} state=restarted service: name={{ xymon_cli_service_name }} state=restarted
when: xymon_cli__service_manage when: xymon_cli_service_manage

View File

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

View File

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

View File

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

View File

@ -1,18 +0,0 @@
#!/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,4 @@
# {{ ansible_managed | comment }} # {{ ansible_managed }}
## From ipr-cnrs.xymon role {% for package in xymon_plug_apt_combined_whitelist %}
{% for package in xymon_cli__plug_apt_combined_whitelist %}
{{ package }} {{ package }}
{% endfor %} {% endfor %}

View File

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

View File

@ -1,6 +1,4 @@
[ipmi] [ipmi]
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_ipmi_state else 'DISABLED' }} {{ '#DISABLED' if xymon_cli__plug_ipmi_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg ENVFILE /etc/xymon/xymonclient.cfg
CMD /usr/bin/sudo -E -u root $XYMONCLIENTHOME/ext/ipmi CMD /usr/bin/sudo -E -u root $XYMONCLIENTHOME/ext/ipmi

View File

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

View File

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

View File

@ -1,8 +0,0 @@
[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,6 +1,4 @@
[netstats] [netstats]
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_netstats_state else 'DISABLED' }} {{ '#DISABLED' if xymon_cli__plug_netstats_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg ENVFILE /etc/xymon/xymonclient.cfg
CMD $XYMONCLIENTHOME/ext/netstats CMD $XYMONCLIENTHOME/ext/netstats

View File

@ -1,8 +0,0 @@
[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,8 +0,0 @@
[sge]
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_sge_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg
CMD {{ xymon_cli__plug_sge_script_path }}
LOGFILE /var/log/xymon/sge.log
INTERVAL {{ xymon_cli__plug_sge_interval }}

View File

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

View File

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

View File

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

View File

@ -1,6 +1,4 @@
[zfs] [zfs]
# {{ ansible_managed | comment }}
## From ipr-cnrs.xymon role
{{ '#DISABLED' if xymon_cli__plug_zfs_state else 'DISABLED' }} {{ '#DISABLED' if xymon_cli__plug_zfs_state else 'DISABLED' }}
ENVFILE /etc/xymon/xymonclient.cfg ENVFILE /etc/xymon/xymonclient.cfg
CMD /usr/bin/sudo -E -u root $XYMONCLIENTHOME/ext/zfs CMD /usr/bin/sudo -E -u root $XYMONCLIENTHOME/ext/zfs

View File

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

View File

@ -1,39 +0,0 @@
# {{ 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,252 +0,0 @@
#!/bin/sh
# {{ ansible_managed | comment }}
# From ipr-cnrs.xymon role
# 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
#
##### Purpose is to report back to a central server, all Sun
##### Grid Engine software faults.
#####
#
# version 0.4
#
# BIG BROTHER / XXXXXXXXXXXXXXXX status
#
# Written by Butch Deal <butchdeal@yahoo.com>
# Daniel Gomez <dgomez@tigr.org,daniel@ixplosive.com>
# Jérémy Gardais <jeremy.gardais@univ-rennes1.fr>
#
# v0.4 09/06/20 clean, correction,… for Xymon 4.3.28
# v0.3e 10/14/08 cut down on the number of qhost runs
# v0.3d 03/31/06 added alarm/suspend state identification
# v0.3c 03/01/06 propogated yellow state upon UNAVAILABLE queue intances
# v0.3b 01/31/06 fixed yellow warning queue status for ambigious config test
# v0.3a 01/31/06 added unknown queue status and ambigious config test
# v0.3 01/26/06 fixed status reporting and optimized job status
# v0.2 08/03/05 flag disabled queues as clear
# v0.1 07/28/05 authored
########################################
# NOTE
# The version v0.4 has only been tested with Xymon (server and client) 4.2.x.
#
# The color status with respects to queue status is arbitrary and should be
# reviewed for your particular environment.
#
# Tested on :
# Solaris & Linux
# Linux only (for v0.4)
########################################
########################################
# INSTALLATION
# step 1 - copy to Xymon client's ext dir
# step 2 - New clientlaunch.d/sge.cfg file
# step 3 - restart Xymon client
#
# NOTE - the TEST variable in the configuration section, this is the name used
# as the column header.
########################################
##################################
# CONFIGURE IT HERE
##################################
readonly PLUGIN_NAME=$(basename "${0}")
readonly TEST="sge"
readonly PLUGIN_RESULT="${XYMONTMP}/${MACHINEDOTS}.${TEST}.plugin_result"
readonly QSTAT=$(command -v qstat)
readonly QHOST=$(command -v qhost)
readonly QSELECT=$(command -v qselect)
export QSTAT QHOST QSELECT
# define colours for graphics
# Comment these out if using older BB versions
CLEAR_PIC="&clear"
RED_PIC="&red"
YELLOW_PIC="&yellow"
GREEN_PIC="&green"
UNKNOWN_PIC="&purple"
##################################
# Start of script
##################################
get_header()
{
echo ""
#echo "<FONT SIZE=+2><b>$1</b></FONT> ($2)<BR>"
echo "<FONT SIZE=+2><b>$1</b></FONT> <BR>"
# If you do not want the header in a bigger font use line below instead
#echo "<b>$1</b> ($2)"
# If you want the "Paul Luzzi" look uncomment this section and comment
# out the above sections:
#echo "<P><DIV ALIGN=\"CENTER\"><HR>"
#echo "<B>============== $1 ==============</B>"
#echo "<B>--- ($2) ---</B>"
#echo "<HR></DIV>"
#echo "<BLOCKQUOTE>"
}
get_header_small()
{
echo ""
#echo "<FONT SIZE=+2><b>$1</b></FONT> ($2)<BR>"
echo "<FONT SIZE=+1><b>$1</b></FONT> <BR>"
# If you do not want the header in a bigger font use line below instead
# echo "<b>$1</b> ($2)"
# If you want the "Paul Luzzi" look uncomment this section and comment
# out the above sections:
#echo "<P><DIV ALIGN=\"CENTER\"><HR>"
#echo "<B>============== $1 ==============</B>"
#echo "<B>--- ($2) ---</B>"
#echo "<HR></DIV>"
#echo "<BLOCKQUOTE>"
}
get_footer()
{
echo ""
# If you want the "Paul Luzzi" look uncomment this section and comment
# out the above sections:
#echo "</BLOCKQUOTE>"
}
#####
##### Get Status proc - used to get all responses
#####
get_status()
{
#####
##### Setup some variables for use later
#####
COLOR="green"
# Check defaults have been set
if [ "${QSTAT}" = "" ]; then
readonly QSTAT=$(command -v qstat)
echo ""
echo "$YELLOW_PIC QSTAT command is not defined in etc/bbsys.local - using default: ${QSTAT}"
fi
if [ "${QHOST}" = "" ]; then
readonly QHOST=$(command -v qhost)
echo ""
echo "$YELLOW_PIC QHOST command is not defined in etc/bbsys.local - using default: ${QHOST}"
fi
if [ "${QSELECT}" = "" ]; then
readonly QSELECT=$(command -v qselect)
echo ""
echo "$YELLOW_PIC QSELECT command is not defined in etc/bbsys.local - using default: ${QSELECT}"
fi
###
### Check the jobs
###
get_header "Jobs" "$QSTAT -l hostname=$MACHINEDOTS"
jobs=$(${QSTAT} -l hostname="${MACHINEDOTS}" -s r -u \*)
if [ -z "$jobs" ]; then
echo "No Running Jobs"
else
${QSTAT} -l hostname="${MACHINEDOTS}" -s r -u \*
fi
get_footer
###
### Check the host
###
get_header "Host" "$METAHS -i"
${QHOST} -h "${MACHINEDOTS}" | grep -v "global"
get_footer
###
### Identify queue memberships
###
#get_header "Queue Membership" "$QHOST -q"
#${QHOST} -h ${MACHINEDOTS} -q | tail +5
#get_footer
###
### Check queue instance states
###
queueTriggered=false;
# Queueset=$(${QHOST} -h ${MACHINEDOTS} -q | tail +5 | awk '{ print $1 }')
${QHOST} -h "${MACHINEDOTS}" -q | tail +5 > "${PLUGIN_RESULT}.QSTATE"
Queueset=$(< "${PLUGIN_RESULT}.QSTATE" awk '{ print $1 }')
for Qset in $Queueset; do
# qstate=$(${QHOST} -q -h "${MACHINEDOTS}" | tail +5 | grep " $Qset" | awk '{print $4}')
qstate=$(grep " $Qset" "${PLUGIN_RESULT}.QSTATE" | awk '{print $4}')
# Order determines more significant color status
if [ "$(echo "${qstate}" | grep -c d)" != "0" ]; then
COLOR="clear"
queueMsg=$(echo "$queueMsg<BR>$CLEAR_PIC $Qset@$HOST is DISABLED")
queueTriggered=true;
elif [ "$(echo "${qstate}" | grep -c E)" != "0" ]; then
COLOR="red"
queueMsg=$(echo "$queueMsg<BR>$RED_PIC $Qset@$HOST is in ERROR!")
queueTriggered=true;
elif [ "$(echo "${qstate}" | grep -c c)" != "0" ]; then
COLOR="yellow"
queueMsg=$(echo "$queueMsg<BR>$YELLOW_PIC $Qset@$HOST has an ambigious configuration!")
queueTriggered=true;
elif [ "$(echo "${qstate}" | grep -c a)" != "0" ] || \
[ "$(echo "${qstate}" | grep -c A)" != "0" ]; then
queueMsg=$(echo "$queueMsg<BR>$YELLOW_PIC $Qset@$HOST is in ALARM")
elif [ "$(echo "${qstate}" | grep -c s)" != "0" ] || \
[ "$(echo "${qstate}" | grep -c S)" != "0" ]; then
queueMsg=$(echo "$queueMsg<BR>$YELLOW_PIC $Qset@$HOST is SUSPENDED")
elif [ "$(echo "${qstate}" | grep -c u)" != "0" ]; then
COLOR="yellow"
queueMsg=$(echo "$queueMsg<BR>$YELLOW_PIC $Qset@$HOST is UNAVAILABLE!")
queueTriggered=true;
elif [ "$qstate" = "" ]; then
queueMsg=$(echo "$queueMsg<BR>$GREEN_PIC $Qset@$HOST is OK")
else
queueMsg=$(echo "$queueMsg<BR>$UNKNOWN_PIC $Qset@$HOST is UNKNOWN")
queueTriggered=true;
fi
done
if [ -f "${PLUGIN_RESULT}.QSTATE" ]; then
rm -f -- "${PLUGIN_RESULT}.QSTATE"
fi
get_header "Queue Instance Status Report"
echo "$queueMsg"
get_footer
#####
##### Make sure to export COLOR so that it gets back to "central"
#####
export COLOR
#####
##### End of get_status proc
#####
}
#####
##### Main body
#####
get_status > "${PLUGIN_RESULT}"
# NOW USE THE XYMON COMMAND TO SEND THE DATA ACROSS
$XYMON "${XYMSRV}" "status ${MACHINE}.${TEST} ${COLOR} $($DATE) $(cat ${PLUGIN_RESULT})"
#For testing only
# echo $XYMON "${XYMSRV}" "status ${MACHINE}.${TEST} ${COLOR} $($DATE) $(cat ${PLUGIN_RESULT})" > /tmp/sgetmp
# Clean up our mess
# Checking for existence of each file since the whole test may be optional
# and may not actually run on every client
#
if [ -f "${PLUGIN_RESULT}" ]; then
rm -f -- "${PLUGIN_RESULT}"
fi
##############################################
# end of script
##############################################

View File

@ -2,7 +2,7 @@
# $Id: sensors 70 2011-11-25 09:21:18Z skazi $ # $Id: sensors 70 2011-11-25 09:21:18Z skazi $
# Author: Jacek Tomasiak <jacek.tomasiak@gmail.com> # Author: Jacek Tomasiak <jacek.tomasiak@gmail.com>
# {{ ansible_managed | comment }} # {{ ansible_managed }}
# From ipr-cnrs.xymon role # From ipr-cnrs.xymon role
# Thanks to Jacek Tomasiak skazi0 # Thanks to Jacek Tomasiak skazi0
# https://github.com/skazi0/xymon-plugins/blob/master/client/ext/smart # https://github.com/skazi0/xymon-plugins/blob/master/client/ext/smart
@ -17,7 +17,6 @@ use Data::Dumper;
my $bb = new Hobbit('smart'); my $bb = new Hobbit('smart');
my $temp_disk_list = "$ENV{'XYMONTMP'}/$ENV{'MACHINEDOTS'}.smart.drivedb.list";
my @disks = (); my @disks = ();
my %olderr = {}; my %olderr = {};
@ -26,33 +25,13 @@ my $CACHEFILE = "$ENV{'XYMONTMP'}/$ENV{'MACHINEDOTS'}.smart.cache";
&load_config("$ENV{'XYMONTMP'}/logfetch.$ENV{'MACHINEDOTS'}.cfg"); &load_config("$ENV{'XYMONTMP'}/logfetch.$ENV{'MACHINEDOTS'}.cfg");
my @disks_stat = stat($temp_disk_list);
my $disks_mtime = scalar @disks_stat ? $disks_stat[9] : 0;
#
# Regenerate disks list if the file is too old (600 minutes)
if (time() - $disks_mtime > 600)
{
unlink $temp_disk_list;
}
if (-e $temp_disk_list) {
# Should use the existing file
}
else {
# Create a file with the list of disks
system("ls -1 /dev/sd* | grep -vE '[0-9]' > $temp_disk_list") == 0
or die "system command to create $temp_disk_list failed: $?";
}
# fallback to disk detection if nothing defined in the config # fallback to disk detection if nothing defined in the config
unless (@disks) { unless (@disks) {
## Put temp_disk_list content to disks array opendir(DIR, '/dev') or die $!;
open(my $fh, '<:encoding(UTF-8)', $temp_disk_list) while (my $dev = readdir(DIR)) {
or die "Could not open file '$temp_disk_list' $!"; push(@disks, "/dev/$dev") if ($dev =~ /^[vs]d.*\D$/);
while (my $row = <$fh>) {
chomp $row;
push(@disks, "$row");
} }
closedir(DIR);
} }
my @stat = stat($CACHEFILE); my @stat = stat($CACHEFILE);

View File

@ -1,10 +1,10 @@
#!/bin/sh #!/bin/sh
# .. vim: foldmarker=[[[,]]]:foldmethod=marker # .. vim: foldmarker=[[[,]]]:foldmethod=marker
# {{ ansible_managed | comment }} # {{ ansible_managed }}
# From ipr-cnrs.xymon role # From ipr-cnrs.xymon role
# Source: # Source:
# https://git.ipr.univ-rennes.fr/cellinfo/scripts/src/master/xymon/plugins/client/ext/smartoverall # https://git.ipr.univ-rennes1.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. # NOTE: Must be run as root, so you probably need to setup sudo for this.
@ -37,13 +37,6 @@ c_reset='\033[0m'
plugin_name=$(basename "${0}") plugin_name=$(basename "${0}")
plugin_result="${XYMONTMP}/${MACHINEDOTS}.smartoverall.plugin_result"
plugin_state="${XYMONTMP}/${MACHINEDOTS}.smartoverall.plugin_state"
device_list="${XYMONTMP}/${MACHINEDOTS}.smartoverall.dscan"
## List of devices known from the smartmontools base and compatible with test logging
## This file might be used by a more advanced script such as skazi0's one
drivedb_list="${XYMONTMP}/${MACHINEDOTS}.smart.drivedb.list"
# ]]] # ]]]
# Functions # Functions
@ -55,7 +48,7 @@ is_disk_support_smart() {
_disk="${1}" _disk="${1}"
_type="${2}" _type="${2}"
_smarctl_support_result="${XYMONTMP}/${MACHINEDOTS}.smartoverall.support.$(basename "${_disk}")" _smarctl_support_result="/tmp/dsupport.$(basename "${_disk}")"
smart_support_msg="" smart_support_msg=""
@ -86,10 +79,7 @@ is_disk_support_smart() {
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG: is_disk_support_smart func SMART is not fully supported on: ${_disk} with ${_type} type. See smartctl informations:\n${smart_support_msg}" [ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG: is_disk_support_smart func SMART is not fully supported on: ${_disk} with ${_type} type. See smartctl informations:\n${smart_support_msg}"
fi fi
## Clean temp files rm -f -- "${_smarctl_support_result}"
### As the Xymon's tmpdir is used to store log files, no need to delete them at
### the end of the script. They will be emptied at the beginning of the next run.
} }
## ]]] ## ]]]
## Test the type of disk with smartctl [[[ ## Test the type of disk with smartctl [[[
@ -120,16 +110,15 @@ choose_correct_type() {
## ]]] ## ]]]
# Create or empty previous files # Create or empty previous files
true > "${plugin_result}" true > /tmp/dres
true > "${plugin_state}" true > /tmp/dcheck
true > "${device_list}" true > /tmp/dscan
true > "${drivedb_list}"
# Get the list of all available devices # Get the list of all available devices
smartctl --scan >> "${device_list}" smartctl --scan >> /tmp/dscan
# If the file is not empty # If the file is not empty
if test -s "${device_list}"; then if test -s /tmp/dscan; then
while IFS= read -r LINE; do while IFS= read -r LINE; do
## Get device path ## Get device path
DISK=$(echo "${LINE}" | cut -d" " -f1) DISK=$(echo "${LINE}" | cut -d" " -f1)
@ -176,11 +165,6 @@ https://www.smartmontools.org/wiki/FAQ#SmartmontoolsDatabase"
DSELFTEST_MSG="&clear Test logging are not supported:" DSELFTEST_MSG="&clear Test logging are not supported:"
else else
DSELFTEST_MSG="" DSELFTEST_MSG=""
### If the device is also known from smartmontools database
if printf -- '%s' "${DDRIVEDB_MSG}" | grep -q -E -- "green"
then
echo "${DISK}" >> "${drivedb_list}"
fi
fi fi
fi fi
@ -205,7 +189,7 @@ https://www.smartmontools.org/wiki/FAQ#SmartmontoolsDatabase"
fi fi
## Avoid duplicate device ## Avoid duplicate device
if ! grep -q "${DID}" "${plugin_result}"; then if ! grep -q "${DID}" /tmp/dres; then
## For summary ## For summary
echo "${COLOR} $DISK ${TYPE}" echo "${COLOR} $DISK ${TYPE}"
@ -221,30 +205,29 @@ https://www.smartmontools.org/wiki/FAQ#SmartmontoolsDatabase"
echo "------------------------------------------------------------" echo "------------------------------------------------------------"
echo "" echo ""
echo "" echo ""
} >> "${plugin_result}" } >> /tmp/dres
fi fi
done < "${device_list}" >> "${plugin_state}" done < /tmp/dscan >> /tmp/dcheck
# If the file is empty # If the file is empty
else else
echo "1&red Error while scanning devices with smartctl" >> "${plugin_state}" echo "1&red Error while scanning devices with smartctl" >> /tmp/dcheck
fi fi
# Set the global color according to the highest alert # Set the global color according to the highest alert
COLOR=$(< "${plugin_state}" awk '{print $1}' | sort | uniq | head -1 | cut -c3-) COLOR=$(< /tmp/dcheck awk '{print $1}' | sort | uniq | head -1 | cut -c3-)
# Send informations to Xymon server # Send informations to Xymon server
$XYMON "${XYMSRV}" "status ${MACHINE}.${plugin_name} ${COLOR} SMART health check $XYMON "${XYMSRV}" "status ${MACHINE}.${plugin_name} ${COLOR} SMART health check
$(< "${plugin_state}" cut -c2-) $(< /tmp/dcheck cut -c2-)
==================== Detailed status ==================== ==================== Detailed status ====================
$(cat "${plugin_result}") $(cat /tmp/dres)
" "
# Clean temp files # Clean temp files
## As the Xymon's tmpdir is used to store log files, no need to delete them at rm -f -- /tmp/dres /tmp/dcheck /tmp/dscan
## the end of the script. They will be emptied at the beginning of the next run.
exit 0 exit 0

View File

@ -1,8 +1,4 @@
#!/bin/ksh #!/bin/ksh
# {{ ansible_managed | comment }}
# From ipr-cnrs.xymon role
# Revision History: # Revision History:
# 1. Mike Rowell <Mike.Rowell@Rightmove.co.uk>, original # 1. Mike Rowell <Mike.Rowell@Rightmove.co.uk>, original
# 2. Uwe Kirbach <U.Kirbach@EnBW.com> # 2. Uwe Kirbach <U.Kirbach@EnBW.com>
@ -122,6 +118,6 @@ then
fi fi
# What: Sent out the final bb message to hobbit server. # What: Sent out the final bb message to hobbit server.
$XYMON $XYMONSRV $XYMONSERVERS "status $MACHINE.$TEST $DISPCOLOR `date` $FIRST_LINE $STRING" $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_cli__zfs echo "$XYMON $XYMONSRV $XYMONSERVERS --debug status $MACHINE.$TEST $DISPCOLOR `date` $FIRST_LINE $STRING" > /tmp/xymon_zfs
$XYMON $XYMONSRV $XYMONSERVERS "data $MACHINE.$TEST $DISPCOLOR $(echo; echo "$DATA" ;echo;echo)" $XYMON $XYMONSRV $XYMONSERVERS "data $MACHINE.$TEST $DISPCOLOR $(echo; echo "$DATA" ;echo;echo)"

View File

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