暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

夜莺( Nightingale )监控系统部署安装

老柴杂货铺 2025-04-05
371

夜莺监控( 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项目原核心研发人员。

一、安装时序库
夜莺接收到数据之后会通过 remote write 方式转发给时序库,夜莺支持prometheus 和VictoriaMetrics (推荐)

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=simple
    ExecStart=/opt/victoriametrics/victoria-metrics-prod
    Restart=on-failure
    SuccessExitStatus=0
    LimitNOFILE=65536
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=victoriametrics
    [Install]
    WantedBy=multi-user.target

    二、安装MySQL、Redis

    夜莺依赖 MySQL、Redis,需要各位提前准备好。这里也提供一个小脚本来安装这两个组件,大家可以参考。

      # install mysql
      yum -y install mariadb*
      systemctl enable mariadb
      systemctl restart mariadb
      mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
      # install redis
      yum install -y redis
      systemctl enable redis
      systemctl 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.gz
        mkdir n9ev8
        mv n9e-v8.0.0-beta.6-linux-amd64.tar.gz n9ev8/
        cd n9ev8
        tar 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=Nightingale
            After=network.target
            [Service]
            ExecStart=/root/n9ev8/n9e -configs=/root/n9ev8/etc
            Restart=always
            User=root
            [Install]
            WantedBy=multi-user.target

            使用systemctl start n9e启动成功,夜莺默认会监听在 17000 端口,通过下面的命令可以查看运行是否正常

              # 查看端口
              ss -tlnp|grep 17000
              # 查看进程
              ps -ef|grep n9e
              # 查看日志
              journalctl -fu n9e
              # 或直接查看message
              tail -f /var/log/messages
              默认情况下夜莺的日志打印到 stdout,如果想把日志输出到指定目录,可以通过修改 config.toml 中的 [Log] 部分达成目的,比如:
                [Log]
                Dir = "logs"
                Level = "INFO"
                Output = "file"
                RotateNum = 3
                RotateSize = 256
                把日志输出到 logs 目录下,日志级别是 INFO,日志文件大小超过 256M 时,会自动切割,保留 3 个日志文件。

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

                在页面添加数据源

                四、部署采集器

                在每个机器上安装 Categraf

                  # 下载categraf
                  curl -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.gz 
                  cd categraf-v0.4.3-linux-amd64/
                  # 修改配置,连接n9e
                  sed -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值:

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

                  在需要的业务组中添加团队
                  配置告警规则
                  新建一条告警规则,设置 promql:mem_available_percent < 100,并且指定通知媒介是企微(wecom),告警接收人复用之前创建的团队:
                  观察可以收到告警

                  文章转载自老柴杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论