1、夜莺监控简介
夜莺监控(Nightingale)是一款国产的开源云原生监控系统,它将数据采集、可视化、监控告警、数据分析等多个功能集成于一体,旨在提供一个开箱即用、功能完整的企业级监控解决方案。
2、技术架构与工作流程
夜莺在架构上设计灵活,可以看作一个统一的管理中枢,负责处理告警规则、数据查看和配置管理,而具体的数据采集和存储则可以对接生态中各种成熟的开源组件。
数据采集:支持多种采集器(Agent),如 Categraf(官方推荐)、Telegraf、Grafana-Agent等,它们负责收集监控数据并推送给夜莺服务端。
数据处理与告警:服务端模块接收数据后,可将其写入后端多种时序数据库(如Prometheus、VictoriaMetrics等),并同步执行配置好的告警规则判断。
数据展示与管理:提供统一的Web界面,用于配置告警规则、查看监控仪表盘、管理用户权限等,降低了多系统协同使用的复杂度。
3、功能特性
强大的告警管理:这是夜莺的核心优势。它提供了可视化的告警规则配置界面,改变了传统Prometheus需要修改配置文件的方式,便于团队协作。此外,还支持告警屏蔽、分级收敛(避免告警风暴)、多渠道通知以及通过脚本实现告警自愈等高级功能。
开箱即用的体验:产品内置了针对操作系统、MySQL、Redis等常见组件的监控仪表盘和告警规则模板,导入即可快速使用,大幅降低了初始建设成本。
灵活的部署与扩展:既支持简单的单机Docker快速部署,也支持为应对海量监控指标(数亿时间线)而进行的集群化水平扩展。独特的“中心-边缘”架构还能很好地支持多机房、混合云等复杂网络环境的统一监控管理。
4、主要适用场景
从零搭建监控平台:希望快速获得一个功能完备、易于管理的监控系统。
替代或升级现有监控组合:觉得维护Prometheus、AlertManager、Grafana等多个独立组件过于繁琐和割裂。
应对复杂部署环境:需要统一监控管理多个网络隔离的机房或混合云资源。
需要强化告警管理:团队规模扩大,需要通过更直观的UI和精细化的规则进行告警协同管理
5、拉取categraf镜像
```bash docker pull mysql:8 docker pull redis:latest docker pull victoriametrics/victoria-metrics:v1.79.12 docker pull flashcatcloud/nightingale:latest docker pull flashcatcloud/categraf:latest6、下载源码包
cd/datawgethttps://github.com/ccfos/nightingale/archive/refs/tags/v8.0.0-beta.10.tar.gz7、编辑docker-compose.yaml文件
tar-zxvf v8.0.0-beta.10.tar.gzmvnightingale-8.0.0-beta.10 nightingalecat/data/nightingale/docker/compose-bridge/docker-compose.yaml networks: nightingale: driver: bridge services: mysql: image:"mysql:8"container_name: mysql hostname: mysql restart: always environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD:1234volumes: - ./mysqldata:/var/lib/mysql/ -../initsql:/docker-entrypoint-initdb.d/ - ./etc-mysql/my.cnf:/etc/my.cnf networks: - nightingale ports: -"3306:3306"redis: image:"redis:latest"container_name: redis hostname: redis restart: always environment: TZ: Asia/Shanghai networks: - nightingale ports: -"6379:6379"victoriametrics: image: victoriametrics/victoria-metrics:v1.79.12 container_name: victoriametrics hostname: victoriametrics restart: always environment: TZ: Asia/Shanghai ports: -"8428:8428"networks: - nightingale command: -"--loggerTimezone=Asia/Shanghai"nightingale: image: flashcatcloud/nightingale:latest container_name: nightingale hostname: nightingale restart: always environment: GIN_MODE: release TZ: Asia/Shanghai WAIT_HOSTS: mysql:3306, redis:6379 volumes: - ./etc-nightingale:/app/etc networks: - nightingale ports: -"17000:17000"-"20090:20090"depends_on: - mysql - redis - victoriametrics command:>sh-c"/app/n9e"categraf: image:"flashcatcloud/categraf:latest"container_name:"categraf"hostname:"categraf01"restart: always environment: TZ: Asia/Shanghai HOST_PROC: /hostfs/proc HOST_SYS: /hostfs/sys HOST_MOUNT_PREFIX: /hostfs WAIT_HOSTS: nightingale:17000, nightingale:20090 volumes: - ./etc-categraf:/etc/categraf/conf - /:/hostfs networks: - nightingale depends_on: - nightingale8、启动categraf容器
cd/data/nightingale/docker/compose-bridge docker-compose up -d docker-composeps9、访问categraf服务
浏览器访问: http://192.168.112.115:7000 默认用户名密码: root/root.2020