2023 年には、監視プラットフォームが現代の DevOps チームの作業に不可欠になるでしょう。DevOps チームは、複雑なシステムを効果的に監視および管理し、リアルタイムのシステム パフォーマンス、可用性、セキュリティに関する洞察を提供する、信頼性の高い柔軟なツールを必要としています。
オープンソース監視ツールは、その費用対効果、柔軟性、コミュニティ サポートによりますます人気が高まっています。
オープンソース監視ツールの長所と短所
ここでは、SaaS ツールと比較したオープンソース監視ツールの長所と短所をいくつか示します。
アドバンテージ
- カスタマイズ: オープンソースの監視ツールは、監視構成および他のツールとの統合において、より優れたカスタマイズと柔軟性を提供します。
- 費用対効果: オープンソース ツールは無料または低コストであることが多く、予算が限られている組織にとって手頃なソリューションとなります。
- 透明性: オープンソース監視ツールのコードは公開でレビューおよび監査できるため、透明性と説明責任が高まります。
- コミュニティ サポート: オープンソース監視ツールは、多くの場合、サポートを提供し、ツールの開発に貢献する開発者の大規模なコミュニティによってサポートされています。
欠点がある
- 複雑さ: オープンソース ツールは通常、SaaS 監視ツールよりもインストール、構成、保守に多くの技術的専門知識と労力を必要とします。
- サポート: コミュニティ サポートは利用可能ですが、複雑または特殊な監視ニーズを持つ組織には十分ではない場合があります。
- セキュリティ: オープンソース ツールには、SaaS ツールが提供する強力なセキュリティ機能やアップデートが欠けている可能性があるため、セキュリティの脆弱性に対して脆弱になる可能性があります。
- スケーラビリティ: SaaS ツールと比較すると、オープンソース監視ツールは、効果的に拡張するには追加のハードウェアとインフラストラクチャが必要になる可能性があるため、十分な拡張性がない可能性があります。
オープンソース監視ツール トップ 10
最新の DevOps チームが 2023 年に注目すべき次のオープンソース監視ツールについて説明します。
これらのツールは、メトリクスの収集と分析、ログの監視、リクエストの追跡、アラートなど、さまざまな監視機能を提供します。各ツールには長所と短所があり、特定の DevOps チームにとって最適な選択は、そのチーム固有のニーズと要件によって異なります。
Sensu Go
Sensu Go は、サーバー、コンテナー、クラウド サービスなどのインフラストラクチャを監視できるオープンソース監視ツールです。Sensu には、シンプルさ、拡張性、マルチクラウド監視という 3 つの重要なポイントがあります。
Sensu Go は分散型アーキテクチャを使用しており、監視チェックはエージェントと呼ばれるクライアント ノードで実行され、結果は処理と保存のためにバックエンド サーバーに送信されます。このアーキテクチャにより、より柔軟でスケーラブルな監視セットアップが可能になり、必要に応じてエージェントを追加または削除し、インフラストラクチャ全体に監視ワークロードを分散できます。
Sensu は、監視コード テンプレート (YAML 構成ファイル) に基づく完全に自動化された展開から、監視プラットフォームのすべての要素を制御する柔軟な API まで、この動的な環境に不可欠なコードとしての監視機能と自動化を提供します。
Sensu Go は、Nagios スタイルのチェック、カスタム スクリプト、さまざまな言語で書かれたプラグインなど、さまざまなタイプのモニタリング チェックをサポートしています。Sensu Go を使用して、Kubernetes や Docker などのコンテナ化された環境や、AWS や GCP などのクラウド サービスを監視することもできます。
アドバンテージ
- 開発者は独自の監視項目を作成できます
- シンプルな構成、優れた拡張性、優れたパフォーマンス
- メッセージルーティング
- Nagiosプラグインと互換性あり
- Go言語を使用して書かれています
欠点がある
- UIがあまり良くない
- Sensu Go には学習曲線があり、ユーザーがその機能と構成オプションに慣れるまでに時間がかかる場合があります。
シグノズ
SigNotz は、Datadog や NewRelic などの他のツールの置き換えに使用できるオープンソースの APM (アプリケーション パフォーマンス モニタリング) ツールです。これは、アプリケーションの監視や問題のトラブルシューティングを行うときに非常に便利です。
さらに、SigNoz は OpenTelemetry を統合し、Java、Ruby、Python、Elixir など、それを実装するさまざまな言語とフレームワークをサポートします。Kubernetes、Istio、Envoy、Kafka、gRPC など、さまざまな最新のテクノロジーとフレームワークをサポートしています。
主な機能
- レイテンシー、1 秒あたりのリクエスト数、エラー率などのアプリケーションのメトリクスを監視します。
- CPU 使用率やメモリ使用率などのインフラストラクチャ メトリックを監視します。
- サービス全体でユーザーのリクエストを追跡します。
- メトリクスにアラートを設定します。
- 問題の根本原因を見つけて、その原因となった手がかりを特定します。
- 個々のリクエスト トレースの詳細なフレーム グラフを表示します。
弾性APM
Elastic APM (Application Performance Monitoring) は Elastic Stack の一部であり、オープンソースのデータ分析および視覚化ツールのセットです。Elastic APM は、開発者と DevOps チームにアプリケーションのパフォーマンスに関するリアルタイムの洞察を提供するように設計されています。
Elastic APM は、Java、Python、Ruby、Node.js など、多くのプログラミング言語とフレームワークをサポートしています。応答時間、スループット、エラー率、リソース使用率などのアプリケーションのパフォーマンス指標を監視できます。また、詳細なトランザクション追跡も提供されるため、開発者はコード内のボトルネックやパフォーマンスの問題を特定できます。
主な機能
- Elastic APM は、未処理のエラーと例外も自動的に収集します。エラーは主にスタック トレースに基づいてグループ化されるため、新しいエラーが発生したときにそれを識別し、特定のエラーが発生した回数を監視できます。
- メトリクスは、運用システムをデバッグする際のもう 1 つの重要な情報源です。
- Elastic APM エージェントは、他の多くのエージェントの中でも特に、Java エージェントの JVM メトリクスや Go エージェントの Go ランタイム メトリクスなど、基本的なホストレベルのメトリクスとエージェント固有のメトリクスを自動的に取得します。
イェーガー
Jaeger はエンドツーエンドの分散トレースを提供し、ユーザーが複雑なシステム全体のリクエストのフローを追跡し、パフォーマンスのボトルネックやエラーを特定できるようにします。
Jaeger は、Java、Python、Ruby、Go などを含むさまざまなプログラミング言語とフレームワークをサポートしています。Spring Boot や Flask などの一般的な Web フレームワークと統合できます。
マイクロサービスベースの分散システムを監視するために使用できます。
- 分散コンテキスト配信
- 分散トランザクション監視
- 根本原因分析
- サービスの依存関係の分析
- パフォーマンス/レイテンシの最適化
アドバンテージ
- 取り付けが簡単
- 選択したデータ ソースをストレージ バックエンドとして簡単に構成
- オープンソース
- 機能豊富な UI
- CNCFプロジェクト
Yeter には成熟度が欠けていますが、スピードと柔軟性がそれを補っており、その並列アーキテクチャは斬新でより分散化されています。また、パフォーマンスも向上し、拡張も容易になります。Jaeger は古いライバルよりも優れた公式言語サポートを備えており、CNCF へのサポートは承認の証であると考えることもできます。
短所
イェーガーは比較的未熟であることが欠点です。イェーガー社が主言語として Go を選択したことは、この点を示しています。Gopher はコミュニティを急速に拡大していますが、Java ほど遍在しているわけではありません。Go を初めて使用する場合、学習プロセスが長くなる可能性があります。
イェーガーにとって祝福でもあり呪いでもあるもう 1 つの分野は、より近代的な建築です。このアーキテクチャは、パフォーマンス、信頼性、スケーラビリティの点で利点がありますが、はるかに複雑で保守が困難でもあります。
プロメテウス
Prometheus は、アプリケーション パフォーマンス メトリック、サーバー メトリック、ネットワーク メトリックなど、幅広いメトリックを監視するように設計されています。プルベースのモデルを使用して、アプリケーション サーバー、データベース、ネットワーク デバイスなどのターゲットからメトリクスを収集します。これらのメトリクスは時系列データベースに保存され、Prometheus Web UI を使用して視覚化することも、Grafana などのサードパーティ ツールと統合することもできます。
主な機能
- 多次元データモデル
- 収集されたインジケーター データをクエリするための PromQL クエリ言語。
- HTTPプロトコル経由でデータを収集する
- アラームを処理するアラーム マネージャー
- 基本的なビジュアライゼーション レイヤーですが、Grafana と組み合わせてリッチなビジュアライゼーションを作成できます。
欠点がある
Prometheus は優れたメトリクス監視ツールですが、それ以上のものではありません。これは、SigNoz のようなフルスタックのアプリケーション監視ツールではありません。
- Prometheus はメトリクスのみをクロールします。強力な監視フレームワークを作成するには、メトリクス、ログ、トレースを追跡する必要があります。たとえば、SigNoz のようなツールは、メトリクスとトレース (製品ロードマップのログ管理) の両方をキャプチャできます。
- Prometheus はスタンドアロンで使用するように設計されています。スケールアウトすることはできません。
グラファナ
Grafana は、主要業績評価指標 (KPI) やその他の指標の表示と監視に使用できるカスタム ダッシュボードを作成および共有するための Web ベースのユーザー インターフェイスを提供します。Grafana は、チャート、グラフ、ゲージ、表などの幅広い視覚化オプションをサポートしており、メトリックのしきい値に基づいてカスタム アラートを作成するために使用できます。
Grafana の主な利点の 1 つは、Prometheus、InfluxDB、Graphite などの一般的な時系列データベースを含む幅広いデータ ソースをサポートしていることです。Elasticsearch などのログ データ ソースや、AWS や Azure などのクラウド ベンダーもサポートします。
Grafana には、ユーザーがデータをリアルタイムでフィルタリング、集計、変換できる強力なクエリ エディターが含まれています。クエリ エディターは、PromQL (Prometheus で使用)、InfluxQL (InfluxDB で使用)、Elasticsearch クエリなど、さまざまなクエリ言語をサポートします。
アドバンテージ
- Prometheus と Graphite データ ソースを簡単に統合します。
- 多くのプラグインは、ほぼすべてのストレージ アレイまたはオペレーティング システムで使用できます。
- 無料でオープンソース。さらに充実したい場合は、プロフェッショナル プランまたはプレミアム プランをご利用ください。
- 高度にカスタマイズ可能なソフトウェア。カスタム アラート、データ ソース、ダッシュボード、通知など。
- Grafana はデータ視覚化の王様です。任意のデータ ソースからのメトリクスをプロットします。
- 他のシステムと連携してアラートや通知を送信します。
欠点がある
- Grafana は高度にカスタマイズ可能な性質があるため、使い始めるのが難しく、時間がかかります。
- データは保存されません。履歴データも追跡したい場合は、サードパーティのストレージ ソリューションが必要になります。
- Grafana から最大限のメリットを得るには、JSON や SQL などのプログラミング言語に習熟している必要があります。
オープンテレメトリ
OpenTelemetry は、Java、Python、Go、.NET など、さまざまなプログラミング言語とフレームワークのライブラリを提供します。これらのライブラリを使用すると、開発者は最小限の労力でアプリケーションを計測できるため、トレース、メトリクス、ログなどのテレメトリ データの収集が容易になります。
OpenTelemetry は、ベンダー中立のデータ モデルを使用しており、テレメトリ データを複数のソースから収集し、複数の宛先に出力できます。これにより、幅広い可観測性ツールやサービスとの統合が容易になります。
アドバンテージ
- アプリケーションのテレメトリ データの生成と管理に伴うパフォーマンスのオーバーヘッドを削減します。
- コードベースへの最小限の変更で、人気のあるライブラリとフレームワークを自動的に測定するライブラリとプロキシを提供します。
- 複数の形式でデータを受信、処理、出力できる OpenTelemetry Collector を提供します
- これは、Google や Microsoft などのテクノロジー巨人やその他の大手クラウド コンピューティング ベンダーによってサポートされています。
- 関連するエクスポーターを使用して、新しいバックエンド分析ツールに自由に切り替える
- 新しいフレームワークとテクノロジーのサポート
欠点がある
- このプロジェクトにはドキュメントとサポートを改善する余地がたくさんあります
- バックエンドストレージと視覚化レイヤーは提供しません
ザビックス
Zabbix はクライアント/サーバー アーキテクチャを使用しており、Zabbix サーバーはネットワーク デバイス、サーバー、アプリケーションにインストールされている複数のエージェントからデータを収集します。SNMP トラップ、JMX カウンタ、IPMI 対応デバイスなどの他のソースからデータを収集することもできます。
Zabbix は、ping、HTTP、SMTP チェックなどの単純なチェックから、SNMP、JMX、IPMI チェックなどのより高度なチェックを含む、幅広いデータ収集方法をサポートしています。また、カスタム アプリケーションやサービスのパフォーマンスを監視するために使用できるカスタム チェックもサポートしています。
アドバンテージ
- 豊富な機能、豊富な統合、すぐに使えるテンプレートとマルチテナントのサポート、強力な API、ほとんどのネットワーク、サーバー、サービス、アプリケーション、IoT 監視プロトコルのサポート。標準プロトコルとカスタム スクリプトを使用して、ほとんどすべてを監視できます。
欠点がある
- 初期設定には多くの作業が必要であり、長期的には多くの最適化が必要になります。このドキュメントは、初めてのユーザーにとって、特にインストール中またはインストール後の管理中に発生する一般的な問題があまり明確ではありません。
Healthchecks.io
Healthchecks.io は、cron ジョブおよび同様の定期的なプロセスを監視するためのサービスです。
- Healthchecks.io は、cron ジョブおよびスケジュールされたタスクからの HTTP リクエスト (「ping」) をリッスンします。
- PING は時間どおりに到着する限り、沈黙を保ちます。
- ping が時間内に到着しない場合は、アラートが発行されます。
Healthchecks.io は以下には適していません。
- HTTP リクエストを調査して Web サイトの稼働時間を監視する
- アプリケーションのパフォーマンス指標を収集する
- ログの概要
主な機能
- オープンソース、プライベートで導入可能
- シンプルでクリーンなダッシュボード
- チームと API アクセスのサポート
アドバンテージ
- インターフェイスのセットアップは非常に簡単で、明確な実装手順が記載されています。
- サーバーがレポートに失敗したとき、およびサーバーがオンラインに戻ったときに、5 分以内に通知を受け取ることができます。
- 月末に、ダウンタイムに関するレポートが電子メールで届きます。
欠点がある
- このサービスには高度な分析やその他の高度な機能がありません。
- そういった機能を求めている人には合わないかもしれません。しかし、このサービスのシンプルさは利点だと思います。さらに機能を追加すると、優れたユーザー エクスペリエンスが損なわれる危険があります。
Healthchecks.io Github リポジトリ →
Percona の監視と管理 (PMM)
Percona Monitoring and Management (PMM) は、データベースのパフォーマンスを管理および監視するためのオープンソース プラットフォームです。Percona の監視と管理を使用すると、さまざまなオープン ソース データベース環境を監視できます。
- Amazon RDS MySQL
- Amazon Aurora MySQL
- MySQL
- モンゴDB
- Percona XtraDB クラスター
- PostgreSQL
- プロキシSQL
主な機能
- データベース インフラストラクチャの健全性を監視する
- データベースの動作パターンを調査する
- データベースがどこにあるかに関係なく、データベースのパフォーマンスを管理し、向上させます。
- データベースがどこにあるかに関係なく、データベースのパフォーマンスを管理し、向上させます。
- アクセス制御/権限
- 過去の傾向分析
アドバンテージ
- クラスターノード間のパフォーマンスを可視化します。
- 使いやすく、優れたインターフェース
- 低速クエリログ、パフォーマンスパターンなどの非常に詳細なデータベースメトリクス
欠点がある
- アラート テンプレートなどのアラート システムを改善する必要があります。
- 大規模なデータベースは効率的にサポートできません。
結論は
今日の複雑なテクノロジー環境には、強力でコスト効率の高い柔軟な監視ツールが必要です。上記で紹介したようなオープンソース ソリューションは、透明性やカスタマイズ性から費用対効果やコミュニティ サポートに至るまで、多くの利点を提供します。
ただし、DevOps チームに適切なツールを選択するときは、システムの複雑さ、技術的な専門知識、拡張性、予算などの要素を考慮することが重要です。これらのツールの最新の開発と更新に常に注目して、システムのパフォーマンス、信頼性、セキュリティを維持するための最適なリソースをチームが確保できるようにしてください。
チームが最善の決定を下し、効果的な行動を起こすために必要な情報を入手できるように、賢明に選択してください。