MSE のトラフィック保護機能は、異常なトラフィックや攻撃を検出し、これらのイベントを Simple Log Service (SLS) に報告することで、リアルタイムモニタリング、分析、セキュリティレスポンスを実現できます。 このトピックでは、 MSE Microservices Governance のトラフィック保護機能によってトリガーされたイベントを SLS に報告する方法について説明します。 これらのイベントは、sentinel-block.log ファイルから収集されます。
前提条件
-
ACK マネージドクラスターを作成 します。
-
MSE マイクロサービスガバナンスのトラフィック保護機能を有効にし、トラフィック保護ルールを設定します。 詳細については、「トラフィック保護」をご参照ください。
Logtail の有効化
ACK クラスターの作成時に Simple Log Service を有効にした場合は、このセクションをスキップできます。そうでない場合は、次の手順に従って Logtail を有効にします。詳細については、「クラスター作成時の Logtail のインストール」をご参照ください。
この操作は、ACK 専用クラスターと ACK マネージドクラスターにのみ適用されます。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
-
[Logs and Monitoring] タブで [logtail-ds] を見つけ、Install をクリックします。
データのインポート
SLS でデータソースを設定して、Sentinel のログレコードを収集、解析、レポートします。収集するファイル形式の詳細については、「データソースと解析形式」をご参照ください。
Log Serviceコンソールにログインします。
-
データのインポート をクリックします。データにアクセス ダイアログボックスで、検索ボックスに Kubernetes と入力し、[Kubernetes - File] をクリックします。
-
ログストアの指定 ステップで、プロジェクト Project と Logstore を選択し、Next をクリックします。
k8s-log-{your_k8s_cluster_id} という名前の Project または別の Project を選択します。Logstore については、既存のものを選択するか、新しく作成することができます。詳細については、「Logstore の作成」をご参照ください。
-
サーバーグループの設定 ステップで、ターゲットの Machine Group (k8s-group-${your_k8s_cluster_id}) を選択します。この Machine Group を ソースサーバーグループ リストから 適用されたサーバーグループ リストに移動し、Next をクリックします。
別の Project を選択した場合は、画面の指示に従って Machine Group を作成します。
-
Logtail の設定 ステップで、データソースと解析形式を設定します。設定を完了し、Next をクリックします。
パラメータ
説明
[Config name]
設定の名前を入力します。
[ファイルパス]
-
ログは固定パス
/${user_home}/logs/csp/sentinel-block.logから収集されます。${user_home}をシステムのホームディレクトリ (通常は root) に置き換えます。 -
特定のパスについては、「重要なログ」をご参照ください。
[ログサンプル]
サンプルとして次の内容を入力します:
2024-08-28 06:53:14|1|/flow,FlowException,default,,32808,1724827994000|37,0,0[処理モード]
プロセッサープラグインの組み合わせを使用し、正規表現解析 プラグインを追加します。例に示すようにキーパラメータを設定し、必要に応じて他のパラメータを設定します。
[Regular expression ]
(\d+-\d+-\d+\s\d+:\d+:\d+)\|1\|([\s\S]*),([a-zA-Z]+),([a-zA-Z]+),([\s\S]*),(\d+),(\d+)\|(\d+),0,(\d+)
[ソースフィールド] を
contentに設定します。[Validate] をクリックします。time、resource、expType、limitApp、origin、ruleId、timestamp、blockNum、nの 9 つのフィールドが抽出されます。次に、[Keep original fields on parsing failure] チェックボックスをオンにします。 -
-
クエリと分析の設定 ステップで、データのプレビュー の横にある 自動更新 が完了するのを待ちます。いくつかのインデックスフィールドを追加および変更し、Next をクリックします。
フィールド
タイプ
エイリアス
__tag__:_namespace_
text
namespace
__tag__:container_name_
text
appName
ruleId
long
不要
resource
text
time
text
expType
text
blockNum
double
-
ログ照会 をクリックして Project に戻ります。
イベントレポートの検証
Log Serviceコンソールにログインします。
-
指定した Project で、新しい Logstore にレポートされた監視メトリクスを SLS で表示できます。
__tag__:__user_defined_id__: k8s-group-c7ebc423cebdd43c494daf02xxx __tag__:_cluster_id_: c7ebc423cebdd43c494daf02 __tag__:_container_ip_: 10.7.xxx __tag__:_container_name_: spring-cloud-b __tag__:_image_name_: registry.cn-hangzhou.aliyuncs.com/mse-demo-hz/spring-cloud-b:3.0.1-fallback-test __tag__:_namespace_: mse-demo __tag__:_node_ip_: 10.7xxx __tag__:_node_name_: cn-hangzhou.10.7.xxx __tag__:_pod_name_: spring-cloud-b-54b48d6f6c-xxx __tag__:_pod_uid_: bcd0f5bd-3b4c-48d7-99c7-aefxxx blockNum: 71 expType: FlowException limitApp: default n: 0 origin: dubbo-provider-A resource: com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String) ruleId: 855 time: 2023-09-15 03:46:22 timestamp: 1694749582000
よくある質問 (FAQ)
SLS コンソールにログが表示されないのはなぜですか?
Container Service for Kubernetes (ACK) コンソール にログインし、ターゲットクラスターをクリックします。Cluster information ページで [Open Cloud Shell] をクリックします。次のコマンドを実行して確認します:
cd ~/logs/csp/ # 実際のログパスに置き換えてください。
tail -n 10 sentinel-block.log
次のような結果が表示されます。これは、スロットリングログが生成されたことを示します。対応するログが生成されない場合は、「前提条件」が正しく設定されているか確認してください。特に、MSE コンソールのトラフィック保護ルールが正しく設定されているか、またトラフィックスロットリングが発生したかどうかに注意してください。
2023-09-14 08:51:04|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681464000|63,0
2023-09-14 08:51:05|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681465000|78,0
2023-09-14 08:51:06|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681466000|75,0
2023-09-14 08:51:07|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681467000|64,0
2023-09-14 08:51:08|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681468000|84,0
2023-09-14 08:51:09|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681469000|75,0
2023-09-14 08:51:10|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681470000|76,0
2023-09-14 08:51:11|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681471000|71,0
2023-09-14 08:51:12|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681472000|61,0
2023-09-14 08:51:13|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681473000|64,0
2023-09-14 08:51:14|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681474000|64,0
2023-09-14 08:51:15|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681475000|76,0
2023-09-14 08:51:16|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681476000|79,0
2023-09-14 08:51:17|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681477000|66,0
2023-09-14 08:51:18|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681478000|80,0
2023-09-14 08:51:19|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681479000|65,0
2023-09-14 08:51:20|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681480000|79,0
2023-09-14 08:51:21|1|com.alibabacloud.mse.demo.b.service.HelloServiceB:hello(java.lang.String),FlowException,default,dubbo-provider-A,855,1694681481000|75,0
...