
РЕШЕНО Мне нужен ATOP для установки на EC2 экземпляров, когда машины развертываются из Beanstalk. У службы поддержки AWS была только ссылка ниже, но она не показывает, как развернуть в файлах конфигурации ebextensions. Кто-нибудь уже сделал это и создал файл конфигурации? Спасибо! -->https://www.tecmint.com/how-to-install-atop-to-monitor-logging-activity-of-linux-system-processes/
{{Редактировать 23.03.18}}
Пока что работаю над этим самостоятельно, вот что имею. Работает не полностью, но все еще работаю над этим.
packages:
rpm:
epel: https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
container_commands:
1_rpm_atop:
command: "sudo /bin/rpm -i --replacepkgs
https://www.atoptool.nl/download/atop-2.3.0-1.el6.x86_64.rpm"
2_add_atop:
command: "/sbin/chkconfig --add atop"
leader_only: true
3_add_atop:
command: "/sbin/chkconfig atop on --level 235"
leader_only: true
4_config_atop:
command: "/bin/sed 's/600/60/' /usr/share/atop/atop.daily -i"
leader_only: true
5_link:
command: "/bin/ln -sfn /var/log/atop /var/app/current/wp-content/uploads/atop"
leader_only: true
6_start:
command: "/etc/init.d/atop start"
leader_only: true
решение1
С помощью замечательного Яо из технической поддержки AWS Beanstalk мы смогли создать файл, который устанавливает ATOP на все экземпляры. Кроме того, он записывает отдельные журналы экземпляров в мой уже существующий каталог файлов EFS с символической ссылкой, чтобы журналы сохранялись при масштабировании и развертываниях машин. Это работает сейчас в моем развертывании dev. Если вы ничего не услышите, это будет означать, что это будет работать и в production примерно через неделю. Вот содержимое, измененное для моего развертывания Wordpress. Наслаждайтесь!
container_commands:
1_install_config_atop:
command: /tmp/installatop.sh
files:
"/tmp/installatop.sh":
mode: "000755"
content : |
#!/bin/bash
#############################################
ATOPLOGDEST=/var/app/current/wp-content/uploads/atop/ #where to persist the atop log
LOGFILE=/tmp/atopinstall.log #installaton log
##############################################
INSTANCEID=$(curl http://169.254.169.254/latest/meta-data/instance-id/)
exec 1>&- # close stdout
exec 2>&- # close stderr
echo "========" >> $LOGFILE
date >> $LOGFILE
echo "starting" >> $LOGFILE
echo "---- Step 1, install atop" >> $LOGFILE
echo "check if atop is installed" >> $LOGFILE
rpm -q atop >> $LOGFILE
if [ $? -ne 0 ]
then
echo "atop not installed yet" >> $LOGFILE
rpm -i https://www.atoptool.nl/download/atop-2.3.0-1.el6.x86_64.rpm
rpm -q atop >> $LOGFILE
echo "now installed" >> $LOGFILE
fi
echo "---- step 2, config atop in chkconfig" >> $LOGFILE
/sbin/chkconfig --add atop
/sbin/chkconfig atop on --level 235
echo "this is the output of chkconfig" >> $LOGFILE
/sbin/chkconfig | grep atop >> $LOGFILE
echo "---- setp 3, config atop's schedule to 60 seconds" >> $LOGFILE
/bin/sed 's/600/60/' /usr/share/atop/atop.daily -i
cat /usr/share/atop/atop.daily | grep "INTERVAL=" >> $LOGFILE
echo "---- step 4, presistent it in EFS" >> $LOGFILE
mkdir -p $ATOPLOGDEST$INSTANCEID
/bin/sed "s|/var/log/atop|$ATOPLOGDEST$INSTANCEID|" /usr/share/atop/atop.daily -i
cat /usr/share/atop/atop.daily | grep "LOGPATH=" >> $LOGFILE
stat $ATOPLOGDEST$INSTANCEID >> $LOGFILE
echo "---- step 5, restart atop" >> $LOGFILE
/etc/init.d/atop restart
sleep 5
ps aux | grep atop >> $LOGFILE
echo "---- finished!" >> $LOGFILE
date >> $LOGFILE
echo "========" >> $LOGFILE
решение2
Я не уверен, но я думаю, что если бы вы запустили этот curl url из CLI экземпляра AWS, он вернет идентификатор экземпляра, из которого вы звоните. Один из способов, которым он это использует, — это создание каталогов журналов с идентификатором экземпляра в качестве имени папки, чтобы их можно было регистрировать и извлекать для каждого экземпляра, который запускает ATOP.