このトピックでは、外部ストアを作成して Simple Log Service を MySQL データベースに関連付ける方法について説明します。
前提条件
データは Simple Log Service に収集されます。 詳細については、「データ収集の概要」をご参照ください。
データは、ApsaraDB RDS インスタンスまたは AnalyticDB インスタンス上に作成された MySQL データベース、あるいは Elastic Compute Service (ECS) インスタンス上でホストされている自己管理 MySQL データベースに保存されます。
MySQL データベースは、Alibaba Cloud 仮想プライベートクラウド (VPC) 内にあります。 使用される ApsaraDB RDS インスタンス、AnalyticDB インスタンス、または ECS インスタンスは、Simple Log Service プロジェクトと同じリージョンにあります。
重要パブリックエンドポイント経由での MySQL データベースへの接続はサポートされていません。
背景情報
Simple Log Service の外部ストレージ機能を使用すると、Simple Log Service を ApsaraDB RDS インスタンスおよび AnalyticDB インスタンス上に作成された MySQL データベース、および ECS インスタンス上でホストされている自己管理 MySQL データベースに関連付けることができます。 また、外部ストレージ機能を使用すると、クエリと分析の結果を MySQL データベースに書き込んで、さらに処理することもできます。 以降の説明では、ApsaraDB RDS インスタンスは RDS インスタンスと呼ばれます。
手順
1. MySQL データベースのホワイトリストを構成する
RDS インスタンス上に作成された MySQL データベースを使用する
RDS インスタンス上に作成された MySQL データベースを使用する場合は、次の CIDR ブロックをホワイトリストに追加します: 100.104.0.0/16、11.194.0.0/16、および 11.201.0.0/16。 詳細については、「IP アドレスホワイトリストの構成」をご参照ください。
ECS インスタンス上でホストされている自己管理 MySQL データベースを使用する
ECS インスタンス上でホストされている自己管理 MySQL データベースを使用し、ECS インスタンスがセキュリティグループに追加されている場合は、次の CIDR ブロックからのアクセスを許可するようにセキュリティグループルールを構成します: 100.104.0.0/16、11.194.0.0/16、および 11.201.0.0/16。 詳細については、「セキュリティグループルールの追加」をご参照ください。
AnalyticDB インスタンス上に作成された MySQL データベースを使用する
AnalyticDB インスタンス上に作成された MySQL データベースを使用する場合は、次の CIDR ブロックをホワイトリストに追加します: 100.104.0.0/16、11.194.0.0/16、および 11.201.0.0/16。 詳細については、「IP アドレスホワイトリストの構成」をご参照ください。
2. 外部ストアを作成する
touch
コマンドを実行して、/home/shell/config.json という名前の構成ファイルを作成します。 次のスクリプトを /home/shell/config.json ファイルに追加します。 ビジネス要件に基づいて、次のパラメーターの値を置き換えます:region
、vpc-id
、host
、port
、username
、password
、db
、およびtable
。{ "externalStoreName":"sls_join_meta_store", "storeType":"rds-vpc", "parameter":{ "region":"cn-qingdao", "vpc-id":"vpc-m5eq4irc1pucp*******", "host":"localhost", "port":"3306", "username":"user", "password":"****", "db":"scmc", "table":"join_meta" } }
パラメーター
説明
externalStoreName
外部ストアの名前。 名前は小文字にする必要があります。
storeType
データソースのタイプ。 値を
rds-vpc
に設定します。region
リージョン。
RDS インスタンス上に作成された MySQL データベースを使用する場合は、region を RDS インスタンスが存在するリージョンに設定します。
AnalyticDB インスタンス上に作成された MySQL データベースを使用する場合は、region を AnalyticDB インスタンスが存在するリージョンに設定します。
VPC タイプの ECS インスタンス上でホストされている自己管理 MySQL データベースを使用する場合は、region を ECS インスタンスが存在するリージョンに設定します。
重要使用される RDS インスタンス、AnalyticDB インスタンス、または ECS インスタンスは、Simple Log Service プロジェクトと同じリージョンに存在する必要があります。
vpc-id
VPC の ID。
VPC タイプの RDS インスタンス上に作成された MySQL データベースを使用する場合は、vpc-id を RDS インスタンスが属する VPC の ID に設定します。
VPC タイプの AnalyticDB インスタンス上に作成された MySQL データベースを使用する場合は、vpc-id を AnalyticDB インスタンスが属する VPC の ID に設定します。
VPC タイプの ECS インスタンス上でホストされている自己管理 MySQL データベースを使用する場合は、vpc-id を ECS インスタンスが属する VPC の ID に設定します。
host
MySQL データベースのアドレス。
VPC タイプの RDS インスタンス上に作成された MySQL データベースを使用する場合は、host を RDS インスタンスの内部エンドポイントまたはプライベート IP アドレスに設定します。
VPC タイプの AnalyticDB インスタンス上に作成された MySQL データベースを使用する場合は、host を AnalyticDB インスタンスの内部エンドポイントまたはプライベート IP アドレスに設定します。
VPC タイプの ECS インスタンス上でホストされている自己管理 MySQL データベースを使用する場合は、host を ECS インスタンスのプライベート IP アドレスに設定します。
port
ポート番号。
RDS インスタンス上に作成された MySQL データベースを使用する場合は、port を RDS インスタンスのポートに設定します。
AnalyticDB インスタンス上に作成された MySQL データベースを使用する場合は、port を AnalyticDB インスタンスのポートに設定します。
VPC タイプの ECS インスタンス上でホストされている自己管理 MySQL データベースを使用する場合は、port を ECS インスタンスの MySQL サービスポートに設定します。
username
MySQL データベースにログインするために使用するアカウントのユーザー名。
password
MySQL データベースにログインするために使用するアカウントのパスワード。
db
MySQL データベースの名前。
table
MySQL データベースで使用するテーブルの名前。
次のコマンドを実行して、外部ストアを作成します。 project_name の値を、使用するプロジェクトの名前に置き換えます。 このトピックでは、
log-rds-demo
を使用します。aliyunlog log create_external_store --project_name="log-rds-demo" --config="file:///home/shell/config.json"
次のコマンドを実行して、外部ストアに関する情報をクエリします。 コマンドが正常に実行された場合、応答は返されません。
aliyunlog log get_external_store --project_name="log-rds-demo" --store_name="sls_join_meta_store" --format-output=json
コマンドを実行して、作成された外部ストアの詳細をクエリできます。 次の例では、外部ストアは RDS インスタンス上に作成された MySQL データベースです。 出力:{ "externalStoreName": "sls_join_meta_store", "parameter": { "db": "scmc", "host": "rm-bp1******rm76.mysql.rds.aliyuncs.com", "instance-id": "", "port": "3306", "region": "cn-qingdao", "table": "join_meta", "timezone": "", "username": "user", "vpc-id": "vpc-m5eq4irc1pucp*******" }, "storeType": "rds-vpc" }
3. 関連付けられた MySQL データベースからデータをクエリする
外部ストアを使用して Simple Log Service を MySQL データベースに関連付けた後、log-rds-demo
プロジェクトのログストアをクリックし、ログストアのクエリと分析ページで * | select * from sls_join_meta_store
クエリ文を実行して、関連付けられた MySQL データベースからデータをクエリできます。
次のステップ
MySQL 外部ストアを更新する。
aliyunlog log update_external_store --project_name="log-rds-demo" --config="file:///home/shell/config.json"
MySQL 外部ストアを削除する。
aliyunlog log delete_external_store --project_name="log-rds-demo" --store_name=sls_join_meta_store
関連情報
JOIN 構文を使用して、ログストアと MySQL データベースからデータをクエリできます。 詳細については、「ログストアと MySQL データベースに対する結合クエリと分析操作」をご参照ください。
MySQL 外部ストアを作成するためのベストプラクティスについては、「ログストアを MySQL データベースに関連付けてクエリと分析を実行する」をご参照ください。
ECS インスタンスに自己管理 MySQL データベースをデプロイする方法については、「Linux ECS インスタンスに MySQL データベースをデプロイする」をご参照ください。
AnalyticDB インスタンスに MySQL データベースを作成する方法については、「概要」をご参照ください。
RDS インスタンスに MySQL データベースを作成する方法については、「ApsaraDB RDS for MySQL インスタンスを作成し、データベースを構成する」をご参照ください。