docker一键部署夜莺监控

1、夜莺监控简介

夜莺监控(Nightingale)是一款国产的开源云原生监控系统,它将数据采集、可视化、监控告警、数据分析等多个功能集成于一体,旨在提供一个开箱即用、功能完整的企业级监控解决方案。

2、技术架构与工作流程

夜莺在架构上设计灵活,可以看作一个统一的管理中枢,负责处理告警规则、数据查看和配置管理,而具体的数据采集和存储则可以对接生态中各种成熟的开源组件。

数据采集:支持多种采集器(Agent),如 Categraf(官方推荐)、Telegraf、Grafana-Agent等,它们负责收集监控数据并推送给夜莺服务端。

数据处理与告警:服务端模块接收数据后,可将其写入后端多种时序数据库(如Prometheus、VictoriaMetrics等),并同步执行配置好的告警规则判断。

数据展示与管理:提供统一的Web界面,用于配置告警规则、查看监控仪表盘、管理用户权限等,降低了多系统协同使用的复杂度。

3、功能特性

强大的告警管理:这是夜莺的核心优势。它提供了可视化的告警规则配置界面,改变了传统Prometheus需要修改配置文件的方式,便于团队协作。此外,还支持告警屏蔽、分级收敛(避免告警风暴)、多渠道通知以及通过脚本实现告警自愈等高级功能。

开箱即用的体验:产品内置了针对操作系统、MySQL、Redis等常见组件的监控仪表盘和告警规则模板,导入即可快速使用,大幅降低了初始建设成本。

灵活的部署与扩展:既支持简单的单机Docker快速部署,也支持为应对海量监控指标(数亿时间线)而进行的集群化水平扩展。独特的"中心-边缘"架构还能很好地支持多机房、混合云等复杂网络环境的统一监控管理。

4、主要适用场景

从零搭建监控平台:希望快速获得一个功能完备、易于管理的监控系统。

替代或升级现有监控组合:觉得维护Prometheus、AlertManager、Grafana等多个独立组件过于繁琐和割裂。

应对复杂部署环境:需要统一监控管理多个网络隔离的机房或混合云资源。

需要强化告警管理:团队规模扩大,需要通过更直观的UI和精细化的规则进行告警协同管理

5、拉取categraf镜像

bash 复制代码
```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:latest

6、下载源码包

bash 复制代码
cd /data
wget https://github.com/ccfos/nightingale/archive/refs/tags/v8.0.0-beta.10.tar.gz

7、编辑docker-compose.yaml文件

bash 复制代码
tar -zxvf v8.0.0-beta.10.tar.gz
mv nightingale-8.0.0-beta.10 nightingale
cat /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: 1234
    volumes:
      - ./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:
      - nightingale

8、启动categraf容器

bash 复制代码
cd /data/nightingale/docker/compose-bridge
docker-compose up -d
docker-compose ps

9、访问categraf服务

bash 复制代码
浏览器访问: http://192.168.112.115:7000
默认用户名密码: root/root.2020


相关推荐
0思必得02 小时前
[Web自动化] HTML列表标签
运维·python·自动化·html·web自动化
松涛和鸣2 小时前
DAY27 Linux File IO and Standard IO Explained: From Concepts to Practice
linux·运维·服务器·c语言·嵌入式硬件·ubuntu
GeniuswongAir2 小时前
飞牛NAS死机排查
linux·运维·服务器
hhcgchpspk2 小时前
linux查找并杀死进程部分方法
linux·运维·服务器·网络·经验分享
爱尔兰极光3 小时前
操作系统--进程同步
运维·服务器
xrkhy3 小时前
windows家庭版,D盘安装docker,下载大模型
windows·docker·容器
青铜念诗3 小时前
k8s 业务备份
云原生·容器·kubernetes
皇族崛起3 小时前
【docker安装部署】- 一个可用的Docker 镜像配置 和 DNS配置
java·docker·容器
HalvmånEver3 小时前
Linux:基础IO(一)
linux·运维·服务器