监控工具夜莺V6部署纯净版
摘要
本文实践采用的是夜莺V6 + VictoriaMetrics + Categraf
的纯正标准组合,且采用最推荐的二进制部署方式,在CentOS 8环境从零搭建而成。夜莺的官方文档已经非常详实友好了,鉴于其各部有些分散,一些重要配置与最新版本有所差异,撰此文以飨同仁。
物料准备
这套环境一共需要Nightingale V6(运维监控带页面的夜莺本尊)+VictoriaMetrics
(存数据的)+Categraf
(采数据的苦工)+ Mysql
(存放配置类信息)+ Redis
(令牌、心跳等)。
版本信息
核心三件均为撰文时的最新发布版。
组件名 | 版本 |
---|---|
Nightingale | 6.3.1 |
VictoriaMetrics | 1.93.6 |
Categraf | 0.3.36 |
MySQL | 8.x |
Redis | 5.x |
CentOS | 8.x |
物理环境为x86_64架构,也即amd64.
下载直通车
-
Nightingale
:Nightingale - 下载直达 (flashcat.cloud)文件名:n9e-v6.3.1-linux-amd64.tar.gz
-
VictoriaMetrics
:Releases · VictoriaMetrics下载 (github.com) -
Categraf
:Categraf - 下载直达 (flashcat.cloud)文件名:categraf-v0.3.36-linux-amd64.tar.gz
开始安装
1.MySQL
我的环境里已经安装过了。没安装的小伙伴:
ini
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
- 这里的
1234
是可修改的密码,信息安全形势日渐严峻,请不要在内网或者生产环境使用这种弱密码,养成好习惯,从我做起。 - 在论坛看到说改了这个密码导致无法打开页面,或者说改了这里要修改很多配置的,这都是谬论。首先,我使用的是已经存在的
mysql
,密码是改过的也能用;其次,改了这个密码,在配置文件里也只需要修改一行,并不麻烦!
2. Redis
如果你有现成的redis也可以拿来用,否则的话:
bash
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
- Redis 的默认端口号是6379
- 我这个环境也修改了这个端口号
3. Nightingale + VictoriaMetrics + Categraf 三联
如果前面都整好了,以下安装启动过程3分钟搞定。
bash
# 创建个 n9e 的目录,后面把 n9e 相关的文件解压到这里
mkdir -p /opt/n9e && cd /opt/n9e
tar zxvf n9e-v6.3.1-linux-amd64.tar.gz
# 如果你的mysql在其他主机上,就把n9e.sql复制到mysql安装节点,执行
mysql -uroot -p密码 < n9e.sql
# 修改n9e配置文件里的mysql地址和密码,redis地址和端口号,分别第89行和第107行!
vim etc/config.toml
# 启动 n9e,先使用 nohup 简单测试,如果需要 systemd 托管,请自行准备 service 文件
nohup ./n9e &> n9e.log &
# 检查 n9e.log 是否有异常日志,检查端口是否在监听,正常应该监听在 17000
ss -tlnp|grep 17000
# 安装启动victoria-metrics
tar zxvf victoria-metrics-linux-amd64-v1.93.6.tar.gz
nohup ./victoria-metrics-prod &> stdout.log &
# 确认端口监听
ss -tlnp|grep 8428
# 安装/配置启动categraf,先解压
tar zxvf categraf-v0.3.36-linux-amd64.tar.gz
# cd到解压的目录修改配置,一个是heartbeat、一个是writers主要修改那个17000端口也就是夜莺的安装地址!
# 高版本的categraf可以直接这样启动和停止,很方便
sudo ./categraf --install
sudo ./categraf --start
sudo ./categraf --status
踩坑总结
-
打不开夜莺页面,但是17000端口监听正常,一度去注册论坛搜索无果,最后发现是浏览器版本过低导致的,升级浏览器解决了;
-
日志有个访问github version失败的报错?一开始访问不了页面有个这样的ERROR,但这个其实无所谓,内网本来就访问不了;
-
VM安装后确认那里,官网把查询端口命令写错写成了12632;
-
categraf
默认配置的地址都是本地的,建议直接写成夜莺所在机器的实际IP ,这样把categraf
拷贝到其他机器就能直接启动了,比如我的夜莺所在节点IP为192.168.1.123
:ini[heartbeat] enable = true url = "http://192.168.1.123:17000/v1/n9e/heartbeat" ...... [[writers]] url = "http://192.168.1.123:17000/prometheus/v1/write"
官网有说,夜莺的地址都是:
127.0.0.1:17000
,因为我的Categraf
和 夜莺 在一台机器上,如果你的Categraf
和夜莺在不同的机器,注意改成合适的 IP。
配置使用
-
浏览器访问:
http://夜莺IP:17000
,如我的是"http://192.168.1.123:17000"。 -
登录页面输入默认的用户名
root
密码root.2020
。 -
【系统配置】-->【数据源】-->【Prometheus Like】--> 【添加】。
-
名称填写"
VM001
",自定义任何有意义的名称即可。 -
URL填写"http://VM-IP:8428",例如我写的是"http://192.168.1.123:8428"。
-
相比原文档
UI
已经改变,与文档有差异的是以下两项:Remote Write URL: http://192.168.1.123:8428/api/v1/write
Remote Read URL: http://192.168.1.123:8428/api/v1/read
-
上面就完成了所有配置,【时序指标】-【即时查询】->【关联数据源】 --> VM001,然后随便查点东西。
-
还可以点【基础设施】--> 【机器列表】--> 【全部对象】,可以看到已经有了机器的心跳信息,只要把categraf复制到其他机器启动,其他机器的信息就会被收集到啦。
-
Good Bye!