一、Nightingale官网信息

Nightingale监控官网:https://flashcat.cloud/product/nightingale/
Nightingale部署文档:hhttps://flashcat.cloud/docs/content/flashcat-monitor/nightingale-v7/install/intro/
VictoriaMetrics时序库部署文档:https://flashcat.cloud/docs/content/flashcat-monitor/nightingale-v7/install/binary/
注:VictoriaMetrics时序库在二进制部署夜莺的文档尾部
Categraf采集器部署文档:https://flashcat.cloud/docs/content/flashcat-monitor/categraf/1-introduction/

二、Nightingale监控介绍

夜莺监控是一款开源云原生观测分析工具,采用 All-in-One 的设计理念,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力。夜莺于 2020 年 3 月 20 日,在 github 上发布 v1 版本,已累计迭代 100 多个版本。 夜莺最初由滴滴开发和开源,并于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展委员会(CCF ODC),为 CCF ODC 成立后接受捐赠的第一个开源项目。夜莺的核心研发团队,也是 Open-Falcon 项目原核心研发人员,从 2014 年(Open-Falcon 是 2014 年开源)算起来,也有 10 年了,只为把监控这个事情做好。

三、Nightingale架构简介

WechatIMG22.jpg

四、部署nightingale监控

部署方式:二进制部署
下载地址:https://flashcat.cloud/download/nightingale/

1、规划nightingale数据目录

mkdir /opt/nightingale/

2、nightingale下载地址

github releases:更新会更频繁,国外地址,下载可能会慢一些 flashcat 下载中心:更新会慢一些,国内地址,下载更快 注意:amd64.tar.gz 是 x86_64 架构的,arm64.tar.gz 是 arm64 架构的。根据自己的服务器架构选择下载。如果下载错了,启动的时候会报错:无法执行二进制文件。

下载地址如下:
wget https://download.flashcat.cloud/n9e-v7.4.1-linux-amd64.tar.gz

3、将压缩包解压到规划目录

tar xf n9e-v7.4.1-linux-amd64.tar.gz -C /opt/nightingale/

4、准备依赖数据库

#安装mysql数据库
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"

#安装redis数据库
yum install -y redis
systemctl enable redis
systemctl restart redis
注:夜莺依赖 MySQL、Redis,需要各位提前准备好。这里也提供一个小脚本来安装这两个组件,大家可以参考。

上例中 mysql 的 root 密码设置为了 1234,测试阶段建议维持这个不变,后续就省去了修改配置文件的麻烦,等熟悉了上生产了再改为强密码。如果你想修改默认用户名和密码,就要对应的修改配置文件中的 mysql 连接信息,配置文件的哪个地方配置了 mysql 的密码呢?通过下面的命令可以找到:

#夜莺的主配置文件是 etc/config.toml
grep "1234" etc/config.toml

注:夜莺配置文件中的Redis默认是配置的单机版,且无密码,如果想做调整,根据配置文件中的注释来修改即可。

5、导入数据库表结构

mysql -uroot -p1234 < n9e.sql

注:解压缩夜莺的 tar.gz 之后,可以看到 n9e.sql,这是数据库初始化 sql,需要导入到 mysql 中,但是需要注意点是导入n9e.sql的这个路径,这是是在当前目录,所以可以直接指定,如果不是当前目录,必须完整路径,不然找不到。

6、修改nightingale配置文件

cat /opt/nightingale/etc/config.toml

142 [[Pushgw.Writers]]
143 # Url = "http://127.0.0.1:8480/insert/0/prometheus/api/v1/write"
144 Url = "http://127.0.0.1:8428/api/v1/write"
注:将144行默认的prometheus端口号9090改为victoriametrics时序库的端口号8428即可。默认配置的是prometheus时序库的地址,但是因为我们使用的是victoriaMetrics时序库,所以这里的端口号需要修改为8428即可。

174 [Ibex]
175 Enable = true
176 RPCListen = "0.0.0.0:20090"
注:将默认的false改为true即可。

7、启动夜莺nightingale

//创建启动systemd

cat /usr/lib/systemd/system/nightingale.service

[Unit]
Descriptinotallow=nightingale
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/nightingale/n9e
WorkingDirectory=/opt/nightingale
Restart=on-failure
[Install]
WantedBy=multi-user.target

//启动Nightingale

启动:systemctl start nightingale.service
重启:systemctl restart nightingale.service

//设置开机自启

systemctl enable nightingale.service

//查看启动状态

systemctl status nightingale.service

//查看监听端口和进程

ss -tlnp | grep 17000
ss -tlnp | grep 20090
ps -ef | grep n9e

//web访问

浏览器访问夜莺的端口,即17000,默认用户是root,密码是"root.2020",如果非常考虑安全的话,建议使用nginx做域名转发,即可实现域名访问,这里不做演示,感兴趣的可以自行百度或者我之后找个时间更新一篇关于夜莺通过nginx域名访问。

五、部署VictoriaMetrics时序库

部署方式:二进制部署
下载地址:https:///VictoriaMetrics/VictoriaMetrics/releases

1、规划victoriaMetrics数据目录

mkdir /opt/victoriaMetrics/

2、victoriaMetrics下载地址

wget https:///VictoriaMetrics/VictoriaMetrics/releases/download/v1.104.0/victoria-metrics-linux-amd64-v1.104.0.tar.gz

3、将压缩包解压到规划目录

tar xf victoria-metrics-linux-amd64-v1.104.0.tar.gz -C /opt/victoriametrics/

4、启动victoriaMetrics

//创建启动systemd

cat /usr/lib/systemd/system/victoriametrics.service

[Unit]
Description="victoriametrics"
After=network.target
[Service]
Type=simple
ExecStart=/opt/victoriametrics/victoria-metrics-prod
Restart=on-failure
SuccessExitStatus=0
LimitNOFILE=65536
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=victoriametrics
[Install]
WantedBy=multi-user.target

//启动victoriametrics

启动:systemctl start victoriametrics.service
重启:systemctl restart victoriametrics.service

//设置开机自启

systemctl enable victoriametrics.service

//查看启动状态

systemctl status victoriametrics.service

//查看监听端口和进程

ss -tlnp | grep 8428
ps -ef | grep victoriametrics

六、部署categraf采集器

部署方式:二进制部署
下载地址:https://flashcat.cloud/download/categraf/

1、规划categraf数据目录

mkdir /opt/categraf/

2、categraf下载地址

wget https://download.flashcat.cloud/categraf-v0.3.80-linux-amd64.tar.gz

3、将压缩包解压到规划目录

tar xf categraf-v0.3.80-linux-amd64.tar.gz -C /opt/categraf/

4、修改categraf配置文件

cat /opt/categraf/conf/config.toml

56 [[writers]]
57 url = "http://127.0.0.1:17000/prometheus/v1/write"
注:这里是时序库机器所以是127.0.0.1,如果是其他节点将IP地址换成时序库地址即可。

90 [ibex]
91 enable = true
注:这里将false改为true。

99 [heartbeat]
100 enable = true
101 
102 # report os version cpu.util mem.util metadata
103 url = "http://127.0.0.1:17000/v1/n9e/heartbeat"
注:这里是时序库机器所以是127.0.0.1,如果是其他节点将IP地址换成时序库地址即可。

5、启动categraf

//创建启动systemd

cat /usr/lib/systemd/system/categraf.service

[Unit]
Description=Opensource telemetry collector
ConditionFileIsExecutable=/opt/categraf/categraf
After=network-online.target  
Wants=network-online.target 
[Service]
StandardOutput=journal
StandardError=journal
StartLimitInterval=3600
StartLimitBurst=10
ExecStart=/opt/categraf/categraf "-configs" "/opt/categraf/conf"
WorkingDirectory=/opt/categraf
ExecReload=/bin/kill -HUP "$MAINPID"
Restart=on-failure
RestartSec=120
EnvironmentFile=-/etc/sysconfig/categraf
KillMode=process
[Install]
WantedBy=multi-user.target

//启动categraf

启动:systemctl start categraf.service
重启:systemctl restart categraf.service

//设置开机自启

systemctl enable categraf.service

//查看启动状态

systemctl status categraf.service

//查看监听端口和进程

ss -tlnp | grep 17000
ps -ef | grep categraf

七、验证监控数据

1、网页登录

http://127.0.0.1:17000/
注:默认登陆账号密码为root.2020

2、验证是否可以查看到机器

//点击左侧的“基础设施”

//点击“机器列表”

//点击左上角“未归组机器”

WechatIMG23.jpg 注:以上截图说明节点监控已经部署成功。

八、添加数据源

1、点击左侧 ”集成中心“

2、点击 “数据源”

3、点击右上角 “新增”

4、选择 “Prometheus Like” 模版

5、添加数据源名称

注:名称任意取,没有限制。

6、添加HTTP的URL “http://127.0.0.1:8428”

注:这里添加的是victoriaMetrics时序库的地址和端口号

7、点击 “测试并保存” 完成数据源配置

8、验证数据源

//点击左侧 “时序指标” //点击 “即时查询” //数据源类型选择 “刚才添加的数据源” //在内置指标输入 “cpu_usage_active” 注:基本就是在输入cpu或者mem等字段时就会提示补全,任意字段测试都行,这里只是举例子。 //点击右侧 “查询“ WechatIMG24.jpg 注:如上图能查询到相关数据说明当前这台服务器的监控数据已经上传到时序库里了。

九、添加监控数据

1、选择 “基础设施”

2、选择 “机器列表”

3、创建 “业务组A”

注:点击业务组后边的设置按钮即可添加新的业务组。

4、选中 ”未归组机器“ 中的机器

5、点击 “批量操作”

6、选择 “修改业务组”

7、把 ”未归组机器“ 中的机器添加到新创建的 ”业务组A“ 中

8、点击左侧 “仪表盘”

9、选择 “监控仪表盘”

10、选中 “业务组A”

11、点击右上角 “导入”

12、选择 ”导入内置仪表盘“

13、下拉菜单选择 “linux”

14、选择 “机器常用指标” 模版

注:根据自己需要选择模版。

15、点击 “添加”

16、点击 “选择的模版”

17、修改为自己的 “数据源”