====== Nagios ======
Różne rzeczy.
==== Nrpe i SeLinux ====
SeLinux lubi zablokować odczyt dla różnych plików tymczasowych oraz pomocniczych. Nrpe nie może ich wówczas odczytać. Na przykładzie pliku /var/local/check_dnf_updates, używanego przez skromny wrapper, należy zrobić tak:
semanage fcontext -a -t nrpe_etc_t '/var/local/check_dnf_updates'
restorecon -v /var/local/check_dnf_updates
Logi można znaleźć w journalu i będą wyglądały mniej więcej tak:
SELinux is preventing /usr/bin/cat from read access on the file check_dnf_updates.
Ewentualnie można zezwolić nrpe oraz nagiosowi na buszowanie po systemie:
semanage permissive -a nrpe_t
semanage permissive -a nagios_unconfined_plugin_t
Po rozwiązaniu problemu można zmienić politykę na domyślną:
semanage permissive -d nrpe_t
semanage permissive -d nagios_unconfined_plugin_t
==== Czujki na bazie nrpe =====
Różne pomysły na pliki w /etc/nrpe.d:
command[check_load]=/usr/lib64/nagios/plugins/check_load -w "$(($(nproc --all)))" -c "$(($(nproc --all)+1))"
command[check_disk]=/usr/lib64/nagios/plugins/check_disk / -w 20% -c 10%
command[check_swap]=/usr/lib64/nagios/plugins/check_swap -w 30% -c 10% -n ok
command[check_cron]=/usr/lib64/nagios/plugins/check_file_age -w 70 -c 140 -W 0 -C 0 -f /var/local/check_cron
command[check_proc]=/usr/lib64/nagios/plugins/check_procs -w 135 -c 145
Cron roota dla check_file_age:
# Plik do monitorowania CRON-a
* * * * * /usr/bin/touch /var/local/check_cron
===== aNag =====
Konfiguracja aplikacji aNag.
[[https://play.google.com/store/apps/details?id=info.degois.damien.android.aNag&hl=pl&gl=US]]
Manage monitoring instances:
* name: (wedłud uznania)
* Instance type: Icinga/Nagios (HTML)
* URL: https://[domena.com]/nagios/cgi-bin/
* Username: [nazwa użytkownika]
* Password: [hasło]
* Client certificate (PKCS12): None
* Allow insecure certifiacte: zaznaczone
* Quick basic auth: zaznaczone
* Enabled: zaznaczone
* Author name: [puste]
* ostgroup: [puste]
* Servicegroup: [puste]
Po kliknięciu przycisku „Test” powien pojawić się komunikat zawierający „OK Everything looks good”. Po cofnięciu się do ekranu startowego aplikacji będzie widać nazwę wpisaną w pole name w konfiguracji.
===== Nagios i Mantis =====
* Automatyczne wrzucanie alertów z Nagiosa na system zgłoszeń Mantis.
* Trzeba utworzyć na Mantisie nowego użytkownika z uprawnieniem //zgłaszający//. Potem na tym użytkowniku trzeba utworzyć klucz API. Na poniższym przykładzie został on zastąpiony literami //T//.
* Zamienić nazwę projektu //standardowy// na utworzony w Mantisie.
W pliku commands.cfg dopisać:
define command {
command_name notify-host-by-mantis
command_line /usr/local/bin/utworz_zgloszenie.sh "$NOTIFICATIONTYPE$ $SERVICEDESC$ $HOSTALIAS$" "$HOSTADDRESS$ $SERVICESTATE$ $LONGDATETIME$" "$SERVICEOUTPUT$"
}
define command {
command_name notify-service-by-mantis
command_line /usr/local/bin/utworz_zgloszenie.sh "$NOTIFICATIONTYPE$ $SERVICEDESC$ $HOSTALIAS$" "$HOSTADDRESS$ $SERVICESTATE$ $LONGDATETIME$" "$SERVICEOUTPUT$"
}
Plik /usr/local/bin/utworz_zgloszenie.sh
# ls -al /usr/local/bin/utworz_zgloszenie.sh
-rwxr-x---. 1 root nagios 1039 Oct 18 04:30 /usr/local/bin/utworz_zgloszenie.sh
# cat /usr/local/bin/utworz_zgloszenie.sh
#!/usr/bin/bash
url='https://mantis.ping.local'
token='TTTTTTTTTTTTTTTTTTTTTTT'
summary=$1
description=$2
additional_information=$3
if [[ ${summary} == *'RECOVERY'* ]] ; then exit 0 ; fi
if [[ ${summary} == *'ACKNOWLEDGEMENT'* ]] ; then exit 0 ; fi
curl --insecure --location -g "${url}/api/rest/issues" \
--header "Authorization: ${token}" \
--header "Content-Type: application/json" \
--data "{
\"summary\": \"${summary}\",
\"description\": \"${description}\",
\"additional_information\": \"${additional_information}\",
\"project\": {
\"id\": 1,
\"name\": \"standardowy\"
},
\"category\": {
\"id\": 1,
\"name\": \"alarmy\"
},
\"handler\": {
\"name\": \"\"
},
\"view_state\": {
\"id\": 10,
\"name\": \"public\"
},
\"priority\": {
\"name\": \"normal\"
},
\"severity\": {
\"name\": \"trivial\"
},
\"reproducibility\": {
\"name\": \"always\"
},
\"sticky\": false,
\"tags\": [
{
\"name\": \"alarmy\"
}
]
}
"
{{:wiki:nagios_mantis_01.jpg?400|}}
{{:wiki:nagios_mantis_02.jpg?400|}}
----
źródło: https://documenter.getpostman.com/view/29959/mantis-bug-tracker-rest-api/7Lt6zkP