使用 Docker compose 的方式一键部署夜莺
夜莺监控是一款开源云原生观测分析工具,采用 All-in-One 的设计理念,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力
参考文档链接https://flashcat.cloud/docs/content/flashcat-monitor/nightingale-v7/install/docker-compose/
1、关闭防火墙
systemctl disable --now firewalld.service
2、关闭SeLinux
•临时关闭SELinux•:可以通过执行命令setenforce 0来实现。这种方式在重启系统后会失效,因为SELinux的设置会恢复到原来的状态。
•永久关闭SELinux•:需要编辑配置文件。可以使用vim /etc/selinux/config命令打开配置文件,然后将SELINUX=enforcing改为SELINUX=disabled,保存并退出。重启系统后,SELinux将保持关闭状态。
查看SELinux状态•:可以通过getenforce命令查看当前SELinux的状态。如果显示为Enforcing,表示SELinux正在执行;如果显示为Permissive,表示SELinux处于警告模式但不执行;如果显示为Disabled,表示SELinux已关闭
setenforce 0
getenforce
vim /etc/selinux/config
3、设置时间同步
yum install -y ntp ntpdate
#先执行一次ntpdate时间同步
ntpdate ntp1.aliyun.com
vi /etc/ntp.conf
systemctl enable --now ntpd
#ntpstat或ntpq -p检查状态 timedatectl status
4、安装docker
Docker是一个开源的Linux容器引擎项目, 用以实现应用的快速打包、部署和交付。Docker的英文本意是码头工人,码头工人的工作就是将商品打包到container(集装箱)并且搬运container、装载container。 对应到Linux中,Docker就是将app打包到container,通过container实现app在各种平台上的部署、运行。Docker通过Linux Container技术将app变成一个标准化的、可移植的、自管理的组件,从而实现应用的“一次构建,到处运行”。
Docker技术特点就是:应用快速发布、部署简单、管理方便,应用密度更高。
Docker容器的安装需要使用root权限。
docker-engine rpm包与containerd rpm包、runc rpm包、podman rpm包不能同时安装。因为docker-engine rpm包中已经包含Docker运行所需的所有组件,其中包括containerd、runc、docker二进制,且containerd、runc和podman rpm包也分别提供了对应的二进制,所以重复安装时会出现软件包冲突。
#安装docker
dnf install -y docker-engine
#配置镜像加速
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [ "https://0907e9f34380f2940febc01a90f417a0.mirror.swr.myhuaweicloud.com" ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#启动docker
systemctl enable --now docker
#查看docker运行状态
systemctl status docker
5、使用 Docker compose 的方式一键部署夜莺
根据服务器cpu架构下载包https://github.com/ccfos/nightingale/releases/download/v7.7.2/n9e-v7.7.2-linux-amd64.tar.gz
compose-bridge:bridge 网络模式的 docker compose 部署方式,数据库使用 MySQL
compose-host-network:host 网络模式的 docker compose 部署方式,数据库使用 MySQL
compose-postgres: bridge 网络模式的 docker compose 部署方式,数据库使用 PostgreSQL
mkdir -p /opt/ne
cd /opt/ne
#wget https://github.com/ccfos/nightingale/releases/download/v7.7.2/n9e-v7.7.2-linux-amd64.tar.gz
dnf install -y lrzsz
rz
cd /opt/ne/docker/compose-bridge
dnf install -y docker-compose
docker-compose up -d
报错如下
1、先卸载 docker-compose、
dnf remove -y docker-compose
2、重新安装 docker-compose
下载https://github.com/docker/compose/releases/download/v2.31.0/docker-compose-linux-x86_64
curl -L "https://github.com/docker/compose/releases/download/v2.31.0/docker-compose-linux-x86_64" -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker-compose --version
3、需要用到的容器镜像
[root@10-0-0-202 compose-bridge]# pwd
/opt/ne/docker/compose-bridge
[root@10-0-0-202 compose-bridge]# cat docker-compose.yaml |grep image
image: "mysql:8"
image: "redis:6.2"
# image: prom/prometheus
image: victoriametrics/victoria-metrics:v1.79.12
image: flashcatcloud/nightingale:latest
image: "flashcatcloud/categraf:latest"
[root@10-0-0-202 compose-bridge]#
4、配置的镜像加速器似乎不生效。想办法将需要使用的容器镜像pull到服务器上【切换成华为的镜像加速器后可以pull下来】
#登录华为镜像仓库
docker login -u cn-southwest-2@N4UBBS62QS6MEYP2CILT -p 9f89d6b48e4ee3d391a925b6d439c8df3bca79c939c4c93bfe225d9446205755 swr.cn-southwest-2.myhuaweicloud.com
#pull mysql 8.0
docker pull mysql:8
#redis
docker pull redis:6.2
docker pull victoria-metrics:v1.79.12
docker pull nightingale:latest
docker pull categraf:latest
docker pull prometheus
#镜像打标签
docker tag mysql:8.0 swr.cn-southwest-2.myhuaweicloud.com/ne/mysql:8.0
docker tag mysql:8 swr.cn-southwest-2.myhuaweicloud.com/ne/mysql:8
docker tag redis:6.2 swr.cn-southwest-2.myhuaweicloud.com/ne/redis:6.2
docker tag prom/prometheus swr.cn-southwest-2.myhuaweicloud.com/ne/prom/prometheus
docker tag victoriametrics/victoria-metrics:v1.79.12 swr.cn-southwest-2.myhuaweicloud.com/ne/victoriametrics/victoria-metrics:v1.79.12
docker tag flashcatcloud/nightingale:latest swr.cn-southwest-2.myhuaweicloud.com/ne/flashcatcloud/nightingale:latest
docker tag flashcatcloud/categraf:latest swr.cn-southwest-2.myhuaweicloud.com/ne/flashcatcloud/categraf:latest
#上传镜像到我的华为云镜像仓库
docker push swr.cn-southwest-2.myhuaweicloud.com/ne/mysql:8.0
docker push swr.cn-southwest-2.myhuaweicloud.com/ne/mysql:8
docker push swr.cn-southwest-2.myhuaweicloud.com/ne/redis:6.2
docker push swr.cn-southwest-2.myhuaweicloud.com/ne/prom/prometheus
docker push swr.cn-southwest-2.myhuaweicloud.com/ne/victoriametrics/victoria-metrics:v1.79.12
docker push swr.cn-southwest-2.myhuaweicloud.com/ne/flashcatcloud/nightingale:latest
docker push swr.cn-southwest-2.myhuaweicloud.com/ne/flashcatcloud/categraf:latest
#启动容器
cd /opt/ne/docker/compose-bridge
docker-compose up -d
docker-compose ps
6、前台登录
1、服务启动之后,浏览器访问 n9e 的端口,即 17000,默认用户是 root
,密码是 root.2020
2、可以看到categraf容器已经被监控起来
3、配置时序库数据源
4、查询时序库,已经可以查询到监控数据
5、导入仪表盘
夜莺内置了一些仪表盘,在【内置仪表盘】菜单下可以看到。可以把这些仪表盘克隆到自己的业务组下使用。夜莺初始化之后,会默认创建一个 Default Busi Group 的业务组,打开【监控仪表盘】菜单,左侧就可以看到 Default Busi Group 这个业务组,选中这个业务组,点击右上角的【更多操作】-【导入仪表盘】
7、监控其他linux机器
https://flashcat.cloud/download/categraf/
1、下载categraf包https://download.flashcat.cloud/categraf-v0.3.80-linux-amd64.tar.gz
2、上传到需要被监控的机器
3、解压
4、新建目录
mkdir -p /opt/categraf
#解压后的文件放入这个目录
[root@10-0-0-202 categraf]# ll
total 137524
-rwxr-xr-x. 1 1001 docker 140820480 Sep 29 19:27 categraf
drwxr-xr-x. 86 root root 4096 Dec 6 22:15 conf
5、修改配置文件
/opt/categraf/conf/conf.toml
将hostname = ""修改为hostname = "$hostname-$ip"
将127.0.0.1修改为夜莺服务器地址 我的这里是10.0.0.202
6、测试启动categraf
cd /opt/categraf
./categraf
#如果没有报错,去夜莺前台界面可以看到又多了一台机器
7、使用systemd托管categraf
cd /opt/categraf
./categraf -install
systemctl enable --now categraf
systemctl status categraf
8、从已经部署好categraf的机器上拷贝categraf和conf文件夹到其他机器
cd /opt/
scp -rv root@10.0.0.202:/opt/categraf ./
cd /opt/categraf
./categraf -install
systemctl enable --now categraf
systemctl status categraf
8、监控其他windows机器
下载包https://download.flashcat.cloud/categraf-v0.3.80-windows-amd64.zip
1、解压到指定安装目录,修改配置文件conf.tom
2、启动测试
3、测试没有问题就安装成服务
显示注册成服务被拒绝,重新以管理员方式打开cmd进行服务注册
4、启动服务并设置服务开机自启动
5、夜莺前台查看是否被监控。显示windows主机已经被成功监控