por que o monit está parando o reinício do apache, pare, gracioso

1

Após um curto período de monitoramento, não consigo reiniciar ou parar o apache, ele diz que há um conflito, algo mais usando a porta 80. O Apache ainda funciona bem nas páginas da Web e quando eu     netstat -anp | grep 80 Eu ainda só vejo o apache ouvindo: 80.

quando inicio o monit, recebo um erro "não monitorado" para o apache. Não tenho certeza se isso é relevante para o problema. No momento, estou tentando resolver isso.

Monit detalhes abaixo:

set httpd port 2812 and
#use address localhost  # only accept connection from localhost
allow 0.0.0.0/0.0.0.0        # allow localhost to connect to the server   and
allow *******:******      # require user '' with password ....
allow @monit           # allow users of group 'monit' to connect (rw)
allow @users readonly  # allow users of group 'users' to connect readonly

##monitor apache
check process apache with pidfile /var/run/httpd/httpd.pid
group apache
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout

Saída de monit -vv

 monit: Debug: Adding net allow '0.0.0.0/0.0.0.0'.
monit: Debug: Adding credentials for user '******'.
monit: Adding PAM group 'monit'.
monit: Adding PAM group 'users'.
Runtime constants:
 Control file       = /etc/monit.conf
 Log file           = /var/log/monit
 Pid file           = /var/run/monit.pid
 Debug              = True
 Log                = True
 Use syslog         = False
 Is Daemon          = True
 Use process engine = True
 Poll time          = 60 seconds with start delay 0 seconds
 Expect buffer      = 256 bytes
 Mail server(s)     = smtp.sendgrid.net:587(ssl) with timeout 30 seconds
 Mail from          = ******
 Mail subject       = monit alert --  $EVENT $SERVICE
 Mail message       = $EVENT Service $SERV..(truncated)
 Start monit httpd  = True
 httpd bind address = Any/All
 httpd portnumber   = 2812
 httpd signature    = True
 Use ssl encryption = False
 httpd auth. style  = Basic Authentication and Host/Net allow list
 Alert mail to      = *******
   Alert on         = All events

The service list contains the following entries:

Process Name          = apache
 Group                = apache
 Pid file             = /var/run/httpd/httpd.pid
 Monitoring mode      = active
 Start program        = '/etc/init.d/httpd start' timeout 30 second(s)
 Stop program         = '/etc/init.d/httpd stop' timeout 30 second(s)
 Existence            = if does not exist 1 times within 1 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert
 Pid                  = if changed 1 times within 1 cycle(s) then alert
 Ppid                 = if changed 1 times within 1 cycle(s) then alert
 Port                 = if failed 127.0.0.1:80 [HTTP via TCP] with timeout 5 seconds 1 times within 1 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert
 Timeout              = If restarted 5 times within 5 cycle(s) then unmonitor

Process Name          = mysqld
 Group                = mysql
 Pid file             = /var/run/mysqld/mysqld.pid
 Monitoring mode      = active
 Start program        = '/etc/init.d/mysqld start' timeout 30 second(s)
 Stop program         = '/etc/init.d/mysqld stop' timeout 30 second(s)
 Existence            = if does not exist 1 times within 1 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert
 Pid                  = if changed 1 times within 1 cycle(s) then alert
 Ppid                 = if changed 1 times within 1 cycle(s) then alert
 Port                 = if failed 127.0.0.1:3306 [DEFAULT via TCP] with timeout 5 seconds 1 times within 1 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert
 Timeout              = If restarted 5 times within 5 cycle(s) then unmonitor

System Name           = system_ip-10-74-144-130.eu-west-1.compute.internal
 Monitoring mode      = active
    
por Tofuwarrior 02.12.2017 / 13:52

1 resposta

0

O problema de não conseguir se conectar provavelmente é porque o processo de reinicialização não está matando o httpd corretamente, então, ele nunca é desligado, e é por isso que você obtém o erro sobre a porta 80 estar em uso. Eu também suspeito que pode haver algo sobre Pid mudar, como quando o httpd é iniciado ou reiniciado. Os logs devem fornecer mais informações sobre o motivo da falha.

No entanto, o httpd é geralmente sólido como um daemon e eu não forçaria o monit a reiniciá-lo, apenas alerta a menos que você tenha um estado crítico.

    
por 02.12.2017 / 18:11

Tags