Olá. Aqui é a Komiya.
Como o título sugere, há uma deficiência, e eu gostaria de registrá-la para o futuro.
Quando parei a notificação de manutenção da AWS, ela acabou sendo parada por pouco mais de 6 horas.
Essa instância não foi construída por mim, e as anotações de construção permanecem, mas não são mantidas.
Era um padrão difícil de compreender a situação.
Parei depois de me abster de fazer upload do processo e da porta, mas não tirei um snapshot e não criei uma AMI.
Quando postei no fórum japonês, não houve resposta.
Pelo que ouvi, se você usar um fórum em inglês, pode receber uma resposta em cerca de 15 minutos.
Enquanto isso, tirei um snapshot da instância que parou, criei uma AMI e comecei uma nova instância a partir dela.
Não consegui me conectar por causa de um problema com a configuração da placa de rede ou algo assim.
Comecei a microinstância, coloquei apenas o Apache nela e criei uma página simples de desculpa.
Esperei cerca de 6 horas sem parar, mas não houve nenhum progresso.
Além disso, eu não estava inscrito no suporte, então solicitei apoio e fiz as seguintes perguntas.
(Quando me inscrevi, isso foi refletido em cerca de 10 minutos).
---------------------------------
Primeira vez:
Parei o servidor do Console de Gerenciamento do EC2, mas ele não sai de Parar.
http://aws.amazon.com/jp/instance-help/
Tentei forçar a parada várias vezes, mas gostaria de pedir uma parada forçada porque é a mesma coisa.
Zona: ap-nordeste-1a
Exemplo: i-4a42a348
ID da instância: i-4a42a348
---------------------------------
2ª vez:
Parei antes. Você respondeu a alguma coisa?
Quero começar a mesma instância, mas para mesmo depois de começar duas vezes.
Se possível, você pode iniciar?
---------------------------------
Como eu estava com pouco tempo, parece que depois que cheguei em casa, consegui me conectar criando uma AMI com o CreateImage que eu poderia escolher depois que ele fosse parado, e iniciando uma nova instância.
Na manhã seguinte, recebi uma resposta do suporte.
---------------------------------
Do suporte:
Muito obrigado pela sua pergunta.
Quando pesquisei o i-4a42a348, demorou muito para parar a instância porque havia um problema com o host do servidor virtual.
O EC2 possui um sistema que limpa automaticamente instâncias que estavam em estado de parar ou desligar por muito tempo.
Desta vez, a instância foi interrompida por esse mecanismo.
Pedimos desculpas por qualquer inconveniente que isso possa causar.
Sobre a instância não poder iniciar, parece que há um problema na associação entre a instância e o volume EBS, e a instância não está iniciando como resultado.
Pedimos desculpas pelo transtorno, mas você poderia desconectar/anexar o volume conectado à instância e tentar iniciar a instância novamente?
Se o descolamento normal não funcionar, tente o Desapego Forçado.
Se a instância não começar após a separação/anexação de um volume, pedimos desculpas pelo transtorno, mas você poderia entrar em contato conosco novamente?
Por favor, nos avise se tiver alguma dúvida.
Obrigado.
---------------------------------
Então fiz o seguinte trabalho.
Primeiramente, evite pontos de montagem
Anexo:
i-4a42a348 (devlab):/dev/sda1 (anexado)
Selecione a instância e execute o desacoplamento forçado, conecte-a novamente ao mesmo ponto de montagem, e
Tentei iniciar a instância e ela começou.
Não consegui cruzar o padrão do grupo de segurança porque não estava incluído, então coloquei.
Então, consegui cruzar com SSH. É só isso para a AWS.
Quando entrei, a porta que foi aberta parecia diferente da anterior, então corrigi.
[shell]# netstat -lnpt Conexões Ativas de Internet (apenas servidores) Proto Recv-Q Send-Q Local Endereço Endereço Estrangeiro Estado PID/Nome do Programa tcp 0 0 0.0.0.0:3306 0.0.0.0:* OUÇA 1275/mysqld tcp 0 0 0 0.0.0.0:80 0.0.0.0:0:* OUÇA 1374/httpd tcp 0 0 0 0.0.0.0:22 0.0.0.0:* OUÇA 901/sshd tcp 0 0 127.0.0.1:9000 0.0.0.0:* OUÇA 1356/php-fpm[/shell]
Comparado ao que eu tinha guardado antes, o NGINX deve estar ativo, não o Apache.
Além disso, Node e Mongod não estão ativos.
[shell]# chkconfig --list|grep 3:on abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:Em 6:fora abrt-oops 0:fora 1:fora 2:fora 3:fora 5:em 6:fora abrtd 0:fora 1:fora 2:fora 3:em 4:fora 5:fora 6:fora ATD 0:fora 1:fora 2:fora 3:em 4:em 5:em 6:fora crond 0:fora 1:fora 2:em 3:em 4:em 5:em 6:fora getsshkey 0:fora 1:fora 2:fora 2:fora 3:em 4:fora 5:fora 6:fora haldaemon 0:fora 1:fora 2:fora 3:fora 3:em 4:em 5:fora httpd 0:fora 1:fora 2:em 3:em 4:em 5:fora irqbalance 0:fora 1:fora 2:fora 3:em 4:em 5:em 6:fora kdump 0:fora 1:fora 2:fora 3:em 4:fora 5:em 6:fora libvirt-convidados 0:fora 1:fora 2:em 3:em 4:em 4:em Fora do Messagebus 0:Desligado 1:Fora 2:Em 3:Em 4:Em 5:Em 6:Desligado Mongod 0:Fora 1:Fora 2:Em 3:Em 4:Em 4:Em 5:Em 6:Fora do MySQL 0:Fora 1:Fora 2:Em 3:Em 4:Em 5:Em 6:Desligada da rede 0:Fora 1:Desligado 2:Em 3:Em 6:Desligado nginx 0:Fora 1:Fora 2:Em 3:Ligado 4:Em 5:Em 6:Desligado php-fpm 0:Fora 1:Fora 2:Ligado 3:em 4:em 5:em 6:desliga postfixo 0:fora 1:fora 2:em 3:em 4:em 5:em 6:desliga rsyslog 0:desliga 1:desligada 2:em 3:em 4:em 5:em 6:desligada sshd 0:desligada 1:fora 2:em 3:em 4:ligada 5:em 6:desligada sysstat 0:fora 1:em 2:em 3:em 4:em 5:em 6:fora udev-post 0:fora 1:em 2:em 3:em 4:em 5:em 6:desligada
# service nginx start nginx: opção de configuração a partir de ("on") Opção de configuração a partir de ("RewriteLevel", "CoreFilters") Opção de configuração a partir de ("FileCachePath", "/var/cache/ngx_pagespeed") Opção de configuração a partir de ("EnableFilters", "collapse_whitespace,add_instrumentation,remove_comments") nginx: [emerg] bind() to 0.0." 0. 0.0:80 falhou (98: Endereço já em uso) nginx: [emergência] bind() para 0.0.0.0:80 falhou (98: Endereço já em uso) nginx: [emergência] bind() para 0.0.0.0:80 falhou (98: Endereço já em uso) nginx: [emergência] bind() para 0.0.0.0:80 falhou (98: Endereço já em uso) nginx: [emergência] bind() para 0.0.0.0:80 falhou (98: Endereço já em uso) nginx: [emergência] ainda não conseguiu vincular() [0905/105718:INFO:google_message_handler.cc(33)] Desligando ngx_pagespeed raiz [falhado][/shell]
O Apache começou primeiro e a porta que eu estava usando era NGINX e não começou.
[shell]# chkconfig httpd desligado # serviço httpd parar httpd: [ OK ] # serviço nginx iniciar nginx: Opção de configuração de ("ligado") Opção de configuração de ("RewriteLevel", "CoreFilters") Opção de configuração de ("FileCachePath", "/var/cache/ngx_pagespeed") Opção de configuração de ("EnableFilters", "collapse_whitespace, add_instrumentation, remove_comments") [ OK ] # netstat -lnpt Conexões de Internet Ativas (apenas servidores) Proto Recv-Q Send-Q Local Endereço Local Estado PID/Nome do programa tcp 0 0 0. 0.0 0.0:3306 0.0.0.0:* OUÇA 1275/mysqld tcp 0 0 0 0.0.0.0:8080 0.0.0.0:* OUÇA 1570/nginx tcp 0 0 0 0.0.0.0:80 0.0.0.0:* OUÇA 1570/nginx tcp 0 0 0.0.0.0:22 0.0.0.0:* OUÇA 901/sshd tcp 0 0 0 0.0.0.0:10080 0.0.0.0:* OUÇA 1570/nginx tcp 0 0 127.0.0.1:9000 0.0.0:* OUÇA 1356/php-fpm
# chkconfig --list|grep 3:on abrt-ccpp 0:off 1:Fora 2:Fora 3:Em 4:Fora 5:Em 6:Fora abrt-oops 0:Fora 1:Fora 2:Fora 3:Fora 4:Fora 5:Fora 5:Fora 6:Fora ABRD 0:Fora 1:Fora 2:Fora 3:Fora ATD 0:Fora 1:Fora 2:Fora 3:Em 4:Em 5:Em 6:Fora Crond 0:Fora 1:Fora 2:Em 3:Em 4:Em 6:Fora recebe 0:Fora 1:Fora 2:Fora 3:Em 5:Fora 6:Fora Haldaemon 0:Fora 1:Fora 2:Fora 3:Fora 5:Fora 5:Fora 3:Fora KDUMP 0:Fora 1:Fora 2:Fora 3:Em 4:Em 4:Em 6:Fora libvirt-Guests 0:Fora 1:Fora 2:Em 3:Fora Messengerbus 0:Fora 1:Fora 2:Em 3:Em 4:Fora Messenger Bar 0:Fora 1:Fora 2:Em 3:Em Mesa Fora 1:Fora Messenger Bar 0:Fora 1:Fora 2:Em 3:Em 6:Fora Libvirt-Guests 0:Fora 1:Fora 2:Em 3:Em 3:Fora Libvirt-Guests 0:Fora 1:Fora 2:Em 3:Em 3:Fora Mesa Fora Messenger 0:Fora Messenger Bar Sem Ligar 2:Em 3:Em 3:Fora Libvirt-Guests 0:Fora 1:Fora 2:Em 3:Em 3:Fora Messenger Fora Messenger 0:Fora Fora Em Mesa Fora Em Linha Baixa Em Espaço Negativo 0:Fora Fora Em Mesa Fora Em Mesa Fora Em Rádio Em Loja Fora E Fora 3:Fora 3:Fora AM Fora 3:Fora AM Fora 3:Fora Fora AM Fora Em AM AS Menos Fora 3:Fora AE Fora Fora 3:Fora AM AGa A E Fora 3:Fora AA Brin AM Fora 3:Em 4:Em 5:Em 6:Desligado Mongod 0:Desligado 1:Desligado 2:Em 3:Em 4:Em 5:Em 6:Desligado do MySQL 0:Desligado 1:Desligado 2:Em 3:Em 4:Em 5:Em 6:Desligado da rede 0:Desligado 1:Desligado 2:Em 3:Em 4:Em 5:Desligado 1:Em cima de 6:Sem PHP-FPM 0:Fora 1:Fora 2:Em 3:Em 4:Em 6:Em 6:Em 6:Em 6:Em :off post fixar 0:off 1:off 2:on 3:on 4:on 5:on 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off udev-post 0:off 1:on 2:on 3:on 4:on 5:on 5:on 5:on 5:on 6:off[/shell]
O NGINX foi iniciado e o script de lançamento foi ajustado.
Parece que o processo do para sempre não melhorou.
Parece que você perpetuou o processo de node.js há séculos, mas eu olhei a história porque não consegui encontrar nenhum procedimento específico.
[shell]# informação da lista para sempre: Sem processos permanentes rodando
# grep forever /root/.bash_history npm install -g forever npm install -g forever forever start app.js forever --minUptime 1000ms --spinSleepTime 1000ms start app.js forever stop app.js forever --minUptime 1000ms 1000ms --spinSleepTime 1000ms start app.js forever list forever list forever stop forever list forever config forever stopall forever forever list forever start app & forever start app.js & forever stop forever stop app.js forever start app.js & forever stop app.js forever start app.js & forever app & forever app.js forever start app.js forever list which forever forever list[/shell]
Eu não sabia onde ficava o app.js, então procurei.
Quando olhei o comando cd antes de começar com forever, me mudei para um lugar chamado g**** (provavelmente o nome do produto).
[shell]# encontrar / -nome "g**" /usr/local/lib/src/g***# ls /usr/local/lib/src/g**** app.js index.html package.json rotas web.config iisnode.yml node_modules visualizações públicas[/shell]
Vou começar porque está assim.
[shell]# cd /usr/local/lib/src/g***** # forever --minUptime 1000ms --spinSleepTime 1000ms início app.js info: Forever processing file: app.js # forever list info: Forever processos rodando dados: uid command script forever pid logfile uptime data: [0] WlVc /usr/local/bin/node app.js 3717 3719 /root/.forever/WlVc.log 0:0:0:23.169
# netstat -lnpt Conexões Ativas de Internet (apenas servidores) Proto Recv-Q Send-Q Local Endereço Estrangeiro Estado PID/Nome do programa tcp 0 0 0.0.0.0:3306 0.0.0.0:* OUÇA 1234/mysqld tcp 0 0 0 0.0.0.0:8080 0.0.0.0:* OUÇA 3619/nginx tcp 0 0 0.0 0.0 0.0.0:80 0.0.0.0:* OUÇA 3619/nginx tcp 0 0 0 0.0.0.0:22 0.0.0.0:* OUÇA 860/sshd tcp 0 0 0 0.0.0.0:3000 0.0.0.0:* OUÇA 3719/node tcp 0 0 127.0.0.1:25 0.0.0.0:* OUÇA 1361/master tcp 0 0 0 0.0.0.0:10080 0.0.0.0:* OUÇA 3619/nginx tcp 0 0 127.0.0.1:9000 0.0.0.0:* OUÇA 1415/php-fpm[/shell]
node.
O próximo é Mongod.
[shell]# service mongod start mongod を起動中: bash: /var/log/mongodb/mongodb.log: 許可がありません [ OK ] # netstat -lnpt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1275/mysqld tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1570/nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1570/nginx tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 901/sshd tcp 0 0 0.0.0.0:10080 0.0.0.0:* LISTEN 1570/nginx tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1356/php-fpm # ls -lh /var/log/mongodb/mongodb.log -rw-r--r-- 1 root root 0 5月 5 03:40 2013 /var/log/mongodb/mongodb.log # ls -lh /var/log/mongodb 合計 176K -rw-r--r-- 1 root root 0 5月 5 03:40 2013 mongodb.log -rw-r--r-- 1 mongodb mongodb 485 4月 7 03:08 2013 mongodb.log-20130331.gz -rw-r--r-- 1 mongodb mongodb 90 4月 14 03:07 2013 mongodb.log-20130407.gz -rw-r--r-- 1 mongodb mongodb 1.6K 4月 21 03:18 2013 mongodb.log-20130414.gz -rw-r--r-- 1 mongodb mongodb 327 4月 28 03:46 2013 mongodb.log-20130421.gz -rw-r--r-- 1 mongodb mongodb 24K 5月 5 03:40 2013 mongodb.log-20130428.gz -rw-r--r-- 1 root root 1.4K 5月 5 03:40 2013 mongodb.log-20130505 -rw-r--r-- 1 mongodb mongodb 0 3月 31 03:10 2013 mongodb.log.2013-03-30T18-10-01 -rw-r--r-- 1 mongodb mongodb 0 4月 7 03:08 2013 mongodb.log.2013-04-06T18-08-01 -rw-r--r-- 1 mongodb mongodb 0 4月 14 03:07 2013 mongodb.log.2013-04-13T18-07-01 -rw-r--r-- 1 mongodb mongodb 0 4月 21 03:18 2013 mongodb.log.2013-04-20T18-18-01 -rw-r--r-- 1 mongodb mongodb 0 4月 28 03:46 2013 mongodb.log.2013-04-27T18-46-01 -rw-r--r-- 1 mongodb mongodb 38K 5月 2 10:10 2013 mongodb.log.2013-05-02T01-10-07 -rw-r--r-- 1 mongodb mongodb 2.4K 5月 2 10:10 2013 mongodb.log.2013-05-02T01-10-54 -rw-r--r-- 1 mongodb mongodb 15K 5月 2 14:48 2013 mongodb.log.2013-05-02T05-48-24 -rw-r--r-- 1 mongodb mongodb 64K 7月 17 18:04 2013 mongodb.log.2013-05-02T05-53-38[/shell]
Parece que não é enviado porque o log não pode ser escrito em termos de permissão.
[shell]# chown -R mongodb. /var/log/mongodb # serviço mongod iniciar mongod iniciando: [ OK ] # netstat -lnpt Conexões de Internet ativas (apenas servidores) proto recv-q enviar-q endereço local endereço estrangeiro estado PID/nome do programa tcp 0 0 0. 0.. 0.0:3306 0.0.0.0:* OUÇA 1275/mysqld tcp 0 0 0 0.0.0.0:8080 0.0.0.0:* OUÇA 1570/nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* OUÇA 1570/nginx tcp 0 0 0.0.0.0:22 0.0.0.0:* OUÇA 901/sshd tcp 0 0 0 0.0.0.0:10080 0.0.0.0:* OUÇA 1570/nginx tcp 0 0 127.0.0.1:9000 0.0.0:* OUÇA 1356/php-fpm[/shell]
Corrigi as permissões do log, mas não começa. O log agora é divulgado.
[shell]Qui 5 Set 11:07:06 [initandlisten] options: { bind_ip: "127.0.0.1", comando: [ "run" ], config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", fork: "true", logpath: "/var/log/mongodb/mongodb.log", nohttpinterface: "true", nojournal: "true", pidfilepath: "/var/run/mongodb/mongodb.pid", porta: 27017, quiet: true } *** Desligamento impuro detectado. Por favor, visite http://dochub.mongodb.org/core/repair para instruções de recuperação. *** Qui 5 Set 11:07:06 [initandlisten] exceção em initAndListen: 12596 arquivo antigo de bloqueio, terminando Qui 5 Set 11:07:06 dbexit: Qui 5 Set 11:07:06 [initandlisten] desligamento: vou fechar as tomadas de escuta... Qui 5 Set 11:07:06 [initandlisten] desligamento: vou limpar o diaglog... Qui 5 Set 11:07:06 [initandlisten] desligamento: vou fechar os soquetes... Qui 5 Set 11:07:06 [initandlisten] desligamento: aguardando o pré-allocador FS... Qui 5 Set 11:07:06 [initandlisten] desligamento: fechamento de todos os arquivos... Qui 5 Set 11:07:06 [initandlisten] fechar AllFiles() terminado Qui 5 Set 11:07:06 dbexit: realmente interessante agora
rm -f /var/run/mongodb/mongodb.pid[/shell] Mesmo que você exclua o arquivo PID, ele não sobe.
É uma mensagem de que ocorre uma inconsistência no arquivo de dados e que deve ser recuperada.
Nunca consertei Mongod, então vou tentar resolver olhando as páginas e logs que apareceram nos logs.
http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/ [shell]Qui 5 Set 11:07:06 [initandlisten] options: { bind_ip: "127.0.0.1", comando: [ "run" ], config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", fork: "true", logpath: "/var/log/mongodb/mongodb.log", nohttpinterface: "true", nojournal: "true", pidfilepath: "/var/run/mongodb/mongodb.pid", porta: 27017, quiet: true }[/shell]
Se minha interpretação em inglês fosse diferente, seria um grande problema, então procurei artigos em japonês.
http://kaworu.jpn.org/kaworu/2012-12-26-1.php
Verifique o diretório de dados.
[shell]# ll /var/lib/mongodb/ total 688152 drwxr-xr-x 2 mongodb mongodb 4096 31 de maio 10:00:57 2013 _tmp -rw------- 1 mongoDB mongoDB 67108864 17 Jul 18:04 2013 devlab_db.0 -rw------- 1 mongoDB mongoDB 134217728 9 abr 16:2_db 6 -rw------- 1 mongodb mongodb 16777216 18:04 17 mai 2013 devlab_db.ns drwxr-xr-x 2 mongoDB mongodb 4096 15 2 de maio de 2013 50 2013 diário -rwxr-xr-x x 1 mongoDB mongoDB 6 2 de maio 14:48 2013 mongod.lock -rw------- 1 mongodb mongodb 67108864 30 abr 14:48 2013 mongodb mongodb 30 abr 14:48 2013 mongod.lock -rw 1 mongodb mongodb 30 abr 14:48 2013 mongodb mongodb - rw 1 mongodb mongodb 30 abr 14:48 2013 mongodb mongodb - rw 1 mongodb mongodb 30 abr 14:48 2013 mongodb -rw 1 mongodb mongodb 30 abr 14:48 2013 mongodb -rw 1 mongodb mongodb 30 abr 14:48 2013 mongod.lock -rw 1 mongodb mongodb 30 abr 14:48 2013 mongodb -rw 1 mongodb mongodb 30 abr 14:48 2013 mongod.lock -rw 1 mongodb mongodb 30 abr 14:48 2013 mongodb -rw mongodb -rw 1 mongodb mongodb 30 abr 14:48 2013 mongod.lock -rw 1 mongodb mongodb 30 abr 14:48 2013 mongod -rw mongod.lock -rw 1 mongodb mongodb -rw 133 2013 sugatest.0 -rw------- 1 mongodb mongodb 134217728 30 abr 14:33 2013 sugatest.1 -rw------- 1 mongodb mongodb 268435456 24 abr 17:47 2013 sugatest.2 -rw------- 1 mongodb mongodb 16777216 30 abr 14:33 2013 sugatest.ns[/shell]
Execute o comando de reparo.
[shell]# mongod --dbpath /var/lib/mongodb --repair Qui 5 Set 14:25:47 [initandlisten] MongoDB iniciando: pid=3941 porta=27017 dbpath=/var/lib/mongodb 64-bit host=devlab Qui 5 Set 14:25:47 [initandlisten] versão de base de dados v2.2.3, pdfile versão 4.5 Qui 5 Set 14:25:47 [initandlisten] git versão: nogitversion Qui 5 Set 14:25:47 [initandlisten] informações de build: Linux buildvm-09.phx2.fedoraproject.org 2.6.32-358.2.1.el6.x86_64 #1 SMP Qua 20 Fev 12:17:17:07:00 37 EST 2013 x86_64 BOOST_LIB_VERSION=1_41 Qui 5 Set 14:25:47 [initandlisten] opções: { dbpath: "/var/lib/mongodb", reparo: true } Qui 5 Set 14:25:47 [initandlisten] **** Qui 5 Set 14:25:47 [initandlisten] ***** Qui 5 Set 14:2:2 5:47 [initandlisten] preciso atualizar o banco de dados sugatest com pdfile versão 4.5, nova versão: 4.5 qui 5 set 14:25:47 [initandlisten] iniciando atualização Qui 5 Set 14:25:47 [initandlisten] sugatest repairDatabase sugatest qui 5 set 14:25:48 [FileAllocator] alocando novo arquivo de dados /var/lib/mongodb/_tmp_repairDatabase_0/sugatest.ns, preenchendo com zeros... Omitido Qui 5 Set 14:25:50 [initandlisten] índice de build concluído. Escaneado 34 registros no total. 0 segs Qui 5 Set 14:25:50 [initandlisten] build index devlab_db.lanternKeywordStats { palavra-chave: 1 } Qui 5 Set 14:25:50 [initandlisten] fastBuildIndex dupsToDrop:0 Qui 5 Set 14:25:50 [initandlisten] build index concluído. escaneei 2 registros no total. 0 segundos Qui 5 Set 14:25:50 [init and listen] terminou de checar os dbs Qui 5 Set 14:25:50 dbexit: Qui 5 Set 14:25:50 [init and listen] desligamento: vou fechar as tomadas de escuta... Qui 5 Set 14:25:50 [init and listen] desligamento: vou limpar o diaglog... Qui 5 Set 14:25:50 [init and listen] desligamento: vou fechar as tomadas... Qui 5 Set 14:25:50 [init and listen] desligamento: aguardando o fs pré-alocador... Qui 5 Set 14:25:50 [init e listen] desligamento: fechamento de todos os arquivos... Qui 5 Set 14:25:50 [initandlisten] closeAllFiles() finalizado Qui 5 Set 14:25:50 [initandlisten] desligamento: removendo o bloqueio FS... Qui 5 Set 14:25:50 dbexit: realmente empolgante agora[/shell]
Os reparos foram realizados como os mencionados acima,
Tentei iniciar, mas ainda não apareceu, então olhei os logs e encontrei uma descrição de que havia um problema com permissões.
[shell]Qui 5 Set 14:31:35 [initandlisten] não consegui abrir /var/lib/mongodb/sugatest.ns errno:13 Permissão negada Qui 5 Set 14:31:35 [initandlisten] erro não foi possível abrir o arquivo /var/lib/mongodb/sugatest.ns terminando[/shell]
Quando verifiquei, as permissões eram diferentes de antes do reparo, então corrigi as permissões.
[shell]# ll total 688160 drwxr-xr-x 2 raiz raiz 4096 Set 5 Set 14:00 25 2013 devlab_db -rw------- 1 raiz raiz 67108864 5 Set 14:00 25 2013 devlab_db.0 -rw------- 1 raiz raiz 134217728 5 Set 2013 14:25 2013 devlab_db.1 -rw------- 1 raiz raiz 16777216 5 Set 14:25 2013 devlab_db.ns drwxr-xr-x 2 mongodb mongodb 4096 2 2 de maio 15:50 2013 diário -rwxr-xr-x 1 mongodb mongodb 0 set. 5 14:31 2013 mongod.com travar drwxr-xr-x 2 raiz raiz 4096 5 set. 14:5 set. 25 2013 sugatest -rw------- 1 raiz raiz 67108864 5 Set 14:25 2013 sugatest.0 -rw------- 1 raiz raiz 134217728 5 Set 14:25 2013 sugatest.1 -rw------- 1 raiz raiz 268435456 5 Set 14:25 2013 sugatest.2 -rw------- 1 raiz raiz 16777216 5 Set 14:25 2013 sugatest.ns # chown -R mongodb. /var/lib/mongodb # serviço mongod iniciar mongod: [ OK ] # netstat -lnpt Conexões de Internet Ativas (apenas servidores) proto recv-q enviar-q endereço local endereço estrangeiro estado PID/nome do programa tcp 0 0 0 0 0.0.0:3306 0.0.0.0:* OUÇA 1234/mysqld tcp 0 0 0 0.0.0.0:8080 0.0.0.0:* OUÇA 3619/nginx tcp 0 0 0 0.0.0.0:80 0.0.0.0:* OUÇA 3619/nginx tcp 0 0 0 0 0.* 0.* OUÇA 3619/nginx tcp 0 0 0 0 0.* OUÇA 3619/nginx tcp 0 0 0 0 0.* * 0.0.0:22 0.0.0.0:* OUÇA 860/sshd tcp 0 0 0 0 0.0.0:3000 0.0.0:* OUÇA 3719/node tcp 0 0 127.0.0.0.1:25 0.0.0.0:* OUÇA 1361/master tcp 0 0 0.0.0.0:10080 0.0.0.0:* OUÇA 3619/nginx tcp 0 0 0 0 127.0.0.0.1:9000 0.0.0.0:* OUÇA 1415/php-fpm tcp 0 0 0 0 127.0.0.1:27017 0.0.0.0:* OUÇA 3989/mongod[/shell]
Parece que o Mongod também começou.
É isso por enquanto.
Sobre o início e o fim em uma eternidade, você pode lidar com isso criando um script de início ou preparando o processo de iniciação.
Foi apontado que é necessário, e eu acho que sim.
Se você só escrever um comando de inicialização no rc.local, ele não vai parar bem, e não vai parar enquanto para assim, dessa vez.
Existe a possibilidade de que um incidente ocorra.
Além disso, se for parado à força, o arquivo pid permanece não deletado e não pode ser iniciado da próxima vez.
É desejável criar um script de inicialização que escreva corretamente o processo de parar de inicialização.
Acho que é relativamente fácil fazer isso escrevendo as seções de início e fim na declaração do caso.
A pessoa responsável só volta em outubro, então vou tentar eu mesmo.
[shell]# ps -ef|grep forever root 3717 1 0 11:55 ? 00:00:00 /usr/local/bin/node /usr/local/lib/node_modules/forever/bin/monitor app.js root 4046 3495 0 15:08 pts/1 00:00:00 grep forever
vi /etc/init.d/forever ------------- #!/bin/bash # # chkconfig: 345 99 01 # descrição: script start/stop para node.js # nomedo do processo: /usr/local/bin/forever # config:
# Precisamos do arquivo /etc/delegeted.conf, mas o fornecemos no pacote, então ele # deve estar sempre lá. progname=forever lockfile=/var/lock/subsys/forever prog=/usr/local/bin/forever appdir=/usr/local/lib/src/g**** conffile=app.js export PATH=/usr/local/bin:$PATH
RETVAL=0
start() { echo -n $"Starting $progname: " cd $appdir && $prog --minUptime 1000ms --spinSleepTime 1000ms start $conffile RETVAL=$? echo [ $RETVAL = 0 ] && toque $lockfile return $RETVAL }
stop() { echo -n $"Stopping $progname: " cd $appdir && $prog stop $conffile RETVAL=$? echo [ $RETVAL = 0 ] && rm -f $lockfile return $RETVAL }
# Veja como fomos chamados. caso "$1" em start) start ;; stop) stop ;; status) $prog list RETVAL=$? ;; restart) stop start ;; condrestart) se [ -f $lockfile ]; então stop start fi ;; *) eco $"Uso: $0 {start|stop|restart|condrestart|status}" saída 1 esac
Sair $RETVAL -------------------------------- # chmod +x /etc/init.d/forever # chkconfig --add forever # chkconfig --list forever forever 0:off 1:off 2:off 3:on 4:on 5:on 6:off[/shell]
Parece que agora pode ser iniciado com um script de inicialização. (Sinto que a pessoa responsável precisa confirmar se a localização do app a ser iniciado está correta.)
[shell]# serviço para sempre começar Começando para sempre: info: Arquivo processando para sempre: app.js
# forever list info: Processos eternos rodando dados: script de comando uid forever pid logfile dados de uptime: [0] 9XwM /usr/local/bin/node app.js 3816 3818 /root/.forever/9XwM.log 0:0:0:7.578[/shell]
Estou preocupado com muitas coisas que ficaram paradas, então vou tentar reiniciar em caráter experimental.
Sinto que teria sido melhor apertar o comando de desligar do que pelo navegador.
[shell]# reboot[/shell]
Faça login novamente
[shell]# tempo de funcionamento 15:55:26 upload 0 min, 1 usuário, média de carga: 0,41, 0,11, 0,03
# netstat -lnpt Conexões Ativas de Internet (apenas servidores) Proto Recv-Q Send-Q Endereço Local Estado do Endereço Estrangeiro PID/Nome do programa tcp 0 0 0 0.0.0:3306 0.0.0.0:* OUÇA 1227/mysqld tcp 0 0 0 0.0.0.0:8080 0.0.0.0:* OUÇA 1423/nginx tcp 0 0 0 0.0.0.0:80 0.0.0.0:* OUÇA 1423/nginx tcp 0 0 0.0.0.0.0 0.0.0:22 0.0.0.0:* OUÇA 853/sshd tcp 0 0 0 0.0.0.0:3000 0.0.0.0:* OUÇA 1459/node tcp 0 0 127.0.0.1:25 0.0.0.0:* OUÇA 1347/master tcp 0 0 0.0.0.0:10080 0.0.0.0:* OUÇA 1423/nginx tcp 0 0 0 127.0.0.0.1:9000 0.0.0.0:* OUÇA 1401/php-fpm tcp 0 0 127.0.0.1:27017 0.0.0.0:* OUÇA 783/mongod[/shell]
Parece que começou a ligar normalmente mesmo depois de reiniciar.
Parece que você pode verificar o método de solução de problemas quando a verificação de status falha após a inicialização pelo link abaixo.
http://docs.aws.amazon.com/ja\_jp/AWSEC2/latest/UserGuide/TroubleshootingInstances.html
・Lições aprendidas desta vez:
Eu achava que o dettach da força era a carta na manga quando você não começava.
Ao parar, você vai esperar a AWS fazer a limpeza, então certifique-se de fazer uma AMI com isso.
Depois de adicionar algo adicional, é melhor configurar um mecanismo de inicialização automática e testar o reinício do sistema operacional (ou gerenciá-lo com o Chef ou testar com o Serverspec).
Antes da manutenção da AWS, é melhor criar um AMI e torná-lo replicável, e desligar o -h agora em vez de parar pelo navegador.
O fórum da AWS parece ser mais responsivo quando se usa inglês.
Pessoalmente, não acho particularmente incomum que o mesmo demônio não apareça direito.
Foi a primeira vez que uma instância da AWS não parava, então aprendi que nem sempre para bem.
Obrigado por assistir ao que foi dito acima.