网站搜索

如何使用 Netdata 监控 Ubuntu 性能


Netdata 是一款免费开源实时监控和故障排除工具,适用于云服务器、容器、应用程序和本地 IT 基础设施。它提供高粒度和实时的系统指标,例如 CPU 性能、RAM 和磁盘利用率以及带宽统计数据等等。

此外,Netdata 还提供可在 Web 浏览器上访问的交互式指标可视化以及有助于排除系统故障的智能警报。

Netdata 的尖端技术和受欢迎程度使其跻身 2020 年福布斯云 100 强新星之列,这绝非易事。事实上,在撰写本指南时,它已经获得了近 50,000 Github star。

您可以使用两种方法来安装Netdata。您可以立即在 BASH shell 上运行自动化脚本。这会更新您的系统并启动 Netdata 的安装,或者,您可以克隆 Netdata 的 Git 存储库,然后执行自动化脚本。第一种方法简单明了,也是我们在本指南中重点关注的方法。

在本文中,我们将了解如何在 Ubuntu 上安装 Netdata 来监控服务器和应用程序的实时、性能和运行状况。

支持的平台

Netdata 支持以下 Ubuntu LTS 发行版:

  • 乌班图20.04
  • 乌班图18.04
  • 乌班图16.04

如何在 Ubuntu Linux 中安装 Netdata

要开始安装,请在 bash 终端上运行以下命令以下载并执行脚本。

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

在脚本执行期间,会发生以下情况:

  • 该脚本会自动发现您的 Linux 发行版、更新软件包列表并安装所有必需的软件包。
  • 最新的netdata源代码树下载到/usr/src/netdata.git路径。
  • 该脚本通过从源树运行 ./netdata-installer.sh 脚本来安装 netdata
  • cron.daily 进行更新,以确保 netdata 每天更新。

脚本运行时,您将获得有关如何在浏览器上访问 Netdata 以及如何将其作为 systemd 服务进行管理的提示。

安装需要一段时间,因此请等待大约 10 分钟,然后再回来。最后,当脚本完成安装时,您将获得以下输出。

安装后,启动、启用并验证 Netdata 的状态,如图所示。

sudo systemctl start netdata
sudo systemctl enable netdata
sudo systemctl status netdata

默认情况下,Netdata 侦听端口 19999,这可以使用 netstat 命令进行确认,如图所示。

sudo netstat -pnltu | grep netdata

如果您正在运行 UFW,请尝试打开端口 19999,因为在浏览器上访问 Netdata 时需要此端口。

sudo ufw allow 19999/tcp
sudo ufw reload

最后,要访问Netdata,请切换到浏览器并浏览以下网址

http://server-ip:19999/

这是您浏览 URL 后迎接您的内容。事实上,您会意识到您不需要登录。所有系统的指标都将显示如图所示。

您可以通过单击仪表板右侧边栏上的首选指标来浏览各种图表。例如,要查看网络接口统计信息,请单击“网络接口”选项。

在 Ubuntu 上使用基本身份验证保护 Netdata

到目前为止,任何人都可以访问 Netdata 仪表板并查看各种系统指标。这相当于安全漏洞,我们绝对希望避免这种情况。

考虑到这一点,我们将配置基本的 HTTP 身份验证。我们需要安装 apache2-utils 软件包,它提供 htpasswd 程序,该程序将用于配置用户的用户名和密码。此外,我们将安装 Nginx Web 服务器作为反向代理。

要安装 Nginx Web 服务器和 apache2-utils 软件包,请执行命令。


sudo apt install nginx apache2-utils

安装了 Nginxapache2-utils 后,我们将在 /etc/nginx/conf.d 目录中创建一个配置文件。但是,如果您将 Nginx 用于 Netdata 之外的其他目的,请随意使用 sites-available 目录。


sudo vim /etc/nginx/conf.d/default.conf

在配置文件中,我们首先指示 Nginx 代理 Netdata 仪表板的传入请求。此后,我们将附加一些基本身份验证提示,仅授予授权用户使用用户名/密码身份验证访问 Netdata 仪表板。

这是整个配置。请注意将 server_ipexample.com 指令替换为您自己的服务器 IP 地址和服务器名称。


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }
}

让我们逐节了解配置。

第 1 节:


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

我们指定了一个名为netdata-backend上游模块,该模块使用环回地址127.0.0.1 引用Netdata的内置Web服务器 和端口 19999,这是 Netdata 侦听的默认端口。 keepalive 指令定义可以保持打开状态的空闲连接的最大数量。

第 2 节:


server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

这是主要的 Nginx 服务器块部分。第一行指定当客户端发送请求时 Nginx 应侦听的外部 IP 地址。 server_name指令指定服务器的域名,并指示Nginx在客户端调用域名而不是外部IP地址时运行服务器块。

最后两行表示简单的 HTTP 身份验证,要求用户使用用户名和密码登录。 auth_basic 模块会在浏览器上触发用户名/密码弹出窗口,标题上带有“需要身份验证”,稍后可以根据您的偏好进行自定义。

auth_basic_user_file 模块指向包含有权访问 Netdata 仪表板的用户的用户名和密码的文件名 - 在本例中为 netdata-access。我们稍后将创建该文件。

第 3 节:

最后一部分是位置块,它包含在服务器块中。它处理传入请求的代理和转发到 Nginx Web 服务器。


location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }

为了进行身份验证,我们将使用 htpasswd 实用程序为名为 howtoing 的用户创建用户名和密码,并将凭据存储在 netdata-access 文件中。


sudo htpasswd -c /etc/nginx/netdata-access tecmint

提供密码并确认。

接下来,重新启动 Nginx Web 服务器以使更改生效。


sudo systemctl restart nginx

要测试配置是否正确,请继续浏览服务器的 IP 地址


http://server-ip

将出现一个身份验证弹出窗口,如下所示。提供您的用户名和密码,然后按ENTER

此后,您将可以访问Netdata仪表板。

今天的主题到此结束。您刚刚学习了如何在 Ubuntu 上安装 Netdata 监控工具以及配置基本 HTTP 身份验证。请随意查看有关各种系统指标的其他图表。