Monitorando sistemas AWS atrás de ElasticBeanStalk

4

Por isso, estou criando uma empresa no Amazon Cloud - criando o protocolo IAAS / soluções / implementação padronizada, etc, além de ser o SysAdmin para sistemas individuais, ambientes de aplicativos e o tempo de atividade diário.

Um dos maiores problemas que estou tendo é o acompanhamento de vários registros de sistema / aplicativo, bem como as métricas de sistema de registro / monitoramento / arquivamento, como uso de memória, uso de CPU, etc etc de forma centralizada. Por exemplo. - > Nagios + Urchin.

O maior impedimento para meus esforços é o seguinte:

O aplicativo da empresa é implantado na forma de um arquivo Java * .WAR, carregado em um ambiente de aplicativo Elastic BeanStalk, balanceamento de carga e escalonamento automático entre 3 (min) e 10 (máx.) servidores e o EC2 que é executado o aplicativo é acionado e descartado de ad-hoc.

Ou seja, não posso monitorar o EC2 individual por muito tempo, porque muitos estão sendo encerrados e, em seguida, provisionados automaticamente / com escalonamento automático - de modo a estar constantemente tendo que "monitorar o que eu estou monitorando ", e continuamente removo / adiciono endereços de máquinas EC2 às minhas listas de monitoramento.

Existe alguma maneira de usar ferramentas de monitoramento como o Zabbix ou o Nagios para monitorar o ElasticBeanStalk, e adicionar automaticamente novos EC2s e remover EC2s finalizados / com falha da lista de monitoramento automaticamente?

Além disso, há algo que eu possa fazer com o GrayLog para obter resultados semelhantes com a agregação / centralização de meus logs de aplicativos de várias instâncias do EC2 em UM conjunto consolidado de logs / eventos? Se não for o GrayLog, existe QUALQUER COISA que possa detectar automaticamente quais membros do EC2 estão sendo adicionados / removidos do ambiente e coletar os logs deles automaticamente?

Qualquer conselho ou direção é apreciado.

Muito obrigado, e vivas !!

    
por A. Avadis 11.10.2012 / 21:56

3 respostas

2

Se você estiver implantando um WAR no pé de fibra elástico, poderá instalar as métricas criando um arquivo de configuração na pasta .ebextensions, em WEB-INF. Consulte o link a seguir para obter mais informações sobre configuração e uso da instância: - link

Para instalar métricas de disco / memória, é necessário instalar o "Scripts de monitoramento do Amazon CloudWatch para Linux" - consulte o link

files:
  "/opt/aws/cwms/CloudWatchMonitoringScripts.zip":
    mode: "000777"
    owner: ec2-user
    group: ec2-user
    source:  http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.zip
container_commands:
  01_unzip_cloud_watch_zip: 
    command: unzip -d /opt/aws/cwms /opt/aws/cwms/CloudWatchMonitoringScripts.zip
    ignoreErrors: true
  02_update_password_file:
    command: sed -i 's/Key=$/Key=<VALUE OF YOUR SECRET KEY>/;s/KeyId=$/KeyId=<VALUE OF YOUR ACCESS ID>/' /opt/aws/cwms/awscreds.conf
  03_update_crontab:    
    command: echo "*/1 * * * * /opt/aws/cwms/mon-put-instance-data.pl --mem-util --disk-path=/ --disk-space-util --from-cron" | crontab - -u ec2-user

Basicamente, o que este script faz é baixar o CloudWatchMonitoringScripts.zip baseado em Linux em uma pasta como / opt / aws / cwms (isso pode estar em qualquer lugar). Os comandos então descompactam o arquivo, atualizam a chave de acesso / segredo (usando o comando "sed") e finalmente criam a guia crontab.

Cuidado com a seção da guia crontab, já que isso poderia acabar com as entradas existentes do crontab.

UPDATE (FEB 2016)

Aqui está um script atualizado que está funcionando muito bem a partir de fevereiro de 2016 (veja link ).

sources: 
  /opt/cloudwatch: http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.zip

commands:
  00-installpackages:
    command: yum install -y perl-Switch perl-Sys-Syslog perl-LWP-Protocol-https

container_commands:
  01-setupcron:
    command: |
      echo '* * * * * root perl /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl '{"Fn::GetOptionSetting" : { "OptionName" : "CloudWatchMetrics", "DefaultValue" : "--mem-used --memory-units=megabytes --mem-util --disk-space-util --disk-space-used --disk-space-avail --disk-path=/" }}' >> /var/log/cwpump.log 2>&1' > /etc/cron.d/cwpump
  02-changeperm:
    command: chmod 644 /etc/cron.d/cwpump
  03-changeperm:
    command: chmod u+x /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl

option_settings:
  "aws:autoscaling:launchconfiguration" :
    IamInstanceProfile : "MonitorRole"
  "aws:elasticbeanstalk:customoption" :
    CloudWatchMetrics : "--mem-used --memory-units=megabytes --mem-util --disk-space-util --disk-space-used --disk-space-avail --disk-path=/"

NOTA: Você deve ter uma função do IAM chamada MonitorRule no lugar. É política de papel deve ser o seguinte (também consulte link

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "cloudwatch:PutMetricData",
        "ec2:DescribeTags"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ]
    }
  ]
}
    
por 15.01.2014 / 13:01
0

Estamos usando o EC2, S3, etc, mas ainda não o ElasticBeanStalk. Eu posso te dar algumas sugestões e idéias ...

Cloudwatch: Usamos o CloudWatch da Amazon AWS, o que fornece bons detalhes sobre nossas instâncias do EC2. A configuração de monitoramento é muito simples e as coisas GUI .. Nenhum script ou qualquer coisa necessária. O guia de primeiros passos do Cloudwatch fornecerá muitas informações sobre o CLI, mas o developerGuide fornece as informações exatas de que precisaremos: link link

Encontrei este link no fórum do Amazon ElasticBeanStack: - link

  • Verifique também este fórum - "Fórum do Amazon ElasticBeanStack" link
por 14.10.2012 / 11:16
0

Para o uso do disco do beanstack Elastic, é possível ativar as métricas de instância do watch watch CloudFileSysmtemUtil. Isso está disponível na seção Configuração da saúde do bean de feijão Elastic. Há uma seção "Relatório de integridade" na configuração "Integridade". Por favor, selecione a opção RootFileSysmtemUtil e salve a configuração.

Agora, se você acessar as métricas do ElasticBeanstack do CloudWatch, poderá ver as novas métricas.

    
por 29.12.2015 / 08:53