semi-xi / blog

blog
4 stars 1 forks source link

夜莺n9e在mac上的搭建步骤 #41

Open semi-xi opened 5 months ago

semi-xi commented 5 months ago

夜莺n9e

环境搭建

这里主要介绍的是本地环境,当前笔者使用的环境为macbook M1Pro版本,以下内容均以这个环境去选择版本。另外本次搭建选用的是二进制的方式安装,因此需要提前拉到压缩包在本地tar解压 n9e主要依赖的mysql以及redis,但是在搭建的时候,为了测试会去搭建时序数据库VictoriaMetrics以及采集器Categraf,所以这里就一并验证了这个内容

mysql

# 使用brew安装,或者自行安装都可以
brew install mysql
# 然后你可以自行设置安全的密码
# 启动mysql,端口默认3306
sudo systemctl start mysql
# 由于mac的命令行不支持在命令中输入密码,会被认为不安全,因此可以这样,这样会交互式的让你输入密码
mysql -uroot -p < n9e.sql

redis

默认端口是6379

# 使用brew安装,或者自行安装都行, 笔者是自己安装,那样直接进入到src目录,然后执行redis-server即可
brew install redis 
# 启动redis服务端
redis-server
# 启动客户端
redis-cli 
# 验证 
redis-cli ping

| 以上两个只是基础应用,但是需要依赖业务自己的时许数据库以及采集器,本地的话建议自己安装这两个,进行测试

VictoriaMetrics 时序数据库

# 安装
brew install victoriametrics
# 启动
brew services start victoriametrics
# 验证 http://localhost:8428

categraf 采集器

由于mac跟linux的机器还是有点区别的,直接运行二进制版本,会提示无法运行二进制文件,这个时候就需要自己重新打包编译 | 当前最新是0.3.58,这里以最新版本举例

# 下载源码版本跟二进制版本,也可以直接在源码那边构建完之后运行
# 二进制版本
wget https://github.com/flashcatcloud/categraf/releases/download/v0.3.58/categraf-v0.3.58-linux-arm64.tar.gz
mkdir categraf
tar xf categraf-v0.3.58-linux-arm64.tar.gz -C categraf
# 源码版本
wget https://github.com/flashcatcloud/categraf/archive/refs/tags/v0.3.58.tar.gz
mkdir categraf_source
tar xf v0.3.58.tar.gz -C categraf_source
# 在源码版本构建打包
GOOS=darwin GOARCH=arm64 go build -o categraf
# 自己一次洗复制过去二进制目录覆盖即可,也可以用mv命令

# 运行
nohup ./categraf &>categraf.log &

n9e本体

由于环境的关系,本地并不能直接运行二进制的版本,会提示系统建构不支持,因此也需要自己重新打包并且替换 | 当前最新是6.7.3,这里以最新版本举例

# 下载好源码版本跟二进制版本
wget https://github.com/ccfos/nightingale/archive/refs/tags/v6.7.3.tar.gz
mkdir n9e_source
tar zxvf v6.7.3.tar.gz -C n9e_source
# 二进制版本
wget https://download.flashcat.cloud/n9e-v6.7.3-linux-arm64.tar.gz
mkdir n9e
tar zxvf n9e-v6.7.3-linux-arm64.tar.gz -C n9e
# 在源码目录构建n9e
GOOS=darwin GOARCH=arm64 go build -o n9e ./cmd/center/main.go
# 在源码目录构建n9e-alert
GOOS=darwin GOARCH=arm64 go build -o n9e-alert ./cmd/alert/main.go
# 在源码目录构建n9e-pushgw
GOOS=darwin GOARCH=arm64 go build -o n9e-pushgw ./cmd/pushgw/main.go
# 在源码目录构建n9e-cli
GOOS=darwin GOARCH=arm64 go build -o n9e-cli ./cmd/cli/main.go

# 自己一次性复制过去二进制目录覆盖即可,也可以用mv命令

注意检查mysql的配置账号密码,以及VictoriaMetrics的remote地址,路径在ect/config.toml

[Pushgw]
[[Pushgw.Writers]] 
# Url = "http://127.0.0.1:8480/insert/0/prometheus/api/v1/write"
Url = "http://127.0.0.1:8428/api/v1/write"

[DB]
# postgres: host=%s port=%s user=%s dbname=%s password=%s sslmode=%s
# postgres: DSN="host=127.0.0.1 port=5432 user=root dbname=n9e_v6 password=1234 sslmode=disable"
DSN="root:12345678@tcp(127.0.0.1:3306)/n9e_v6?charset=utf8mb4&parseTime=True&loc=Local&allowNativePasswords=true"
# 启动 
nohup ./n9e > n9e.log 2>&1
# 检查
lsof -i4tcp:17000

查看占用的ip

# redis 改成自己包的名字就可以
lsof -i tcp |grep redis