見出し画像

開発コラム:GraylogでAWS各種ログの収集環境を構築する!

今回から不定期でDX推進サポーターチームの開発メンバーに記事を書いてもらうことになりました。どのような開発をしているんだろう?と気になっている方は是非チェックしてくださいね!

みなさま、はじめまして!
医療DXの開発を担当している、クラウドサービス推進部の原です。
今回はGraylogでAWS環境の各種ログを簡単に収集する方法について書かせていただきます。
医療DXの製品に関してはこちらをご覧ください↓

この記事は、2022年5月時点の情報にて制作しております。


はじめに

AWSを利用している際、各サービスが出す様々なログを一か所に集約・可視化したいと思われたことはないでしょうか?
例えばログ統合管理ソフトウェアであるGraylogを利用すると、AWSのログを集約・可視化することが可能です。
今回は、そのGraylogを利用してAWSログを収集する方法をご紹介します

Graylogとは

オープンソースのログ統合管理ソフトウェアです。
様々なログ形式やプラグインに対応しており、AWSのログを収集することも可能です。また、そのログをダッシュボードで可視化し共有することも可能です。

AWSログ収集構成

AWSサービスからログを収集する際のシステム構成例です。

AWSのアーキテクチャアイコン使用

AWS CloudTrailやAmazon GuardDutyなど各種サービスのログを一度Amazon CloudWatch Logsに出力し、Amazon Kinesis Data Streamsを経由してGraylogに取り込みます。
CloudTrail専用のプラグインでログ収集が可能ですが、今回は他のサービスのログ収集方法と合わせた汎用的な方法を取り上げます。
CloudTrailは直接ログをCloudWatch Logsに出力することが可能です。直接CloudWatch Logsに出力できないGuardDutyなどのサービスの場合は、Amazon EventBridgeやAWS Lambdaなどのサービスを経由することで出力可能です。

Graylogサーバー構築

Graylogの動作にはMongoDBとElasticsearchが必要です。
公式ドキュメント(※)に記載のdocker-compose.ymlを利用すると各ソフトウェアの連携設定まで自動で行ってくれるため、今回はその方法で構築します。
(※2022年5月時点 https://docs.graylog.org/docs/docker
構築に使用するdocker-compose.ymlの抜粋を以下に示します。
GRAYLOG_HTTP_EXTERNAL_URIのアドレス部分には、外部から接続するためGraylogを構築するサーバーのパブリックIPアドレスを設定します。
また、AWSからログを収集するためのプラグインを導入し、volumesセクションにてコンテナにマウントします。Graylogとプラグインのバージョンを合わせます。

version: '3'
services:
  mongo:
    image: mongo:4.2
    # Other Settings [...]
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
    # Other Settings [...]
  graylog:
    image: graylog/graylog:4.2
    volumes:
       - ./graylog-integrations-plugins-4.2.0/plugin:/usr/share/graylog/plugin
    environment:
      - GRAYLOG_HTTP_EXTERNAL_URI=http://XX.XX.XX.XX:9000/
    # Other Settings [...]
networks:
    graylog:
      driver: bridge

ログ収集設定

CloudWatch Logsのロググループを作成し、CloudTrailからロググループにログを出力するよう設定します。
それ以外に必要な設定はGraylogで自動セットアップすることが可能です。
自動セットアップに必要なIAMポリシーを設定し、ログを取り込むロググループ名や自動作成するKinesis Data Streams名を入力することで、自動でGraylogにCloudTrailのログが取り込まれます。

Graylogの画面キャプチャーをしています。

おわりに

今回はGraylogを利用してAWSのログを収集する方法をご紹介しました。
Graylogでは収集したログを使用して、ダッシュボードでデータを可視化することも可能です。

Graylogの画面キャプチャーをしています。

これを機にGraylogでAWSログの収集・可視化をしてみてはいかがでしょうか?
キヤノンITソリューションズでは高い技術力を元にDXにお役にたてるソリューションを多数ご用意しております。

お困りのことがありましたら、お気軽にご相談ください。

※本記事に記載されている会社名、製品名は、それぞれの会社の商標または登録商標です。

これから不定期でこのような開発に関する記事をアップする予定です。
気になるかたは是非フォローしてお待ちくださいね!

★―☆。.:*:・゜――――――――――――――――――――――――

キヤノンITソリューションズ 公式Webサイト

医療DX関連ページ