Файл конфигурации для развертывания ATOP на AWS Elastic Beanstalk
РЕШЕНО Мне нужен ATOP для установки на EC2 тех случаев, когда машины развертываются из Beanstalk. Служба поддержки AWS имела только приведенную ниже ссылку, но она не показывает, как выполнить развертывание в файлах конфигурации ebextensions. Кто-то уже сделал это и уже сделал конфигурационный файл? Спасибо! -> https://www.tecmint.com/how-to-install-atop-to-monitor-logging-activity-of-linux-system-processes/
{{Edit 3/23/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
2 ответа
С помощью замечательного Yao от службы технической поддержки AWS Beanstalk нам удалось создать файл, который устанавливает ATOP во всех случаях. Кроме того, он записывает отдельные журналы экземпляров в мой уже существующий каталог файловых файлов EFS с символьной связью, чтобы журналы сохранялись при масштабировании и развертывании на компьютере. Это работает сейчас в моей разработке dev. Если вы больше ничего не услышите, это будет означать, что он работает на производстве примерно через неделю. Вот содержание, настроенное для моего развертывания 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
Я не уверен, но я думаю, что если вы запустите этот URL-адрес curl из CLI экземпляра AWS, он вернет идентификатор экземпляра, из которого вы звоните. Одним из способов использования этого является создание каталогов журналов с идентификатором экземпляра в качестве имени папки, чтобы их можно было регистрировать и получать для каждого экземпляра, на котором выполняется ATOP.