Итак, я создаю компанию в облаке Amazon - создаю протокол / решения / стандартизированную реализацию IAAS и т. Д., А также являюсь системным администратором для отдельных систем, сред приложений и повседневной работы.
Одна из самых больших проблем, с которыми я сталкиваюсь, - это отслеживание различных журналов системы / приложений, а также таких показателей системы, как использование памяти, использование ЦП и т. Д., И т. Д. Централизованно. Например. -> Nagios + Urchin.
САМОЕ БОЛЬШОЕ препятствие для моих усилий заключается в следующем:
Приложение компании развертывается в виде файла Java * .WAR, загруженного в среду приложения Elastic BeanStalk, с балансировкой нагрузки и автоматическим масштабированием между 3 (мин.) И 10 (макс.) Серверами, а EC2, на которых выполняется приложение, - загорелся и утилизировал ad-hoc.
То есть я не могу очень долго отслеживать отдельные EC2, потому что многие из них прерываются, а затем автоматически настраиваются / автоматически масштабируются на лету, поэтому мне постоянно приходилось «контролировать то, что я отслеживаю. ", и постоянно удалять / добавлять адреса компьютеров EC2 в мои списки мониторинга.
Есть ли какой-то способ использовать инструменты мониторинга, такие как Zabbix или Nagios, для мониторинга ElasticBeanStalk, и чтобы он автоматически добавлял новые EC2 и автоматически удалял завершенные / неисправные EC2 из своего списка мониторинга?
Кроме того, могу ли я что-нибудь сделать с GrayLog для достижения аналогичных результатов с агрегированием / централизацией моих журналов приложений из нескольких экземпляров EC2 в ОДИН консолидированный набор журналов / событий? Если не GrayLog, существует ли НИЧЕГО ПОДОБНОЕ GrayLog, который может автоматически определять, какие члены EC2 добавляются / удаляются из среды, и автоматически собирать журналы из них?
Любые советы или указания приветствуются.
Большое спасибо и ура !!
Если вы развертываете WAR на эластичном beanstalk, вы можете установить метрики, создав файл конфигурации в папке .ebextensions в WEB-INF. См. Следующую ссылку для получения дополнительной информации о настройке и использовании этого экземпляра: - http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers.html
Для установки показателей диска / памяти необходимо установить «Сценарии мониторинга Amazon CloudWatch для Linux» - см. http://aws.amazon.com/code/8720044071969977
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
В основном этот сценарий загружает файл CloudWatchMonitoringScripts.zip на базе Linux в папку, например / opt / aws / cwms (это может быть где угодно). Затем команды распаковывают файл, обновляют ключ доступа / секретный ключ (с помощью команды "sed") и, наконец, создают вкладку crontab.
Будьте осторожны с разделом вкладки crontab, так как он потенциально может стереть существующие записи crontab.
ОБНОВЛЕНИЕ (ФЕВРАЛЬ 2016)
Вот обновленный сценарий, который у меня неплохо работает по состоянию на февраль 2016 г. (см. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-cw.html).
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=/"
ПРИМЕЧАНИЕ. У вас должна быть роль IAM с именем MonitorRule
на месте. Его ролевая политика должна быть следующей (см. Также http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-cw.html):-
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"cloudwatch:PutMetricData",
"ec2:DescribeTags"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
]
}
Для использования диска Elastic beanstack вы можете включить метрики экземпляра облачного наблюдения RootFileSysmtemUtil. Это доступно в разделе конфигурации Health Elastic beanstalk. В конфигурации «Здоровье» есть раздел «Отчеты о работоспособности». Выберите параметр RootFileSysmtemUtil и сохраните конфигурацию.
Теперь, если вы перейдете к метрикам CloudWatch ElasticBeanstack, вы увидите новые метрики.
Мы используем EC2, S3 и т. Д., Но еще не ElasticBeanStalk. я могу дать вам несколько предложений и идей ...
Cloudwatch: Мы используем CloudWatch от Amazon AWS, который дает довольно подробную информацию о наших инстансах EC2. Настройка мониторинга очень проста и имеет графический интерфейс .. Никаких сценариев или чего-либо еще. Руководство по началу работы с Cloudwatch предоставит много информации о CLI, но developerGuide дает точную информацию, которая нам понадобится: http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/AlarmThatSendsEmail.html http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/choosing_your_cloudwatch_interface.html
Я нашел эту ссылку на форуме Amazon ElasticBeanStack: - http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/using-features.healthstatus.html