貔貅云原生

貔貅云原生

N9E夜莺系统部署

98
0
0
2023-12-04
N9E夜莺系统部署

项目介绍

夜莺最初由滴滴开发和开源,主要功能是接收采集器(Agent)发送来的数据,对接 Prometheus、Elasticsearch、Jaeger 后,通过 api 查询它们数据。

架构图

架构图分 7 个模块:

  • n9e-webapi 用于提供 API 给前端 JavaScript 使用
  • n9e-server 的职责是告警引擎和数据转发器
  • Mysql 存放配置类别信息,如用户,监控大盘,告警规则等
  • Redis 存放访问令牌(JWT Token),心跳信息,如机器列表中CPU、内存、时间偏移、核数、操作系统、CPU架构等
  • Agent 采集端主动把采集的指标推送给 n9e-server,n9e-server 接收到数据转发给时序数据库(配置文件需要有地址),这里可以用 Prometheus 的时序数据库代替
  • Prometheus 的接口负责接收 Server 转发来的数据并存储,并且本身存储了 Exporters 数据,提供给 Server 查询接口
  • Exporters 是 Prometheus 的指标,由 Prometheus 主动采集

image-sbqt.png

安装

先安装基础中间件 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

再安装夜莺服务

# 创建个 n9e 的目录,后面把 n9e 相关的文件解压到这里
mkdir -p /opt/n9e && cd /opt/n9e

# 下载 n9e 发布包,amd64 是 x84 的包,下载站点也提供 arm64 的包,如果需要其他平台的包则要自行编译了
tarball=n9e-v6.0.0-ga.9.2-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget -q $urlpath || exit 1

# 解压缩发布包
tar zxvf ${tarball}

# 解压缩之后,可以看到 n9e.sql 是建表语句,导入数据库
mysql -uroot -p1234 < n9e.sql

# 启动 n9e,先使用 nohup 简单测试,如果需要 systemd 托管,请自行准备 service 文件
nohup ./n9e &> n9e.log &

# 检查 n9e.log 是否有异常日志,检查端口是否在监听,正常应该监听在 17000
ss -tlnp|grep 17000

夜莺服务对接 Prometheus 远程写

# 打开夜莺配置文件,添加远程写
# vi etc/config.toml
[[Pushgw.Writers]]
# Url = "http://127.0.0.1:8480/insert/0/prometheus/api/v1/write"
Url = "http://192.168.17.22:9090/api/v1/write"

重启服务

访问页面

用户名密码
默认用户是 root,密码是 root.2020。

image-deza.png

对接 Prometheus,后查询 Prometheus 数据,在系统配置里添加数据源后,到时序指标-即使查询查询。

image-mwmr.png

对接 Telegraf 采集器

telegraf.conf 配置文件 output 插件添加夜莺端口

# vi telegraf.conf
[[outputs.opentsdb]]
  host = "http://192.168.17.52"
  port = 17000
  http_batch_size = 50
  http_path = "/opentsdb/put"
  debug = true
  separator = "_"

采集器的机器会在基础设施-机器列表里显示,发现列表里很多都是 unknown,是因为机器列表数据得用同公司 catgraf 采集器才有。

对接成功后,采集器会把数据上报给 server,server 转给时序数据库,所以现在数据存储在 prometheus 中,通过即时查询选择 prometheus 就可以查到 telegraf 数据