从头开始,再搭个完整的夜莺V6
2023-11-27 19:04:14
自我介绍
之前在云上跑了一个夜莺v6的集群,但也想折腾一下,打算在自己的mac电脑上再搭建一个。做这个原因很简单,因为喜欢折腾新技术和开源项目。
本文分享了如何在MAC环境中二进制方式构建夜莺V6,并提供详细的步骤和示例代码。本文适合对夜莺v6感兴趣的开发者和运维人员,以及希望在本地环境中搭建夜莺监控系统的读者。
搭建方案
最近很多在maces的朋友推荐用wrk2来部署夜莺,但是我也没用过,于是花了一下午时间,把Wrk2的思路整理了一下。
关于Wrk2:
在正式部署之前,我还是想再说明一下wrk2,wrk2就是用yaml文件去映射docker的compose,wrk2根据yml文件中的配置,进行一键化的服务创建,能够降低你在使用docker compose 创建服务的过程中的复杂度。
准备工作
首先我们需要本地准备三个服务,web、judge、数据,注意不要再使用其它东西了,另外需要两台数据库,一个是pg的数据库,另外一个redis。
因为为了方便,将夜莺v6的web、judge、数据以及redis服务都放到了一台主机上,postgres装在了另外一台主机上。
web、judge、数据服务占用了三个端口,分别是9000、9001、9002,pg占用端口为8422、redis占用端口为6379。
docker-compose搭建
# 数据服务
version: '3'
services:
nightingale-tsdb:
image: xuyunpeng/nightingale-tsdb:latest
network_mode: host
environment:
NG_STORAGE: clickhouse
NG_TSDB_HTTP_PORT: 9002
ports:
- 9002:9002
depends_on:
- postgresql
- redis
#web服务
version: '3'
services:
nightingale-web:
image: xuyunpeng/nightingale-web:latest
network_mode: host
environment:
# 点对点的数据推送服务地址
NG_PUSH_ADDRESS: '127.0.0.1:18888'
# 无论用哪种方式进行数据的推送,都需要开启Agent的认证功能,这里使用的是HTTP方式
NG_AGENT_AUTH_ENABLE: 'true'
# 配置一下数据的上报策略
NG_METRIC_REPORT_STRATEGY: 'mixed'
# Web的启动端口
NG_WEB_LISTEN: '0.0.0.0:9000'
ports:
- '9000:9000'
depends_on:
- nightingale-tsdb
- redis
#judge服务
version: '3'
services:
nightingale-judge:
image: xuyunpeng/nightingale-judge:latest
network_mode: host
environment:
# 点对点的数据推送服务地址
NG_PUSH_ADDRESS: '127.0.0.1:18888'
# Judge的启动端口
NG_JUDGE_LISTEN: '0.0.0.0:9001'
ports:
- '9001:9001'
depends_on:
- nightingale-tsdb
- redis
本地搭建
首先通过wrk2 安装夜莺v6
wrk2 install nightingale_v6
wrk2 start nightingale_v6
接下来安装一下可视化大屏
wrk2 install nightingale_dashboard
wrk2 start nightingale_dashboard
当看到“Started http server on 0.0.0.0:8080”表示安装成功
然后就可以点击前往http://127.0.0.1 进行使用了
总结
首先整个搭建和部署过程还是很快的,整体来看,其实使用wrk2搭建整个夜莺的监控,还是比较方便的。如果你平时使用wrk2的话,再去使用docker compose部署夜莺,可能需要花一点时间来适应和学习,不过一旦习惯以后,还是会非常便利。