你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何在Ubuntu上安装Netdata来监视服务器和应用程序

[复制链接]
gaosmile 发布时间:2020-11-11 21:08
Netdata是一个免费的开源实时监视和故障排除工具,用于云服务器,容器,应用程序和本地IT基础架构。它提供了高粒度和实时系统指标,例如CPU性能,内存和磁盘利用率以及带宽统计信息。此外,Netdata还提供可在Web浏览器上访问的交互式度量可视化,以及有助于解决系统故障的智能警报。在编写本指南时,Netdata已经在Github获得近50000个星。您可以通过两种方式安装Netdata。您可以立即在BASH Shell上运行自动化脚本。这将更新您的系统并启动Netdata的安装。或者,您可以克隆Netdata的Git存储库,然后执行自动化脚本。第一种方法简单明了,这是我们在本指南中应重点关注的方法。在本文中,我们将看到如何在Ubuntu上安装Netdata来监视服务器和应用程序的实时,性能以及运行状况监视。
6 u. b, E1 b& H& z
& m9 S1 q2 \2 O" Z2 ]
支持平台6 M* P0 Q; H! L8 ~* G$ I
; e* P+ U& C& X" n3 o

' O( v3 b# [# U% W* LNetdata支持以下Ubuntu LTS发行版:
  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04

    ; J0 ^1 {6 p- j, o3 @
如何在Ubuntu Linux中安装Netdata
要开始安装,请在bash终端上运行以下命令以下载并执行脚本。
linuxmi@linuxmi:~/www.linuxmi.com$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
在脚本执行期间,会发生以下情况:
  • 该脚本会自动发现您的Linux发行版,更新软件包列表,并安装所有必需的软件包。
  • 最新的netdata源树已下载到/usr/src/netdata.git路径。
  • 该脚本通过从源代码树运行./netdata-installer.sh脚本来安装netdata。
  • 对cron.daily进行了更新,以确保netdata每天进行更新。

      ^' U; N: T! l2 o
微信图片_20201111210520.png
在运行脚本时,将为您提供有关如何在浏览器上访问Netdata以及如何将其作为systemd服务进行管理的提示。
微信图片_20201111210524.png
安装需要一段时间,大约10分钟后。当脚本完成安装时,您将得到下面的输出。
微信图片_20201111210527.png
安装之后,启动、启用和验证Netdata的状态,如下所示。
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl start netdata8 @8 N) ^4 ^8 [. k7 I6 v& ^$ X
[sudo] linuxmi 的密码:
9 [& P, m* c. O! u5 J. r) y$ W9 Flinuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable netdata
, P0 o& h5 Q3 S! mlinuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl status netdata
微信图片_20201111210531.png
默认情况下,Netdata监听端口19999,可以使用netstat命令确认这一点,如下所示。
linuxmi@linuxmi:~/www.linuxmi.com$ sudo netstat -pnltu | grep netdata
微信图片_20201111210535.png
如果您正在运行UFW,请确保打开端口19999,因为在浏览器上访问Netdata时需要打开端口。
linuxmi@linuxmi:~/www.linuxmi.com$ sudo ufw allow 19999/tcp
# f' e/ H& _: E+ P5 Zlinuxmi@linuxmi:~/www.linuxmi.com$ sudo ufw reload
最后,要访问Netdata,请切换到浏览器并浏览以下URL
http://server-ip:19999/
一旦你浏览了这个URL,这就是迎接你的东西。实际上,不需密码就能登录。系统的所有度量将显示如下。
微信图片_20201111210538.png
您可以通过单击仪表板右侧栏上的首选指标来浏览各种图形。例如,要查看网络接口统计信息,请点击“Network Interfaces”选项。
微信图片_20201111210542.png
在Ubuntu上使用基本身份验证保护Netdata
在此之前,任何人都可以访问Netdata仪表板并查看各种系统指标。这意味着安全漏洞,我们绝对希望避免这种情况。
考虑到这一点,我们将配置基本的HTTP身份验证。我们需要安装提供htpasswd程序的apache2-utils包,该程序将用于配置用户的用户名和密码。另外,我们将安装Nginx web服务器作为反向代理。
要安装Nginx web服务器和apache2-utils包,请执行以下命令。
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install nginx apache2-utils
微信图片_20201111210545.png
安装了Nginx和apache2-utils后,我们将在/etc/nginx/conf.d目录中创建一个配置文件。但是,如果您将Nginx用作Netdata以外的其他用途,请随时使用sites-available目录。
linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /etc/nginx/conf.d/default.conf
微信图片_20201111210549.png
在配置文件中,我们将首先指示Nginx代理Netdata仪表板的传入请求。此后,我们将附加一些基本的身份验证提示,该提示仅授权用户使用用户名/密码身份验证访问Netdata仪表板。
这是整个配置。请注意用您自己的服务器IP地址和服务器名称替换server_ip和example.com指令。
server_ip 我设置为 127.0.0.1
example.com 改为 linuxmi.com
upstream netdata-backend {
) n% o; F) A4 o    server 127.0.0.1:19999;/ [* p  u7 @; G' f4 @
    keepalive 64;0 u; P! h) w: V; q' I) R; j
}) {5 ]- I" B# G' B; _& a

! s4 v7 h" ]4 }2 Q" K/ N1 Z& rserver {
' S# c- H9 N6 n: w) \( f    listen server_ip:80;) }4 F8 l( h5 q, N
    server_name example.com;
5 Y( P. V  T0 `. a5 E  h" V2 A$ m- Q" P, y+ e! G
    auth_basic "Authentication Required";
2 _: W+ J$ d  h    auth_basic_user_file netdata-access;+ S1 R  v1 b! G( R

  G5 e* a! [2 `* u# X+ J    location / {, g5 E: l" z: z* {# K. l6 f
        proxy_set_header X-Forwarded-Host $host;
5 \9 F' H* }) f- e, e        proxy_set_header X-Forwarded-Server $host;' W. w0 x' y8 p, Y
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;' W) `) ^" [0 x2 z6 O7 s
        proxy_pass http://netdata-backend;
2 d- p3 p& X+ Z3 @/ l3 f        proxy_http_version 1.1;# x' i: y; n0 q- L& m
        proxy_pass_request_headers on;: S8 G, k  M( `; j6 J
        proxy_set_header Connection "keep-alive";
9 Q& g$ w& m1 @7 h) g: v: e        proxy_store off;, t0 k  g6 E' h
    }
4 T( @% ~, u# J  V}
让我们一节一节地理解它的结构。
第一节:
upstream netdata-backend {$ {7 d; c4 ^3 _7 f* b
    server 127.0.0.1:19999;) y* p' Z/ Y7 i) w3 E4 B! H
    keepalive 64;
7 Z1 J$ g* M; I$ H4 f7 F( A* a) U+ u}
我们已经指定了一个称为Netdata后端的上游模块,它引用Netdata的内置web服务器,使用环回地址127.0.0.1和端口19999,这是Netdata监听的默认端口。keepalive指令定义了可以保持打开的最大空闲连接数。
第二节:
server {% h- i  ]9 {" V8 N
    listen server_ip:80;' G8 w% q# w! n+ p/ B
    server_name example.com;# I: r; C9 X: t+ {$ y: D- f
" W# |( |) M; q* }% o: s. Y: B
    auth_basic "Authentication Required";
# o- m7 r8 w7 B' Y    auth_basic_user_file netdata-access;
这是Nginx服务器的主块。第一行指定当客户端发送请求时Nginx应该监听的外部IP地址。server_name指令指定服务器的域名,并指示Nginx在客户端调用域名而不是外部IP地址时运行服务器块。
最后两行表示简单的HTTP身份验证,要求用户使用用户名和密码登录。auth_basic模块在浏览器上触发用户名/密码弹出窗口,标题上有“Authentication Required”,稍后可以根据您的偏好定制该标题。
auth_basic_user_file模块指向一个文件名,该文件名将包含被授权访问Netdata仪表板(在本例中为Netdata -access)的用户的用户名和密码。稍后我们将创建此文件。
第三节:
最后一部分是服务器块中包含的位置块。这将处理传入请求的代理和转发到Nginx Web服务器。
location / {
0 n0 w% E4 k3 L- I        proxy_set_header X-Forwarded-Host $host;
7 f! A9 H: d* {        proxy_set_header X-Forwarded-Server $host;" ]0 M) j2 F' G# j/ e
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;- q1 u' U1 \$ E  ?0 y$ K" o) h
        proxy_pass http://netdata-backend;
+ x/ o2 I2 e- ^0 a6 H        proxy_http_version 1.1;" U5 P, Y3 n8 s/ O& p0 T, {1 E
        proxy_pass_request_headers on;
) J+ M. q/ c8 w. D1 u- i: V        proxy_set_header Connection "keep-alive";
# o% ^3 R4 K5 g/ D: g# R        proxy_store off;+ s/ o( x( Y& P. P- G/ z0 B
    }
为了进行身份验证,我们将使用htpasswd实用程序为名为linuxmi的用户创建用户名和密码,并将凭据存储在netdata-access文件中。
linuxmi@linuxmi:~/www.linuxmi.com$ sudo htpasswd -c /etc/nginx/netdata-access linuxmi
微信图片_20201111210552.png
提供密码并确认。
接下来,重启Nginx web服务器以使更改生效。
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl restart nginx
要测试配置是否正确,请继续并浏览服务器的IP地址
http://linuxmi.com
将出现一个身份验证弹出窗口,如下所示。提供您的用户名和密码,然后回车。
微信图片_20201111210557.png
此后,您将访问Netdata仪表板。
今天的话题就到这里。您现在学习的是如何在Ubuntu上安装Netdata监视工具和基本HTTP身份验证的配置。

/ D- p$ ~1 C2 Y1 l! Y0 x) |' E0 _- O8 h& B( ?0 k, k+ G' a6 E2 }
赞 收藏 评论0 发布时间:2020-11-11 21:08

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版