Nightingale (Flashcat) V6 モニタリング (1): 導入と展開

(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 の数を増やします。スタンドアロン バージョンは、設定、操作、保守が簡単です。

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 設定ファイルについて詳しく読むことができます。ナイチンゲールのその他の機能。

おすすめ

転載: blog.csdn.net/m0_61323675/article/details/130114281