Heim  >  Artikel  >  Betrieb und Instandhaltung  >  [Nightingale Monitoring] Zum ersten Mal Treffen mit Nightingale, immer noch stark!

[Nightingale Monitoring] Zum ersten Mal Treffen mit Nightingale, immer noch stark!

PHPz
PHPznach vorne
2023-06-09 10:01:211224Durchsuche

[Nightingale Monitoring] Zum ersten Mal Treffen mit Nightingale, immer noch stark!

Vorwort

Beobachtbarkeit bereitet den meisten kleinen und mittleren Unternehmen Kopfschmerzen, vor allem in folgenden Aspekten:

  1. Erfordert die Zusammenstellung verschiedener Open-Source-Software, um unterschiedliche Funktionen zu erreichen, z. B. die Verwendung von Skywalking Implement Linküberwachung, ELK zum Implementieren der Protokollerfassung und -überwachung und Grafana + Prometheus zum Implementieren der Indikatorüberwachung.
  2. Hinter jeder Open-Source-Software steht ein unabhängiges System. Sie waren zuvor unabhängig voneinander (Grafana Family Bucket wurde zusammengefasst).
  3. Dateninseln, Links, Protokolle und Indikatoren sind alle getrennt und es wird keine Verbindung hergestellt. Die derzeit auf dem Markt befindlichen Lösungen sind entweder kommerzielle Produkte oder selbst entwickelte Lösungen.

Tatsächlich hat der Protagonist dieses Artikels es noch nicht vereinheitlicht. Verschiedene Open-Source-Komponenten implementieren sie jedoch immer noch auf demselben Hauptfenster, die Verbindung zwischen den Daten besteht jedoch weiterhin nicht realisiert.

Warum müssen Sie dann immer noch N9e lernen?

Denn es entwickelt sich in diese Richtung.

Wie oben erwähnt, funktioniert Grafana bereits mit der Kombination von Grafana+Loki+Tempo+Prometheus. Was ist der Unterschied zwischen N9e und Grafana?

Um es mit Herrn Qins Worten zu sagen: Grafana ist besser in der Überwachung der Panel-Verwaltung und N9e ist besser in der Verwaltung von Alarmregeln.

N9e kann unterschiedliche Alarmregeln an verschiedene Unternehmensgruppen und Gruppen senden, um zu vermeiden, dass in einer Gruppe eine große Anzahl von Alarmmeldungen generiert wird, die im Laufe der Zeit zur Geschichte des weinenden Wolfes führen.

Nachdem ich so viel gesagt habe: Wie sieht das N9e aus?

Das Folgende ist ein System, das ich bereitgestellt habe.

[Nightingale Monitoring] Zum ersten Mal Treffen mit Nightingale, immer noch stark!

Sie können sehen, dass wir auf diesem Panel Folgendes implementieren können:

  • Alarmverwaltung
  • Abfrage von Zeitreihenindikatoren
  • Protokollanalyse
  • Linkverfolgung
  • Alarm-Selbstheilung
  • Personalverwaltung
  • .. . ...

Auf diese Weise müssen Sie nicht zwischen mehreren Apps hin und her wechseln und es geht schnell.

Systemarchitektur

Apropos tausend bis zehntausend: Wenn Sie die Architektur nicht verstehen, ist alles umsonst.

Lassen Sie uns nun einen Blick darauf werfen, wie die Architektur von N9e aussieht. Nur wenn wir klären, wie N9e von der Architekturlogik aus funktioniert, wird dies sowohl für die Bereitstellung als auch für die Wartung von großem Nutzen sein.

N9e verfügt hauptsächlich über eine zentrale Konvergenz-Bereitstellungslösung und eine Edge-Senk-Hybrid-Bereitstellungslösung, die im Folgenden erläutert wird.

Zentrale konvergente Bereitstellungslösung

Erstes Bild:

[Nightingale Monitoring] Zum ersten Mal Treffen mit Nightingale, immer noch stark!

Diese Lösung besteht darin, einen N9e-Cluster einzurichten, und die Überwachungsdaten anderer Regionen werden an diesen Cluster gesendet. Dazu müssen der zentrale Cluster und andere Regionen gesendet werden Es gibt eine gute Internetverbindung.

Der zentrale Cluster umfasst hauptsächlich die folgenden Komponenten:

  • MySQL: Wird zum Speichern von Konfigurationsinformationen und Alarmereignissen verwendet.
  • Redis: Wird zum Speichern von JWT-Token, Maschinenmetainformationen und anderen Daten verwendet.
  • TSDB: Zeitreihendatenbank, die Überwachungsindikatoren speichert.
  • N9e: Kerndienst, verarbeitet Webanfragen und stellt eine Alarm-Engine bereit.
  • LB: Bietet Ladefunktion für mehrere N9e.

Für andere Regionen müssen Sie nur Categraf bereitstellen, das lokale Überwachungsdaten an den zentralen Cluster überträgt.

Diese Architektur zeichnet sich durch Einfachheit und relativ geringe Wartungskosten aus. Voraussetzung ist, dass die Netzwerkverbindungen zwischen Computerräumen relativ gut sein müssen. Wenn das Netzwerk nicht gut ist, muss die folgende Lösung verwendet werden.

Edge-senkende Hybrid-Bereitstellungslösung

[Nightingale Monitoring] Zum ersten Mal Treffen mit Nightingale, immer noch stark!

Diese Architektur ist eine Ergänzung zur zentralisierten Bereitstellungslösung, hauptsächlich für Situationen, in denen das Netzwerk nicht gut ist:

  1. Integrieren Sie die Zeitreihendatenbank TSDB, das Forwarding-Gateway und den Alarm Engine Sie fallen alle in eine bestimmte Region und werden von der Region selbst verwaltet. Die Region muss jedoch weiterhin eine Heartbeat-Verbindung mit dem zentralen Cluster herstellen, und Benutzer können weiterhin die Überwachungsinformationen anderer Regionen über das Überwachungsfeld des zentralen Clusters anzeigen.
  2. Wenn Sie Prometheus bereits haben, können Sie Prometheus auch direkt als Datenquelle anbinden.

Beachten Sie im Edge-Computerraum bei der Bereitstellung der Timing-Bibliothek, der Alarm-Engine und des Weiterleitungs-Gateways, dass sich die Alarm-Engine auf die Datenbank verlassen muss, da sie Alarmregeln synchronisieren muss, und dass sich auch das Weiterleitungs-Gateway darauf verlassen muss Da Objekte in der Datenbank registriert werden müssen, muss das entsprechende Netzwerk geöffnet werden.

!! PS: Wenn das Netzwerk selbst nicht gut ist und eine Verbindung erforderlich ist, kann es dennoch zu Netzwerkproblemen kommen.

Bereitstellung auf einer Maschine

Warum sollten wir uns hier für die Bereitstellung auf einer Maschine entscheiden?

Eigentlich möchte ich jede Komponente nebeneinander bereitstellen, was hilfreich sein wird, um die Funktionsweise des gesamten N9e zu verstehen.

!! Tipps: Zur schnellen Installation von Mariadb

# 更新镜像源
$ sudo apt-get update
# 更新软件
$ sudo apt-get upgrade
# 安装Mariabd
$ sudo apt-get install mariadb-server-10.6
Es startet automatisch, nachdem die Installation abgeschlossen ist. Anschließend legen Sie ein Benutzerpasswort für die Datenbank fest.

# 连接数据库
$ sudo mysql
# 设置权限和密码
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '1234';
>flush privileges;
Die Installation von Redis

# 更新镜像源
$ sudo apt-get update
# 更新软件
$ sudo apt-get upgrade
# 安装Redis
$ sudo apt install redis-server

wird standardmäßig automatisch gestartet. „Es gibt viele Möglichkeiten, TSDB zu installieren.“ VictoriaMe-Tricks.

# 下载二进制包
$ wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.90.0/victoria-metrics-linux-amd64-v1.90.0.tar.gz
# 解压
$ tar xf victoria-metrics-linux-amd64-v1.90.0.tar.gz
# 启动
$ nohup ./victoria-metrics-prod &>victoria.log &
Beobachten Sie, ob 8428 startet. Installieren Sie 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
total 35332
drwxrwxr-x7 jokerbai jokerbai 40964月 12 14:05 ./
drwxr-xr-x4 jokerbai jokerbai 40964月 12 14:05 ../
drwxrwxr-x3 jokerbai jokerbai 40964月 12 14:05 cli/
drwxrwxr-x 10 jokerbai jokerbai 40964月 12 14:05 docker/
drwxrwxr-x4 jokerbai jokerbai 40964月 12 14:09 etc/
drwxrwxr-x 20 jokerbai jokerbai 40964月 12 14:05 integrations/
-rwxr-xr-x1 jokerbai jokerbai 252805124月6 19:05 n9e*
-rwxr-xr-x1 jokerbai jokerbai 108380164月6 19:05 n9e-cli*
-rw-r--r--1 jokerbai jokerbai297844月6 19:04 n9e.sql
drwxrwxr-x6 jokerbai jokerbai 40964月 12 14:05 pub/
und importieren Sie dann die Datenbank von N9e.

# 导入数据库
$ mysql -uroot -p <n9e.sql
Ändern Sie die N9e-Konfigurationsdatei in der Datei etc/config.toml im aktuellen Verzeichnis.

[[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"

Dann starten Sie den N9e-Dienst.

# 启动服务
$ nohup ./n9e &>n9e.log &
# 检测17000端口是否启动
$ ss -ntl | grep 17000
LISTEN 04096 *:17000*:*
Geben Sie http://127.0.0.1:17000 in den Browser ein und geben Sie dann den Benutzernamen root und das Passwort root.2020 ein, um sich beim System anzumelden.

Categraf installieren

    Categraf ist ein Überwachungs- und Erfassungsagent, der die gesammelten Informationen an TSDB weiterleitet.
  • # 下载
    $ wget https://download.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/
  • Ändern Sie die Konfigurationsdatei in conf/config.toml. Die geänderten Teile lauten wie folgt:
  • [[writers]]
    url = "http://127.0.0.1:17000/prometheus/v1/write"
    
    [heartbeat]
    enable = true
  • Dann starten Sie Categraf.
  • $ nohup ./categraf &>categraf.log &
  • Dann können Sie die grundlegenden Informationen auf der Hauptoberfläche sehen.

Datenquelle hinzufügen

Wenn Sie nun die Zeitreihendatenindikatoren anzeigen, können Sie diese nicht abfragen, da keine Datenquelle hinzugefügt wurde.

Fügen Sie unter Systemkonfiguration->Datenquelle wie folgt eine Datenquelle hinzu:

[Nightingale Monitoring] Zum ersten Mal Treffen mit Nightingale, immer noch stark!

Dann können Sie die entsprechenden Indikatordaten sehen.

Sie können die Überwachungsdaten des Hosts auch über das integrierte Dashboard wie folgt anzeigen:

Zusammenfassung

[Nightingale Monitoring] Zum ersten Mal Treffen mit Nightingale, immer noch stark!

Dieser Artikel soll Ihnen hauptsächlich einen vorläufigen Eindruck von Nightingale vermitteln , gab eine kurze Einführung in die Gesamtarchitektur und führte Sie dann von 0 bis 1 durch die Installation, mit dem Ziel, jedem ein klares Verständnis der Komponenten von Nightingale zu vermitteln.

Derzeit wurde Nightingale auf die V6-Version aktualisiert. Diese Version verfügt über viele neue Funktionsversuche, wie z. B. Zugriff auf ELK, Zugriff auf Jaeger usw. Diese Serie wird auch in Zukunft aktualisiert.

Das obige ist der detaillierte Inhalt von[Nightingale Monitoring] Zum ersten Mal Treffen mit Nightingale, immer noch stark!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen