1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
# add check_pgbackrest tests
cat <<EOF >>/etc/icinga2/conf.d/hosts.conf
/* retention service should work on both primary and standby */
object CheckCommand "by_ssh_pgbackrest_retention" {
import "by_ssh"
vars.by_ssh_command = "/usr/lib64/nagios/plugins/check_pgbackrest --stanza=\$stanza$ --service=retention --retention-full=\$retention_full$ --prefix=\"\$prefix$\""
}
object Service "pgbackrest_retention" {
import "generic-service"
host_name = "pgsql-srv"
check_command = "by_ssh_pgbackrest_retention"
vars.by_ssh_logname = "accessed_by_ssh"
vars.stanza = "my_stanza"
vars.retention_full = 1
vars.prefix = "sudo -u postgres"
}
object Service "pgbackrest_retention" {
import "generic-service"
host_name = "backup-srv"
check_command = "by_ssh_pgbackrest_retention"
vars.by_ssh_logname = "accessed_by_ssh"
vars.stanza = "my_stanza"
vars.retention_full = 1
vars.prefix = "sudo -u postgres"
}
/* check archives locally on standby */
object CheckCommand "by_ssh_pgbackrest_archives" {
import "by_ssh"
vars.by_ssh_command = "/usr/lib64/nagios/plugins/check_pgbackrest --stanza=\$stanza$ --service=archives --repo-path=\$repo_path$ --prefix=\"\$prefix$\""
}
object Service "pgbackrest_archives" {
import "generic-service"
host_name = "backup-srv"
check_command = "by_ssh_pgbackrest_archives"
vars.by_ssh_logname = "accessed_by_ssh"
vars.stanza = "my_stanza"
vars.repo_path = "/var/lib/pgbackrest/archive"
vars.prefix = "sudo -u postgres"
}
/* check archives remotely from primary */
object CheckCommand "by_ssh_pgbackrest_archives_remote" {
import "by_ssh"
vars.by_ssh_command = "/usr/lib64/nagios/plugins/check_pgbackrest --stanza=\$stanza$ --service=archives --repo-path=\$repo_path$ --prefix=\"\$prefix$\" --repo-host=\$repo_host$ --repo-host-user=\$repo_host_user$"
}
object Service "pgbackrest_archives" {
import "generic-service"
host_name = "pgsql-srv"
check_command = "by_ssh_pgbackrest_archives_remote"
vars.by_ssh_logname = "accessed_by_ssh"
vars.stanza = "my_stanza"
vars.repo_path = "/var/lib/pgbackrest/archive"
vars.prefix = "sudo -u postgres"
vars.repo_host = "backup-srv"
vars.repo_host_user = "postgres"
}
EOF
systemctl restart icinga2
# show
icingacli monitoring list services --service=pgbackrest* --verbose
|