[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]
📢 大家好,我是 WeiyiGeek,一名深耕安全运维开发(SecOpsDev)领域的技术从业者,致力于探索DevOps与安全的融合(DevSecOps),自动化运维工具开发与实践,企业网络安全防护,欢迎各位道友一起学习交流、一起进步 🚀,若此文对你有帮助,一定记得倒点个关注⭐与小红星❤️,收藏学习不迷路 😋 。
0x00 前言简述
描述:上一篇【国产化监控新选择!夜莺Nightingale在OpenEuler上的极简部署指南】,作者简单介绍了夜莺监控系统,以及如何通过二进制的方式部署夜莺(nightingale),本篇将介绍如何使用自行构建夜莺监控容器镜像,并通过docker容器化快部署夜莺,最后作者以生产环境为例,演示在 Kubernetes 集群环境下部署一个最新版本的夜莺监控系统,以便于后续接入 Prometheus 以及 VictoriaMetrics 监控指标数据和 jaeger 链路追踪,并使用夜莺监控系统进行分组告警通知和抑制告警。
原文链接: https://articles.zsxq.com/id_pe9p5cw2x8f2.html
实践环境:
# 获取最新版本号,截止发稿前最新版本为 v8.0.0-beta.14
curl -s https://api.github.com/repos/ccfos/nightingale/releases/latest | grep "tag_name" | cut -d '"' -f 4
# v8.0.0-beta.14
# 获取最新二进制包下载链接地址
curl -s https://api.github.com/repos/ccfos/nightingale/releases/latest | grep "browser_download_url" | grep "linux-amd64.tar.gz" | cut -d '"' -f 4
# https://github.com/ccfos/nightingale/releases/download/v8.0.0-beta.14/n9e-v8.0.0-beta.14-linux-amd64.tar.gz
0x01 容器化部署夜莺监控系统
Docker 容器方式部署
描述:夜莺官网已经写的非常详细了,你只需要安装 docker 以及 docker-compose 环境,便可开箱即用,此处不再赘述。
Docker 环境说明
$ docker version
Client: Docker Engine - Community
Version: 26.1.3
Server: Docker Engine - Community
Engine:
Version: 26.1.3
$ docker-compose version
Docker Compose version v2.23.0
操作实践
# 方式1.拉取源代码
git clone --depth=1 https://github.com/ccfos/nightingale.git
# 方式2.二进制安装包
mkdir -vpls /opt/n9e && cd /opt/n9e
download_url=$(curl -s https://api.github.com/repos/ccfos/nightingale/releases/latest | grep "browser_download_url" | grep "linux-amd64.tar.gz" | cut -d '"' -f 4)
wget https://gh.wygk.eu.org/$download_url
tar -zxvf ${download_url##*/}
# 不论通过那种方式,解压后都有一个 docker/compose-bridge 目录,进入这个目录执行 docker-compose up -d 命令即可(国内网络,镜像下载可能会失败,您需要自行解决科学上网的问题)
ls docker/compose-bridge
# docker-compose.yaml etc-categraf etc-mysql etc-nightingale
cd /opt/n9e/docker/compose-bridge
docker compose up -d
[+] Running 5/5
# ✔ Container victoriametrics Started 0.6s
# ✔ Container redis Started 0.6s
# ✔ Container mysql Started 0.6s
# ✔ Container nightingale Started 0.2s
# ✔ Container categraf Started
执行完毕后,Docker compose 便会启动了多个容器,分别是:
victoriametrics:时序数据库,和 Prometheus 兼容,性能更好
redis:缓存数据库,夜莺使用 Redis 来存储 jwt token 和机器的心跳元信息
mysql:关系型数据库,夜莺使用 MySQL 来存储用户信息、告警规则、仪表盘等配置类数据
nightingale:夜莺监控的核心服务
categraf:监控数据采集器,负责采集主机的 CPU、内存、磁盘等指标数据.
当然你也可以单独只运行 nightingale (主要是临时测试使用),注意:未持久化数据容器重启后丢失,例如:
# 创建并运行夜莺监控容器
docker run -d --name nightingale \
-e GIN_MODE=release \
-e TZ=Asia/Shanghai \
-p 17000:17000 \
-p 20090:20090 \
--restart=always \
flashcatcloud/nightingale:latest \
sh -c "/app/n9e"
# 查看容器运行状态
docker ps
# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 504c6c8d7a2f flashcatcloud/nightingale:latest "sh -c /app/n9e" 4 seconds ago Up 3 seconds 0.0.0.0:20090->20090/tcp, :::20090->20090/tcp, 0.0.0.0:17000->17000/tcp, :::17000->17000/tcp nightingale
# 若开启了主机防火墙一定要开放 17000 和 20090 端口,否则无法访问夜莺监控系统
firewall-cmd --add-port=17000/tcp --add-port=20090/tcp --permanent
firewall-cmd --reload
等待几分钟,夜莺监控系统便会启动成功,你可以通过浏览器访问 http://127.0.0.1:17000 来查看夜莺的 Web 界面,默认用户名是 root,默认密码是 root.2020。
注意:请把 127.0.0.1 替换成你的服务器 IP 地址。
weiyigeek.top-登录容器部署的夜莺图
参考来源:https://n9e.github.io/zh/docs/install/compose/
Kubernetes 集群环境中部署
描述:考虑到在当下企业生产环境中,通常会使用 Kubernetes 容器编排工具来管理容器化应用,而不是 Docker 以及其他容器。此外由于笔者企业内部有安全合规要求,通常不会直接使用外部工具提供的镜像,而是自行构建夜莺监控系统的容器镜像,并通过