Spis treści
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)
- 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\"
}
]
}
"
źródło: https://documenter.getpostman.com/view/29959/mantis-bug-tracker-rest-api/7Lt6zkP

