nagios.service start operation expirou. Terminando

2

Eu tenho um Centos 7 Box no qual eu instalei o Nagios e então migro todos os arquivos de configuração de uma velha caixa do Centos.

Tudo parece bem, nagios -v não retorna nenhum erro.

No entanto, o systemd não consegue iniciar o serviço e me fornece um tempo limite. Encontre abaixo o resultado de systemctl -l status nagios.service :

● nagios.service - Nagios Network Monitoring
   Loaded: loaded (/usr/lib/systemd/system/nagios.service; disabled; vendor preset: disabled)
   Active: failed (Result: timeout) since Fri 2016-02-05 10:52:55 CET; 13min ago
     Docs: https://www.nagios.org/documentation/
  Process: 2259 ExecStart=/usr/sbin/nagios -d /etc/nagios/nagios.cfg (code=exited, status=0/SUCCESS)
  Process: 2257 ExecStartPre=/usr/sbin/nagios -v /etc/nagios/nagios.cfg (code=exited, status=0/SUCCESS)

Feb 05 10:52:52 nagios.adflux.net nagios[2261]: SERVICE ALERT: VM-CRO-JIRA2;Drive Space C:;CRITICAL;SOFT;1;CRITICAL - Socket timeout after 10 seconds
Feb 05 10:52:52 nagios.adflux.net nagios[2261]: SERVICE ALERT: ESXi-ls1;PING;WARNING;SOFT;1;PING WARNING - Packet loss = 33%, RTA = 80.47 ms
Feb 05 10:52:55 nagios.adflux.net systemd[1]: nagios.service start operation timed out. Terminating.
Feb 05 10:52:55 nagios.adflux.net nagios[2261]: Caught SIGTERM, shutting down...
Feb 05 10:52:55 nagios.adflux.net nagios[2268]: Caught SIGTERM, shutting down...
Feb 05 10:52:55 nagios.adflux.net nagios[2261]: Successfully shutdown... (PID=2261)
Feb 05 10:52:55 nagios.adflux.net nagios[2261]: Event broker module 'NERD' deinitialized successfully.
Feb 05 10:52:55 nagios.adflux.net systemd[1]: Failed to start Nagios Network Monitoring.
Feb 05 10:52:55 nagios.adflux.net systemd[1]: Unit nagios.service entered failed state.
Feb 05 10:52:55 nagios.adflux.net systemd[1]: nagios.service failed.

Nenhum outro erro encontrado nos logs (ou pelo menos, onde eu olhei, talvez .... provavelmente eu estou perdendo alguma coisa aqui).

A execução do comando /sbin/nagios /etc/nagios/nagios.cfg inicia o serviço de monitoramento e tudo é executado conforme o esperado. Mas isso não resolve o meu problema, pois o Nagios não é iniciado como um daemon aqui e é um link para o meu shell. Isso me indica que o problema não é causado pelo Nagios, mas pelo próprio systemd.

Qualquer pista sobre isso será apreciada.

Muito obrigado.

    
por Benkkei 05.02.2016 / 11:14

4 respostas

2

Parece que o Nagios não está apropriando corretamente a opção background -d , o que o systemd espera aqui devido a type=forking .

Assim, o systemd conta um não-fork como um tempo limite durante o início. Isso pode estar relacionado devido a NERD ou outro problema.

Você pode executar o Nagios em primeiro plano:

cp /usr/lib/systemd/system/nagios.service /etc/systemd/system/nagios.service
vim /etc/systemd/system/nagios.service
# remove Type=forking and -d in cmd line of nagios
systemctl daemon-reload
systemctl restart nagios.service

No entanto, existe um bug ...

    
por 08.02.2016 / 18:34
1

Você atualizou a instalação do Nagios muito além das opções de configuração antigas. Apesar de -V mostrar que todos os vôos estão bem.

Eu tive o mesmo problema porque eu não incluí nenhum dos diffs no arquivo nagios.cfg.rpmnew.

Eu reinstalei depois de fazer backup de minha configuração e, em seguida, adicionei minhas alterações à nova configuração.

    
por 05.04.2016 / 11:24
0

Você já resolveu seu problema substituindo a configuração padrão do SystemD. Eu tive um problema semelhante, meu Nagios em uma máquina Centos 7 parou de funcionar após uma atualização automática recente. O problema era que minha configuração do /etc/nagios/nagios.cfg definia um PID diferente do esperado pela configuração do SystemD (/var/run/nagios.pid vs /var/run/nagios/nagios.pid) e assim o SystemD poderia não detecta que o daemon do Nagios realmente começou. As mensagens que recebi foram semelhantes a isto:

systemctl status nagios.service -l
 nagios.service - Nagios Network Monitoring
   Loaded: loaded (/usr/lib/systemd/system/nagios.service; disabled; vendor preset: disabled)
   Active: failed (Result: timeout) since jue 2016-02-18 12:33:05 UTC; 1min 43s ago
     Docs: https://www.nagios.org/documentation/
  Process: 26986 ExecStart=/usr/sbin/nagios -d /etc/nagios/nagios.cfg (code=exited, status=0/SUCCESS)
  Process: 26985 ExecStartPre=/usr/sbin/nagios -v /etc/nagios/nagios.cfg (code=exited, status=0/SUCCESS)

feb 18 12:33:04 mvdatos.com nagios[26989]: wproc: 'Core Worker 26992' seems to be choked. ret = -1; bufsize = 124: errno = 32 (Broken pipe)
feb 18 12:33:04 mvdatos.com nagios[26989]: wproc: Socket to worker Core Worker 26991 broken, removing
feb 18 12:33:04 mvdatos.com nagios[26989]: wproc: Socket to worker Core Worker 26992 broken, removing
feb 18 12:33:04 mvdatos.com nagios[26989]: wproc: Socket to worker Core Worker 26993 broken, removing
feb 18 12:33:04 mvdatos.com nagios[26989]: Successfully shutdown... (PID=26989)
feb 18 12:33:05 mvdatos.com systemd[1]: Failed to start Nagios Network Monitoring.
feb 18 12:33:05 mvdatos.com systemd[1]: Unit nagios.service entered failed state.
feb 18 12:33:05 mvdatos.com systemd[1]: nagios.service failed.
feb 18 12:33:35 mvdatos.com systemd[1]: Stopped Nagios Network Monitoring.
feb 18 12:33:36 mvdatos.com systemd[1]: Stopped Nagios Network Monitoring.

Rodar o daemon diretamente (/ usr / sbin / nagios -d /etc/nagios/nagios.cfg) funcionou perfeitamente, sugerindo que o problema era algo relacionado ao SystemD, não ao Nagios.

Espero que isso ajude alguém com um tempo limite do SystemD ao iniciar o Nagios.

    
por 18.02.2016 / 13:53
0

Esta resposta assume que você está instalando usando yum da EPEL. Se você instalar da origem, os arquivos podem estar em locais diferentes, mas as ideias são as mesmas. Certifique-se de que o usuário nagios tenha permissão para esses arquivos.

Procure esta seção em /etc/nagios/nagios.cfg

# LOCK FILE
# This is the lockfile that Nagios will use to store its PID number
# in when it is running in daemon mode.
lock_file=/var/run/nagios/nagios.pid

Esse é o arquivo que o Nagios criará quando for iniciado. Versões mais antigas podem usar nagios.lock , ou o caminho pode ser algo como /usr/local/nagios/

systemd especifica o arquivo pid que ele está procurando em /lib/systemd/system/nagios.service

PIDFile=/var/run/nagios/nagios.pid

Isso precisa ser o mesmo que lock_file no seu nagios.cfg ou systemd no tempo limite e parar o serviço nagios .

Desde que você migrou arquivos de configurações e tais de uma instalação mais antiga do Nagios,  Certifique-se de alterar todos os seus caminhos nos arquivos de configuração, ou seja, nagios.cfg , objetos.cfg , commands.cfg , etc . You will probably also have to move around your custom scripts in libexec ', entre outras coisas.

    
por 09.11.2018 / 16:39