image-zpyy.png

介绍

  • 夜莺(Nightingale)是一个 All-in-One 的云原生监控工具,集合了 Prometheus 和 Grafana 的优点,你可以在 UI 上管理和配置告警策略,也可以对分布在多个 Region 的指标、日志、链路追踪数据进行统一的可视化和分析。夜莺融入了顶级互联网公司可观测性最佳实践,沉淀了众多社区专家经验,开箱即用。

  • 夜莺(Nightingale)由滴滴孵化,并于 2020 年 3 月开源,目前已经迭代发布了 100 多个版本,有 100 多位 Contributor,在 GitHub 上 star 超过 7.9K,fork 超过 1200 次,终端用户上万家。2022 年 5 月 11 日,中国计算机学会在中科院计算所报告厅举行了夜莺开源项目捐赠仪式,夜莺成为学会开源发展委员会成立后接受捐赠的首个开源项目。

  • 夜莺监控是一款先进的开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析、权限管理于一体,拥有企业级的监控分析和告警能力。夜莺集合了 Prometheus 和 Grafana 的优点,你可以在 UI 上管理和配置告警策略,也可以对分布在多个 Region 的指标、日志、链路追踪数据进行统一的可视化和分析。

功能特点

  • 对接多种时序库:支持对接 Prometheus、VictoriaMetrics、Thanos、Mimir、M3DB、TDengine 等多种时序库,实现统一告警管理。

  • 专业告警能力:内置支持多种告警规则,可以扩展支持常见通知媒介,支持告警屏蔽/抑制/订阅/自愈、告警事件管理。

  • 高性能可视化引擎:支持多种图表样式,内置众多 Dashboard 模版,也可导入 Grafana 模版,开箱即用,开源协议商业友好。

  • 支持常见采集器:支持 Categraf、Telegraf、Grafana-agent、Datadog-agent、各种 Exporter 作为采集器,没有什么数据是不能监控的。

  • 👀无缝搭配 Flashduty:实现告警聚合收敛、认领、升级、排班、IM集成,确保告警处理不遗漏,减少打扰,高效协同。

截图预览

安装教程

docker-compose方式安装

  1. 演示以在Ubuntu系统上安装为例
    (其他系统请自行安装好最新版本Docker、docker-compose、git)

  2. 演示部署所占用的端口为:33066379909084281700020090

  3. 打开系统的SSH功能,使用终端软件进行连接,并切换到root状态下。

  4. 进入系统的/opt文件夹(建议你按照默认的路径进行安装)

    cd /opt
  5. 克隆项目文件到本地

    git clone https://github.com/ccfos/nightingale.git
  6. 进入项目文件的docker目录

    cd nightingale/docker
  7. 查看当前文件夹内的文件

    ls
  8. 可以看到有多个文件夹,这里的文件夹代表着不同的部署方式。

    compose-bridge:bridge 网络模式的 docker compose 部署方式,数据库使用 MySQL
    compose-host-network:host 网络模式的 docker compose 部署方式,数据库使用 MySQL
    compose-postgres: bridge 网络模式的 docker compose 部署方式,数据库使用 PostgreSQL
    
    #通常使用 bridge 模块做测试即可。因为 MacOS 不支持 host network,所以,MacOS 用户只能使用 bridge 模式。如果你还不知道 bridge 模式和 host network 的区别,就直接用 bridge 模式即可,或者用二进制部署,不要使用 docker compose 了。
  9. 演示部署直接使用bridge网络模式部署
    进入compose-bridge文件夹

    cd compose-bridge
  10. 如果你需要更换默认的端口,可以编辑docker-compose.yml文件。(可选)

    vi docker-compose.yml
  11. 按字母 i 键进入编辑模式,修改模板信息,按Esc键退出编辑模式,输入 :wq 退出并保存。(可选)

  12. 对项目文件夹进行授权读写权限(实际生产情况下请勿使用777权限)

    #将/opt/nightingale换成你自己的实际文件夹路径
    
    chmod -R 777 /opt/nightingale
  13. 执行命令,启动docker-compose文件,拉取镜像并创建容器。

    docker-compose up -d
    
    #如果提示mysqldata文件夹不存在,就执行下面的两个命令创建后再重新启动。
    
    #创建mysqldata文件夹
    mkdir mysqldata
    
    #对项目文件夹进行授权读写权限(实际生产情况下请勿使用777权限。
    chmod -R 777 /opt/nightingale
  14. 查看正在运行的项目容器

    docker-compose ps

访问夜莺监控(Nightingale)

  1. 打开浏览器,以运行服务设备的IP+设置的端口进行访问。
    以本机为例:http://192.168.2.17:17000
    默认账号:root
    默认密码:root.2020

  2. 登录成功

  3. 剩下的就需要自己参考各类教程自行添加监控项目了

简单教学

  • 本教程将尽可能依据规范步骤进行引导教学,实际使用中请根据生产环境进行演练并详细规划。

基本设置

  1. 点击人员组织--权限管理--添加角色(可选)
    自行创建一个非全权限的管理员角色

  2. 点击用户管理,新增一个非全权限的管理员用户,并分配角色。(可选)

  3. 点击团队管理,新增一个运维组,将刚才创建的管理员添加进去。(可选,演示就不新建用户了。)

  4. 点击业务组管理,新增。

  5. 业务组名称随意,演示就当作专门管理NAS业务
    团队选择你需要的,然后点击确定。

添加数据源

  1. 点击系统配置--数据源,选择Prometheus Like点击添加。(演示随意选择一种教学)

  2. 到这一部,因为我们选择的是Prometheus,所需需要安装 Prometheus 时序库。
    生产环境,建议部署集群版的 VictoriaMetrics,可参考 官方文档

  3. 打开终端软件,连接到运行夜莺的主机。

  4. 在/opt目录下创建prometheus文件夹

    mkdir -p /opt/prometheus
  5. 进入prometheus文件夹

    cd /opt/prometheus
  6. 获取prometheus文件

    wget download.flashcat.cloud/prometheus-2.50.1.linux-amd64.tar.gz
  7. 复制下面整个命令模板,将信息写入到文件内。