共计 7795 个字符,预计需要花费 20 分钟才能阅读完成。
这篇“Ubuntu 上如何使用 Netdata 设置实时性能监控”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Ubuntu 上如何使用 Netdata 设置实时性能监控”文章吧。
介绍
netdata 通过可扩展的 web 仪表板提供准确的性能监控,可以显示 linux 系统上的流程和服务。它监控有关 cpu,内存,磁盘,网络,进程等的指标。
netdata 一旦安装就不需要额外的配置,但提供了重要的定制。该应用程序的效率和速度旨在与本机控制台管理工具(如 vmstat,iostat 和 htop)相媲美。
准备
要学习本教程,您需要:
一个 ubuntu 16.04 服务器,包括具有 sudo 权限的非 root 用户。
服务器上安装 git。
(可选)在服务器上安装 nginx。这不是强制性的,但允许比 netdata 的内置 web 服务器更多的功能和安全性。
第一步 – 安装 netdata
在我们安装任何东西之前,请确保系统包索引是最新的。
$ sudo apt-get update
接下来,安装 netdata 的依赖项,其中包括 gcc(一个 c 编译器),gnu autoconf 工具,guid 管理和 netdata 内部 web 服务器的压缩库。
$ sudo apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make autoconf autoconf-archive autogen automake pkg-config curl
下一组软件包是可选的,但 netdata 推荐使用,包括 python,一些 python 软件包和 node.js。与系统包管理器捆绑在一起的稳定版 node.js 适用于 netdata 的要求。接下来安装它们。
$ sudo apt-get install python python-yaml python-mysqldb python-psycopg2 nodejs lm-sensors netcat
要安装 netdata 本身,我们必须使用项目的 github 存储库。将 netdata 存储库克隆到您的主目录中。
$ git clone https://github.com/firehol/netdata.git –depth=1 ~/netdata
移至新克隆的目录。
$ cd ~/netdata
现在使用此目录中的 netdata-installer.sh shell 脚本构建和安装应用程序。确保在这里附加 sudo,否则 netdata 收集系统数据的方式(通过数据收集器)将无法正常运行。
$ sudo ./netdata-installer.sh
您最初将看到的输出包含有关 netdata 将存储其所有组件的位置的信息。您可以通读这些内容,这样您就可以更熟悉程序在安装后如何在文件系统上展开。
installer output
. . .
it will be installed at these locations:
- the daemon at /usr/sbin/netdata
- config files at /etc/netdata
- web files at /usr/share/netdata
- plugins at /usr/libexec/netdata
- cache files at /var/cache/netdata
- db files at /var/lib/netdata
- log files at /var/log/netdata
- pid file at /var/run
. . .
按 enter 继续安装。片刻之后,在输出的末尾,您将看到以下消息:
installer output
. . .
^
|.-. .-. .-. .-. .-. . netdata .-. .-
| - - - - - is installed and running now! - -
+----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---
enjoy real-time performance and health monitoring...
netdata 现在已成功安装并运行,并且在重新启动服务器时也会自动运行。如果您启用了 ufw,您需要为 netdata 的内部 web 服务器打开端口 19999。
$ sudo ufw allow 19999/tcp
此时,您可以通过在您喜欢的浏览器中访问 http:// your_server_ip:19999/ 来查看默认仪表板。您将看到系统的实时指标的概述。
第二步 – 配置 netdata 的内存使用情况
您可以通过在浏览器中访问 http://your_server_ip:19999/netdata.conf 查看 netdata 的当前配置。
您将在此处看到所有(或大多数)可配置选项都已注释掉(即以 #开头)。这是因为 netdata 的配置使用一组假定的默认值。任何禁用的设置都使用 netdata 的默认值; 如果取消注释某个设置,则指定的值将覆盖默认值。这使配置文件仅包含您修改的内容。
回到您的服务器上,配置文件本身就是 /etc/netdata/netdata.conf。我们将在本教程中自定义的选项是 history 参数。它控制 netdata 使用的内存数据库的大小。
在这里,您需要确定要为 netdata 提供多少 ram,或者在丢失之前将记录的图表数据保留多长时间:
3600 秒(图表数据保留 1 小时)使用 15 mb ram
7200 秒(图表数据保留 2 小时)使用 30 mb ram
14400 秒(图表数据保留 4 小时)使用 60 mb ram
28800 秒(图表数据保留 8 小时)使用 120 mb ram
43200 秒(图表数据保留 12 小时)使用 180 mb ram
86400 秒(24 小时图表数据保留)使用 360 mb ram
请记住,上述估算是基于库存仪表板使用的图表数量。将来删除或添加自定义图表会影响这些估算值。
使用 nano 或您喜欢的文本编辑器打开 netdata 的主配置文件。
$ sudo nano /etc/netdata/netdata.conf
找到 [global] 部分中的 history 选项。
/etc/netdata/netdata.conf
复制代码 代码如下:
. . .[global] # glibc malloc arena max for plugins = 1. . . # hostname = test-netdata # history = 3600 # update every = 1. . .
将 3600 值替换为您之前决定的值。在这里,我们正在使用 14400,这为我们提供了 4 小时的数据保留。确保通过除 #符号来取消注释该行,以便 netdata 不再忽略此选项。
/etc/netdata/netdata.conf
. . .
[global]
# glibc malloc arena max for plugins = 1
. . .
# hostname = test-netdata
# history = 3600
# update every = 1
. . .
进行此更改后保存并关闭文件。虽然这种修改可能会增加 netdata 将使用的 ram 量,但我们将在下一步中实施的下一个修改应该会显著减少它。
第三步 – 启用内核同页合并
即使 netdata 直接运行并初始情况下使用,我们可以对 netdata 使用系统资源的方式进行更多修改,这将加速并优化其性能。我们将从启用内核同页合并(简称 ksm)开始。netdata 开发人员估计这会将 netdata 的内存使用量降低 40-60%。
启用后,ksm 守护程序会定期扫描内存,查找可由单个写保护页替换的相同内容的页面。在此上下文中,它允许在系统上运行的不同进程或程序之间共享相同的内存页。这减少了不必要的重复内存内容的创建。
要永久启用 linux 系统内核的此方面,请使用文本编辑器打开 /etc/rc.local 文件。
复制代码 代码如下:
$ sudo nano /etc/rc.local
在启动所有其他正常 linux 系统服务和进程之后,将执行 /etc/rc.local 文件或运行控制文件。它对于指定自定义服务很有用 - 或者,在我们的示例中,用于在服务器运行时启用 ksm。
将下面显示的两个命令添加到文件末尾,在最后 exit 0 一行之前,如下所示:
/etc/rc.local
#!/bin/sh -e
# rc.local
# this script is executed at the end of each multiuser runlevel.
# make sure that the script will exit 0 on success or any other
# value on error.
# in order to enable or disable this script just change the execution
# bits.
# by default this script does nothing.
echo 1 /sys/kernel/mm/ksm/run
echo 1000 /sys/kernel/mm/ksm/sleep_millisecs
exit 0
echo 1 /sys/kernel/mm/ksm/run 第一个命令将 1 添加到 runksm 内核文件中,该文件启用该功能。第二个命令 echo 1000 /sys/kernel/mm/ksm/sleep_millisecs 告诉 ksm 守护程序每秒运行一次并评估 100 个页面以进行重复数据删除。
保存并关闭文件后,ksm 现在将在下次服务器重新启动时启用,并在将来重新启动时保留。要在此服务器的当前正常运行时间内启用它,您需要在命令行上手动运行您添加到 rc.local 的两个命令。
首先,通过在 sudo 中使用 - s 标志,启动并输入新的 shell 会话作为服务器的 root 用户。这是必要的,因为早期的两个命令使用输出重定向(通过 运算符)并且需要由 root shell 执行才能成功。
$ sudo -s
现在输入之前的两个命令:
echo 1 /sys/kernel/mm/ksm/runecho 1000 /sys/kernel/mm/ksm/sleep_millisecs
然后,保留 root shell 并返回正常的 shell 会话。
$ exit
最后,要应用我们在此步骤以及此前的步骤中执行的所有更改,我们必须重新启动 netdata。
$ sudo systemctl restart netdata
您可以通过在 netdata 仪表板中查找新添加的活动 ksm 图表来验证 ksm 现在是否已启用。这可以在右侧菜单树中的 memory memory deduper 下找到。
ksm chart image
现在我们知道仪表板和 ksm 正在运行,值得通过像 nginx 这样的 web 服务器而不是内置的 web 服务器来访问仪表板。这不是完全必要的,但建议使用,因此请按照下一步进行设置。
第四步 – 通过 nginx 托管仪表板(可选)
通过 nginx 托管 netdata 可以更轻松地保护对仪表板的访问,并且如果需要,还可以让您在将来指向其他服务器的 netdata 仪表板。
您还需要安装 apache2-utils 软件包。该软件包包含 htpasswd 程序,稍后我们将需要该程序来保护对仪表板页面的访问。
$ sudo apt-get install apache2-utils
接下来,创建一个新的 nginx 主机配置文件。请注意,在这里,我们在 /conf.d 目录中使用了一个文件,但是如果您使用 nginx 进行 netdata 以外的其他操作,则可以使用 /sites-available 和 / sites-enabled。
$ sudo nano /etc/nginx/conf.d/default.conf
此配置文件将告诉 nginx 代理仪表板页面的传入请求。我们还将添加一个简单的身份验证提示,以便只有具有正确用户名和密码的人才能访问它。
以下是您要复制和粘贴的整个配置文件。将上述 listen 和 server_name 指令的两个红色突出显示项分别更改为服务器的 ip 地址和分配的域名。注意在每个末尾包括;。如果您没有域名,可以将 server_name 指令保留为 example.com。
/etc/nginx/conf.d/default.conf
upstream netdata-backend {
server 127.0.0.1:19999;
keepalive 64;
server {
listen your_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;
}
}
一旦确定自己的文件与此代码块匹配,就可以保存并退出以返回到命令提示符。
让我们解释一下这个文件,让你了解它在做什么。这是第一部分:
/etc/nginx/conf.d/default.conf
upstream netdata-backend {server 127.0.0.1:19999; keepalive 64;}
这个名为 netdata-backend 的 upstream 模块使用服务器的环回地址 127.0.0.1 和 netdata 的端口 19999 来定位内置的 netdata web 服务器。keepalive 指令设置在任何给定时间(对于每个 nginx 工作进程)可以保持打开的上游空闲连接的最大数量。proxy_pass 指令稍后需要此 upstream 模块定义。
在此之后直接是主要 server 块。
/etc/nginx/conf.d/default.conf
upstream netdata-backend {
server 127.0.0.1:19999;
keepalive 64;
}
块中的前两行定义了 nginx 在客户端尝试连接时应该 listen 的外部 ip 地址。server_name 指令告诉 nginx 在客户端使用指定的域名时运行此服务器块。
此代码段中的最后两行设置了简单的 http 用户名和密码身份验证。它使用 auth_basic 模块显示用户名和密码提示。您可以自定义提示消息;
在这里,它设置为 authentication required。auth_basic_user_file 指定用于存储身份验证提示的登录凭据的文件名和位置,稍后在此步骤中创建。
最后一个 location 块嵌套在 server 块内, 处理代理并将传入的请求传递给 nginx。
/etc/nginx/conf.d/default.conf
server {
listen your_server_ip:80;
server_name example.com;
auth_basic authentication required
auth_basic_user_file netdata-access;
总而言之,此代码是将客户端请求传递给 netdata web 服务器,然后是仪表板的代码。proxy_pass 指令行引用回文件开头的 upstream 模块必须通过名称 netdata-backend 指向它。
如果尚未安装,则可以保存并关闭此配置文件。这里是 apache2-utils 包中的 htpasswd 程序帮助我们为仪表板登录提示创建用户登录凭据的地方。
首先,我们将创建用户名和密码。运行以下命令,将 sammy 替换为您要在 netdata 中使用的用户名。出现提示时,输入您要使用的密码。
$ sudo htpasswd -c /etc/nginx/netdata-access sammy
这将在 /etc / nginx / netdata-access 中创建一个包含您提供的用户名和密码的文件。
生成的密码在文件中加密,因此不能将其视为纯文本。
重新启动 nginx 以使我们添加的新配置处于活动状态。
$ sudo systemctl restart nginx
要首次测试 nginx 配置,请在您喜欢的 web 浏览器访问 http://your_server_ip。您将看到身份验证提示。输入您在此步骤中先前提供的用户名和密码,以访问仪表板,我们将在第五步中进行探讨。
第五步 – 探索仪表板
如果您没有按照可选第四步进行操作,请立即在您喜欢的浏览器访问 http://your_server_ip:19999/ 以访问仪表板。
您将看到仪表板以及系统实时指标的概述。当您在后续图形中的每个时间段上鼠标悬停时,页面顶部的 hud 样式指示器会发生变化。
hud indicators image
此概述部分中的各个图形和图表提供了每个系统方面的详细说明,范围从 cpu 到内存到网络流量等。
cpu chart example
图表是交互式的,可以使用鼠标按钮向左或向右拖动,以在不同的时间间隔内来回平移。
ram chart example
按住 shift 并使用鼠标滚轮在图形上滚动或滚出将缩小或加宽时间标记。双击图表将其重置为默认外观和视图。
network chart example
在仪表板上导航的最快方法是使用页面右侧的菜单树。这会根据您当前正在查看的页面部分更改焦点和颜色。
menu tree
向下滚动页面或使用菜单树可以访问更深入的图表。这些非常详细,并且以与初始概述部分中的图表相同的方式进行控制。
menu tree image
netdata 提供了许多这些额外的特定于统计数据的图表。
gui 的一个重要部分是更新页面。netdata 定期接收更新,并使您的安装保持最新状态。仪表板顶部包含一个“更新”按钮,可用于检查新版本是否可供下载。
update button image
单击此按钮将打开一个包含更多详细信息的新菜单,并打开“立即检查”按钮以手动检查更新。
update check details image
如果有可用的更新,您只需要从 netdata git 存储库运行提供的更新脚本,我们在第一步中将其克隆到 linux 用户的主目录。也就是说,当更新可用时,只需从命令行运行 sudo ~/netdata/netdata-updater.sh。
以上就是关于“Ubuntu 上如何使用 Netdata 设置实时性能监控”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。