3 部署说明

各种环境的选型建议

  • Docker compose 方式:可用于快速测试,不建议上生产,如果要生产环境使用 Docker compose,需要对 Docker compose 真的很熟,社区很多朋友遇到问题其实是因为对 Docker compose 不熟悉导致踩坑
  • 二进制部署:这是最推荐的方式,systemd 托管,开机自启动,挂了自动拉起,也可以方便配置 CPU 限制,使用 journalctl 看日志,日志自动有滚动处理,稳,升级也方便,老运维应该深有同感
  • Helm 方式:公司大规模使用了 Kubernetes,可以选择 Helm 方式,前提是贵司对 Helm 这套能 hold 住,通常情况下,我们不推荐把夜莺服务端部署到 Kubernetes 中,因为 Kubernetes 一旦挂了监控就挂了,而监控系统作为 P0 级服务,最好是尽量少的依赖其他组件。如果真的因为 Kubernetes 挂了导致监控挂,其他团队的人就容易来怼你当初为啥选择这样的部署方案
  • 存储选型:如果之前没有部署过,是个新环境,时序库选型建议使用 VictoriaMetrics,单机版 VictoriaMetrics 就可以抗住每秒上百万数据点,性能很好,CPU、内存的占用都比 Prometheus 少,而且,完全兼容 Prometheus 的查询接口。社区也有人用 Thanos,Thanos 的架构明显比 VictoriaMetrics 要复杂,简单的东西不容易出问题
  • 时间校准:社区反馈的很多问题都是因为机器时间没有校准,监控系统对时间很敏感,请各位先把机器时间校准一致,让服务端的机器、时序库的机器、要监控的目标机器、浏览器所在的机器(通常是你的笔记本电脑或台式机)时间,都保持一致

用户名密码

夜莺安装完成之后,默认用户是 root,密码是 root.2020。部署完成之后,建议立即修改密码。另外修改 etc/config.toml 中的 SigningKey 为随机字符串,用于加密 jwt token,当然,如果是 v7.0.0.beta5 以上版本,系统会自动生成一个随机字符串,不需要手动修改 SigningKey。另外,尽量不要把夜莺暴露在公网,防止其他安全隐患。

之前看扫描网站,有上千个夜莺公网站点,好消息是夜莺的用户挺多的,坏消息是很多暴露在公网的夜莺都没有修改默认的用户名和密码,实在是太危险了。尽量、尽量不要把夜莺暴露在公网。

执行部署

以上方式部署完成,就完成了夜莺中心端的部署,适用于单机房的场景,或者是多机房但是相互之间有良好专线的公司。

如果贵司是多机房架构,且担心机房网络割裂问题(比如某个机房和其他机房之间专线中断),则可以采用边缘机房部署架构,除了中心端部署 n9e 进程,还需要在边缘机房部署 n9e-edge 进程。边缘机房部署架构参考《附:边缘机房部署

二进制部署夜莺

可以去两个地方下载夜莺发布包,完事自行解压缩:

注意:amd64.tar.gz 是 x86_64 架构的,arm64.tar.gz 是 arm64 架构的。根据自己的服务器架构选择下载。如果下载错了,启动的时候会报错:无法执行二进制文件。

V7 版本二进制下载地址:https://github.com/ccfos/nightingale/releases/download/v7.0.0/n9e-v7.0.0-linux-amd64.tar.gz

根据「项目介绍」中的架构介绍,夜莺依赖 MySQL、Redis,需要各位提前准备好。这里也提供一个小脚本来安装这两个组件,大家可以参考。

# 安装 mariadb
apt install -y mariadb*
systemctl enable mariadb
systemctl restart mariadb

# 设置密码为 1234admin
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234admin');"

# 安装 redis
apt install -y redis
systemctl enable redis
systemctl restart redis

上例中 mysql 的 root 密码设置为了 1234admin ,测试阶段建议维持这个不变,后续就省去了修改配置文件的麻烦,等熟悉了上生产了再改为强密码。如果你想修改默认用户名和密码,就要对应的修改配置文件中的 mysql 连接信息,配置文件的哪个地方配置了 mysql 的密码呢?通过下面的命令可以找到:

# 夜莺的主配置文件是 etc/config.toml
grep "1234admin" etc/config.toml

夜莺配置文件中的 Redis 默认是配置的单机版,且无密码,如果想做调整,根据配置文件中的注释来修改即可。

解压安装

tar xf n9e-v7.0.0-linux-amd64.tar.gz

ll
total 139204
drwxr-xr-x  6 root root      4096 Aug  1 14:36 ./
drwx------  7 root root      4096 Aug  1 14:34 ../
drwxr-xr-x  3 root root      4096 Aug  1 14:36 cli/
drwxr-xr-x  8 root root      4096 Aug  1 14:36 docker/
drwxr-xr-x  5 root root      4096 Aug  1 14:36 etc/
drwxr-xr-x 65 root root      4096 Aug  1 14:36 integrations/
-rwxr-xr-x  1  501 staff 40112128 Jul 26 13:59 n9e*
-rwxr-xr-x  1  501 staff 16736256 Jul 26 13:59 n9e-cli*
-rwxr-xr-x  1  501 staff 36622336 Jul 26 13:59 n9e-edge*
-rw-------  1  501 staff    70849 Jul 26 13:59 n9e.sql

导入数据库表结构

解压缩夜莺的 tar.gz 之后,可以看到 n9e.sql,这是数据库初始化 sql,需要导入到 mysql 中。

mysql -uroot -p1234admin < n9e.sql

启动夜莺

解压缩夜莺的 tar.gz 之后,可以看到三个二进制:

  • n9e:这是夜莺的服务端二进制
  • n9e-edge:这是边缘机房部署模式时使用,后面会讲,现在不用管
  • n9e-cli:这是 v5 升级 v6 版本时使用的命令行迁移工具,新用户也无需关心

另外可以看到几个目录:

  • cli:v5 升级 v6 的时候用的,新用户无需关心
  • etc:配置文件目录
  • docker:docker 部署的时候用的,相关配置文件,相关 compose.yaml 文件都在这里,二进制部署无需关心
  • integrations:集成目录。存放内置告警规则、内置仪表盘

修改配置文件

vim etc/config.toml 

# 官方默认密码为 1234 ,这里由于我修改为 1234admin,所以在配置将其修改
DSN = "root:1234admin@tcp(127.0.0.1:3306)/n9e_v6?charset=utf8mb4&parseTime=True&loc=Local&allowNativePasswords=true"

编辑 service文件

cat > /usr/lib/systemd/system/n9e.service <<EOF
[Unit]
Description=Nightinagle

[Service]
# 安装目录
WorkingDirectory=/root/n9e
ExecStart=/root/n9e/n9e

[Install]
WantedBy=multi-user.target
EOF

启动

systemctl enable --now n9e.service 
systemctl status n9e.service 
● n9e.service - Nightinagle
     Loaded: loaded (/lib/systemd/system/n9e.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2024-08-01 14:44:54 CST; 3s ago
   Main PID: 4249 (n9e)
      Tasks: 6 (limit: 4513)
     Memory: 23.6M
        CPU: 1.655s
     CGroup: /system.slice/n9e.service
             └─4249 /root/n9e/n9e

Aug 01 14:44:54 n9e systemd[1]: Started Nightinagle.
Aug 01 14:44:54 n9e n9e[4249]: runner.cwd: /root/n9e
Aug 01 14:44:54 n9e n9e[4249]: runner.hostname: n9e
Aug 01 14:44:54 n9e n9e[4249]: runner.fd_limits: (soft=524288, hard=524288)
Aug 01 14:44:54 n9e n9e[4249]: runner.vm_limits: (soft=unlimited, hard=unlimited)

查看端口和进程

ss -ntl| grep 17000
LISTEN 0      4096               *:17000            *:* 

# 进程
ps -ef|grep n9e
root        4249       1  8 14:44 ?        00:00:04 /root/n9e/n9e
root        4302    1453  0 14:45 pts/0    00:00:00 grep --color=auto n9e

查看日志

journalctl -fu n9e

把日志输出到指定目录(选做)

默认情况下夜莺的日志打印到 stdout,如果想把日志输出到指定目录,可以通过修改 config.toml中的 [Log] 部分达成目的,比如:

[Log]
Dir = "logs"
Level = "INFO"
Output = "file"
KeepHours = 24

上面的配置表示,把日志输出到 logs 目录下,日志级别是 INFO,日志文件保留 24 小时。也可以根据大小来配置,比如:

[Log]
Dir = "logs"
Level = "INFO"
Output = "file"
RotateNum = 3
RotateSize = 256

上面的配置表示,把日志输出到 logs 目录下,日志级别是 INFO,日志文件大小超过 256M 时,会自动切割,保留 3 个日志文件。

访问夜莺

浏览器访问夜莺的端口,即 17000,默认用户是 root,密码是 root.2020

以上就是夜莺部署过程

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇