diff --git a/defaults/main.yml b/defaults/main.yml index 883545f2552153ae1182958dba41c3430dcbc6c4..83cfbc27bfeefb0607371b39374963f93a5b63e0 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -16,15 +16,16 @@ icinga_api_users_dir: /etc/icinga2/conf.d/api-users icinga_linuxfabrik: false icinga_linuxfabrik_plugins: - name: apache-httpd-status - # This causes a failure - # - name: fail2ban + # Don't enable fail2ban as it clashes with the one defined in + # /usr/share/icinga2/include/plugins-contrib.d/network-services.conf + - name: fail2ban + sudo: true - name: gitlab-health - name: mysql-connections - name: mysql-memory - name: mysql-open-files - name: mysql-slow-queries - name: needs-restarting - - name: nextcloud-security-scan - name: nextcloud-stats - name: nextcloud-version - name: php-fpm-status diff --git a/files/network-services.conf b/files/network-services.conf new file mode 100644 index 0000000000000000000000000000000000000000..99a25958e2cb4d562b6a362f3f1dbee4d6fdb9a0 --- /dev/null +++ b/files/network-services.conf @@ -0,0 +1,130 @@ +/* Ansible managed */ +/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ + +object CheckCommand "kdc" { + import "ipv4-or-ipv6" + + command = [ PluginContribDir + "/check_kdc" ] + + arguments = { + "-H" = { + value = "$kdc_address$" + description = "Name or IP address of KDC to check." + } + "-P" = { + value = "$kdc_port$" + description = "Port on which KDC runs (default 88)." + } + "-p" = { + value = "$kdc_principal$" + description = "Principal name to authenticate as (including realm)." + required = true + } + "-k" = { + value = "$kdc_keytab$" + description = "Keytab file containing principal's key." + required = true + } + } + + vars.kdc_address = "$check_address$" +} + +object CheckCommand "rbl" { + import "ipv4-or-ipv6" + + command = [ PluginContribDir + "/check_rbl" ] + + arguments = { + "-H" = { + value = "$rbl_hostname$" + description = "Name or IP address of SMTP server to check." + } + "-s" = { + value = "$rbl_server$" + description = "List of RBL servers as an array." + required = true + repeat_key = true + } + "-w" = { + value = "$rbl_warning$" + description = "Number of blacklisting servers for a warning." + } + "-c" = { + value = "$rbl_critical$" + description = "Number of blacklisting servers for a critical." + } + "-t" = { + value = "$rbl_timeout$" + description = "Seconds before plugin times out (default: 15)." + } + } + + vars.rbl_hostname = "$check_address$" + vars.rbl_timeout = 15 + vars.rbl_warning = 1 + vars.rbl_critical = 1 +} + +object CheckCommand "lsyncd" { + import "plugin-check-command" + command = [ PluginContribDir + "/check_lsyncd" ] + + arguments = { + "-s" = { + value = "$lsyncd_statfile$" + description = "Set status file path (default: /var/run/lsyncd.status)." + } + "-w" = { + value = "$lsyncd_warning$" + description = "Warning if more than N delays (default: 10)." + } + "-c" = { + value = "$lsyncd_critical$" + description = "Critical if more then N delays (default: 100)." + } + } +} + +/* Commented so the Linuxfabrik fail2ban plugin can be used + * + * object CheckCommand "fail2ban" { + * command = [ "sudo", PluginContribDir + "/check_fail2ban" ] + * + * arguments = { + * "-D" = { + * value = "$fail2ban_display$" + * description = "To modify the output display, default is 'CHECK FAIL2BAN ACTIVITY'" + * } + * "-P" = { + * value = "$fail2ban_path$" + * description = "Specify the path to the tw_cli binary, default value is /usr/bin/fail2ban-client" + * } + * "-w" = { + * value = "$fail2ban_warning$" + * description = "Specify a warning threshold, default is 1" + * } + * "-c" = { + * value = "$fail2ban_critical$" + * description = "Specify a critical threshold, default is 2" + * } + * "-s" = { + * value = "$fail2ban_socket$" + * description = "Specify a socket path, default is unset" + * } + * "-p" = { + * set_if = "$fail2ban_perfdata$" + * description = "If set to true, activate the perfdata output" + * } + * "-j" = { + * value = "$fail2ban_jail$" + * description = "Specify the name of the specific jail to monitor; omitted by default, i.e. all jails are being monitored" + * } + * } + * + * vars.fail2ban_perfdata = true + * } + * + */ + +/* vim: syntax=icinga2 */ diff --git a/meta/argument_specs.yml b/meta/argument_specs.yml index 8b3dc256bbae8c841afd2bf07e4c4dc9005efccb..6b7b20ae3e4dba7d43b4b9f321debf5d05af9a58 100644 --- a/meta/argument_specs.yml +++ b/meta/argument_specs.yml @@ -129,6 +129,15 @@ argument_specs: type: str required: true description: The name of the Linuxfabrik plugin that should be made available for Icinga. + sudo: + type: bool + required: false + description: Run the Linuxfabrik plugin using sudo. + icinga_linuxfabrik_plugins_available: + type: list + elements: str + required: true + description: An internal list of Linuxfabrik plugins that are available in the monitoring plugins package. icinga_linuxfabrik_pkg: type: list elements: str diff --git a/tasks/config.yml b/tasks/config.yml index c9d8fe03ca56f48ff0189e5607a491dd8f60d458..ada109b2b861be46ced58856cc6d01027540b7fd 100644 --- a/tasks/config.yml +++ b/tasks/config.yml @@ -8,7 +8,7 @@ # # You should have received a copy of the GNU General Public License along with the Webarchitects Icinga Ansible role. If not, see <https://www.gnu.org/licenses/>. --- -- name: Icinga common configuration for master agent nodes +- name: Icinga common configuration for master and agent nodes block: - name: Nagios plugins installed for Debian @@ -25,6 +25,36 @@ state: present when: ansible_facts.distribution == "Ubuntu" + - name: Salt for master node + block: + + - name: Salt present in /root/icinga.salt + ansible.builtin.shell: pwgen -n 32 1 > /root/icinga.salt + args: + creates: /root/icinga.salt + + - name: Slurp /root/icinga.salt + ansible.builtin.slurp: + src: /root/icinga.salt + register: icinga_salt_b64encoded + + - name: Decode the base64 encoded version of salt and set a variable + ansible.builtin.set_fact: + icinga_salt: "{{ icinga_salt_b64encoded['content'] | b64decode | trim }}" + + when: + - inventory_hostname == icinga_master_node + - inventory_hostname in groups['icinga_master_nodes'] + + - name: Icinga constants configuration file in place + ansible.builtin.template: + src: "constants.conf.j2" + dest: "/etc/icinga2/constants.conf" + backup: true + owner: nagios + group: nagios + mode: "0640" + when: - ( groups['icinga_master_nodes'] is defined ) or ( groups['icinga_agent_nodes'] is defined ) - ( inventory_hostname in groups['icinga_master_nodes'] ) or ( inventory_hostname in groups['icinga_agent_nodes'] ) diff --git a/tasks/install.yml b/tasks/install.yml index 7a0ddbe2e1be0ee92ebc5aae605b7317294baabc..42f3ce3d2f90b771293114ec0b1a989176322b4e 100644 --- a/tasks/install.yml +++ b/tasks/install.yml @@ -81,6 +81,16 @@ tags: - debug + - name: Overwrite network-services.conf to omit fail2ban configuration so Linuxfabrik fail2ban plugin can be used + ansible.builtin.copy: + src: network-services.conf + dest: /usr/share/icinga2/include/plugins-contrib.d/network-services.conf + backup: true + mode: "0644" + owner: root + group: root + when: ( "icinga2-common" in ansible_facts.packages.keys() ) + - name: "Directory for Linuxfabrik plugin JSON present for version {{ icinga_linuxfabrik_version }}" ansible.builtin.file: path: "/usr/local/share/icinga2/linuxfabrik/{{ icinga_linuxfabrik_version }}" diff --git a/tasks/main.yml b/tasks/main.yml index 60fbab42ec973a8fbe2aece8907f98cf8ec8adf1..88318ff76b4daa97b1228464e1d00dc184fc984d 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -77,6 +77,11 @@ tags: - icinga_linuxfabrik + - name: Include common config tasks + ansible.builtin.include_tasks: config.yml + tags: + - icinga_linuxfabrik + - name: Include install tasks for the master node ansible.builtin.include_tasks: master.yml when: (inventory_hostname == icinga_master_node) and (inventory_hostname in groups['icinga_master_nodes']) @@ -107,9 +112,6 @@ tags: - molecule-notest - - name: Include common config tasks - ansible.builtin.include_tasks: config.yml - when: >- ( icinga | bool ) and ( ( inventory_hostname in groups['icinga_master_nodes'] ) or diff --git a/tasks/master_config.yml b/tasks/master_config.yml index 972b1266523138d89d10dd6f7f04eac53c51bdd2..feb8f773eed880e9ccd5ac4e598ba439059b56dc 100644 --- a/tasks/master_config.yml +++ b/tasks/master_config.yml @@ -29,13 +29,13 @@ ansible.builtin.template: src: "{{ icinga_conf }}.j2" dest: "/etc/icinga2/{{ icinga_conf }}" + backup: true owner: nagios group: nagios mode: "0640" no_log: "{% if ansible_check_mode | bool %}false{% else %}true{% endif %}" loop: - checks.conf - - constants.conf - icinga2.conf - zones.conf loop_control: @@ -45,6 +45,7 @@ ansible.builtin.template: src: "{{ icinga_conf }}.j2" dest: "/etc/icinga2/conf.d/{{ icinga_conf }}" + backup: true owner: nagios group: nagios mode: "0640" diff --git a/tasks/plugin_linuxfabrik.yml b/tasks/plugin_linuxfabrik.yml index d26f5d6440dbe3344afa66ade873011906a54863..c0fe7b332c1143915b5c3e31f3303bed05d33feb 100644 --- a/tasks/plugin_linuxfabrik.yml +++ b/tasks/plugin_linuxfabrik.yml @@ -11,6 +11,13 @@ - name: Icinga agent node install tasks block: + - name: "Fail if the Linuxfabrik plugin is not available for {{ icinga_linuxfabrik_plugin.name }}" + ansible.builtin.assert: + that: + - icinga_linuxfabrik_plugin.name in icinga_linuxfabrik_plugins_available + quiet: "{% if ansible_check_mode or ansible_verbosity >= 1 %}false{% else %}true{% endif %}" + fail_msg: "The Linuxfabrik plugin could ot be found in the icinga_linuxfabrik_plugins_available list, please correct the name or update the list." + - name: "Get the Linuxfabrik plugin icingaweb2-module-director JSON for {{ icinga_linuxfabrik_plugin.name }}" ansible.builtin.get_url: url: "https://raw.githubusercontent.com/Linuxfabrik/monitoring-plugins/refs/tags/v{{ icinga_linuxfabrik_version }}/check-plugins/{{ icinga_linuxfabrik_plugin.name }}/icingaweb2-module-director/{{ icinga_linuxfabrik_plugin.name }}.json" @@ -66,6 +73,10 @@ dest: "/usr/share/icinga2/include/plugins-contrib.d/{{ icinga_linuxfabrik_plugin.name }}.conf" mode: "0644" +# - name: Fail if icinga_linuxfabrik_plugin.name is fail2ban +# fail: +# when: icinga_linuxfabrik_plugin.name == "fail2ban" + when: icinga_linuxfabrik_plugin_json_file.stat.exists | bool tags: diff --git a/templates/api-user.conf.j2 b/templates/api-user.conf.j2 index 871467a222120e9d154238e604a49e6c60132b12..4ffb58f45bcf5c1fc7cd78b9c8af21bfeefe9909 100644 --- a/templates/api-user.conf.j2 +++ b/templates/api-user.conf.j2 @@ -12,4 +12,4 @@ object ApiUser "{{ icinga_user.key }}" { } -# vim: syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/templates/api-users.conf.j2 b/templates/api-users.conf.j2 index cd27a9e8b5e32cefb8554fec75368d52b4e82f32..3498f245134f0715502f5e92bbeff2afa78792d6 100644 --- a/templates/api-users.conf.j2 +++ b/templates/api-users.conf.j2 @@ -5,4 +5,4 @@ * */ -# vim: syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/templates/checks.conf.j2 b/templates/checks.conf.j2 index 7573966bff14d5d37aa40e72924fee773b5eded7..0e1a7ce8058615be461e355574486fddf1a1cbbb 100644 --- a/templates/checks.conf.j2 +++ b/templates/checks.conf.j2 @@ -15,4 +15,4 @@ apply Service "check-" for (check => config in host.vars.checks) { } } -# vim: syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/templates/constants.conf.j2 b/templates/constants.conf.j2 index 994dbeefa201f6175b2321ac72201cba0a941d3e..551b0fe6eee8e3082e3a7703b278aff89fbccc62 100644 --- a/templates/constants.conf.j2 +++ b/templates/constants.conf.j2 @@ -18,6 +18,12 @@ const ManubulonPluginDir = "/usr/lib/nagios/plugins" */ const PluginContribDir = "/usr/lib/nagios/plugins" +{% if icinga_linuxfabrik | bool %} +/* The Linuxfabrik Monitoring plugins directory + */ +const PluginLinuxfabrikDir = "/usr/lib64/nagios/plugins" +{% endif %} + /* Our local instance name. By default this is the server's hostname as returned by `hostname --fqdn`. * This should be the common name from the API certificate. */ @@ -26,7 +32,9 @@ const NodeName = "{{ inventory_hostname }}" /* Our local zone name. */ const ZoneName = "{{ inventory_hostname }}" +{% if inventory_hostname == icinga_master_node and inventory_hostname in groups['icinga_master_nodes'] %} /* Secret key for remote node tickets */ const TicketSalt = "{{ icinga_salt }}" +{% endif %} -# vim: syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/templates/host.conf.j2 b/templates/host.conf.j2 index 5d3a5809d2e9c7a3ed447f19e170dcf9a3c034e5..1558f48383245dc92642f894557888ee969b7da6 100644 --- a/templates/host.conf.j2 +++ b/templates/host.conf.j2 @@ -54,4 +54,4 @@ object Host "{{ icinga_host }}" { } -#{# vim: set syntax=jinja2 #} vim: set syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/templates/icinga.pref.j2 b/templates/icinga.pref.j2 index ecd6e63d3190df09e8c2107733f45c62eb7843dc..bb405ab9e8d2d83c82bb44fdc577f96f5391fe50 100644 --- a/templates/icinga.pref.j2 +++ b/templates/icinga.pref.j2 @@ -7,4 +7,4 @@ Pin-Priority: 500 {% endfor %} -# vim: syntax=debsources +#{# vim: syntax=jinja2 #} vim: syntax=debsources diff --git a/templates/icinga2.conf.j2 b/templates/icinga2.conf.j2 index e1ef8ba380b937b44d84b03b13f43ac2b84dbe6d..321587a8830df41e58b63ac1eed12cfd70c5306c 100644 --- a/templates/icinga2.conf.j2 +++ b/templates/icinga2.conf.j2 @@ -64,4 +64,4 @@ include "features-enabled/*.conf" */ include_recursive "conf.d" -# vim: syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/templates/ido-mysql.conf.j2 b/templates/ido-mysql.conf.j2 index e32b6d7fdc51971b771a541c101c097087947e8d..1e78bfe58d99e5c62f60ebbdaeb81d9c38d20afe 100644 --- a/templates/ido-mysql.conf.j2 +++ b/templates/ido-mysql.conf.j2 @@ -14,4 +14,4 @@ object IdoMysqlConnection "ido-mysql" { database = "icinga2" } -# vim: syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/templates/linuxfabrik.conf.j2 b/templates/linuxfabrik.conf.j2 index 95ac3f0cc97be86a6ef1c113d7c03646e8cdba20..ba8271010271c7d26b061e603eeff6053373ce05 100644 --- a/templates/linuxfabrik.conf.j2 +++ b/templates/linuxfabrik.conf.j2 @@ -2,7 +2,11 @@ object CheckCommand "{{ icinga_linuxfabrik_plugin.name }}" { import "ipv4-or-ipv6" - command = [ "/usr/lib64/nagios/plugins/{{ icinga_linuxfabrik_plugin.name }}" ] +{% if icinga_linuxfabrik_plugin.sudo is defined and icinga_linuxfabrik_plugin.sudo | bool %} + command = ["sudo", PluginLinuxfabrikDir + "/{{ icinga_linuxfabrik_plugin.name }}" ] +{% else %} + command = [ PluginLinuxfabrikDir + "/{{ icinga_linuxfabrik_plugin.name }}" ] +{% endif %} arguments = { {% for icinga_linuxfabrik_plugin_arg in icinga_linuxfabrik_plugin_command_arguments | ansible.builtin.dict2items %} "{{ icinga_linuxfabrik_plugin_arg.key }}" = { @@ -18,4 +22,4 @@ object CheckCommand "{{ icinga_linuxfabrik_plugin.name }}" { } } -/* vim: syntax=icinga2{# vim: syntax=jinja2 #} */ +/* {# vim: syntax=jinja2 #}vim: syntax=icinga2 */ diff --git a/templates/linuxfabrik.pref.j2 b/templates/linuxfabrik.pref.j2 index e374ab66332f810b40d1302ea705c4c2cc90fe24..c56dcc485052ea581188832e344a1a4d59591a8b 100644 --- a/templates/linuxfabrik.pref.j2 +++ b/templates/linuxfabrik.pref.j2 @@ -6,3 +6,5 @@ Pin: origin repo.linuxfabrik.ch Pin-Priority: 500 {% endfor %} + +#{# vim: syntax=jinja2 #}vim: syntax=debsources diff --git a/templates/notifications.conf.j2 b/templates/notifications.conf.j2 index 7cdbdd1c3222f4fed9bcd4899b1fead6d992555f..7e202355fba13a1a111754bfed2f512737c1416d 100644 --- a/templates/notifications.conf.j2 +++ b/templates/notifications.conf.j2 @@ -34,4 +34,4 @@ apply Notification "mail-icingaadmin" to Service { assign where host.vars.notification.mail } -# vim: set syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/templates/services.conf.j2 b/templates/services.conf.j2 index 73bc45c8cbeeed8ecf8609841aa3d150efec7b2c..ce51fe50a94d3cc242603ad503bcc67e6b86c63c 100644 --- a/templates/services.conf.j2 +++ b/templates/services.conf.j2 @@ -114,5 +114,4 @@ apply Service "users" { assign where host.name == NodeName } - -# vim: set syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/templates/users.conf.j2 b/templates/users.conf.j2 index 6e70435f799bbdf2272f82e8ff9aa52b726d36bf..cbcb9d2a277ad5642fb2840cec0e968a47b9f56c 100644 --- a/templates/users.conf.j2 +++ b/templates/users.conf.j2 @@ -35,4 +35,4 @@ object UserGroup "icingaadmins" { display_name = "Icinga 2 Admin Group" } -# vim: syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/templates/zones.conf.j2 b/templates/zones.conf.j2 index dc52bc57b6740fc4ba538387fb75152a4daf2f28..98040e27a912321abfcf997209d16927efbbf380 100644 --- a/templates/zones.conf.j2 +++ b/templates/zones.conf.j2 @@ -49,4 +49,4 @@ object Zone "global-templates" { # global = true # } -# vim: syntax=icinga2 +#{# vim: syntax=jinja2 #} vim: syntax=icinga2 diff --git a/vars/main.yml b/vars/main.yml index aaf992e8f841aa0bf7b014b0e25cbf930232da84..724076746104d5ceb107070771cd63e7c74f5948 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -63,6 +63,234 @@ icinga_linuxfabrik_pkg: - linuxfabrik-monitoring-plugins - linuxfabrik-notification-plugins +# Linuxfabrik monitoring plugins available, this list can be updated bu running the following on a server with the linuxfabrik-monitoring-plugins package installed: +# find /usr/lib64/nagios/plugins/ -executable -type f -exec basename "{}" \; | sort | sed 's/^/ - /' +icinga_linuxfabrik_plugins_available: + - about-me + - apache-httpd-status + - apache-httpd-version + - apache-solr-version + - axenita-stats + - borgbackup + - by-ssh + - cometsystem + - composer-version + - countdown + - cpu-usage + - crypto-policy + - csv-values + - deb-lastactivity + - dhcp-relayed + - dhcp-scope-usage + - diacos + - disk-io + - disk-smart + - disk-usage + - dmesg + - dns + - docker-info + - docker-stats + - dummy + - fail2ban + - fedora-version + - feed + - file-age + - file-count + - file-descriptors + - file-ownership + - file-size + - fortios-cpu-usage + - fortios-firewall-stats + - fortios-ha-stats + - fortios-memory-usage + - fortios-network-io + - fortios-sensor + - fortios-version + - fs-inodes + - fs-ro + - fs-xfs-stats + - getent + - githubstatus + - gitlab-health + - gitlab-liveness + - gitlab-readiness + - gitlab-version + - grafana-version + - grassfish-licenses + - grassfish-players + - grassfish-screens + - graylog-version + - haproxy-status + - hin-status + - huawei-dorado-backup-power + - huawei-dorado-controller + - huawei-dorado-disk + - huawei-dorado-enclosure + - huawei-dorado-fan + - huawei-dorado-host + - huawei-dorado-hypermetrodomain + - huawei-dorado-hypermetropair + - huawei-dorado-interface + - huawei-dorado-power + - huawei-dorado-system + - icinga-topflap-services + - infomaniak-events + - infomaniak-swiss-backup-devices + - infomaniak-swiss-backup-products + - ipmi-sel + - ipmi-sensor + - jitsi-videobridge-stats + - jitsi-videobridge-status + - journald-query + - journald-usage + - json-values + - kemp-services + - keycloak-memory-usage + - keycloak-stats + - keycloak-version + - kvm-vm + - librenms-alerts + - librenms-health + - librenms-version + - load + - logfile + - mailq + - mastodon-version + - matomo-reporting + - matomo-version + - mediawiki-version + - memory-usage + - metabase-stats + - mod-qos-stats + - moodle-version + - mydumper-version + - mysql-aria + - mysql-binlog-cache + - mysql-connections + - mysql-database-metrics + - mysql-innodb-buffer-pool-instances + - mysql-innodb-buffer-pool-size + - mysql-innodb-log-waits + - mysql-joins + - mysql-logfile + - mysql-memory + - mysql-open-files + - mysql-perf-metrics + - mysql-query + - mysql-replica-status + - mysql-slow-queries + - mysql-sorts + - mysql-storage-engines + - mysql-system + - mysql-table-cache + - mysql-table-definition-cache + - mysql-table-indexes + - mysql-table-locks + - mysql-temp-tables + - mysql-thread-cache + - mysql-traffic + - mysql-user-security + - mysql-version + - needs-restarting + - network-bonding + - network-connections + - network-io + - network-port-tcp + - nextcloud-security-scan + - nextcloud-stats + - nextcloud-version + - nginx-status + - nodebb-cache + - nodebb-database + - nodebb-errors + - nodebb-events + - nodebb-groups + - nodebb-info + - nodebb-users + - nodebb-version + - ntp-chronyd + - ntp-ntpd + - ntp-systemd-timesyncd + - ntp-w32tm + - onlyoffice-stats + - openjdk-redhat-version + - openstack-nova-list + - openstack-swift-stat + - openvpn-client-list + - openvpn-version + - path-rw-test + - php-fpm-ping + - php-fpm-status + - php-status + - php-version + - ping + - pip-updates + - postfix-version + - postgresql-version + - procs + - python-version + - qts-cpu-usage + - qts-disk-smart + - qts-memory-usage + - qts-temperatures + - qts-uptime + - qts-version + - redfish-drives + - redfish-sel + - redfish-sensor + - redis-status + - redis-version + - restic-check + - restic-snapshots + - restic-stats + - rhel-version + - rocketchat-stats + - rocketchat-version + - rpm-lastactivity + - safenet-hsm-state + - sap-open-concur-com + - scanrootkit + - scheduled-task + - selinux-mode + - sensors-battery + - sensors-fans + - sensors-temperatures + - service + - snmp + - starface-account-stats + - starface-backup-status + - starface-channel-status + - starface-database-stats + - starface-java-memory-usage + - starface-peer-stats + - starface-status + - statusiq + - statuspal + - strongswan-connections + - swap-usage + - systemd-timedate-status + - systemd-unit + - systemd-units-failed + - tuned-profile + - updates + - uptime + - uptimerobot + - users + - veeam-status + - whmcs-status + - wildfly-deployment-status + - wildfly-gc-status + - wildfly-memory-pool-usage + - wildfly-memory-usage + - wildfly-non-xa-datasource-stats + - wildfly-server-status + - wildfly-thread-usage + - wildfly-uptime + - wildfly-xa-datasource-stats + - wordpress-version + - xca-cert + - xml + # Packages available will vary between distros, you can get the packages installed from this repo using # aptitude search "?origin (icinga) ?installed" #