部署Nightingale夜莺监控系统V7

夜莺监控Nightingale是一款很好用的开源监控系统,集多个强大功能于一身,开箱即用,并且更新和社区都很活跃。
在使用了一段时间后的感受是:确实很强大很好用,部署很简单、使用也很方便。
对于系统简介和主要功能,官方仓库的README.md和文档的功能概览其实已经写的很清楚了。
目前的大版本是Nightingale V7,部署方式官方文档写的很详细,并且提供了多种选择,官方推荐使用二进制部署
由于官方文档其实写的很详细,所以部署过程中基本上没遇到什么问题。

准备工作

夜莺(n9e)本身其实只需要本体n9e程序Redis以及MySQL或MariaDB就可以正常运行。
但是如果想要读写采集信息,还需要对接时序数据库其他系统,并在需要监控指标的服务器上部署采集器
因此,如果想要部署一个可以正常使用并起到监控、采集、推送功能的夜莺监控系统,至少需要部署5个程序。
这里时序数据库选用VictoriaMetrics
数据库选用MariaDB
采集器选用夜莺自己的采集器categraf
目前使用版本:

  1. N9E v7.0.0-beta.13
  2. redis:7.2.5
  3. mariadb:11.2
  4. VictoriaMetrics v1.102.0
  5. categraf v0.3.74 采集器版本根据实际情况选择,老旧系统(windows server2008这种)可能需要古早版本的。多数常用的系统可以先选择最新的,一般没啥影响。

目标:在一台机器上测试部署夜莺监控系统,并进行本机数据的采集。

用于测试部署的机器配置比较随意。

root@x:/home/ubuntu# screenfetch
                          ./+o+-       root@x
                  yyyyy- -yyyyyy+      OS: Ubuntu 24.04 noble
               ://+//////-yyyyyyo      Kernel: x86_64 Linux 6.8.0-36-generic
           .++ .:/++++++/-.+sss/`      Uptime: 1h 47m
         .:++o:  /++++++++/:--:/-      Packages: 933
        o:+o+:++.`..```.-/oo+++++/     Shell: bash 5.2.21
       .:+o:+o/.          `+sssoo+/    Disk: 8.9G / 20G (48%)
  .++/+:+oo+o:`             /sssooo.   CPU: Intel Core i5-10505 @ 2x 3.192GHz
 /+++//+:`oo+o               /::--:.   GPU: VMware SVGA II Adapter
 \+/+o+++`o++o               ++////.   RAM: 1112MiB / 3868MiB
  .++.o+++oo+:`             /dddhhh.  
       .+.o+oo:.          `oddhhhh+   
        \+.++o+o``-````.:ohdhhhhh+    
         `:o+++ `ohhhhhhhhyo++os:     
           .o:`.syhhhhhhh/.oo++o`     
               /osyyyyyyo++ooo+++/    
                   ````` +oo+++o\:    
                          `oo++.   

查看处理器结构:

uname -m
# x86_64选择amd,带有arm字样的选择arm

假设部署机器的IP为:192.168.194.128

先部署Redis和MariaDB,因为是测试部署,所以不进行过多配置,Redis和MariaDB均以docker来最简部署。

部署Redis

docker方式

在本机上启动一个Redis,端口号6379

docker run --name redis -p 6379:6379 --restart always  -d redis:7.2.5

部署MariaDB

docker方式

在本机上启动一个MariaDB,端口号3306,默认账号:root,默认密码:123456

docker run -d --name mariadb-n9e -p 3306:3306  --env MYSQL_ROOT_PASSWORD=123456 mariadb:11.2

部署N9E

参照官方文档(使用二进制方式部署夜莺)部署。

获取n9e二进制文件

从Release获取二进制部署文件。

mkdir n9e
cd n9e
# 拉取n9e压缩包
wget https://github.com/ccfos/nightingale/releases/download/v7.0.0-beta.13/n9e-v7.0.0-beta.13-linux-amd64.tar.gz
# 解压到当前目录
tar -zxvf n9e-v7.0.0-beta.13-linux-amd64.tar.gz  -C .

导入数据库表结构

n9e.sql文件是数据库表结构,在n9e根目录里,把文件复制到容器内导入。
也可以用工具在外部连接数据库后导入。

# n9e
docker cp n9e.sql mariadb:/
docker exec -it mariadb bash

进入容器后:

mariadb -uroot -p  < n9e.sql
# 然后输入设置的密码

然后修改配置文件n9e/etc/config.toml,先修改数据库和Redis的配置为对应的值。
数据库配置在配置文件中搜索1234DSN,修改对应的配置项。

DSN = "root:123456@tcp(127.0.0.1:3306)/n9e_v6?charset=utf8mb4&parseTime=True&loc=Local&allowNativePasswords=true"

Redis配置在配置文件中搜索Redis6379,修改对应的配置项。

Address = "127.0.0.1:6379"

因为在同一台机器上,所以IP可以用127.0.0.1,改成局域网IP也行。
修改完毕后就可以启动了。

# 后台启动
nohup ./n9e &> n9e.log &
# 查看端口监听和状态
ss -tlnp|grep 17000
ps -ef|grep n9e

访问地址:服务器IP:17000http://192.168.194.128:17000/
默认账号:root
默认密码:root.2020

至此,N9E系统部署完毕。后面需要接入数据源,以及部署采集器。

部署数据源

时序数据库VictoriaMetrics

# 拉取二进制文件
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.102.0/victoria-metrics-linux-amd64-v1.102.0.tar.gz
# 解压到当前目录
tar -zxvf victoria-metrics-linux-amd64-v1.102.0.tar.gz  -C .
# 后台启动
nohup ./victoria-metrics-prod  &> app.log &

若成功启动,则默认监听端口8428。自带一个Web UI接口,可以通过访问IP:8428打开。

N9E配置数据源

修改N9E配置文件

回到n9e目录中,修改配置文件etc/config.toml
找到[[Pushgw.Writers]]项,修改值为实际值。
我这里是:

Url = "http://127.0.0.1:8428/api/v1/write"

用局域网IP也行。
保存退出后,重启N9E即可。

后台中增加数据源

重启完毕后,访问N9E的集成中心-数据源,并新增一个数据源。
数据源类型选择Prometheus Like
主要需要设置:

  1. 数据源名称随意。
  2. HTTP-URL按下方提示输入,这里用的是VictoriaMetrics Single Version,因此输入IP:8428/,即http://192.168.194.128:8428/
  3. 其他-Remote Write URL按提示输入。这里用的是VictoriaMetrics Single Version,因此输入IP:8428/api/v1/write,即http://192.168.194.128:8428/api/v1/write
  4. 其他-时序库设置选择VictoriaMetrics
    其他设置按照实际情况选填。
    然后点击测试并保存,提示成功后会新增一个数据源。

部署采集器

参照官方文档(Categraf 下载、安装和使用

从Release下载采集器至需要采集的服务器。

wget https://github.com/flashcatcloud/categraf/releases/download/v0.3.74/categraf-v0.3.74-linux-amd64.tar.gz
# 解压到当前目录
tar -zxvf categraf-v0.3.74-linux-amd64.tar.gz  -C .

cd categraf-v0.3.74-linux-amd64
# 安装服务
./categraf --install

然后进行配置文件的修改:

# 修改配置
vim conf/config.toml 

修改配置主要修改两个地方,一个是[[writers]]中的url,另一个是[heartbeat],要改成N9E的URL。
修改[[writers]]

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

修改[heartbeat]

[heartbeat]
enable = true
# report os version cpu.util mem.util metadata
url = "http://192.168.194.128:17000/v1/n9e/heartbeat"

保存退出后启动即可。

# 启动
./categraf --start

至此,完成所有部署。可以在仪表盘或即时查询中查看机器指标。

生产环境的搭建其实大差不差,主要还是看实际需求,无非就是用集群提高几个中间件的可用性,官方的文档里对于集群也有一定的介绍:N9E集群部署分布式集群时序库 VictoriaMetrics...
不过如果设备数和采集指标没有特别多,单机其实也够用了。比如VictoriaMetrics,文档中是这么说的:

VictoriaMetrics 提供单机版和集群版。如果您的每秒写入数据点数小于100万(这个数量是个什么概念呢,如果只是做机器设备的监控,每个机器差不多采集200个指标,采集频率是10秒的话每台机器每秒采集20个指标左右,100万/20=5万台机器),VictoriaMetrics 官方默认推荐您使用单机版,单机版可以通过增加服务器的CPU核心数,增加内存,增加IOPS来获得线性的性能提升。且单机版易于配置和运维。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇