(1): ナイチンゲール入門
ナイチンゲール監視(Nightingale)は、オールインワン設計を採用し、データ収集、可視化、監視と警報、データ分析を統合した国産のオープンソースのクラウドネイティブ監視・分析システムです。2020 年 3 月 20 日に v1 バージョンが github でリリースされ、60 以上のバージョンが繰り返されてきました。v5 バージョン以降、Prometheus、VictoriaMetrics、Grafana、Telegraf、Datadog などと緊密に統合され、すぐに使用できるエンタープライズ レベルの監視分析およびアラーム機能を提供しています。多くの企業が、統合ソリューションのアップグレードを選択しています。 Prometheus + AlertManager + Grafana を使用してナイチンゲールを監視します。
Didi が開発しオープンソース化した Nightingale Monitor は、2022 年 5 月 11 日に中国コンピュータ連盟オープンソース開発委員会 (CCF ODC) に寄贈されました。これは、CCF ODC の設立後に寄贈を受け付けた最初のオープンソース プロジェクトです。Nightingale Monitoring のコア開発チームと Open-Falcon プロジェクトの当初のコア R&D スタッフ
公式サイトリンク:Fast Cat Nebula Flashcat | クラウドネイティブモニタリング | ハイブリッドクラウドモニタリング | 安定性保証システム
(2): Nightingale の展開とインストールのアーキテクチャ
現在、ナイチンゲールのバージョンは更新され、V6 バージョンに反復されています。
ニンチンゲールのダウンロード リンク:ナイチンゲール - Fast Cat Nebula (flashcat.cloud)
Categraf ダウンロード アドレス: Categraf - Fast Cat Nebula (flashcat.cloud)
Categraf 公式 github アドレス: https://github.com/flashcatcloud/categraf
1. アーキテクチャ分析:
最新バージョン V6 のアーキテクチャ図:
この中央集約は最も一般的に使用されます。
ネットワーク リンクが良好でない場合は、次の展開方法を使用する必要があるためのもう 1 つの方法があります。
Mysql : すべてのアラーム情報、構成情報 (Prometheus など)、アラーム ルールなどが mysql に保存されます。
Redis : 認証情報、JWT トークン、メタデータ、メタデータ、ハートビート情報などを保存します。
TSDB : 時系列データベース (Prometheus、M3DB、VictoriaMetrics、Thanos などをサポート可能)
N9e : Nightingale | Nightingale Monitoring は、先進的なオープンソースのクラウドネイティブ監視および分析システムであり、オールインワン設計を採用し、データ収集、視覚化、監視と警報、およびデータ分析を統合し、クラウドと緊密に統合されています。ネイティブ エコシステム。オープンですぐに使用できるエンタープライズ レベルの監視分析とアラーム機能を提供します。2022 年 5 月 11 日に、中国コンピュータ連盟オープンソース開発委員会 (CCF ODC) に寄贈されましたが、これは CCF ODC の設立後に寄贈を受け付けた最初のオープンソース プロジェクトです。それらを時系列ライブラリ (Prometheus、M3DB、VictoriaMetrics、Thanos などをサポート) に転送し、アラーム ルール、シールド ルール、およびサブスクリプション ルールを構成する機能を提供し、監視データを表示する機能を提供し、アラームのセルフ機能を提供します。修復メカニズム (アラームがトリガーされた後、Webhook アドレスを自動的にコールバックする、または特定のスクリプトを実行する)、過去のアラーム イベントのストレージ管理、グループ表示機能を提供、n9e をクラスターとして使用可能、複数の n9e がアラームの処理とプレッシャーを共有n9e もステートレス サービスとステートフル サービスに分けられます。
LB : nginx はレイヤー 7 プロキシとして機能します
categraf :ナイチンゲール監視用のデフォルトの自作データ コレクターです。
2. n9e+categraf+VictoriaMetrics+mysql+redis をデプロイする 集中型バイナリ スタンドアロン デプロイメント Nightingale
名前 | システム | 構成 |
フラッシュキャット | セントス7.9 | 2コア 4G ディスク 100G |
(1): n9e をダウンロードして展開します。
ニンチンゲールのダウンロード リンク:ナイチンゲール - Fast Cat Nebula (flashcat.cloud)
mysql と redis をダウンロード、インストール、デプロイ、構成します。
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
n9e パッケージをダウンロードし、SQL テーブルをインポートします。
mkdir -p /opt/n9e && cd /opt/n9e
wget wget https://download.flashcat.cloud/n9e-v6.0.0-ga.3-linux-amd64.tar.gz
tar zxvf n9e-v6.0.0-ga.3-linux-amd64.tar.gz
mysql -uroot -p1234 < n9e.sql
n9e を起動し、起動しているかどうかを確認します。n9e のデフォルトのポートは 17000 です。
nohup ./n9e &> n9e.log &
ss -ntpl | grep 17000
起動に成功すると、n9e はデフォルトでポート 17000 をリッスンします。上記は nohup を使用した簡単なデモンストレーションであり、運用環境には systemd ホスティングを使用することをお勧めします。
設定ファイルには、 etc/config.toml
現在のディレクトリにある mysql 接続アドレスの設定が含まれています。データベースへの接続時にエラーが報告された場合は、ユーザー名とパスワードを確認できます。
Nightingale サーバーがデプロイされた後、ブラウザは 17000 にアクセスして関連機能を体験できます。デフォルトのユーザーは で root
、パスワードは です。 root.2020
(2): categraf をダウンロードしてデプロイします。
Categraf 公式 github アドレス: https://github.com/flashcatcloud/categraf
カテグラフを解凍します
tar xf categraf-v0.2.38-linux-amd64.tar.gz -C /opt
cd /opt
解凍後、実行可能ファイル categraf とフォルダー conf が見つかります。conf ファイルの下には多数の入力フォルダーがあり、各プラグインの構成ファイル (xxx.toml) が含まれています。config.toml がメインの構成ファイルです。
構成のためにconfig.tomlを開きます
......
...... ##第一步 找到[[writers]]字段
[writer_opt]
batch = 1000
chan_size = 1000000
[[writers]]
url = "http://127.0.0.1:17000/prometheus/v1/write" ##这里的端口要改成你n9e启动的端口,默认的就是17000,其实就是你n9e的地址
# Basic auth username
......
...... ##第二步 找到[heartbeat]字段
[ibex]
enable = false
## ibex flush interval
interval = "1000ms"
## n9e ibex server rpc address
servers = ["127.0.0.1:20090"]
## temp script dir
meta_dir = "./meta"
[heartbeat]
enable = true ##这里的false改为ture 启动heartbeat功能来收集本台主机的信息
# report os version cpu.util mem.util metadata
url = "http://127.0.0.1:17000/v1/n9e/heartbeat"
次に、categrafを直接起動します
nohup ./categraf &>stdout.log &
その後、n9e Web ページでこのホストのステータスを確認できます。
(3): VictoriaMetrics をインストールし、ドッキング データ ソースを構成します。
VictoriaMetrics 公式ドキュメント: VictoriaMetrics: 誰でも簡単で信頼性の高いモニタリング
Github ダウンロード アドレス: Releases VictoriaMetrics/VictoriaMetrics (github.com)
VictoriaMetrics は 、シンプルなアーキテクチャ、高い信頼性、パフォーマンス、コスト、スケーラビリティの点で優れたパフォーマンスを備え、活発なコミュニティを持ち、Prometheus エコシステムと密接に結びついています。Prometheus のスタンドアロン バージョンでは容量の点で企業のニーズを満たせない場合は、VictoriaMetrics を時系列データベースとして使用できます。
VictoriaMetrics は、スタンドアロン バージョンとクラスター化バージョンを提供します。1 秒あたりに書き込むデータ ポイントの数が 100 万未満の場合 (この数値の概念は何ですか? 機械設備の監視のみを行っている場合、各機械はほぼ 200 のインジケーターを収集し、収集頻度は 10 秒です。収集頻度は 10 秒で、各マシンは 1 秒あたり 20 ポイントを収集します。約 100 万/20 = 50,000 マシン)、VictoriaMetrics はデフォルトでスタンドアロン バージョンを使用することを公式に推奨しています。サーバーの CPU コア、メモリ、IOPS の数を増やします。スタンドアロン バージョンは、設定、操作、保守が簡単です。
- プロメテウスの長期保管場所として使用できます。
- Prometheus クエリ APIをサポートしているため、Grafana の Prometheus のドロップイン代替品として使用できます 。
- Graphite APIをサポートしているため、Grafana の Graphite のドロップイン代替品として使用できます。Graphite と比較して、VictoriaMetrics はインフラストラクチャ コストを 10 分の 1 以上削減できます。このケース スタディを参照してください。
- セットアップと操作が簡単:
- VictoriaMetrics は、外部依存関係のない小さな実行可能ファイルで構成されています。
- すべての構成は、適切なデフォルトを使用して明示的なコマンド ライン フラグを使用して行われます。
- すべてのデータは、コマンド ライン フラグによって指定される単一のディレクトリに保存されます。
-storageDataPath
- vmbackup / vmrestoreツールを使用すると、インスタント スナップショットからのバックアップが簡単かつ迅速に実行できます。詳細については、この記事を参照してください。
- PromQL に似たクエリ言語 MetricsQL を実装しており、 PromQL に加えて改善された機能を提供します。
- グローバル クエリ ビューを提供します。複数の Prometheus インスタンスまたはその他のデータ ソースが VictoriaMetrics にデータを取り込む可能性があります。このデータは、後で 1 つのクエリでクエリできます。
- データの取り込みとデータクエリに対して、高いパフォーマンスと優れた垂直方向および水平方向のスケーラビリティを提供します。そのパフォーマンスは InfluxDB や TimescaleDB よりも 20 倍優れています。
- 数百万もの固有の時系列 (別名、高カーディナリティ)を処理する場合、使用する RAM は InfluxDB の 10 分の 1、Prometheus、Thanos、または Cortexの 7 分の 1です。
VictoriaMetrics は Prometheus のエンタープライズ版と言えます。
展開、インストール、解凍
cd /opt
mkdir vm && cd vm
tar xf victoria-metrics-linux-amd64-v1.90.0.tar.gz
## 我们这里因为是单机点所以用的victoriaMetrics是单机版,解压过后只有一个文件victoria-metrics-prod
VictoriaMetrics を直接開始する
nohup ./victoria-metrics-prod &> stdout.log &
デフォルトのポートは8428です。起動後、コマンド ss -ntpl を使用して、起動されているかどうかを確認できます。起動が成功した後、保存ディレクトリを指定しないと、次の場所に victoria-metrics-data フォルダーが作成されます。デフォルトでは現在のディレクトリにデータが保存されます。保存ディレクトリを変更する必要がある場合は、パラメータ-storageDataPathを追加するだけです。
n9eの設定ファイルを変更し、データを表示するためのVictoriaMetricsのアドレスを設定します。
vim /opt/n9e/etc/config.toml
.....
.....
..... ##在最后找到 [[Pushgw.Writers]]字段
[[Pushgw.Writers]]
# Url = "http://127.0.0.1:8480/insert/0/prometheus/api/v1/write"
#Url = "http://127.0.0.1:9090/api/v1/write" ##这里注释掉 这个是普罗米修斯的默认的remote-wirte协议的接口,因为我们安装的是vm所以这里注释掉
Url = "http://127.0.0.1:8428/api/v1/write" ##这里添加为VictoriaMetrics的地址8428的端口
# Basic auth username
BasicAuthUser = ""
# Basic auth password
BasicAuthPass = ""
# timeout settings, unit: ms
Headers = ["X-From", "n9e"]
Timeout = 10000
DialTimeout = 3000
TLSHandshakeTimeout = 30000
ExpectContinueTimeout = 1000
IdleConnTimeout = 90000
# time duration, unit: ms
KeepAlive = 30000
MaxConnsPerHost = 0
MaxIdleConns = 100
MaxIdleConnsPerHost = 100
## Optional TLS Config
# UseTLS = false
# TLSCA = "/etc/n9e/ca.pem"
# TLSCert = "/etc/n9e/cert.pem"
# TLSKey = "/etc/n9e/key.pem"
# InsecureSkipVerify = false
# [[Writers.WriteRelabels]]
# Action = "replace"
# SourceLabels = ["__address__"]
# Regex = "([^:]+)(?::\\d+)?"
# Replacement = "$1:80"
# TargetLabel = "__address__"
n9eを再起動します
pkill n9e
nohup ./n9e &> n9e.log &
ポート 17000 で n9e Web ページに入り、データ ソースを追加します
次に保存して、データ ソースの構成が成功したかどうかを確認します。
このようにして、マシンの一部のデータ情報を SQL ステートメントを通じてクエリできるようになります。
アラーム判定用の組み込みアラーム ルールを作成することもできます。
「バッチクローン」をクリックします
ここでは、アラームを判断するための新しいアラーム ルールを追加することもできます
ここまでで展開は完了しました
ここで、ELK のスライス ストレージの E に似た、n9e 構成ファイル ストレージ ログのフィールドであるスライスを追加します。
vim /opt/n9e/etc/config.toml
.....
.....
..... 找到log字段
[Log]
# log write dir
Dir = "logs" ##这里的意思是日志写到当前目录的logs目录下
# log level: DEBUG INFO WARNING ERROR
Level = "DEBUG"
# stdout, stderr, file
Output = "stdout"
# # rotate by time
# KeepHours: 4 ##这里的意思是我要保存4个小时的n9e日志
# # rotate by size
# RotateNum = 3 ##这里是按大小来存储日志 存储3个文件,每个文件有256MB大小这么大来存储日志,对应下面的RotateSize字段来配置启动
# # unit: MB
# RotateSize = 256
如果需要实现日志的存储其他功能 把前面的注释取消掉就可以连通
今後、ナイチンゲールシリーズは毎週更新され、さまざまな使い方、アラーム、いくつかのケースがあり、詳細ページの機能は 1 つずつ紹介されます。n9e の config.toml 設定ファイルについて詳しく読むことができます。ナイチンゲールのその他の機能。