简介
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/netdatacontainer_name: netdatapid: hostnetwork_mode: hostrestart: unless-stoppedcap_add:- SYS_PTRACE- SYS_ADMINsecurity_opt:- apparmor:unconfinedvolumes:- 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:rovolumes: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