Kubenews #44
2021-01-21
How to Monitor Endpoints in Kubernetes using Blackbox Exporter (click here to source)
WhiteBox vs BlackBox monitoring
ホワイトボックスの監視とは、アプリケーションログ、ハンドラーからのメトリックなど、システムの内部を監視することです。
ブラックボックスの監視には、サーバーのダウン、ページが機能しない、サイトのパフォーマンスの低下など、ユーザーに影響を与える外部からの動作の監視が含まれます。
What is Blackbox Exporter?
Blackbox Exporterは、HTTPS、HTTP、TCP、DNS、ICMPなどのエンドポイントをプローブするために使用されます。
エンドポイントを定義した後、BlackboxExporterはGrafanaなどのツールを使用して視覚化できるメトリックを生成します。
Install
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts $ helm repo update $ helm install prometheus-blackbox prometheus-community/prometheus-blackbox-exporter -f values.yaml
Metrics
以下のようなメトリクスが取得できます。
メトリック名 | 関数 |
---|---|
probe_duration_seconds | プローブが完了するまでにかかった時間を秒単位で返します |
probe_http_status_code | 応答HTTPステータスコード |
probe_http_version | プローブ応答のHTTPのバージョンを返します |
probe_success | プローブが成功したかどうかを表示します |
probe_dns_lookup_time_seconds | プローブDNSルックアップにかかった時間を秒単位で返します |
probe_ip_protocol | プローブIPプロトコルがIP4またはIP6のどちらであるかを指定します |
probe_ssl_earliest_cert_expiryメトリック | unixtimeで最も早いSSL証明書の有効期限を返します |
probe_tls_version_info | 使用されるTLSバージョンが含まれています |
probe_failed_due_to_regex | 正規表現が原因でプローブが失敗したかどうかを示します |
probe_http_content_length | HTTPコンテンツ応答の長さ |
probe_http_version | プローブ応答のHTTPのバージョンを返します |
用途の例としては以下などがある。
probe_http_duration_seconds
メトリックを使用して応答時間を測定することで、Webサイトのパフォーマンスを監視し、サービスAとBの遅延の原因となった外部ターゲットの急増を探すことができるprobe_ssl_earliest_cert_expiry
メトリックを使用して、ドメイン証明書の有効期限がいつ切れるのかを監視するprobe_http_status_code
メトリックを使用して、/ healthエンドポイントでポッドをプローブする
Continuous Profiling in Kubernetes Using Pyroscope (click here to source)
What is profiling?
プロファイリングは、メモリ、プログラムの時間計算量、または関数呼び出しの頻度と期間を測定するプログラム分析です。
プロファイリングツールを使用してアプリケーションのコードを調べると、パフォーマンスのボトルネックを見つけて修正するのに役立ちます。
Continuous profiling
比較について書いてくれた記事もある。
Pyroscope, datadog, google cloud profilerの比較
Pyroscopeは、データの保存とクエリの両方を可能な限り効率的に行うためにデータをプロファイリングするために特別に構築されたストレージエンジンの構築に重点を置いています。
エージェントサーバーモデルを使用して、アプリケーションからPyroscopeサーバーにプロファイルを送信します。
Pyroscopeは言語固有のプロファイラーとeBPFプロファイリングの両方をサポートしています。
一方、Parcaは少し異なるアプローチを取り、現状はC、C ++、Goなどのコンパイル言語に対してのみeBPFを用いてプロファイリングする。
How to install Pyroscope?
$ helm repo add pyroscope-io https://pyroscope-io.github.io/helm-chart $ helm install pyroscope pyroscope-io/pyroscope --set service.type=NodePort
そのほか、「Integrating Google microservices demo with Pyroscope」というデモについても説明があるので、ぜひ試してみてください。
Securing a Kubernetes pod with Regula and Open Policy Agent (click here to source)
regulaについて
Regulaは、TerraformファイルとCloudFormationファイルのセキュリティとコンプライアンス違反をチェックできるだけでなく、KubernetesYAMLマニフェストもチェックできるようになった。