一般社団法人 全国個人事業主支援協会

COLUMN コラム

システムの稼働が続ければ、ログファイルは継続的に作成される。

AWS上で稼働しているシステムのログは基本的にS3に格納される。S3に格納したログの監察を行いたい場合、Athenaでオンライン上でログをクエリすることもできるが、一度ログをローカルにダウンロードして、集計したい場合もある。

S3自体はオブジェクトのマージ機能を持っていないため、マージはOSコマンドやプログラムで行う必要がある。

まずS3からオブジェクトをダウンロードするについては、S3のコマンドは*で複数のオブジェクトを一括でダウンロードすることができる。

次にログのマージについては、Linuxならsortコマンドでファイルをマージできる。

例として、以下2つのログファイルがある。

shinkai@DESKTOP-TEBBMRK:~/test$ cat 1.log2
Sep 4 00:00:08 ip–10–97–55–50 dhclient[2588]: XMT: Solicit on eth0, interval 120000ms.
Sep 4 00:02:08 ip–10–97–55–50 dhclient[2588]: XMT: Solicit on eth0, interval 124910ms.
Sep 4 00:04:13 ip–10–97–55–50 dhclient[2588]: XMT: Solicit on eth0, interval 109850ms.
Sep 4 00:06:03 ip–10–97–55–50 dhclient[2588]: XMT: Solicit on eth0, interval 112380ms.

shinkai@DESKTOP-TEBBMRK:~/test$ cat 2.log2
Sep 4 00:01:01 ip–10–97–55–50 CROND[18843]: (root) CMD (run-parts /etc/cron.hourly)
Sep 4 00:01:01 ip–10–97–55–50 run-parts(/etc/cron.hourly)[18843]: starting 0anacron
Sep 4 00:01:01 ip–10–97–55–50 anacron[18853]: Anacron started on 2018–09–04
Sep 4 00:01:01 ip–10–97–55–50 anacron[18853]: Jobs will be executed sequentially<
Sep 4 00:01:01 ip–10–97–55–50 anacron[18853]: Normal exit (0 jobs run)

sortコマンドでマージすれば、自動的にタイムスタンプの順番でメッセージを1つのファイルにマージできる。

shinkai@DESKTOP-TEBBMRK:~/test$ sort -m *.log2 > result.log2
shinkai@DESKTOP-TEBBMRK:~/test$ cat result.log2
Sep 4 00:00:08 ip–10–97–55–50 dhclient[2588]: XMT: Solicit on eth0, interval 120000ms.
Sep 4 00:01:01 ip–10–97–55–50 CROND[18843]: (root) CMD (run-parts /etc/cron.hourly)
Sep 4 00:01:01 ip–10–97–55–50 run-parts(/etc/cron.hourly)[18843]: starting 0anacron
Sep 4 00:01:01 ip–10–97–55–50 anacron[18853]: Anacron started on 2018–09–04
Sep 4 00:01:01 ip–10–97–55–50 anacron[18853]: Jobs will be executed sequentially<
Sep 4 00:01:01 ip–10–97–55–50 anacron[18853]: Normal exit (0 jobs run)
Sep 4 00:02:08 ip–10–97–55–50 dhclient[2588]: XMT: Solicit on eth0, interval 124910ms.
Sep 4 00:04:13 ip–10–97–55–50 dhclient[2588]: XMT: Solicit on eth0, interval 109850ms.
Sep 4 00:06:03 ip–10–97–55–50 dhclient[2588]: XMT: Solicit on eth0, interval 112380ms.

なお、一応各ログファイルのサイズが5MB以上であれば、S3はmultipart upload機能で結合したオブジェクトを作成することができるため、大量のサイズが5MB以上のログファイルがあれば、multipart uploadでログファイルの結合を試しても良いと思う。

The following two tabs change content below.

新海 道遠

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア