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

  1. ランチャースクリプトを管理するためのsystemd設定を作成します。

ライセンス

BSD

プロジェクトについて

Set up the AWS CloudWatch Logs Agent from scratch.

インストール
ansible-galaxy install tartansandal.awslogs-setup
ライセンス
Unknown
ダウンロード
331
所有者