Как отслеживать память, используемую конкретным процессом в AWS cloudwatch?

Я хочу контролировать память, используемую конкретным процессом под cloudwatch на AWS. Должен ли я использовать скрипт для этого? Если да, дайте мне знать шаги или некоторые рекомендации или я могу использовать cloudwatch logs сообщить о памяти, используемой конкретным процессом в режиме реального времени? Расскажи мне и о других вариантах.

3 ответов


да, вам понадобится скрипт, который выполняется на экземпляре, который вы хотите отслеживать. Cloudwatch по умолчанию может сообщать только о том, что он может "видеть" на уровне гипервизора, а не о том, что происходит "внутри", поэтому вам нужно создать и сообщить "пользовательские метрики".

вот некоторые указатели скриптов Linux: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html

и некоторые для окна: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts-powershell.html


поместите это в файл с именем 001initial.config в вашем .папка ebextensions вашего ведра s3, которое вы используете для своего приложения ver. Это позволит установить мониторинг и настроить его как задание cron. Обратите внимание на модули perl, которые устанавливаются. Вы захотите ssh в свой ящик и протестировать сценарий.

перейдите в безопасность и обновите свою роль iam для экземпляра ec2 с правами CloudWatch. Обязательно установите флажок для роли, а затем нажмите его, чтобы получить права страница.

Как только вы узнаете, что мониторинг запущен, перейдите на страницу cloud watch и с самой первой страницы введите System / Linux и найдите это, и он покажет вам статистику диска и памяти.

--- 
files:
  "/etc/cron.d/my_cron":
    mode: "000644"
    owner: root
    group: root
    content: |
      # run a cloudwatch command every five minutes (as ec2-user)
      */5 * * * * ec2-user ~/aws-scripts-mon/mon-put-instance-data.pl --mem-util --mem-used --mem-avail --disk-space-util --disk-path=/ --from-cron
encoding: plain
commands:
  # delete backup file created by Elastic Beanstalk
  clear_cron_backup:
    command: rm -f /etc/cron.d/watson.bak
container_commands:
    02download:
        command: "curl http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip -O"
        ignoreErrors: true
    03extract:
        command: "unzip CloudWatchMonitoringScripts-1.2.1.zip"
        ignoreErrors: true
    04rmzip:
        command: "rm rm CloudWatchMonitoringScripts-1.2.1.zip"
        ignoreErrors: true
    05cdinto:
        command: "mv aws-scripts-mon/ /home/ec2-user"
        ignoreErrors: true
packages: 
    yum: 
        perl-Switch : []
        perl-URI: [] 
        perl-Bundle-LWP: []
        perl-DateTime: [] 
        perl-Sys-Syslog: []
        perl-LWP-Protocol-https: []

хотя причина, приведенная @EJBrennan в его ответе, верна,более недавнее обновление этого вопроса - просто установить скрипты, как это предусмотрено в этой отличной документации от AWS

AWS Documentation for Memory & Disk Metrics

поэтому вам нужно

  1. установите скрипты на свой сервер EC2
  2. поместите журналы в Cloudwatch с помощью ./mon-put-instance-data.pl --mem-util --mem-used-incl-cache-buff --mem-used --mem-avail
  3. настройка панели мониторинга в ваши cloudwatch, чтобы увидеть показатели.

кроме того, можно также настроить задание хрона для получения метрик на периодической основе.

надеюсь, что это поможет