如何在 Ubuntu 16.04 上使用 Netdata 监控 Nginx
在此页
- 第 1 步 - 安装 Nginx 网络服务器
- 第 2 步 - 在 Ubuntu 16.04 上安装网络数据监控工具
- 第 3 步 - 启用 Nginx stub_status 模块
- 第 4 步 - 配置 Netdata 以监控 Nginx
- 第 5 步 - 配置 UFW 防火墙
- 第 6 步 - 测试
- 参考资料
Netdata 是一个用于 Linux 服务器的开源监控工具。它通过漂亮的仪表板和分析提供实时性能和健康监控。 Netdata 应该可以在任何 Linux 发行版上运行,它已经在 Alpine Linux、Arch Linux、CentOS、Ubuntu 等上进行了测试。它正在监控 CPU、内存使用、IPv4 和 v6、Nginx、fail2ban、MySQL、MongoDB 等用户应用程序。
在本教程中,我将向您展示如何使用 Netdata 监控 Nginx。本教程将涵盖 Nginx Web 服务器安装、在 Nginx 中启用 stub_status 模块以及在 Ubuntu 16.04 Xenial Xerus 上安装 Netdata。
我们将要做什么:
- 安装 Nginx 网络服务器。
- 在 Ubuntu 16.04 上安装网络数据监控工具。
- 启用 Nginx stub_status 模块。
- 配置 Netdata 以监控 Nginx。
- 配置 UFW 防火墙。
- 测试。
先决条件
- Ubuntu 16.04 服务器
- 根权限
第 1 步 - 安装 Nginx Web 服务器
我们需要做的第一步是从存储库安装 Nginx 网络服务器。在使用 apt update 命令安装 Nginx 之前更新 Ubuntu 存储库。
apt update
使用下面的 apt install 命令从 Ubuntu 存储库安装 Nginx。
apt install -y nginx
安装完成后,启动 Nginx 并使用 systemctl 命令将其添加为在开机时自动启动。
systemctl start nginx
systemctl enable nginx
网络服务器正在运行,用 curl 检查它。
curl -I localhost
确保您获得 200 OK http 状态的结果,如下面的屏幕截图所示。

Nginx Web 服务器已安装。
第 2 步 - 在 Ubuntu 16.04 上安装 Netdata 监控工具
在这一步中,我们将从源安装 Netdata 监控工具。我将使用提供的安装程序手动安装它。在安装 Netdata 之前,我们需要安装一些需要的包。
使用下面的 apt install 命令安装 Netdata 安装所需的包。
apt install -y zlib1g-dev uuid-dev libmnl-dev gcc make git autoconf autoconf-archive autogen automake pkg-config curl
安装完所有包后,使用 git 命令从 github 下载 Netdata 的源代码。
git clone https://github.com/firehol/netdata.git --depth=1

转到 netdata 目录并使用 sudo 权限运行安装程序脚本 netdata-installer.sh。
cd netdata/
sudo ./netdata-installer.sh
按 Enter 键继续安装 Netdata。

安装完成后,您将得到如下结果。

Netdata监控工具为systemd系统提供了一个服务脚本。使用下面的 systemctl 命令启动 netdata 并添加以在启动时自动运行。
systemctl start netdata
systemctl enable netdata
默认情况下,它在端口 19999 上运行,使用 netstat 检查端口并确保端口 19999 处于 LISTEN 状态。
netstat -plntu

网络数据监控工具已安装。
第 3 步 - 启用 Nginx stub_status 模块
要使用 Netdata 监控工具监控 Nginx Web 服务器,我们需要一些额外的配置。首先,我们必须启用 nginx stub_status 模块来配置虚拟主机。
在编辑虚拟主机配置之前,请确保您已经安装了带有 stub_status 模块的 nginx 版本。使用下面的命令检查它。
nginx -V
确保你有一个 stub_status 模块,如下所示。

接下来,转到 nginx 配置目录并使用 vim 编辑器编辑默认虚拟主机文件。
cd /etc/nginx/sites-available/
vim default
将下面的配置粘贴到服务器 {} 块。
location /stub_status {
stub_status;
# Security: Only allow access from the IP below.
allow 127.0.0.1;
# Deny anyone else
deny all;
}
保存并退出。

测试nginx配置,确保没有报错,重启nginx服务。
nginx -t
systemctl restart nginx
Nginx stub_status 模块已启用,使用下面的 netstat 命令检查它。
curl http://127.0.0.1/stub_status
你会得到如下结果。

第 4 步 - 配置 Netdata 以监控 Nginx
Netdata 提供了 Python 模块,用于监控我们在系统上安装的应用程序,包括 Nginx Web 服务器。要使用 Netdata 监控 Nginx,我们需要 Nginx 模块 stub_status 并且它已经启用。
现在转到 netdata 配置目录。然后编辑 python.d 目录下的 nginx.conf 文件。
cd /etc/netdata/
vim python.d/nginx.conf
确保您具有如下配置。
localhost:
name : 'local'
url : 'http://localhost/stub_status'
保存文件并退出 vim。

现在使用 systemctl 重新启动 Netdata。
systemctl restart netdata
Nginx监控的netdata配置已经完成。
第 5 步 - 配置 UFW 防火墙
在本教程中,我将启用 Ubuntu 防火墙 UFW。我将打开 HTTP 和 HTTPS 端口,然后打开新端口 19999 以供 Netdata Dashboard 访问。
确保你已经安装了 UFW 防火墙包,如果没有,使用下面的命令来安装它。
apt install -y ufw
现在使用下面的 ufw allow 命令打开 ssh、http、https 和 netdata 端口 19999 的端口。
ufw allow ssh
ufw allow http
ufw allow https
ufw allow 19999/tcp

接下来,启动 UFW 防火墙并将其添加为在开机时自动启动。
ufw enable
将 y 键入是,然后按 Enter。
完成此操作后,请检查防火墙状态,如下所示。
ufw status
您将获得如下列表中的新端口。

第 6 步 - 测试
打开浏览器并输入端口为 19999 的服务器地址。
您应该会看到 Netdata 仪表板。

点击右边的nginx local,可以看到Nginx active connections, requests, status 和Connection rate。

现在使用Netdata监控Nginx web服务器,Ubuntu 16.04服务器上已经安装了Netdata。
参考
- https://github.com/firehol/netdata/wiki/