Maison  >  Article  >  Opération et maintenance  >  [Surveillance Nightingale] Première rencontre avec Nightingale, toujours aussi fort !

[Surveillance Nightingale] Première rencontre avec Nightingale, toujours aussi fort !

PHPz
PHPzavant
2023-06-09 10:01:211174parcourir

[Surveillance Nightingale] Première rencontre avec Nightingale, toujours aussi fort !

Avant-propos

L'observabilité est un casse-tête pour la plupart des petites et moyennes entreprises, principalement dans les aspects suivants :

  1. Nécessite l'assemblage de différents logiciels open source pour réaliser différentes fonctions, telles que l'utilisation de Skywalking Implement surveillance des liens, utilisez ELK pour mettre en œuvre la collecte et la surveillance des journaux, et utilisez Grafana+Prometheus pour mettre en œuvre la surveillance des indicateurs.
  2. Derrière chaque logiciel open source se cache un système indépendant. Ils étaient auparavant indépendants les uns des autres (Grafana Family Bucket a été combiné).
  3. Les îlots de données, les liens, les journaux et les indicateurs sont tous séparés et aucune connexion n'est établie. Les solutions actuellement sur le marché sont soit des produits commerciaux, soit des produits auto-développés.

Le protagoniste de cet article n'est en fait pas unifié. Au stade actuel, différents composants open source implémentent encore des fonctions différentes. Cependant, N9e peut les visualiser sur le même panneau principal, mais la connexion entre les données n'est toujours pas réalisée.

Alors pourquoi avez-vous encore besoin d'étudier le N9e ?

Parce qu’il évolue dans ce sens.

Comme mentionné ci-dessus, Grafana le fait déjà. Sur la base de la combinaison Grafana+Loki+Tempo+Prometheus, le suivi, les indicateurs et les liens peuvent être liés. Quelle est la différence entre N9e et Grafana ?

Selon les mots de M. Qin : Grafana est meilleur dans la gestion des panneaux de surveillance et N9e est meilleur dans la gestion des règles d'alarme.

N9e peut envoyer différentes règles d'alarme à différents groupes d'entreprises et différents groupes pour éviter de générer un grand nombre de messages d'alarme dans un groupe, ce qui mènera à l'histoire du loup qui pleure au fil du temps.

Cela dit, à quoi ressemble le N9e ?

Ce qui suit est un système que j'ai déployé.

[Surveillance Nightingale] Première rencontre avec Nightingale, toujours aussi fort !

Vous pouvez voir que sur ce panneau, nous pouvons mettre en œuvre :

  • Gestion des alarmes
  • Requête d'indicateur de séries temporelles
  • Analyse des journaux
  • Suivi des liens
  • Auto-guérison des alarmes
  • Gestion du personnel
  • .. . ...

De cette façon, vous n'avez pas besoin de basculer entre plusieurs applications, et c'est rapide.

Architecture du système

En parlant de mille à dix mille, si vous ne comprenez pas l'architecture, ce sera en vain.

Voyons maintenant à quoi ressemble l'architecture de N9e. Ce n'est qu'en clarifiant le fonctionnement de N9e à partir de la logique architecturale qu'il sera très utile à la fois au déploiement et à la maintenance.

N9e dispose principalement d'une solution de déploiement à convergence centrale et d'une solution de déploiement hybride Edge Sinking, qui seront expliquées ci-dessous.

Solution de déploiement convergé central

Première image :

[Surveillance Nightingale] Première rencontre avec Nightingale, toujours aussi fort !

Cette solution consiste à établir un cluster N9e, et les données de surveillance des autres régions seront envoyées à ce cluster. Cela nécessite que le cluster central et les autres régions le fassent. Il y a une bonne connexion Internet.

Pour le cluster central, il comprend principalement les composants suivants :

  • MySQL : utilisé pour stocker les informations de configuration et les événements d'alarme.
  • Redis : utilisé pour stocker le jeton JWT, les méta-informations de la machine et d'autres données.
  • TSDB : Base de données de séries chronologiques, qui stocke les indicateurs de suivi.
  • N9e : service de base, gère les requêtes Web et fournit un moteur d'alarme.
  • LB : fournit une fonction de chargement pour plusieurs N9e.

Pour les autres régions, il vous suffit de déployer Categraf, qui transmettra les données de surveillance locales vers le cluster central.

Cette architecture se caractérise par sa simplicité et ses coûts de maintenance relativement faibles. Le principe est que les liaisons réseau entre les salles informatiques doivent être relativement bonnes. Si le réseau n'est pas bon, la solution suivante doit être utilisée.

Solution de déploiement hybride Edge Sinking

[Surveillance Nightingale] Première rencontre avec Nightingale, toujours aussi fort !

Cette architecture est un complément à la solution de déploiement centralisé, principalement pour les situations où le réseau n'est pas bon :

  1. Intégrer la base de données de séries chronologiques TSDB, la passerelle de transfert et l'alarme moteur Ils sont tous dirigés vers une région spécifique et sont gérés par la région elle-même. Cependant, la région doit toujours établir une connexion cardiaque avec le cluster central, et les utilisateurs peuvent toujours consulter les informations de surveillance des autres régions via le panneau de surveillance du cluster central.
  2. Si vous disposez déjà de Prometheus, vous pouvez également connecter directement Prometheus en tant que source de données.

Dans la salle informatique périphérique, lors du déploiement de la bibliothèque de synchronisation, du moteur d'alarme et de la passerelle de transfert, veuillez noter que le moteur d'alarme doit s'appuyer sur la base de données car il doit synchroniser les règles d'alarme, et la passerelle de transfert doit également s'appuyer sur la base de données car il doit enregistrer des objets dans la base de données, il faut ouvrir le réseau concerné.

!! PS : Pour cette solution, si le réseau lui-même n'est pas bon, et que le réseau doit être connecté, il peut quand même être affecté par des problèmes de réseau.

Déploiement sur une seule machine

Pourquoi devrions-nous choisir le déploiement sur une seule machine ici ?

En fait, je souhaite déployer chaque composant les uns à côté des autres, ce qui sera utile pour comprendre le mode de fonctionnement de l'ensemble du N9e.

!! Conseils : Pour moi rapidement, Mariadb est installé

# 更新镜像源
$ sudo apt-get update
# 更新软件
$ sudo apt-get upgrade
# 安装Mariabd
$ sudo apt-get install mariadb-server-10.6
Il démarrera automatiquement une fois l'installation terminée. Définissez ensuite un mot de passe utilisateur pour la base de données.

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

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

Il démarrera automatiquement par défaut. Il existe de nombreuses options pour installer le TSDB de TSDBN9e :

Prometheus

M3DB

VictoriaMetricsInfluxDB

Thanos

Ici, je choisis Victoria Moi des trucs.
# 下载二进制包
$ 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 &

Observez si 8428 démarre.

    Installez 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/
  • puis importez la base de données de N9e.
  • # 导入数据库
    $ mysql -uroot -p <n9e.sql
  • Modifiez le fichier de configuration N9e dans le fichier etc/config.toml du répertoire courant.
  • [[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"
  • Ensuite, démarrez le service N9e.
  • # 启动服务
    $ nohup ./n9e &>n9e.log &
    # 检测17000端口是否启动
    $ ss -ntl | grep 17000
    LISTEN 04096 *:17000*:*
  • Entrez http://127.0.0.1:17000 dans le navigateur, puis entrez le nom d'utilisateur root et le mot de passe root.2020 pour vous connecter au système.

Installer Categraf

Categraf est un agent de surveillance et de collecte qui transmettra les informations collectées à TSDB.

# 下载
$ 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/

Modifiez le fichier de configuration. Dans conf/config.toml, les parties modifiées sont les suivantes :

[[writers]]
url = "http://127.0.0.1:17000/prometheus/v1/write"

[heartbeat]
enable = true

Puis démarrez Categraf.

$ nohup ./categraf &>categraf.log &

Ensuite, vous pouvez voir les informations de base sur l'interface principale.

[Surveillance Nightingale] Première rencontre avec Nightingale, toujours aussi fort !

Ajouter une source de données

Maintenant, si vous vérifiez les indicateurs de données de séries chronologiques, vous ne pouvez pas les interroger car aucune source de données n'a été ajoutée.

Ajoutez la source de données dans Configuration système->Source de données, comme suit :

[Surveillance Nightingale] Première rencontre avec Nightingale, toujours aussi fort !

Ensuite, vous pouvez voir les données de l'indicateur correspondant.

[Surveillance Nightingale] Première rencontre avec Nightingale, toujours aussi fort !Vous pouvez également consulter les données de surveillance de l'hôte via le tableau de bord intégré, comme suit :

[Surveillance Nightingale] Première rencontre avec Nightingale, toujours aussi fort !Résumé

Cet article est principalement destiné à vous donner une première impression de Nightingale , a donné une brève introduction à son architecture globale, puis vous a présenté l'installation de 0 à 1, dans le but de donner à chacun une compréhension claire des composants de Nightingale.

Actuellement, Nightingale a été mis à jour vers la version V6. Cette version comporte de nombreuses nouvelles tentatives fonctionnelles, telles que l'accès à ELK, l'accès à Jaeger, etc. Cette série continuera à être mise à jour à l'avenir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer