夜莺-Nightingale-开源云原生监控分析系统二进制部署指南_夜鹰中配置数据库
夜莺-Nightingale-开源云原生监控分析系统二进制部署指南
-
- 一、夜莺简介
- 二、准备工作
-
- 1. 下载夜莺发布包
- 2. 安装依赖组件
- 三、部署步骤
-
- 1.解压夜莺发布包
- 1. 导入数据库表结构
- 2. 修改夜莺配置文件
- 2. 启动夜莺服务
- 3. 日志配置
- 四、访问夜莺
- 五、创建Systemd服务(推荐)
- 六、接入数据源
-
- 1. 部署时序数据库
- 2. 配置夜莺对接时序库
- 3.对接VictoriaMetrics单机版
- 4.对接Prometheus
- 5.对接VictoriaMetrics集群版
- 6.多时序库配置示例
- 七、在夜莺页面添加数据源
- 八、部署采集器Categraf
-
- 1.Categraf配置要点
- 2.Categraf相关资源
- 3.Categraf部署准备
- 4.部署文件结构
- 5.采集器启用/禁用
- 九、Categraf启停管理
-
- 1.Linux系统(systemd托管)
-
- 推荐方式(v0.3.35+版本)
- 普通用户安装(v0.4.5+版本)
- 旧版本方式(v0.3.35以下)
- 2.Windows系统
-
- 服务方式
- 后台方式
- 3.容器化部署
- 十、资源限制配置
-
- 1.systemd资源限制
- 2.Docker资源限制
- 十一、测试与调试
-
- 1.测试采集器输出
- 2.查看 MySQL 监控指标
- 3.配置热重载
- 十二、自升级管理
-
- 1.升级命令(v0.3.36+)
- 2.升级流程
- 十三、最佳实践建议
- 十四、总结
夜莺(Nightingale)是一款开源的企业级监控解决方案,由国内知名监控系统Open-Falcon核心团队开发。本文将详细介绍如何使用二进制方式部署夜莺监控系统。
一、夜莺简介
夜莺是一款集成了指标监控、日志监控、告警管理、仪表盘等功能的一体化监控解决方案。它采用模块化设计,支持多种数据源接入,适用于各种规模的监控场景。
二、准备工作
1. 下载夜莺发布包
可以从以下两个地址下载夜莺发布包:
- GitHub Releases(更新频繁,国外地址)
- FlashCat 下载中心(国内地址,下载更快)
根据服务器架构选择对应的包:
amd64.tar.gz
:x86_64架构arm64.tar.gz
:ARM64架构beta
:为测试版
curl -H\'Referer: https://console.flashcat.cloud\' -O https://download.flashcat.cloud/n9e-v7.7.0-linux-amd64.tar.gz或者wget --header=\'Referer: https://console.flashcat.cloud\' https://download.flashcat.cloud/n9e-v7.7.0-linux-amd64.tar.gz
2. 安装依赖组件
夜莺依赖MySQL和Redis,可以使用以下脚本快速安装:
# 安装MySQLyum -y install mariadb*systemctl enable mariadbsystemctl restart mariadbmysql -e \"SET PASSWORD FOR \'root\'@\'localhost\' = PASSWORD(\'Seal@2025\');\"# 安装Redisyum install -y redissystemctl enable redissystemctl restart redis
前面也有相关mysql+redis的安装文档,可以参考安装:
01-mysql安装篇(rpm方式安装+二进制方式安装)
RedHat7.9安装mysql8.0.32 ↝ 二进制方式
【Redis编译安装】—redis-4.0.8
安装好MySQL和Redis后即可部署夜莺-Nightingale。
三、部署步骤
1.解压夜莺发布包
sudo mkdir -p /usr/local/n9etar zxvf /root/n9e-v7.7.0-linux-amd64.tar.gz -C /usr/local/n9e
1. 导入数据库表结构
解压夜莺发布包后,执行以下命令导入数据库,Zyl@123456为你的mysql数据库密码:
mysql -uroot -pZyl@123456 < n9e.sql
2. 修改夜莺配置文件
修改你的夜莺配置文件 etc/config.toml:
[DB]DSN = \"root:Zyl@123456@tcp(127.0.0.1:3306)/n9e_v6?charset=utf8mb4&parseTime=True&loc=Local&allowPublicKeyRetrieval=true\"
[Redis]# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)Address = \"127.0.0.1:6379\"# Username = \"\"Password = \"Zyl@2025\"
2. 启动夜莺服务
解压后的目录中包含以下主要文件:
n9e
:主服务二进制n9e-edge
:边缘机房部署使用n9e-cli
:版本迁移工具
启动夜莺:
./n9e
建议使用nohup方式后台运行:
nohup ./n9e &> n9e.log &
检查服务状态:
ss -tlnp|grep 17000ps -ef|grep n9e
3. 日志配置
默认日志输出到stdout,如需输出到文件,修改etc/config.toml
中的[Log]
部分:
[Log]Dir = \"logs\"Level = \"INFO\"Output = \"file\"KeepHours = 24
上面的配置表示,把日志输出到 logs 目录下,日志级别是 INFO,日志文件保留 24 小时。也可以根据大小来配置,比如:
[Log]Dir = \"logs\"Level = \"INFO\"Output = \"file\"RotateNum = 3RotateSize = 256
上面的配置表示,把日志输出到 logs 目录下,日志级别是 INFO,日志文件大小超过 256M 时,会自动切割,保留 3 个日志文件。
四、访问夜莺
浏览器访问:http://服务器IP:17000
默认登录凭证:
- 用户名:root
- 密码:root.2020
五、创建Systemd服务(推荐)
创建 /etc/systemd/system/n9e.service:
vim /etc/systemd/system/n9e.service
[Unit]Description=Nightingale Monitoring ServerAfter=network.target[Service]User=rootGroup=rootWorkingDirectory=/usr/local/n9eExecStart=/usr/local/n9e/n9eRestart=always[Install]WantedBy=multi-user.target
然后启用服务:
systemctl daemon-reloadsystemctl enable n9esystemctl start n9esystemctl status n9esystemctl restart n9e
六、接入数据源
上面的方式搭建的夜莺,只是作为一个告警引擎使用,此时你可以在页面(注意,这里是页面)上添加数据源(菜单路径:系统配置-数据源),看图、配置告警规则。如果想要用夜莺来接收监控数据并转存到时序库,那就得通过配置文件(注意,这里是配置文件)告诉夜莺时序库的地址在哪里。
在这个架构下,夜莺进程有两个角色,一个是作为告警引擎,一个是作为数据转发的 pushgateway,这里首先需要一个时序库,可以使用 Prometheus 或 VictoriaMetrics(推荐)。夜莺接收到数据之后会通过 remote write 方式转发给时序库。
1. 部署时序数据库
推荐使用VictoriaMetrics:
1、从VictoriaMetrics Releases下载对应版本
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.80.0/victoria-metrics-linux-amd64-v1.80.0.tar.gz
sudo mkdir -p /usr/local/victoria-metricstar -zxvf victoria-metrics-linux-amd64-v1.80.0.tar.gz -C /usr/local/victoria-metrics
2、启动服务:
./victoria-metrics-prod
生产环境建议使用 systemd 托管。
vim /etc/systemd/system/victoriametrics.service
# /etc/systemd/system/victoriametrics.service[Unit]Description=\"victoriametrics\"After=network.target[Service]Type=simpleExecStart=/usr/local/victoria-metrics/victoria-metrics-prodRestart=on-failureSuccessExitStatus=0LimitNOFILE=65536StandardOutput=syslogStandardError=syslogSyslogIdentifier=victoriametrics[Install]WantedBy=multi-user.target
systemctl daemon-reloadsystemctl enable victoriametricssystemctl start victoriametricssystemctl status victoriametrics
默认监听8428端口,可以通过 http://IP:8428 访问 VictoriaMetrics 的 web 界面。
2. 配置夜莺对接时序库
夜莺(Nightingale)是一款开源的企业级监控解决方案,作为Prometheus生态的重要补充,它提供了更强大的可视化、告警和分布式部署能力。
夜莺可以作为pushgateway接收监控数据,然后通过Prometheus remote write协议将数据写入后端时序数据库。配置主要通过修改etc/config.toml
文件中的[[Pushgw.Writers]]
部分实现。
3.对接VictoriaMetrics单机版
[[Pushgw.Writers]]Url = \"http://127.0.0.1:8428/api/v1/write\"
注意:将IP地址
127.0.0.1
改为你实际环境中VictoriaMetrics的IP地址
4.对接Prometheus
[[Pushgw.Writers]]Url = \"http://127.0.0.1:9090/api/v1/write\"
注意:将IP地址
127.0.0.1
改为你实际环境中Prometheus的IP地址
5.对接VictoriaMetrics集群版
[[Pushgw.Writers]]Url = \"http://127.0.0.1:8480/insert/0/prometheus/api/v1/write\"
注意:将IP地址
127.0.0.1
改为你实际环境中vminsert的IP地址
6.多时序库配置示例
夜莺支持将数据同时写入多个后端时序库,配置示例如下:
[[Pushgw.Writers]]Url = \"http://127.0.0.1:9090/api/v1/write\"BasicAuthUser = \"\"BasicAuthPass = \"\"[[Pushgw.Writers]]Url = \"http://127.0.0.1:8428/api/v1/write\"BasicAuthUser = \"\"BasicAuthPass = \"\"
配置完成后,需要重启夜莺进程使配置生效。
systemctl restart n9e
七、在夜莺页面添加数据源
-
进入\"数据源\"菜单
-
选择\"Prometheus Like\"类型的数据源
-
填写关键信息:
- 数据源名称:自定义的数据源名称
- URL:数据源的访问地址(如:
http://victoriametrics:8428
) - 超时时间:默认10秒,可根据需要调整(如改为30000毫秒)
- 授权:填写数据源的Basic auth认证信息(如有)
- Remote write URL:记录规则产生的新指标回写地址(如VictoriaMetrics单机版为
http://IP:8428/api/v1/write
) - 时序库内网地址:用于边缘机房下沉部署告警引擎的场景
- 关联告警引擎集群:中心部署选择\"default\",边缘机房选择对应的告警引擎集群
-
点击\"测试并保存\",测试通过后即可使用该数据源。
点击【测试并保存】,如果测试通过,就可以对这个数据源的数据看图、配告警规则了。比如我使用的时序库是 VictoriaMetrics,那么数据源 URL 就是 http://victoriametrics:8428,compose 中自动启动了 categraf 采集数据,配置完了数据源就可以立马去查看数据:
八、部署采集器Categraf
对于一套监控系统而言,核心就是采集数据并存储,然后做告警判定、数据展示分析,这个 专栏文章 详细讲解了这个数据流架构,整个流程图如下:
采集方面,夜莺支持多种不同的采集器,比如 Categraf、Telegraf、Datadog-agent、Grafana-agent 等,Categraf 和夜莺的整合最为丝滑,最为推荐。
夜莺使用Categraf作为数据采集器,需要在所有被监控机器上安装。
categraf v0.3.47(企业版v0.3.74)及以后版本oracle插件不依赖cgo,不用下载with-cgo版本了
1、Categraf下载
1.Categraf配置要点
- 主配置文件位于
conf/config.toml
- 修改其中的夜莺地址(默认
127.0.0.1:17000
)为你实际的夜莺地址 - 建议使用ansible等批量管理工具在多台机器上部署
2.Categraf相关资源
- Categraf介绍
- Categraf安装指南
- Categraf配置文档
Categraf作为夜莺监控系统的核心数据采集器,支持多种部署方式和灵活的配置管理。本文将详细介绍Categraf的部署方法、启停管理、资源限制以及自升级等全流程操作,帮助您快速掌握Categraf的使用技巧。
3.Categraf部署准备
1、下载categraf安装包
curl -H\'Referer: https://console.flashcat.cloud\' -O https://download.flashcat.cloud/categraf-v0.4.5-linux-amd64.tar.gz
sudo mkdir -p /usr/local/categraftar -zxvf categraf-v0.4.5-linux-amd64.tar.gz -C /usr/local/categraf
2、以service方式安装categraf
# 以service方式安装, 相当于添加service文件+systemctl daemon-reloadsudo ./categraf --install# 以service方式卸载, 相当于systemctl stop categraf + 删除service文件sudo ./categraf --remove# 以service方式启动categraf ,相当于systemctl start categraf# 如果之前有nohup启动的categraf进程,需要先人工停掉原来的categraf进程sudo ./categraf --start# 以service方式停止categraf,相当于systemctl stop categrafsudo ./categraf --stop# 以service方式查看categraf,相当于systemctl status categrafsudo ./categraf --status
===========================部署可从这里跳过,下面内容为一些不同部署方式参考
4.部署文件结构
在目标机器上部署Categraf仅需要:
categraf
二进制文件conf
配置目录
conf
目录结构说明:
conf/├── config.toml # 主配置文件(定义机器名、采集频率、附加标签等)├── input.cpu/ # CPU采集器配置├── input.mem/ # 内存采集器配置├── input.disk/ # 磁盘采集器配置└── ... # 其他采集器配置
5.采集器启用/禁用
- 启用采集器:保留
input.xx
目录前缀 - 禁用采集器:将目录前缀改为其他名称(如
bak.input.xx
)
九、Categraf启停管理
1.Linux系统(systemd托管)
推荐方式(v0.3.35+版本)
# 安装服务sudo ./categraf --install# 启动服务sudo ./categraf --start# 停止服务sudo ./categraf --stop# 查看状态sudo ./categraf --status# 卸载服务sudo ./categraf --remove
普通用户安装(v0.4.5+版本)
./categraf --user --install # 安装./categraf --user --start # 启动
旧版本方式(v0.3.35以下)
sudo cp categraf.service /etc/systemd/system/sudo systemctl daemon-reloadsystemctl start categraf
2.Windows系统
服务方式
categraf.exe --win-service-install # 安装服务categraf.exe --win-service-start # 启动服务
后台方式
win_run.bat start # 启动win_run.bat stop # 停止
3.容器化部署
docker run -td \\ --name categraf \\ --restart=always \\ --hostname categraf \\ -e TZ=Asia/Shanghai \\ -v /path/to/conf:/etc/categraf/conf \\ flashcatcloud/categraf:latest
采集物理机指标需额外挂载:
docker run -td \\ --network=host \\ -v /proc:/hostfs/proc:ro \\ -v /sys:/hostfs/sys:ro \\ -e HOST_PROC=/hostfs/proc \\ -e HOST_SYS=/hostfs/sys \\ ...(其他参数同上)
=======================结束=
十、资源限制配置
1.systemd资源限制
编辑/etc/systemd/system/categraf.service
:
[Service]CPUQuota=200% # 限制2核CPUMemoryLimit=1G # 限制1GB内存MemoryHigh=800M # 内存软限制(可选)
2.Docker资源限制
docker run --cpus=2 --memory=1g ...(其他参数)
十一、测试与调试
1.测试采集器输出
修改/usr/local/categraf/categraf-v0.4.5-linux-amd64/conf/input.mysql。
# 测试单个采集器./categraf --test --inputs mysql# 测试多个采集器./categraf --test --inputs mysql:cpu:mem
2.查看 MySQL 监控指标
在夜莺监控系统中,查看 MySQL 的监控指标:
3.配置热重载
kill -HUP `pidof categraf` # Linux系统
Windows系统不支持HUP信号,需重启服务
十二、自升级管理
1.升级命令(v0.3.36+)
./categraf --update --update_url https://download.flashcat.cloud/categraf-v0.3.36-linux-amd64.tar.gz
2.升级流程
-
非systemd托管升级:
- 停止旧进程
- 替换二进制文件
- 执行
--install
安装服务 - 启动服务
-
systemd托管升级:
- 停止服务
- 替换二进制文件
- 执行
--remove
和--install
- 启动服务
十三、最佳实践建议
- 配置管理:建议使用版本控制系统管理
conf
目录 - 批量部署:使用Ansible等工具实现多节点批量部署
- 监控自身:为Categraf配置监控,确保采集器正常运行
- 日志收集:定期检查
logs
目录下的日志文件
附:常用命令速查表
sudo ./categraf --install
sudo ./categraf --start
./categraf --test --inputs cpu:mem
kill -HUP $(pidof categraf)
./categraf --update --update_url=...
十四、总结
通过本文的步骤,您已经完成了夜莺监控系统的基础部署。夜莺功能强大,后续可以根据实际需求配置告警规则、仪表盘等高级功能。建议在生产环境中使用systemd管理服务,并配置适当的日志轮转策略。
如需了解更多高级功能,可以参考夜莺官方文档或社区资源。