简介
Netdata 是一个开源的、实时的性能和健康监控工具,专为系统、应用程序、SNMP 设备等而设计。它以其高度交互的 Web 仪表板和极低的资源开销而闻名。
主要特点:实时监控、全面监控、零配置、轻量级、交互式仪表板、可扩展性、警报和通知、分布式监控、数据收集 API、无数据库
接下来,我会带大家一起部署这样一个服务器监控平台。
部署前必要准备
-
一个充满求知欲的大脑。
-
一台Linux服务器(推荐腾讯云、阿里云或雨云等)。本文将以雨云为例进行演示。
我将会以 雨云 为例,带大家创建一台自己的云服务器,以便尝试本篇文章的内容。
注册链接: https://www.rainyun.com/NTEzMTM1_?s=blog
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
点击“云产品”→“云服务器”→“立即购买”。
选择距离你较近的区域,以降低延迟。
选择配置。
选择Ubuntu 22.04版本。
点击“立即购买”,并完成后续购买流程。购买完成后,等待服务器部署完毕,进入管理面板,找到远程连接信息。
使用PowerShell进行远程连接:输入ssh root@你的服务器IP
(例如ssh root@154.9.227.239
),首次连接需输入yes
,然后回车即可登录。
Linux 脚本部署 Netdata
安装
本教程以 Ubuntu 22.04 为例,其他 Linux 发行版步骤类似,可能需要根据你的发行版调整命令。
可以直接使用一键安装脚本:
curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --disable-telemetry
如果想自定义一些配置,可以前往官网 Linux installation,按照自己的需求选择安装参数,如下图,也可以根据这个链接下面的其他配置命令参数:
验证安装: 在浏览器中访问 http://你的服务器IP:19999
,即可查看 Netdata 的监控界面。
我们不需要登录,点击右下角的 Skip and use the dashboard anonymously. 直接进入管理面板即可。
进来后,就可以看到我们服务器的一些状态了。
小提示:将右上角的模式修改为 Force Play,可以避免鼠标悬停时暂停服务器状态显示。
卸载
如果需要卸载,可以将命令行参数修改为 --uninstall
如下命令:
curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --uninstall
使用 Docker 和 Docker Compose 部署 Netdata
方法一:使用 docker run
命令
运行 Docker 命令: 执行以下命令启动 Netdata 容器:
docker run -d --name=netdata \
--pid=host \
--network=host \
-v netdataconfig:/etc/netdata \
-v netdatalib:/var/lib/netdata \
-v netdatacache:/var/cache/netdata \
-v /:/host/root:ro,rslave \
-v /etc/passwd:/host/etc/passwd:ro \
-v /etc/group:/host/etc/group:ro \
-v /etc/localtime:/etc/localtime:ro \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /etc/os-release:/host/etc/os-release:ro \
-v /var/log:/host/var/log:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--restart unless-stopped \
--cap-add SYS_PTRACE \
--cap-add SYS_ADMIN \
--security-opt apparmor=unconfined \
netdata/netdata
参数解读:
--pid=host
: 共享宿主机 PID namespace,允许 Netdata 监控宿主机进程。--network=host
: 共享宿主机网络 namespace,允许 Netdata 监控网络接口和服务。-v ...
: 挂载必要的目录,让 Netdata 可以访问宿主机文件系统。/hostfs
为所有文件系统的只读访问,其他为特定目录。--restart unless-stopped
: 除非手动停止,否则容器会在重启时自动启动。--cap-add SYS_PTRACE, SYS_ADMIN
: 添加必要的权限,允许 Netdata 进行系统监控。--security-opt apparmor=unconfined
: 关闭 AppArmor 安全限制 (谨慎使用,仅在安全环境下使用)。netdata/netdata:stable
: 使用 Netdata 官方镜像的稳定版本。
方法二:使用 docker-compose.yml
文件
使用 docker-compose.yml
文件定义 Netdata 容器,更易于管理和扩展。
创建 docker-compose.yml
文件: 创建一个名为 docker-compose.yml
的文件,内容如下:
version: '3'
services:
netdata:
image: netdata/netdata
container_name: netdata
pid: host
network_mode: host
restart: unless-stopped
cap_add:
- SYS_PTRACE
- SYS_ADMIN
security_opt:
- apparmor:unconfined
volumes:
- netdataconfig:/etc/netdata
- netdatalib:/var/lib/netdata
- netdatacache:/var/cache/netdata
- /:/host/root:ro,rslave
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /etc/localtime:/etc/localtime:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /etc/os-release:/host/etc/os-release:ro
- /var/log:/host/var/log:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes:
netdataconfig:
netdatalib:
netdatacache:
运行 Docker Compose 命令: 执行以下命令启动 Netdata 容器:
sudo docker-compose up -d
验证安装: 无论使用哪种方法,部署完成后,在浏览器中访问 http://你的服务器IP:19999
即可查看 Netdata 的监控界面。 记住将 你的服务器IP
替换为你的服务器的实际 IP 地址。
根据你的实际情况选择合适的部署方式。 docker-compose.yml
方法更易于管理,而 docker run
方法更灵活。 在生产环境中,建议仔细考虑安全性,并根据你的需求进行相应的配置调整。
重要提示:
- 使用
--network=host
和--pid=host
会赋予容器对宿主机系统很高的权限,请务必在安全的环境下使用。 --security-opt apparmor=unconfined
会禁用 AppArmor,降低安全性,建议在生产环境中谨慎使用,并评估其安全风险。 在生产环境中,建议使用更安全的配置,例如自定义 AppArmor 规则或其他安全措施。- 你可以将
netdata/netdata
替换为netdata/netdata:edge
使用最新版本,但最新版本可能包含未经充分测试的功能。
根据你的实际情况选择合适的部署方式。 docker-compose.yml
方法更易于管理,而 docker run
方法更灵活。 在生产环境中,建议仔细考虑安全性,并根据你的需求进行相应的配置调整。
相关链接
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTEzMTM1_?s=blog
我的博客:https://blog.ivwv.site