メインコンテンツまでスキップ
Sumo Logic Japanese

Amazon Aurora MySQL ULM アプリケーションでのログとメトリクスの収集

 

このページでは、Aurora MySQL データベースから収集するログとメトリクスについて説明し、クエリの例を示すと共に、ログとメトリクスの収集をセットアップする方法を説明します。

Aurora MySQL ULM アプリケーションには、Aurora PostgreSQL データベースのログやメトリクスのモニタリングに使用できる定義済みの検索とダッシュボードが用意されています。ログにより、データベース アクティビティ、ユーザ アクティビティ、被接続数、クエリ実行時間、エラーをモニタリングできます。メトリクスにより、データベース リソースの利用状況とスループットのパフォーマンスをモニタリングできます。

このガイドでは、Aurora MySQL ULM アプリケーションで定義されているクエリやダッシュボードの概要、Aurora MySQL からログとメトリクスを収集する手順、そしてアプリケーションのインストール方法について説明します。

このページでは、Aurora MySQL データベースから収集するログとメトリクスについて説明し、クエリの例を示すと共に、ログとメトリクスの収集をセットアップする方法を説明します。リンクをクリックして、トピックに移動してください。

Amazon Aurora は、クラウド向けに構築され、MySQL と互換性のあるリレーショナル データベースです。詳細については、「Amazon Aurora MySQL の機能」を参照してください。

ログとメトリクスのタイプ

Aurora MySQL ULM 用の Sumo Logic アプリケーションは、以下のログとメトリクスを使用します。ログ タイプの詳細についてはリンクをクリックしてください。

ログの例

このセクションでは、以下のログの例を示します。

AWS CloudTrail ログの例

AWS CloudTrail ログの例を以下に示します。

{"eventVersion":"1.05","userIdentity":{"type":"IAMUser","principalId":"AIDABCDEFGH4QEWUABG5Q",
"arn":"arn:aws:iam::951234567898:user/Nitin","accountId":"951234567898","accessKeyId":"ASIABCDEFGHFBOT4FDVK",
"userName":"Nitin","sessionContext":{"attributes":{"mfaAuthenticated":"true","creationDate":
"2018-10-28T08:16:35Z"}},"invokedBy":"signin.amazonaws.com"},"eventTime":"2018-10-28T08:55:37Z",
"eventSource":"rds.amazonaws.com","eventName":"CreateDBCluster","awsRegion":"us-west-1","sourceIPAddress"
:"140.144.120.190","userAgent":"signin.amazonaws.com","requestParameters":{"backupRetentionPeriod":1,
"databaseName":"NitinSampleDB","dBClusterIdentifier":"auroramysql57dbcluster02-cluster","dBClusterParameterGroupName"
:"default.aurora-mysql5.7","vpcSecurityGroupIds":["sg-0123454e5b1da3aff"],"dBSubnetGroupName":"default-vpc-b92fc5d7",
"engine":"aurora-mysql","engineVersion":"5.7.12","port":3306,"masterUsername":"nitin","masterUserPassword":"****",
"storageEncrypted":true,"enableCloudwatchLogsExports":["audit","error","general","slowquery"],"engineMode":
"provisioned"},"responseElements":{"allocatedStorage":1,"availabilityZones":["us-west-1a","us-west-1b",
"us-west-1c"],"backupRetentionPeriod":1,"databaseName":"NitinSampleDB","dBClusterIdentifier":
"auroramysql57dbcluster02-cluster","dBClusterParameterGroup":"default.aurora-mysql5.7","dBSubnetGroup"
:"default-vpc-b92fc5d7","status":"creating","endpoint":"auroramysql57dbcluster07-cluster.cluster-cp1svq2n34sd.us-west-1.rds.amazonaws.com",
"readerEndpoint":"auroramysql57dbcluster07-cluster.cluster-ro-cp5svq2n34sd.us-west-1.rds.amazonaws.com",
"multiAZ":false,"engine":"aurora-mysql","engineVersion":"5.7.12","port":3306,"masterUsername":"nitin",
"preferredBackupWindow":"03:25-03:55","preferredMaintenanceWindow":"tue:03:58-tue:04:28","readReplicaIdentifiers":[],
"dBClusterMembers":[],"vpcSecurityGroups":[{"vpcSecurityGroupId":"sg-012345e5b1da3aff","status":"active"}],
"hostedZoneId":"Z2R2ITUGPM61AM","storageEncrypted":true,"kmsKeyId":"arn:aws:kms:us-west-1:951234567898:key/9a3d8016-4cdb-478f-a3a4-9a310fc25307",
"dbClusterResourceId":"cluster-AVPSEUMFISOMMXXVGKL4GBUC2E","dBClusterArn":"arn:aws:rds:us-west-1:951234567898:cluster:auroramysql57dbcluster02-cluster",
"associatedRoles":[],"iAMDatabaseAuthenticationEnabled":false,"clusterCreateTime":"Oct 28, 2018 8:55:35

AM","enabledCloudwatchLogsExports":["audit","error","general","slowquery"],"engineMode":
"provisioned","deletionProtection":false},"requestID":"2cbb7974-b79c-4121-aed1-5ebe8f945b72",
"eventID":"7e554be7-0a00-4f8f-9e56-a2d54519fff9","eventType":"AwsApiCall","recipientAccountId":
"951234567898"}

監査ログの例

監査ログの例を以下に示します。

{"timestamp":1540983162255,"message":"1540983162255314,auroramysql57dbcluster02,npande,149.148.162.25,
7556,640361,QUERY,NitinSampleDB,'DROP user IF EXISTS npande1',0","logStream":
"auroramysql57dbcluster02.audit.log.1.2018-10-30-04-02.0.2","logGroup":
"/aws/rds/cluster/auroramysql57dbcluster02-cluster/audit"}

エラー ログの例

エラー ログの例を以下に示します。

{"timestamp":1541352616280,"message":"2018-11-04T17:30:16.280728Z 28167 [Note] Access denied for 
user 'npande'@'149.148.77.110' (using password: YES)","logStream":"auroramysql57dbcluster02",
"logGroup":"/aws/rds/cluster/auroramysql57dbcluster02-cluster/error","requestID":"28167"}

一般ログの例

一般ログの例を以下に示します。


{"timestamp":1541352658026,"message":"2018-11-04T17:30:58.026053Z28173 Connect\tnpande@149.148.77.110 
on NitinSampleDB using TCP/IP","logStream":"auroramysql57dbcluster02","logGroup":
"/aws/rds/cluster/auroramysql57dbcluster02-cluster/general","requestID":"18"}

スロー クエリ ログ

スロー クエリ ログの例を以下に示します。

{"timestamp":1541352664176,"message":"# Time: 2018-11-04T17:31:04.176310Z\n# User@Host: 
npande[npande] @  [149.148.77.110]  Id: 28173\n# Query_time: 0.000337  Lock_time: 0.000172 Rows_sent: 
0  Rows_examined: 87\nSET timestamp=1541352664;\nUPDATE inventory SET quantity = quantity + 100 WHERE 
quantity = 50;","logStream":"auroramysql57dbcluster02","logGroup":
"/aws/rds/cluster/auroramysql57dbcluster02-cluster/slowquery"}

クエリの例

このセクションでは、ダッシュボードのパネルから引用したログ クエリとメトリクス クエリの例を示します。

ログ クエリの例

次のログ クエリは、[Logs - Overview (ログ - 概要)] ダッシュボード[Failed Authentication - User Location (失敗した認証 - ユーザ ロケーション)] パネルから引用されたものです。


_sourceCategory=AWS/RDS/Aurora/MySQL/Error "[Note] Access denied for user"
| json "message"
| parse field=message " [*] " as LogLevel
| parse field=message " * [Note] Access denied for user '*'@'*' (using *: *)" as requestid, user, 
host, authenticationType, flag
| count by host
| where host != "localhost"
| lookup latitude, longitude, country_code, country_name, region, city, postal_code from 
geo://location on ip = host

メトリクス クエリの例

次のメトリクス クエリは、[Metric - Resource Utilization Monitoring (メトリクス - リソース使用量のモニタリング)] ダッシュボード[CPU Credit Usage (CPU クレジット使用料)] パネルから引用されたものです。

_sourceCategory=AWS/RDS/Metric Namespace=AWS/RDS  metric=CPUCreditUsage 
DBInstanceIdentifier=* Statistic=Average | avg by DBInstanceIdentifier

ログとメトリクスの収集の設定

Aurora MySQL ULM は、CloudTrail イベント ログと CloudWatch ログおよびメトリクスが格納されたデータベースのモニタリングに使用します。ログにより、データベース アクティビティ、ユーザ アクティビティ、被接続数、クエリ実行時間、エラーをモニタリングできます。メトリクスにより、データベース リソースの利用状況とスループットのパフォーマンスをモニタリングできます。CloudTrail イベントにより、ユーザによる Aurora サービスとオペレーションの使用をモニタリングできます。

このページでは、ログとメトリクスを収集して Sumo Logic に取り込む手順について説明します。手順は以下の通りです。

ステップ 1.Source Category の計画

Aurora MySQL ULM 用の Sumo Logic アプリケーションのログ Source とメトリクス Source を設定する前に、各 Source に割り当てる Source Category を決める必要があります。  次のように示すように、階層的なアプローチを採用すると、検索の実行時にワイルドカードを活用できます。

  • CloudTrail イベント用の AWS CloudTrail Source には、Source Category として AWS/CloudTrail を指定できます。

  • CloudWatch メトリクスを収集するための AWS CloudWatch メトリクス Source には、Source Category として AWS/RDS/ を指定できます。

  • さまざまな Aurora MySQL CloudWatch ログ (エラー、スロー クエリ、監査、および一般) を収集するための AWS CloudWatch Source には、Source Category として AWS/RDS/Aurora/MySQL/Error、AWS/RDS/Aurora/MySQL/SlowQuery、AWS/RDS/Aurora/MySQL/Audit、および AWS/RDS/Aurora/MySQL/General を指定できます。

ステップ 2: AWS CloudTrail Source を使用した AWS CloudTrail イベントの収集 

このセクションでは、イベントを収集して Sumo Logic に取り込むための AWS CloudTrail Source のセットアップ方法を説明します。

AWS CloudTrail イベントを収集するには、以下の手順を実行します。
  1. Hosted Collector を設定します。
  2. 次の情報を入力して、Hosted Collector に AWS CloudTrail Source を追加します。

  • Name (名前) - 新しい Source に表示する名前を入力します。
  • Description (説明) - 説明 (省略可能) を入力します。
  • S3 Region (S3 リージョン) - CloudTrail Aurora S3 バケットの Amazon リージョンを選択します。
  • Bucket Name (バケット名) - CloudTrail Aurora S3 バケットの正確な名前を入力します。
  • Path Expression (パス式) - 収集する S3 オブジェクトに一致する文字列を入力します。この文字列では、ワイルドカードを 1 つ使用できます。(先頭にスラッシュを付けないでください。「Amazon パス式」参照。) S3 バケット名はパスに含まれません。パス式を設定するときはバケット名を含めないでください。
  • Source Category - Source Category (例: AWS/Cloudtrail) を入力します。
  • Access Key ID and Secret Access Key (アクセス キー ID とシークレット アクセス キー) - Amazon のアクセス キー ID とシークレット アクセス キーを入力します。
  • Scan Interval (スキャン間隔): Sumo Logic が S3 バケットをスキャンして新しいデータがないか確認する間隔として、デフォルトの 5 分を使用するか、または別の間隔を入力します。
  • Enable Timestamp Parsing (タイムスタンプの parse を有効にする) - 有効にするにはチェックボックスをオンにします。
  • Time Zone (タイムゾーン) - [Ignore time zone from log file and instead select UTC (ログ ファイルのタイムゾーンを無視して UTC を使用する)] をオフにします。
  • Timestamp Format (タイムスタンプの形式) - [Automatically detect the format (自動的に形式を検出)] を選択します。
  • Enable Multiline Processing (複数行の処理の有効化) - チェックボックスをオンにして [Infer Boundaries (境界を推測する)] を選択します。
  1. [Save (保存)] をクリックします。

ステップ 3: Aurora MySQL 用の AWS CloudWatch ログ (エラー、スロー クエリ、監査、および一般) の収集

このセクションでは、AWS CloudWatch ログを収集して Sumo Logic に取り込むためのセットアップ方法を説明します。

AWS CloudWatch ログを収集するには、以下の手順を実行します。 
  1. Amazon CloudWatch ログの収集手順を実行します。 
  1. Sumo Logic の Lambda 機能によるログ転送を設定する際に、ログ形式を [Others (その他)] に設定します。
  2. DB パラメータ グループがまだ作成されていなければ作成します。
  3.  以下を有効にします。
  • 一般ログ
  • スロー クエリ ログ
    — long_query_time パラメータを設定します。
    — log_slow_admin_statements, log_slow_slave_statements、および log_queries_not_using_indexes を有効にします。 
  1. DB クラスタ パラメータ グループがまだ作成されていなければ作成します。
  2. 次の監査ログを有効にします。
  • server_audit_logging
  • server_audit_logs_upload
  1. クラスタを編集して、クラスタ レベルのクラスタ パラメータ グループインスタンス レベルのパラメータ グループを指定します。
  2. インスタンスを再起動して変更内容を有効にします。

ステップ 4: AWS CloudWatch メトリクス Source を使用した Aurora CloudWatch メトリクスの収集

このセクションでは、AWS CloudWatch メトリクス Source を使用して Aurora CloudWatch メトリクスを収集して Sumo Logic に取り込むためのセットアップ方法を説明します。

Aurora CloudWatch メトリクスを収集するには、以下の手順を実行します。
  1. Hosted Collector を設定します。
  2. 次の情報を入力して、Amazon CloudWatch メトリクス Source を設定します。

  • Name (名前) - 新しい Source に表示する名前を入力します。
  • Description (説明) - 説明 (省略可能) を入力します。
  • Region (リージョン) - Amazon RDS の Amazon リージョンを選択します。
  • Namespaces (名前空間)  - [AWS/RDS] を選択します。
  • Source Category - Source Category (例: AWS/RDS/Metric) を入力します。
  • Access Key ID and Secret Access Key (アクセス キー ID とシークレット アクセス キー) - Amazon のアクセス キー ID とシークレット アクセス キーを入力します。
  • Scan Interval (スキャン間隔) - Sumo Logic が CloudWatch Source をスキャンして新しいデータがないか確認する間隔として、デフォルトの 5 分を使用するか、または別の間隔を入力します。
  1. [Save (保存)] をクリックします。