Nagios nejde spustit na openSUSE Tumbleweed

P D

Nagios nejde spustit na openSUSE Tumbleweed
« kdy: 06. 01. 2022, 12:53:22 »
Ahoj, po aktualizaci openSUSE Tumbleweed (virtuál x86) mi nejde spustit Nagios. Problém přetrvává víc jak měsíc. Předpokládám, že problém souvisí s jednou z aktualizací, protože mám stejný problém i na Raspberry (rovněž openSUSE Tumbleweed), kde jsem žádné konfigurační změny neprováděl víc jak rok, pouze aktualizace.

Po startu mám v záznamu následující:

Kód: [Vybrat]
Jan 06 08:59:03 localhost systemd[1]: Starting Network Monitor Nagios...
Jan 06 08:59:04 localhost nagios-exec-start-pre[3899]: /usr/lib/nagios/nagios-exec-start-pre: řádek 16: shift: počet shiftů mimo rozsah
Jan 06 08:59:04 localhost nagios-exec-start-pre[3940]: chmod: práva '/etc/nagios/resource.cfg' nelze změnit: Systém souborů je pouze pro čtení
Jan 06 08:59:04 localhost nagios-exec-start-pre[3941]: chown: změnění vlastnictví souboru '/etc/nagios/resource.cfg': Systém souborů je pouze pro čtení
Jan 06 08:59:04 localhost systemd[1]: nagios.service: Control process exited, code=exited, status=1/FAILURE
Jan 06 08:59:04 localhost systemd[1]: nagios.service: Failed with result 'exit-code'.
Jan 06 08:59:04 localhost systemd[1]: Failed to start Network Monitor Nagios.

Problém počet shiftů nechápu. Úplně stejný soubor mám i na jednom starší funkčím stroji s Nagiosem, kde normálně funguje. Stejně tak resource.cfg má stejná práva a vlastníky jako na onom funkčním starším stroji. Nevíte co s tím? Zkoušel jsem kompletní přeinstalaci a pořád stejné. Díky


Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #1 kdy: 06. 01. 2022, 14:10:09 »
A co je na tom radku 16 resp. kolem okolo ohledne tech shift?

P D

Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #2 kdy: 06. 01. 2022, 14:58:52 »
Co to přesně dělá nevím, ale je to soubor z roku 2014, který na starších verzí normálmě funguje, tak že se obávám, že chyba bude někde úplně jinde.
Kód: [Vybrat]
#! /bin/sh
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany
#
# Original Author: Tim Hardeck
# bases on the SUSE Icinga init script from Wolfgang Rosenauer, Lars Vogdt
#
CONFIG='/etc/nagios/nagios.cfg'

# grab a config option
get_var() {
    if [ -n "$2" ]; then
        set -- `grep ^$1 $2 | sed 's@=@ @' | tr -d '[:cntrl:]'`
    else
        set -- `grep ^$1 "$CONFIG" | sed 's@=@ @' | tr -d '[:cntrl:]'`
    fi
    shift # remove first ARG => search-string
    echo $*
}

# get variables from config file
check_result_path="$(get_var check_result_path)"
command_file="$(get_var command_file)"
lock_file="$(get_var lock_file)"
log_file="$(get_var log_file)"
nagios_user="$(get_var nagios_user)"
nagios_group="$(get_var nagios_group)"
nagios_cmdgrp="$(get_var nagios_cmdgrp)"
resource_file="$(get_var resource_file)"
state_retention_file="$(get_var state_retention_file)"
status_file="$(get_var status_file)"
temp_file="$(get_var temp_file)"
temp_path="$(get_var temp_path)"

# use default values if above check doesn't work
: ${check_result_path:=/var/spool/nagios}
: ${command_file:=/var/spool/nagios/nagios.cmd}
: ${lock_file:=/var/run/nagios/nagios.pid}
: ${log_file:=/var/log/nagios/nagios.log}
: ${nagios_user:=nagios}
: ${nagios_group:=nagios}
: ${nagios_cmdgrp:=nagcmd}
: ${resource_file:=/etc/nagios/resource.cfg}
: ${state_retention_file:=/var/log/nagios/retention.dat}
: ${status_file:=/var/log/nagios/status.dat}
: ${temp_file:=/var/log/nagios/nagios.tmp}
: ${temp_path:=/var/run/nagios/tmp}

# remove some perhaps left over files
for file in "$command_file" "$lock_file" "$status_file" "$temp_file"; do
    test -f "$file" && rm -f "$file"
done
# set default access rights for files and directories
for file in "$log_file" "$state_retention_file" "$status_file"; do
    if [ ! -e "$file" ]; then
        touch "$file"
    fi
    chown --no-dereference ${nagios_user}:${nagios_cmdgrp} "$file"
done
for dir in "$check_result_path" $(dirname "$status_file"); do
    install -d -m755 -o${nagios_user} -g${nagios_cmdgrp} "$dir"
done
for dir in $(dirname "$lock_file") ; do
install -d -m755 -o${nagios_user} -g${nagios_group} "$dir"
done
case "$temp_path" in
/)
echo "temp_path is set to $temp_path - aborting" >&2
exit 1
;;
    /tmp)
;;
/var/tmp)
;;
*)
install -d -m755 -o${nagios_user} -g${nagios_group} "$dir"
;;
esac
chmod 660 "$resource_file"
chown --no-dereference ${nagios_user}:${nagios_cmdgrp} "$resource_file"

e3k

  • ***
  • 140
    • Zobrazit profil
    • E-mail
Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #3 kdy: 06. 01. 2022, 19:02:47 »
jaky je vypis: ls -l /etc/nagios/resource.cfg ?

P D

Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #4 kdy: 06. 01. 2022, 21:32:41 »
Kód: [Vybrat]
-rw-r----- 1 root nagios 1308 29. říj 23.24 /etc/nagios/resource.cfg


P D

Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #5 kdy: 06. 01. 2022, 21:44:27 »
Teď jsem si všimnul práv na starším funkčním systému a upravil to následovně:
Kód: [Vybrat]
-rw-rw---- 1 nagios nagios 1308 29. říj 23.24 /etc/nagios/resource.cfgale pořád stejnej výsledek

rmrf

Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #6 kdy: 06. 01. 2022, 23:59:30 »
Kód: [Vybrat]
Jan 06 08:59:04 localhost nagios-exec-start-pre[3940]: chmod: práva '/etc/nagios/resource.cfg' nelze změnit: Systém souborů je pouze pro čtení
Jan 06 08:59:04 localhost nagios-exec-start-pre[3941]: chown: změnění vlastnictví souboru '/etc/nagios/resource.cfg': Systém souborů je pouze pro čtení

A nemůže tak trochu vadit, že systém souborů je pouze pro čtení?

P D

Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #7 kdy: 07. 01. 2022, 00:16:50 »
Systém souborů neni pouze pro čtení. nagios-exec-start-pre je ve vlastnictví roota a resource.cfg je nagiosu. Root ho může v pohodě upravovat, ověřeno.

Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #8 kdy: 07. 01. 2022, 08:20:01 »
Vypiste si jednotlive kroky funkce get_var() a porovnejte je s pozadavkem na shift. Ten shift podle mne dela akorat to, ze skoci na dalsi pozici v "poli".

e3k

  • ***
  • 140
    • Zobrazit profil
    • E-mail
Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #9 kdy: 08. 01. 2022, 19:49:38 »
Systém souborů neni pouze pro čtení. nagios-exec-start-pre je ve vlastnictví roota a resource.cfg je nagiosu. Root ho může v pohodě upravovat, ověřeno.
a co rika prikaz 'mount' ?

P D

Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #10 kdy: 11. 01. 2022, 12:35:01 »
Mount vypíše spoustu svazků a všechny jsou RW.

Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #11 kdy: 11. 01. 2022, 19:41:34 »
tak ma 80% to dela AppArmor, ktery proste nema rad kdyz neco hrabe do /etc. Pripadne to muze byt selinux, kazdopadne by to melo neco psat do dmesg v prubehu neuspesneho startu.

P D

Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #12 kdy: 12. 01. 2022, 11:01:36 »
Apparmor jsem zkoušel zapnout i vypnout a nemělo to vliv. Dmesg neukazuje nic ohledně Nagiosu.

Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #13 kdy: 12. 01. 2022, 12:32:42 »
Tipujem to na nieco s pravami.
ls -l /etc/nagios?

Pripadne si v /etc/passwd pridaj uzivatelovi nagios shell a skus sa cez su prepnut na "nagios" a pobehaj po filesysteme ci sa vies dostat vsade kde potrebuje..

Jose D

  • *****
  • 770
    • Zobrazit profil
Re:Nagios nejde spustit na openSUSE Tumbleweed
« Odpověď #14 kdy: 12. 01. 2022, 18:13:19 »
ten shift ti failuje protože get_var nemůže od někud načíst nějakou hodnotu.
Jak píše czechsys, přidej si tam nějaké echo na debug ať víš, na čem to failuje.

chmod & chown

já moc nevím, proč by měla služba měnit nějaká oprávnění na disku, zvlášť když už jsou správně.
Když to zakomentuješ tak to naběhne?