首頁 > 運維 > 安全 > 主體

【夜鶯監控】初識夜鶯,還是強!

PHPz
發布: 2023-06-09 10:01:21
轉載
1224 人瀏覽過

【夜鶯監控】初識夜鶯,還是強!

前言

#可觀測性是大部分中小公司比較頭痛的問題,主要表現以下幾個方面:

  1. 需要不同的開源軟體來組裝以實現不同的功能,例如使用Skywalking 實現鏈路監控,使用ELK 實現日誌收集監控,使用Grafana Prometheus 來實現指標監控。
  2. 每個開源軟體背後都是獨立的一套體系,它們之前是相互獨立的(Grafana 全家桶已經實現組合)。
  3. 資料孤島,連結、日誌、指標各玩各的,沒有建立聯繫。目前市面上的解決方案不是商業化產品,就是自研。

本文的主角其實也沒有做大一統,目前階段依然是不同的開源元件實現不同的功能,只不過N9e可以在同一個主面板查看它們,但是數據之間的聯繫依然沒有實現。

那為什麼還要學研究N9e呢?

因為它正在朝這方面發展。

上面提到 Grafana 其實已經在做了,基於 Grafana Loki Tempo Prometheus 組合可以實現監控、指標、連結的連動,N9e 和 Grafana 有什麼不同呢?

用秦總的話說:Grafana比較擅長監控面板的管理,N9e比較擅長警告規則的管理。

N9e 可以將不同的告警規則發送到不同的業務組,不同的群體,避免在一個群裡產生大量的告警信息,久而久之就上演了狼來了的故事。

說了這麼多,N9e到底長啥樣?

下面是我部署好的一套系統。

【夜鶯監控】初識夜鶯,還是強!

可以看到,在該面板上,我們可以實作:

  • 警報管理
  • ##時序指標查詢
  • 日誌分析
  • 連結追蹤
  • 警告自癒
  • 人員管理
  • .....
這樣就不用幾個應用程式來回切了,方面快捷。

系統架構

說一千到一萬,架構不懂都白乾。

現在我們來看看 N9e 的架構到底是什麼樣的,只有從架構邏輯上理清楚 N9e 是怎麼玩的,不論是對部署還是維護都大有裨益。

N9e 主要有中心匯聚式部署方案以及邊緣下沉式混雜部署方案,以下會分別做解釋。

中心匯聚式部署方案

先上圖:

【夜鶯監控】初識夜鶯,還是強!

這個方案就是建立一個N9e 集群,其他region 的監控數據都會往這一集群發送數據,這要求中心集群和其他region 要有很好的網路連線。

對於中心叢集來說,主要包括以下元件:

    MySQL:用於存放設定資訊以及警告事件。
  • Redis:用於儲存 JWT Token,機器元資訊等資料。
  • TSDB:時序資料庫,存放監控指標。
  • N9e:核心服務,處理 Web 請求、提供警告引擎
  • LB:為多個 N9e 提供負載功能。
對於其他 Region,只需要部署 Categraf 即可,它會將本地的監控資料推送到中心叢集。

這個架構的特點是簡單,維護成本比較低。前提是要求機房之間的網路連結要比較好,如果網路不好就要用下面的方案了。

邊緣下沉式混雜部署方案

【夜鶯監控】初識夜鶯,還是強!

#這種架構是中心式部署方案的補充,主要是針對網路不好的情況:

    把時序資料庫TSDB、轉送網關、告警引擎都下沉到具體的Region,由Region 自己的來處理。不過 Region 仍然需要和中心集群建立心跳連接,用戶還是可以透過中心集群的監控面板查看其他 Region 的監控資訊。
  1. 對於已有 Prometheus 的情況,也可以直接將 Prometheus 作為資料來源存取即可。
邊緣機房,下沉部署時序庫、警告引擎、轉送網關的時候,要注意,警告引擎需要依賴資料庫,因為要同步告警規則,轉送網關也要依賴資料庫,因為要註冊對像到資料庫裡去,需要打通相關網路。

!! #PS:對於這種方案,本身網路不好,還要打通網絡,可能還是會受網路問題影響。

單機部署

為什麼這裡要選擇單機部署呢?

其實我是想挨著部署各個元件,這樣對於理解整個 N9e 的運作模式有一定的幫助。

!! #Tips:我這裡使用的是Ubuntu 22.04.1 系統

安裝MySQL

#!! 

!! 

##Tips :為了快速我安裝的是Mariadb

# 更新镜像源
$ sudo apt-get update
# 更新软件
$ sudo apt-get upgrade
# 安装Mariabd
$ sudo apt-get install mariadb-server-10.6
登入後複製

安裝完成後會自動啟動。然後為資料庫設定一個用戶密碼。

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

安裝 Redis

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

預設會自動啟動。

  • 安裝TSDB
  • N9e 的TSDB 有多種選擇:
  • Prometheus
  • M3DB
#VictoriaMetrics

InfluxDB

Thanos

這裡我選擇的是VictoriaMetrics。

# 下载二进制包
$ 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 &
登入後複製

觀察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
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/
登入後複製

然後匯入 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
LISTEN 04096 *:17000*:*
登入後複製

在瀏覽器輸入http://127.0.0.1:17000,然後輸入使用者名稱root,密碼root.2020即可登入系統。

安裝 Categraf

#Categraf 是監控採集 Agent,會將收集到的資訊推送到 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/
登入後複製

修改設定文件,在 conf/config.toml 中,修改的部分如下:

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

[heartbeat]
enable = true
登入後複製

然後啟動 Categraf。 【夜鶯監控】初識夜鶯,還是強!

$ nohup ./categraf &>categraf.log &
登入後複製

然後就可以在主介面看到基礎資訊。

新增資料來源

【夜鶯監控】初識夜鶯,還是強!

#現在如果去查看時序資料指標,是查詢不到的,因為沒有新增資料來源。

【夜鶯監控】初識夜鶯,還是強!

在系統配置->資料來源處新增資料來源,如下:

【夜鶯監控】初識夜鶯,還是強!

然後就能看到對應的指標資料了。

【夜鶯監控】初識夜鶯,還是強!

也可以透過內建的儀表板查看主機的監控數據,如下:

總結#########這篇文章主要是帶搭建對夜鶯(Nightingale )有一個初步的印象,對它的整體架構做了簡單的介紹,然後帶大家從0 到1 安裝了一遍,旨在讓大家對夜鶯的組件有一個清晰的認識。 ######目前夜鶯已經更新迭代到 V6 版本,該版本有許多新的功能嘗試,例如接入 ELK,接入 Jaeger 等,後續將持續對這個系列進行更新。 ###

以上是【夜鶯監控】初識夜鶯,還是強!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!