序文可観測性は、ほとんどの中小企業にとって大きな悩みの種であり、主に次のような側面で現れます。 - リンク監視には Skywalking を使用し、ログ収集監視には ELK を使用し、メトリック監視には Grafana+Prometheus を使用するなど、さまざまな機能を組み立てるには、異なるオープンソース ソフトウェアが必要です。
- 各オープンソース ソフトウェアは独立したシステムによってサポートされており、以前は互いに独立していました (Grafana ファミリのソフトウェアはすでに統合を実現しています)。
- データサイロが存在し、データリンク、ログ、メトリクスは接続なしに独立して動作しています。現在市場に出回っているソリューションは、市販製品か自社開発ソリューションのいずれかです。
この記事の主な焦点は統一されたシステムではありません。現状では、異なるオープンソースコンポーネントがそれぞれ異なる機能を実装しています。N9eではそれらを同じメインパネルで表示できますが、データ間の連携はまだ実現されていません。 では、なぜ N9e を勉強したり研究したりする必要があるのでしょうか? なぜなら、この方向に発展しているからです。 前述の通り、Grafanaはすでにこれを実現しています。Grafana、Loki、Tempo、Prometheusを組み合わせることで、監視、メトリクス、プロセスの連携を実現できます。N9eとGrafanaの違いは何でしょうか? Qin 氏の言葉によれば、Grafana は監視パネルの管理に優れており、N9e はアラーム ルールの管理に優れています。 N9e は、異なるビジネス グループや異なるグループに異なるアラーム ルールを送信できるため、1 つのグループで大量のアラーム メッセージが生成されて、最終的に「狼少年」のような事態に陥ることを回避できます。 結局のところ、N9e は実際にはどのような外観なのでしょうか? 以下は私が導入したシステムです。 ご覧のとおり、このパネルでは次のことが実現できます。 - アラーム管理
- 時系列指標クエリ
- ログ分析
- リンクトレーシング
- 自己治癒の警告
- 人事管理
- ...
こうすることで、複数のアプリを切り替える必要がなくなり、便利かつ迅速になります。 システムアーキテクチャ簡単に言えば、建築を理解していなければ、すべての努力が無駄になります。 それでは、N9eのアーキテクチャがどのようなものか見てみましょう。N9eの仕組みをアーキテクチャロジックの観点から理解することで、導入と保守の両方において大きなメリットが得られます。 N9eは、主に中央集約型の導入スキームとエッジダウン型のハイブリッド導入スキームという2つの導入オプションを提供しています。これらについては以下で説明します。 集中型展開ソリューションまず、これが写真です。 このアプローチでは、他のリージョンからの監視データを送信するためのN9eクラスターを構築します。そのためには、中央クラスターと他のリージョン間の強力なネットワーク接続が必要です。 中央クラスターの主なコンポーネントは次のとおりです。 - MySQL: 構成情報とアラーム イベントを保存するために使用されます。
- Redis: JWT トークン、マシン メタデータ、その他のデータを保存するために使用されます。
- TSDB: 監視メトリックを保存する時系列データベース。
- N9e: コア サービス。Web 要求を処理し、アラート エンジンを提供します。
- LB: 複数の N9e デバイスの負荷分散を提供します。
他のリージョンでは、ローカル監視データを中央クラスターにプッシュする Categraf をデプロイするだけで済みます。 このアーキテクチャは、シンプルさと比較的低いメンテナンスコストを特徴としています。ただし、データセンター間の良好なネットワーク接続が必要です。ネットワークが貧弱な場合は、以下のソリューションを使用する必要があります。 エッジシンクハイブリッド展開ソリューションこのアーキテクチャは集中型の展開ソリューションを補完し、主にネットワーク状態が悪い状況に対処します。 - 時系列データベース(TSDB)、転送ゲートウェイ、アラームエンジンはすべて特定のリージョンに分散されており、各リージョンは独自の処理を実行できます。ただし、各リージョンは中央クラスタとのハートビート接続を確立する必要があり、ユーザーは中央クラスタの監視パネルを通じて他のリージョンの監視情報を参照できます。
- すでに Prometheus をお持ちの場合は、データ ソースとして Prometheus を直接接続できます。
エッジ データ センターに時系列データベース、アラーム エンジン、転送ゲートウェイを導入する場合、アラーム エンジンはアラーム ルールを同期するためにデータベースに依存し、転送ゲートウェイもオブジェクトを登録してネットワーク接続を確立するためにデータベースに依存することに注意することが重要です。 PS : この解決策では、ネットワークの状態がすでに悪く、ネットワークを機能させる必要がある場合、依然としてネットワークの問題の影響を受ける可能性があります。
スタンドアロン展開ここで単一マシンの展開を選択するのはなぜでしょうか? 実際には、N9e の全体的な動作モードを理解するのに役立つため、各コンポーネントを 1 つずつ展開したいと考えました。 !!ヒント: 私は Ubuntu 22.04.1 を使用しています。
MySQLをインストールする !!ヒント: 速度を上げるために、MariaDB をインストールしました。
# ミラーソースを更新 $ sudo apt -アップデートを取得 # ソフトウェアを更新する $ sudo apt -アップグレードを取得 # Mariabd をインストールする $ sudo apt - get install mariadb - server - 10.6 インストール後、自動的に起動します。その後、データベースのユーザーパスワードを設定してください。 # データベースに接続する $ sudo mysql # 権限とパスワードを設定する > '1234'で識別される'root' @ 'localhost'に* . *のすべての権限を付与します。 >権限をフラッシュします。 Redisをインストールする # ミラーソースを更新 $ sudo apt -アップデートを取得 # ソフトウェアを更新する $ sudo apt -アップグレードを取得 # Redisをインストールする $ sudo apt install redis -サーバー デフォルトでは自動的に起動します。 TSDBをインストールするN9e にはいくつかの TSDB オプションがあります。 - プロメテウス
- M3DB
- ビクトリアメトリクス
- インフルックスDB
- サノス
ここではVictoriaMetricsを選択しました。 # バイナリパッケージをダウンロード $ wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.90.0/victoria-metrics-linux-amd64-v1.90.0.tar.gz # 解凍 $ tar xf victoria -メトリック- linux - amd64 - v1 .90 .0 .tar .gz # 起動する $ nohup ./victoria - metrics - prod &> victoria .log & 8428 が起動するかどうかを確認します。 N9eをインストールする # バイナリパッケージの最新バージョンをダウンロードする $ wget https://github.com/ccfos/nightingale/releases/download/v6.0.0-ga.3/n9e-v6.0.0-ga.3-linux-amd64.tar.gz # 解凍 $ mkdir n9e $ tar xf n9e - v6 .0 .0 - ga .3 - linux - amd64 .tar .gz - C n9e / # 検査カタログは以下のとおりです $ll 合計35332 drwxrwxr - x 7 jokerbai jokerbai 4096 4月12日14:05 ./ drwxr - xr - x 4 jokerbai jokerbai 4096 4月12日14:05 .. / drwxrwxr - x 3 jokerbai jokerbai 4096 4月12日14:05 cli / drwxrwxr - x 10 jokerbai jokerbai 4096 4月12日14:05 docker / drwxrwxr - x 4 jokerbai jokerbai 4096 4月12日14:09など/ drwxrwxr - x 20 jokerbai jokerbai 4096 4月12日14:05統合/ - rwxr - xr - x 1ジョーカーバイ ジョーカーバイ25280512 4 月6 日19:05 n9e * - rwxr - xr - x 1ジョーカーバイ ジョーカーバイ10838016 4 月6 日19:05 n9e - cli * - rw - r --r-- 1 jokerbai jokerbai 29784 4月 6日 19:04 n9e.sql drwxrwxr - x 6 jokerbai jokerbai 4096 4月12日14:05 pub / 次に、N9e データベースをインポートします。 # データベースをインポート $ mysql - uroot - p < n9e .sql 現在のディレクトリにある N9e 構成ファイル、具体的には etc/config.toml ファイルを変更します。 [ [ Pushgw.Writers ] ] # URL = "http://127.0.0.1:8480/insert/0/prometheus/api/v1/write" URL = "http://127.0.0.1:8428/api/v1/write" 次に、N9e サービスを開始します。 # サービスを開始する $ nohup ./n9e &> n9e .log & # ポート17000が動作しているか確認する $ ss - ntl | grep 17000 聞く0 4096 * : 17000 * : * ブラウザに http://127.0.0.1:17000 と入力し、ユーザー名 root とパスワード root.2020 を入力してシステムにログインします。 CategrafをインストールするCategraf は、収集された情報を TSDB にプッシュする監視およびデータ収集エージェントです。 # ダウンロード $ wget https : //ダウンロード.flashcat .cloud / categraf - v0 .2 .38 - linux - amd64 .tar .gz # 解凍 $ tar xf categraf - v0 .2 .38 - linux - amd64 .tar .gz # ディレクトリを入力 $ cd categraf - v0.2.38 - linux - amd64 / 次のように、構成ファイル(具体的には conf/config.toml)を変更します。 [ [作家] ] url = "http://127.0.0.1:17000/prometheus/v1/write"
[鼓動] 有効= true 次にCategrafを起動します。 $ nohup ./categraf &> categraf .log & その後、メインインターフェイスで基本情報を確認できます。 データソースを追加現在、時系列データ メトリックを表示しようとしても、データ ソースが追加されていないため、見つけることができません。 次のようにして、[システム構成] -> [データ ソース] にデータ ソースを追加します。 すると、対応するインジケーターデータが表示されます。 以下に示すように、組み込みダッシュボードを通じてホストの監視データを表示することもできます。 要約この記事の主な目的は、Nightingale の予備的な印象を述べ、全体的なアーキテクチャを簡単に紹介し、その後、Nightingale のコンポーネントを明確に理解できるように、インストール プロセスを最初から最後までガイドすることです。 NightingaleはバージョンV6にアップデートされ、ELKやJaegerとの統合など、多くの新機能が追加されました。今後もこのシリーズをアップデートしていきます。 |