搜尋
首頁運維安全【夜鶯監控】初識夜鶯,還是強!

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

前言

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

  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刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境