Ansible role to manage Xymon client configuration
Go to file
Jeremy Gardais 052d5a3b3a
Add min version of hobbit-plugins for `net` plugin
2020-11-02 14:13:56 +01:00
defaults Remove unecessary netstats dependencies 2020-10-30 14:17:18 +01:00
handlers Notify xymon-client handler when modification to default cli config. 2017-08-11 14:42:49 +02:00
meta Set empty dependencies line to fix Galaxy warning 2018-08-06 15:37:11 +02:00
tasks Remove unecessary netstats dependencies 2020-10-30 14:17:18 +01:00
templates Add configuration file for `net` script 2020-10-30 12:42:29 +01:00
tests Install `xymon-client` packages for Debian based distros. 2017-08-11 13:58:39 +02:00
vars Install `xymon-client` packages for Debian based distros. 2017-08-11 13:58:39 +02:00
.travis.yml Install `xymon-client` packages for Debian based distros. 2017-08-11 13:58:39 +02:00
CHANGELOG.md Remove unecessary netstats dependencies 2020-10-30 14:17:18 +01:00
README.md Add min version of hobbit-plugins for `net` plugin 2020-11-02 14:13:56 +01:00

README.md

Xymon

  1. Overview
  2. Role Variables
  3. Example Playbook
  4. Configuration
  5. Plugins
  6. Development
  7. License
  8. Author Information

Overview

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].

Plugins Variables

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: []].

IPMI

Variables for the IPMI plugin from hobbit-plugins. The plugin read IPMI sensors and event log.

  • xymon_cli__plug_ipmi_state: The state of plugin ipmi [default: false].
  • xymon_cli__plug_ipmi_state: The packages to install to provide ipmi plugin [default: [ 'ipmitool' ]].
  • xymon_cli__plug_ipmi_path: Configuration file for the ipmi plugin [default: /etc/xymon/clientlaunch.d/ipmi.cfg].
  • 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].

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.

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].

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 network interface states.

  • xymon_cli__plug_netstats_state: The state of plugin netstats [default: false].
  • 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].

SGE

Variables for sge plugin from ipr-cnrs.scripts. 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

Variables for Smartoverall plugin from ipr-cnrs.scripts. The plugin will try to display health status of each disks (with SMART support) but it can't check that a recent test was successfully done. This plugin is mostly useful for disks unknown from smartmontools's database. For more features, see the next Smart plugin.

  • xymon_cli__plug_smartoverall_state: The state of plugin smartoverall [default: False].
  • 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_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_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']

Smart

Variables for Smart plugin from skazi0 xymon-plugins. The plugin check health status for each disks, compare current values with the one's recommended by the vendor and check a recent (<24h) test was done.

  • xymon_cli__plug_smart_state: The state of plugin smart [default: False].
  • 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_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_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']

Temp

Variables for the Mq 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_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:

xymon_cli__plug_temp_package: [ 'libfile-which-perl', 'libyaml-tiny-perl', 'hddtemp', 'smartmontools', 'libxml-twig-perl', 'nvidia-smi' ]

ZFS

Variables for ZFS plugin from Xymonton. The plugin check health (global and for pools), capacity and snapshot status.

  • xymon_cli__plug_zfs_state: The state of plugin zfs [default: false].
  • xymon_cli__plug_zfs_script_path: Path to the ZFS script [default: /usr/lib/xymon/client/ext/zfs].
  • xymon_cli__plug_zfs_script_tpl: Template used to generate the previous script [default: usr/lib/xymon/client/ext/zfs.j2].
  • xymon_cli__plug_zfs_path: Configuration file for the zfs plugin [default: /etc/xymon/clientlaunch.d/zfs.cfg].
  • 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].

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):
xymon_cli__plug_temp_state: '{{ True
                                 if (ansible_virtualization_role == "host")
                                 else False }}'

OS Specific Variables

Please see default value by Operating System file in vars directory.

  • xymon_cli_pkg_list: The list of packages to install to provide xymon-client.

Example Playbook

  • Use defaults vars:
- hosts: serverXYZ
  roles:
    - role: ipr-cnrs.xymon

Configuration

This role will:

  • Install needed packages to provide xymon-client.
  • Manage xymon-client configuration and service.
  • Add 'xymon' user to new groups.

Plugins

Some plugins and options can be managed with this role:

  • apt: Check state of packages and repositories.
  • libs: Check for running processes with upgraded libraries.
  • mq: Check mail queue.
  • zfs: Check ZFS pools status.

Development

This source code comes from our Gogs instance and the Github repo exist just to be able to send the role to Ansible Galaxy…

But feel free to send issue/PR here :)

Thanks to this hook, Github automatically got updates from our Gogs instance :)

License

WTFPL

Author Information

Jérémy Gardais