tartansandal.awslogs-setup
awslogs-setup
AWS CloudWatch Logsエージェントをゼロから設定します。
類似の役割とは異なり、awslogs-agent-setup.py
スクリプトを呼び出しません。
代わりに、そのスクリプトは一連のファイル、テンプレート、Ansibleタスクに分解されており、同じ(非対話的)結果を得るために実行することができます。
これにより、エージェントのセットアップをエージェントの設定から明確に分離できます。後者は、あなたのシステムに特有のものであり、awslogs-setup
を依存関係として持つ別の役割によって処理されるべきでしょう(詳細は下記参照)。
元の awslogs-agent-setup.py
スクリプトのコピーは、参照用に /src
ディレクトリに提供されています。
要件
AWS上で動作するEC2 Linuxインスタンスで使用します。
役割変数
インストールされる aws-cli
で使用するAWSリージョンを設定する必要があります。デフォルトは以下の通りです。
awslogs_setup_region: ap-southeast-2
設定は「ランチャー」スクリプトとエージェントデーモン「ナニー」スクリプトをインストールします。これにより、エージェントが常に実行されていることを確認しようとします。これには、いくつかのシステムコマンドのパスを指定する必要があります。以下のデフォルトはほとんどの現代的なシステムで動作するはずです。
awslogs_setup_launcher_nice: /usr/bin/nice
awslogs_setup_nanny_ps: /usr/bin/ps
awslogs_setup_nanny_cat: /usr/bin/cat
awslogs_setup_nanny_grep: /usr/bin/grep
awslogs_setup_nanny_service: /usr/sbin/service
ただし、特異な(または古い)システムを使用している場合は、これらを上書きできます。
例のプレイブック
この役割は、awslogsエージェントを設定するだけです。エージェントの設定はあなたに任されています。非常にシンプルですが、あなたのシステムに特有のものになることがあります。
- hosts: servers
vars:
awslogs_setup_region: us-east-1 # またはインベントリ経由で設定
roles:
- tartansandal.awslogs-setup
handlers:
- name: restart awslogs
service: awslogs state=restarted
post_tasks:
- name: システムログファイル用にawslogsを設定
template:
src: awslogs.conf.j2
dest: /var/awslogs/etc/awslogs.conf
notify: restart awslogs
# サービスごとの設定のために /var/awslogs/etc/config/ディレクトリを使用
- name: nginxログファイル用にawslogsを設定
template:
src: nginx-awslogs.conf.j2
dest: /var/awslogs/etc/config/nginx.conf
notify: restart awslogs
上記のpost_tasks
は、awslogs-setup
を依存関係として持つ別の役割に分離することができます。
エージェントの設定に関する詳細は、http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/AgentReference.htmlを参照してください。
ToDo
- ランチャースクリプトを管理するためのsystemd設定を作成します。
ライセンス
BSD