RaspberryPi AWS CloudWatchへのLog転送

RaspberryPiよりAWS CloudWatchへのLog転送

とらくらのインフラエンジニア、たむです。

RaspberryPiでサーバーを運用する場合に、ログ管理が必要で、転送先がログサーバーではなくCloudWatchへの転送を設定しなければいけないこともあるかと思います。

本記事では、そのRaspberryPiのシステムログをCloudWatchへ転送するCloudWatchLogsの設定を記載します。他のLinux系のオンプレサーバーへも同じような手順で設定出来ますので、参考にしてください。

ログサーバーを構築し管理するよりは、AWSのCloudWatchの方がブラウザベースで管理出来ますので、馴染みやすく、管理し易いかもしれません。

また、ログサーバーの障害を考えると、CloudWatchの方が耐障害性が高いので、障害のことを考えるのであれば、おススメします。

CloudWatch ロググループ

設定項目

  • IAM設定
    – ポリシー
    – ユーザー
  • OS設定

IAM設定(ポリシー)

  1. AWSのIAMを開きます。
  2. 左ペインより「ポリシー」をクリックし、左上の「ポリシーを作成」をクリックします。IAM ポリシー
  3. 「JSON」タブをクリックし、以下の内容に書き換え、右下の「次のステップ:タグ」をクリックします。IAM ポリシー作成 JSON
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "logs:CreateLogGroup",
            "logs:CreateLogStream",
            "logs:PutLogEvents",
            "logs:DescribeLogStreams"
          ],
          "Resource": [
            "*"
          ]
        }
      ]
    }
  4. 右下の「次のステップ:確認」をクリックします。もしタグが必要な場合は、「タグを追加」をクリックし設定してください。IAM ポリシー作成 タグ
  5. 「ポリシーの確認」で名前の欄にポリシー名を記載し「ポリシーの作成」をクリックし、ポリシーを作成します。IAM ポリシー作成 名前

IAM設定(ユーザー)

  1. AWSのIAMを開きます。
  2. 左ペインより「ユーザー」をクリックし、右上の「ユーザーを追加」をクリックします。IAM ユーザー トップ
  3. ユーザー名の欄にユーザー名を記載し、「アクセスキー-プログラムによるアクセス」にチェックを入れ、「次のステップ:アクセス権限」をクリックします。IAM ユーザー作成 ユーザー名
  4. 「アクセス許可の設定」で「既存のポリシーを直接アタッチ」をクリックし、上記で作成したポリシーをチェックし「次のステップ:タグ」をクリックします。
    ※ここでポリシーを作成することも可能です。IAM ユーザー作成 ポリシー
  5. .右下の「次のステップ:確認」をクリックします。もしタグが必要な場合、「タグを追加」をクリックし設定してください。IAM ユーザー作成 タグ
  6. 確認画面で内容を確認し「ユーザーの作成」をクリックし、ユーザーを作成します。IAM ユーザー作成 確認
  7. ユーザー作成が成功しましたら、次の画面で、「アクセスキーID」および「シークレットアクセスキー」が表示(シークレットアクセスキーは「表示」をクリックすると表示されます。)されますので、メモします。IAM ユーザー作成 アクセスキー

OS設定

  1. ラズパイへログインし、rootユーザーになります。
  2. 以下のコマンドを実行し、AWSより「awslogs-agent-setup.py」と「AgentDependencies.tar.gz」をダウンロードします。
    wget https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py
    wget https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/AgentDependencies.tar.gz
  3. 以下のコマンドを実行し、圧縮されたデータを解凍します。
    tar xvf AgentDependencies.tar.gz
  4. 以下のコマンドを実行し、CloudWatch Logs送信設定を実施します。途中、上記で設定した「ユーザーのアクセスキーID」および「シークレットアクセスキー」が聞かれますので、メモした内容を入力してください。また、送信したいログ設定も聞かれます。
    python ./awslogs-agent-setup.py --region [リージョン指定] --dependency-path AgentDependencies

    以下、コマンドを実行したときの内容となります。

    root@raspberrypi:~# python ./awslogs-agent-setup.py --region ap-northeast-1 --dependency-path AgentDependencies
    Launching interactive setup of CloudWatch Logs agent ...
    
    Step 1 of 5: Installing pip ...DONE
    
    Step 2 of 5: Downloading the latest CloudWatch Logs agent bits ... DONE
    
    Step 3 of 5: Configuring AWS CLI ...
    AWS Access Key ID [********************]: [ユーザーのアクセスキーIDを入力]
    AWS Secret Access Key [********************]: [シークレットアクセスキーを入力]
    Default region name [ap-northeast-1]: [コマンド実行時のリージョンと同じのためEnter]
    Default output format [None]: [Enter]
    
    Step 4 of 5: Configuring the CloudWatch Logs Agent ...
    Path of log file to upload [/var/log/syslog]: [送信したいログを指定]
    Destination Log Group name [/var/log/syslog]: [CloudWatchのロググループ名を指定]
    
    Choose Log Stream name:
    1. Use EC2 instance id.
    2. Use hostname.
    3. Custom.
    Enter choice [1]: 2 [例ではホスト名を指定 『1』はEC2インスタンスのみ指定可能]
    
    Choose Log Event timestamp format:
    1. %b %d %H:%M:%S (Dec 31 23:59:59)
    2. %d/%b/%Y:%H:%M:%S (10/Oct/2000:13:55:36)
    3. %Y-%m-%d %H:%M:%S (2008-09-08 11:52:54)
    4. Custom
    Enter choice [1]: 1 [送信したいログ内容のタイムスタンプの記載を指定]
    
    Choose initial position of upload:
    1. From start of file.
    2. From end of file.
    Enter choice [1]: 1 [ログデータのアップロード位置を指定]
    More log files to configure? [Y]: n [他に送信したいログがある場合は「Y」設定を終了したい場合は「n」を入力]
    
    Step 5 of 5: Setting up agent as a daemon ...DONE
    
    ------------------------------------------------------
    - Configuration file successfully saved at: /var/awslogs/etc/awslogs.conf
    - You can begin accessing new log events after a few moments at https://console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#logs:
    - You can use 'sudo service awslogs start|stop|status|restart' to control the daemon.
    - To see diagnostic information for the CloudWatch Logs Agent, see /var/log/awslogs.log
    - You can rerun interactive setup using 'sudo python ./awslogs-agent-setup.py --region ap-northeast-1 --only-generate-config'
    ------------------------------------------------------
  5. しばらくして、CloudWatchのロググループに表示されれば、設定完了です。

参考サイト

クイックスタート: 実行中の EC2 Linux インスタンスに CloudWatch Logs エージェントをインストールして設定する
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html

最短でAWSを習得したい方におすすめ!
オンラインスクール「とらくら」

当ブログを運営しているオンラインスクール「とらくら」では、AWSを扱うために必要不可欠な主要サービスの知識を、理論学習だけでなく、環境構築をハンズオン形式で実践できるカリキュラムをご用意しています。

随時、個別の無料説明会を開催しており、講座内容や料金、受講のメリット・デメリット、業界に精通しているからこそできるエンジニアのキャリアプランや業界の情勢などを、ざっくばらんにお話します。

些細なことでも、お気軽にご相談ください。


インフラ構築コース、受講生募集中! AWS WordPress環境構築コース、受講生募集中!

投稿者プロフィール

たむ
たむ
<インフラエンジニア>
■ こんにちは!こんばんわ!「たむ」と申します。製造業からITへ転職し、インフラ、主にサーバ関連をやってきました。IT関連の学校を卒業していませんが、なんとか、サーバ技術者やってます。あっはぃ・・・

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です