Fórum Root.cz
Hlavní témata => Server => Téma založeno: P D 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í:
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
-
A co je na tom radku 16 resp. kolem okolo ohledne tech shift?
-
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.
#! /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"
-
jaky je vypis: ls -l /etc/nagios/resource.cfg ?
-
-rw-r----- 1 root nagios 1308 29. říj 23.24 /etc/nagios/resource.cfg
-
Teď jsem si všimnul práv na starším funkčním systému a upravil to následovně:
-rw-rw---- 1 nagios nagios 1308 29. říj 23.24 /etc/nagios/resource.cfg
ale pořád stejnej výsledek
-
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í?
-
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.
-
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".
-
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' ?
-
Mount vypíše spoustu svazků a všechny jsou RW.
-
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.
-
Apparmor jsem zkoušel zapnout i vypnout a nemělo to vliv. Dmesg neukazuje nic ohledně Nagiosu.
-
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..
-
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?
-
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?
Shodou náhod mě to před chvílí taky napadlo, proč chce měnit práva při každym spuštění. Asi telepatie :-) Zakomentování dvou posledních řádků pomohlo. Chybu se shiftama hlásí pořád, ale zdá se že funguje. Díky všem.