RaspberryPi AWS CloudWatchへのLog転送
RaspberryPiよりAWS CloudWatchへのLog転送
とらくらのインフラエンジニア、たむです。
RaspberryPiでサーバーを運用する場合に、ログ管理が必要で、転送先がログサーバーではなくCloudWatchへの転送を設定しなければいけないこともあるかと思います。
本記事では、そのRaspberryPiのシステムログをCloudWatchへ転送するCloudWatchLogsの設定を記載します。他のLinux系のオンプレサーバーへも同じような手順で設定出来ますので、参考にしてください。
ログサーバーを構築し管理するよりは、AWSのCloudWatchの方がブラウザベースで管理出来ますので、馴染みやすく、管理し易いかもしれません。
また、ログサーバーの障害を考えると、CloudWatchの方が耐障害性が高いので、障害のことを考えるのであれば、おススメします。
設定項目
- IAM設定
– ポリシー
– ユーザー - OS設定
IAM設定(ポリシー)
- AWSのIAMを開きます。
- 左ペインより「ポリシー」をクリックし、左上の「ポリシーを作成」をクリックします。
- 「JSON」タブをクリックし、以下の内容に書き換え、右下の「次のステップ:タグ」をクリックします。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "*" ] } ] }
- 右下の「次のステップ:確認」をクリックします。もしタグが必要な場合は、「タグを追加」をクリックし設定してください。
- 「ポリシーの確認」で名前の欄にポリシー名を記載し「ポリシーの作成」をクリックし、ポリシーを作成します。
IAM設定(ユーザー)
- AWSのIAMを開きます。
- 左ペインより「ユーザー」をクリックし、右上の「ユーザーを追加」をクリックします。
- ユーザー名の欄にユーザー名を記載し、「アクセスキー-プログラムによるアクセス」にチェックを入れ、「次のステップ:アクセス権限」をクリックします。
- 「アクセス許可の設定」で「既存のポリシーを直接アタッチ」をクリックし、上記で作成したポリシーをチェックし「次のステップ:タグ」をクリックします。
※ここでポリシーを作成することも可能です。 - .右下の「次のステップ:確認」をクリックします。もしタグが必要な場合、「タグを追加」をクリックし設定してください。
- 確認画面で内容を確認し「ユーザーの作成」をクリックし、ユーザーを作成します。
- ユーザー作成が成功しましたら、次の画面で、「アクセスキーID」および「シークレットアクセスキー」が表示(シークレットアクセスキーは「表示」をクリックすると表示されます。)されますので、メモします。
OS設定
- ラズパイへログインし、rootユーザーになります。
- 以下のコマンドを実行し、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
- 以下のコマンドを実行し、圧縮されたデータを解凍します。
tar xvf AgentDependencies.tar.gz
- 以下のコマンドを実行し、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' ------------------------------------------------------
- しばらくして、CloudWatchのロググループに表示されれば、設定完了です。
参考サイト
クイックスタート: 実行中の EC2 Linux インスタンスに CloudWatch Logs エージェントをインストールして設定する
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html
最短でAWSを習得したい方におすすめ!
オンラインスクール「とらくら」
当ブログを運営しているオンラインスクール「とらくら」では、AWSを扱うために必要不可欠な主要サービスの知識を、理論学習だけでなく、環境構築をハンズオン形式で実践できるカリキュラムをご用意しています。
随時、個別の無料説明会を開催しており、講座内容や料金、受講のメリット・デメリット、業界に精通しているからこそできるエンジニアのキャリアプランや業界の情勢などを、ざっくばらんにお話します。
些細なことでも、お気軽にご相談ください。
投稿者プロフィール
-
<インフラエンジニア>
■ こんにちは!こんばんわ!「たむ」と申します。製造業からITへ転職し、インフラ、主にサーバ関連をやってきました。IT関連の学校を卒業していませんが、なんとか、サーバ技術者やってます。あっはぃ・・・
最新の投稿
- AWS2022年2月2日Zabbix5でCloudWatch監視設定(AWS RDS)
- Backlog2021年12月20日Backlogの更新をSlackで通知する設定を入れてみた
- AWS2021年12月3日Zabbix5でAWSステータス監視設定
- AWS2021年11月30日Zabbix5でCloudWatch監視設定(EC2インスタンス)