- awslogs/awslogsd
1 2 3 4 5 6 |
#!/bin/sh # Version: 1.1.2-rpm echo -n $$ > /var/run/awslogs.pid exec 5</var/run/awslogs.pid [ -f /etc/awslogs/proxy.conf ] && . /etc/awslogs/proxy.conf exec /usr/bin/env -i HTTPS_PROXY=$HTTPS_PROXY HTTP_PROXY=$HTTP_PROXY NO_PROXY=$NO_PROXY AWS_CONFIG_FILE=/etc/awslogs/awscli.conf HOME=/root /bin/nice -n 4 /usr/bin/aws logs push --config-file /etc/awslogs/awslogs.conf --additional-configs-dir /etc/awslogs/config >> /var/log/awslogs.log 2>&1 |
- Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
RUN apt update && \ apt -y upgrade && \ apt -y install \ curl \ groff-base \ openssl \ python2 \ python3.10-venv \ supervisor \ unzip \ vim ~省略~ # Install aws-cli RUN curl https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py RUN python3 /tmp/get-pip.py RUN pip3 install awscli awscli-cwlogs --upgrade RUN ln -s /usr/local/bin/aws /usr/bin/aws # Install awslogs RUN mkdir -p /etc/awslogs /var/lib/awslogs COPY awslogs/awslogs.conf /etc/awslogs/awslogs.conf COPY awslogs/awscli.conf /etc/awslogs/awscli.conf COPY awslogs/awslogsd /usr/sbin/awslogsd RUN chmod 755 /usr/sbin/awslogsd RUN curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -o /tmp/awslogs-agent-setup.py RUN python2 /tmp/awslogs-agent-setup.py -n -r ap-northeast-1 -c /etc/awslogs/awslogs.conf RUN mv /var/awslogs/etc/* /etc/awslogs/ && rm -rf /etc/awslogs/aws.conf ## Setting supervisor COPY supervisor/supervisord.conf /etc/supervisord.conf COPY supervisor/app.conf /etc/supervisord.d/app.conf # Service to run CMD ["/usr/bin/supervisord"] |
- supervisor/app.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[supervisord] nodaemon=true ~省略~ [program:awslogs] command=/usr/sbin/awslogsd autostart=true autorestart=true stopsignal=TERM user=root stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 |
awslogsdはaws-cli v1コマンドが必須になる。また、awslogsの設定ファイルはデフォルトで /var/awslogs/etc/
配下になる。起動スクリプトは /var/awslogs/bin/awslogs-agent-launcher.sh
にて実行される。管理が煩雑になるため、 /etc/awslogs
配下で管理するように作ればOK。必要なパッケージは groff-base
、python3.10-venv
となる。さらにawslogsのインストールは敢えてPython2で実行しているが、supervisorにより最新のPython3がインストールされているので、以下のようにエラーが出てしまう。
ERROR: This script only supports python version 2.6 – 3.5
- awslogsインストール
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html
Was this helpful?
0 / 0
1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。