このトピックでは、外部ストアを作成して Simple Log Service (SLS) を PostgreSQL データベースに関連付ける方法について説明します。
前提条件
SLS でデータを収集済みであること。詳細については、「データ収集」をご参照ください。
SLS CLI をインストールし、サービスエンドポイントと AccessKey ペアを設定済みであること。
Alibaba Cloud RDS for PostgreSQL データベース、Alibaba Cloud ADB for PostgreSQL データベース、または Alibaba Cloud Hologres インスタンスにデータを保存済みであること。
PostgreSQL データベースが Alibaba Cloud Virtual Private Cloud (VPC) 内にあること。RDS インスタンス、ADB インスタンス、または Hologres インスタンスは、SLS プロジェクトと同じリージョンにある必要があります。
重要PostgreSQL データベースには、インターネットエンドポイントを使用して接続できません。
背景情報
SLS の外部ストア機能を使用すると、SLS を Alibaba Cloud RDS for PostgreSQL データベース、Alibaba Cloud ADB for PostgreSQL データベース、または Alibaba Cloud Hologres インスタンスに関連付けることができます。クエリおよび分析結果を PostgreSQL データベースに書き込んで、さらに処理することもできます。
手順
1. ホワイトリストを設定する
RDS for PostgreSQL データベース
次の CIDR ブロックをホワイトリストに追加します: 100.104.0.0/16、11.194.0.0/16、および 11.201.0.0/16。詳細については、「ホワイトリストを設定する」をご参照ください。
Alibaba Cloud Hologres
次の CIDR ブロックをホワイトリストに追加します: 100.104.0.0/16、11.194.0.0/16、および 11.201.0.0/16。詳細については、「IP ホワイトリスト」をご参照ください。
ADB for PostgreSQL データベース
次の CIDR ブロックをホワイトリストに追加します: 100.104.0.0/16、11.194.0.0/16、および 11.201.0.0/16。詳細については、「ホワイトリストを設定する」をご参照ください。
2. ExternalStore を作成する
CLI がインストールされているサーバーにログインします。コマンドラインで
touchコマンドを実行して、/home/shell/config.json という名前の構成ファイルを作成します。config.json ファイルに次のスクリプトを追加します。region、vpc-id、host、port、username、password、db、およびtableパラメーターの値を実際の値に置き換える必要があります。パラメーターの説明
例
{ "externalStoreName":"sls_join_meta_store", "storeType":"postgresql", "parameter":{ "region":"cn-qingdao", "vpc-id":"vpc-m5eq4irc1pucp*******", "host":"localhost", "port":"3306", "username":"user", "password":"****", "db":"scmc", "table":"join_meta" } }externalStoreNameExternalStore の名前。名前は小文字にする必要があります。
storeTypeデータソースのタイプ。値を postgresql に設定します。
regionリージョン (cn-wulanchabu や cn-hangzhou など)。
重要RDS インスタンス、Hologres インスタンス、または ADB インスタンスは、SLS プロジェクトと同じリージョンにある必要があります。
vpc-idデータベースが配置されている VPC の ID。このパラメーターは、データベースのタイプによって異なります:
お使いの RDS for PostgreSQL インスタンスが VPC 内にある場合、vpc-id をその VPC の ID に設定します。
お使いの ADB for PostgreSQL データベースが VPC 内にある場合、vpc-id をインスタンスを含む VPC の ID に設定します。
VPC 内で Alibaba Cloud Hologres データベースを使用する場合、vpc-id を Hologres インスタンスの VPC の ID に設定します。
hostデータベースの内部エンドポイント。
portデータベースインスタンスのポート番号。
usernameデータベースのユーザー名。
passwordデータベースのパスワード。
dbデータベースの名前。
tableデータベーステーブルの名前。次のフォーマットがサポートされています:
`table_name`、例: `test`。
`schema_name.table_name`、例: `public.test`。
コマンドラインで次のコマンドを実行して ExternalStore を作成します。コマンドで、project_name をお使いの SLS プロジェクトの名前に置き換えます。このトピックでは、
log-rds-demoを例として使用します。aliyunlog log create_external_store --project_name="log-rds-demo" --config="file:///home/shell/config.json"ExternalStore に関する情報をクエリします。コマンドが正常に実行された場合、応答は返されません。
aliyunlog log get_external_store --project_name="log-rds-demo" --store_name="sls_join_meta_store" --format-output=jsonコマンドを実行して、外部データソースの詳細をクエリします。次の情報が返されます:{ "externalStoreName": "sls_join_meta_store", "parameter": { "db": "postgres", "host": "rm-bp1******rm76.pg.rds.aliyuncs.com", "port": "5432", "region": "cn-wulanchabu", "table": "test", "timezone": "", "username": "user", "vpc-id": "vpc-m5eq4irc1pucp*******" }, "storeType": "postgresql" }
3. 関連付けられた PostgreSQL データをクエリする
外部ストアを作成したら、SLS コンソールに移動します。log-rds-demo という名前のプロジェクトで、任意の Logstore をクリックし、* | select * from sls_join_meta_store クエリ文を実行して、関連付けられた PostgreSQL データをクエリします。

関連操作
PostgreSQL 外部ストアを更新します。
aliyunlog log update_external_store --project_name="log-rds-demo" --config="file:///home/shell/config.json"PostgreSQL 外部ストアを削除します。
aliyunlog log delete_external_store --project_name="log-rds-demo" --store_name=sls_join_meta_store