夜莺监控( Nightingale )是一款国产、开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体。于 2020 年 3 月 20 日,在 github 上发布 v1 版本,已累计迭代 60 多个版本。从 v5 版本开始与 Prometheus、VictoriaMetrics、Grafana、Telegraf、Datadog 等生态紧密协同集成,提供开箱即用的企业级监控分析和告警能力,已有众多企业选择将 Prometheus + AlertManager + Grafana 的组合方案升级为使用夜莺监控。

夜莺监控,由滴滴开发和开源,并于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展委员会(CCF ODC),为 CCF ODC 成立后接受捐赠的第一个开源项目。夜莺监控的核心开发团队,也是Open-Falcon项目原核心研发人员。
prometheus 的搭建可以参考Prometheus安装手册。唯一要注意的时候,启动 Prometheus 的时候需要传入一个参数:--web.enable-remote-write-receiver,只有开了这个参数(老版本的参数是 --enable-feature=remote-write-receiver,可以通过 ./prometheus --help 查看你的 Prometheus 的配置方式),Prometheus 才能通过 remote write 方式接收监控数据,否则后面跟夜莺对接的话会报接口 404。
VictoriaMetrics 的搭建可以参考VictoriaMetrics安装手册,生产环境建议使用 systemd 托管,这里提供一个 systemd 的 service 文件供大家参考:
# /etc/systemd/system/victoriametrics.service[Unit]Description="victoriametrics"After=network.target[Service]Type=simpleExecStart=/opt/victoriametrics/victoria-metrics-prodRestart=on-failureSuccessExitStatus=0LimitNOFILE=65536StandardOutput=syslogStandardError=syslogSyslogIdentifier=victoriametrics[Install]WantedBy=multi-user.target
二、安装MySQL、Redis
夜莺依赖 MySQL、Redis,需要各位提前准备好。这里也提供一个小脚本来安装这两个组件,大家可以参考。
# install mysqlyum -y install mariadb*systemctl enable mariadbsystemctl restart mariadbmysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"# install redisyum install -y redissystemctl enable redissystemctl restart redis
三、启动夜莺
可以去两个地方下载夜莺发布包,完事自行解压缩:
github releases:
https://github.com/ccfos/nightingale/releases
flashcat 下载中心:
https://flashcat.cloud/download/nightingale/
curl -H'Referer: https://console.flashcat.cloud' -O https://download.flashcat.cloud/n9e-v8.0.0-beta.6-linux-amd64.tar.gzmkdir n9ev8mv n9e-v8.0.0-beta.6-linux-amd64.tar.gz n9ev8/cd n9ev8tar xzvf n9e-v8.0.0-beta.6-linux-amd64.tar.gz# 导入数据库表结构mysql -uroot -p1234 < n9e.sql
解压缩夜莺的 tar.gz 之后,可以看到三个二进制:
n9e:这是夜莺的服务端二进制
n9e-edge:这是边缘机房部署模式时使用,后面会讲,现在不用管
n9e-cli:这是 v5 升级 v6 版本时使用的命令行迁移工具,新用户也无需关心
另外可以看到几个目录:
cli:v5 升级 v6 的时候用的,新用户无需关心
etc:配置文件目录,需要修改etc/config.toml中时序库为之前安装的VictoriaMetrics 地址
[[Pushgw.Writers]]Url = "http://127.0.0.1:8428/api/v1/write"
docker:docker 部署的时候用的,相关配置文件,相关 compose.yaml 文件都在这里,二进制部署无需关心
integrations:集成目录。存放内置告警规则、内置仪表盘
使用 systemd 来管理,编辑/etc/systemd/system/n9e.service
[Unit]Description=NightingaleAfter=network.target[Service]ExecStart=/root/n9ev8/n9e -configs=/root/n9ev8/etcRestart=alwaysUser=root[Install]WantedBy=multi-user.target
使用systemctl start n9e启动成功,夜莺默认会监听在 17000 端口,通过下面的命令可以查看运行是否正常
# 查看端口ss -tlnp|grep 17000# 查看进程ps -ef|grep n9e# 查看日志journalctl -fu n9e# 或直接查看messagetail -f /var/log/messages
[Log]Dir = "logs"Level = "INFO"Output = "file"RotateNum = 3RotateSize = 256

使用http://ip:17000访问,默认用户名/密码是root/root.2020

在页面添加数据源

四、部署采集器
在每个机器上安装 Categraf
# 下载categrafcurl -H'Referer: https://console.flashcat.cloud' -O https://download.flashcat.cloud/categraf-v0.4.3-linux-amd64.tar.gz# 解压tar xzvf categraf-v0.4.3-linux-amd64.tar.gzcd categraf-v0.4.3-linux-amd64/# 修改配置,连接n9esed -i 's/127.0.0.1/10.168.2.135/g' conf/config.toml# 安装为服务sudo ./categraf -install# 以服务方式启动sudo ./categraf -start
在夜莺中查看

查看大盘

五、告警设置
以企业微信为例,在自己的企业微信中新建一个告警群,添加群机器人,复制下webhook地址

在夜莺里创建一个用户,代表这个企微群机器人,在 wecom_robot_token 中填写webhook地址或者key值:

新增一个团队,将刚才添加的用户添加到这个团队









