在 Linux 上安装 NetData 性能监控工具

NetData 是一个用于系统和应用的分布式实时性能和健康监控工具。它提供了对系统中实时发生的所有事情的全面检测。你可以在高度互动的 Web 仪表板中查看结果。使用 Netdata,你可以清楚地了解现在发生的事情,以及之前系统和应用中发生的事情。你无需成为专家即可在 Linux 系统中部署此工具。NetData 开箱即用,零配置、零依赖。只需安装它然后坐等,之后 NetData 将负责其余部分。

它有自己的内置 Web 服务器,以图形形式显示结果。NetData 非常快速高效,安装后可立即开始分析系统性能。它是用 C 编程语言编写的,所以它非常轻量。它占用的单核 CPU 使用率不到 3%,内存占用 10-15MB。我们可以轻松地在任何现有网页上嵌入图表,并且它还有一个插件 API,以便你可以监控任何应用。

以下是 Linux 系统中 NetData 的监控列表。

  • CPU 使用率
  • RAM 使用率
  • 交换内存使用率
  • 内核内存使用率
  • 硬盘及其使用率
  • 网络接口
  • IPtables
  • Netfilter
  • DDoS 保护
  • 进程
  • 应用
  • NFS 服务器
  • Web 服务器 (Apache 和 Nginx)
  • 数据库服务器 (MySQL),
  • DHCP 服务器
  • DNS 服务器
  • 电子邮件服务
  • 代理服务器
  • Tomcat
  • PHP
  • SNP 设备
  • 等等

NetData 是自由开源工具,它支持 Linux、FreeBSD 和 Mac OS。

在 Linux 上安装 NetData

Netdata 可以安装在任何安装了 Bash 的 Linux 发行版上。

最简单的安装 Netdata 的方法是从终端运行以下命令:

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

这将下载并安装启动和运行 Netdata 所需的一切。

有些用户可能不想在没有研究的情况下将某些东西直接注入到 Bash。如果你不喜欢此方法,可以按照以下步骤在系统上安装它。

在 Arch Linux 上

Arch Linux 默认仓库中提供了最新版本。所以,我们可以使用以下 pacman 命令安装它:

$ sudo pacman -S netdata

在基于 DEB 和基于 RPM 的系统上

在基于 DEB (Ubuntu / Debian)或基于 RPM(RHEL / CentOS / Fedora) 系统的默认仓库没有 NetData。我们需要从它的 Git 仓库手动安装 NetData。

首先安装所需的依赖项:

# Debian / Ubuntu
$ sudo apt-get install zlib1g-dev uuid-dev libuv1-dev liblz4-dev libjudy-dev libssl-dev libmnl-dev gcc make git autoconf autoconf-archive autogen automake pkg-config curl

# Fedora
$ sudo dnf install zlib-devel libuuid-devel libuv-devel lz4-devel Judy-devel openssl-devel libmnl-devel gcc make git autoconf autoconf-archive autogen automake pkgconfig curl findutils

# CentOS / Red Hat Enterprise Linux
$ sudo yum install epel-release
$ sudo yum install autoconf automake curl gcc git libmnl-devel libuuid-devel openssl-devel libuv-devel lz4-devel Judy-devel lm_sensors make MySQL-python nc pkgconfig python python-psycopg2 PyYAML zlib-devel

# openSUSE
$ sudo zypper install zlib-devel libuuid-devel libuv-devel liblz4-devel judy-devel openssl-devel libmnl-devel gcc make git autoconf autoconf-archive autogen automake pkgconfig curl findutils

安装依赖项后,在基于 DEB 或基于 RPM 的系统上安装 NetData,如下所示。

Git 克隆 NetData 仓库:

$ git clone https://github.com/netdata/netdata.git --depth=100

上面的命令将在当前工作目录中创建一个名为 netdata 的目录。

切换到 netdata 目录:

$ cd netdata/

最后,使用命令安装并启动 NetData:

$ sudo ./netdata-installer.sh

示例输出:

Welcome to netdata!
Nice to see you are giving it a try!

You are about to build and install netdata to your system.

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

This installer allows you to change the installation path.
Press Control-C and run the same command with --help for help.

Press ENTER to build and install netdata to your system > ## Press ENTER key

安装完成后,你将在最后看到以下输出:

-------------------------------------------------------------------------------

OK. NetData is installed and it is running (listening to *:19999).

-------------------------------------------------------------------------------

INFO: Command line options changed. -pidfile, -nd and -ch are deprecated.
If you use custom startup scripts, please run netdata -h to see the
corresponding options and update your scripts.

Hit http://localhost:19999/ from your browser.

To stop netdata, just kill it, with:

killall netdata

To start it, just run it:

/usr/sbin/netdata


Enjoy!

Uninstall script generated: ./netdata-uninstaller.sh

 

安装 NetData

 

NetData 已安装并启动。

要在其他 Linux 发行版上安装 Netdata,请参阅官方安装说明页面

在防火墙或者路由器上允许 NetData 的默认端口

如果你的系统在防火墙或者路由器后面,那么必须允许默认端口 19999 以便从任何远程系统访问 NetData 的 web 界面。

在 Ubuntu/Debian 中

$ sudo ufw allow 19999

在 CentOS/RHEL/Fedora 中

$ sudo firewall-cmd --permanent --add-port=19999/tcp

$ sudo firewall-cmd --reload

启动/停止 NetData

要在使用 Systemd 的系统上启用和启动 Netdata 服务,请运行:

$ sudo systemctl enable netdata
$ sudo systemctl start netdata

要停止:

$ sudo systemctl stop netdata

要在使用 Init 的系统上启用和启动 Netdata 服务,请运行:

$ sudo service netdata start
$ sudo chkconfig netdata on

要停止:

$ sudo service netdata stop

通过 Web 浏览器访问 NetData

打开 Web 浏览器,然后打开 http://127.0.0.1:19999 或者 http://localhost:19999/ 或者 http://ip-address:19999。你应该看到如下页面。

 

Netdata 仪表板

 

在仪表板中,你可以找到 Linux 系统的完整统计信息。向下滚动以查看每个部分。

你可以随时打开 http://localhost:19999/netdata.conf 来下载和/或查看 NetData 默认配置文件。

 

Netdata 配置文件

 

更新 NetData

在 Arch Linux 中,只需运行以下命令即可更新 NetData。如果仓库中提供了更新版本,那么就会自动安装该版本。

$ sudo pacman -Syyu

在基于 DEB 或 RPM 的系统中,只需进入已克隆它的目录(此例中是 netdata)。

$ cd netdata

拉取最新更新:

$ git pull

然后,使用命令重新构建并更新它:

$ sudo ./netdata-installer.sh

卸载 NetData

进入克隆 NetData 的文件夹。

$ cd netdata

然后,使用命令卸载它:

$ sudo ./netdata-uninstaller.sh --force

在 Arch Linux 中,使用以下命令卸载它。

$ sudo pacman -Rns netdata

资源

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

###############################################################################################################################################

 

 

 

 

 

Netdata介绍

Netdata是一款Linux系统性能实时监控工具。是一个高度优化的Linux守护进程,可以对Linux系统、应用程序(包括但不限于Web服务器,数据库等)、SNMP服务等提供实时的性能监控。

Netdata用可视化的手段,将其被监控的信息展现出来,以便你清楚的了解到你的系统、程序、应用的实时运行状态,而且还可以与Prometheus,Graphite,OpenTSDB,Kafka,Grafana等相集成。

Netdata是免费的开源软件,目前可在Linux,FreeBSD和macOS以及从它们衍生的其他系统(例如Kubernetes和Docker)上运行。

Netdata仓库地址:https://github.com/netdata/ne...

Netdata特性

  • 1、友好、美观的可视化界面
  • 2、可自定义的控制界面
  • 3、安装快速且高效
  • 4、配置简单,甚至可零配置
  • 5、零依赖
  • 6、可扩展,自带插件API
  • 7、支持的系统平台广

Netdata是如何工作的?

Netdata是一个高效,高度模块化的指标管理引擎。它的无锁设计使其非常适合度量标准上的并发操作。

上图的各个组件的作用描述,有兴趣的可以参考官方的说明,这里不再赘述了。

Netdata可监控什么?

Netdata可以收集来自200多种流行服务和应用程序的指标,以及数十种与系统相关的指标,例如CPU,内存,磁盘,文件系统,网络等。我们将这些收集器称为,它们由插件管理,该插件支持多种编程语言,包括Go和Python。

流行的收集器包括Nginx,Apache,MySQL,statsd,cgroups(容器,Docker,Kubernetes,LXC等),Traefik,Web服务器access.log文件等。

详细的支持列表请参考下面的说明:https://github.com/netdata/ne...

Netdata安装

1、直接安装

首先需要更新升级系统内核和一些依赖库文件

[root@CentOS7-1 ~]# yum update -y

如果没有操作,你在直接安装时会出现下面的提示,输入y让系统自动更新也是可以的。

执行完更新操作后,直接执行下面的命令进行安装Netdata。

[root@CentOS7-~]# bash <(curl -Ss https://my-netdata.io/kickstart.sh)

然后,程序会自动执行安装动作,去下载一系列的包进行安装,中间需要确认操作一次,如下:

可能会由于访问国外的资源,和根据你的网络关系,等待的时间或长或短。

一些关键的信息,从安装过程中也是可以看的出来的,如上图。

从上图信息可以看出访问方法,启动、停止服务的命令。

安装完成如下图

显示Netdata已经启动完成,我们可以使用命令来查看一下是否启动完成?

[root@CentOS7-1 ~]# lsof -i :19999
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
netdata 14787 netdata    4u  IPv4  27995      0t0  TCP *:dnp-sec (LISTEN)
netdata 14787 netdata    5u  IPv6  27996      0t0  TCP *:dnp-sec (LISTEN)
[root@CentOS7-1 ~]# ps -ef|grep netdata
netdata   14787      1  23:24 ?        00:00:06 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D
netdata   14800  14787  23:24 ?        00:00:00 /usr/sbin/netdata --special-spawn-server
netdata   14954  14787  23:24 ?        00:00:01 bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1
netdata   14974  14787  23:24 ?        00:00:02 /usr/bin/python /usr/libexec/netdata/plugins.d/python.d.plugin 1
root      14975  14787  23:24 ?        00:00:04 /usr/libexec/netdata/plugins.d/ebpf.plugin 1
netdata   14976  14787  23:24 ?        00:00:01 /usr/libexec/netdata/plugins.d/go.d.plugin 1
netdata   14977  14787  23:24 ?        00:00:05 /usr/libexec/netdata/plugins.d/apps.plugin 1
root      15277   1149  23:29 pts/0    00:00:00 grep --color=auto netdata

2、Docker方式安装

首先准备Docker环境,然后直接执行下面的命令即可完成安装操作。

docker run -d --name=netdata 
  -p 19999:19999 
  -v netdatalib:/var/lib/netdata 
  -v netdatacache:/var/cache/netdata 
  -v /etc/passwd:/host/etc/passwd:ro 
  -v /etc/group:/host/etc/group:ro 
  -v /proc:/host/proc:ro 
  -v /sys:/host/sys:ro 
  -v /etc/os-release:/host/etc/os-release:ro 
  --restart unless-stopped 
  --cap-add SYS_PTRACE 
  --security-opt apparmor=unconfined 
  netdata/netdata

安装完成后,就可以通过下面的方式进行访问了。

界面展示

1、总体数据界面

2、内存

3、CPU

4、磁盘

5、网络

6、应用

7、网络接口

8、数据同步功能

Netdata仪表板上的图表彼此同步,没有主图表。可以随时平移或缩放任何图表,其他所有图表也将随之出现。

通过使用鼠标拖动可以平移图表。当鼠标指针悬停在图表上时,可以使用SHIFT+ 放大/缩小mouse wheel图表。

Netdata强大之处

之所以如此强大,是因为它与各类应用的配合与支持,直接上图说明:

Netdata集群管理方案

上面展示的只是单一服务器的监控数据,而且netdata有一个缺点就是所有被监控的服务器都需要安装agent,所以,这里就是出现一个问题,就是如何将监控数据统一管理与展示?

netdata官方并没设计主从模式,像zabbix那样,可以一台做为主服务器,其它的做为从服务器,将数据收集到主服务器统一处理与展示,但是,官方也给出了相关的解决方案。

  • 1、netdata.cloud

使用自带的 netdata.cloud,也就是每一个安装节点WEB界面右上角的signin。只要我们使用同一个账号登录netdata.cloud(需要kexue上网),之后各个节点之间就可以轻松通过一个账号控制。每个节点开启19999端口与允许管理员查看数据,然后控制中心通过前端从各节点的端口收集的数据,传给netdata.cloud记录并展示。

这是一种被动的集群监控,本质上还是独立的机器,且不方便做自定义的集群dashboard。

  • 2、stream 插件

所以,为了解决上面这种方案的弊端,netdata又提供了另一种方法,将各节点的数据集中汇总到一台(主)服务器,数据处理也在这台服务器上,其它节点无需开放19999端口。 算是一种主动传输模式,把收集到的数据发送到主服务器上,这样在主服务器上可以进行自定义的dashboard开发。

缺点:主服务器流量、负载都会比较大(在集群服务器数量较多的情况下),如果主服务器负载过高,我们可以通过设置节点服务器的数据收集周期(update every)来解决这个问题。

Netdata集群监控配置

很多文章都只是介绍了其安装与一些界面的展示结果,并没有提供集群监控这一解决方案与其具体的配置,民工哥也是查了很多的资料,现在将其配置过程分享给大家。

对于streaming的配置不熟悉的可以参考官方的文档说明:https://docs.netdata.cloud/st...

1、节点服务器配置

[root@CentOS7-1 ~]# cd /etc/netdata/
[root@CentOS7-1 netdata]# vim netdata.conf
#修改配置如下
[global]
    memory mode = none
    hostname = [建议修改成你的主机名]
[web]
    mode = none

然后,在/etc/netdata/目录下新建一个文件stream.conf,然后将其配置为如下:

[stream]
    enabled = yes
    destination = MASTER_SERVER_IP:PORT
    api key = xxxx-xxxx-xxxx-xxxx-xxxx
    
#参数说明如下
 destination = MASTER_SERVER_IP:PORT  主服务器地址与端口
 api key 必需为uuid的字符串,Linux系统中可以使用下面的命令自动生成。
 [root@CentOS7-1 netdata]# uuidgen
 480fdc8c-d1ac-4d6f-aa26-128eba744089

配置完成之后,需要重启节点的netdata服务即可完成整个配置。

[root@CentOS7-1 ~]# systemctl restart netdata

2、主服务器配置

在netdata.conf的同一目录下新建stream.conf并写入如下配置:

[API_KEY]/[480fdc8c-d1ac-4d6f-aa26-128eba744089]
    enabled = yes
    default history = 3600
    default memory mode = save
    health enabled by default = auto
    allow from = *
[API_KEY]
    enabled = yes
    default history = 3600
    default memory mode = save
    health enabled by default = auto
    allow from = *
#其中,API_KEY对应节点服务器的api key(字符串),allow from可以设置数据流的允许来源以保证安全。
#如果有多个节点服务器,则一起写在stream.conf里面

完成配置后重启netdata:

systemctl restart netdata

所有的配置完成后,就可以在主服务器的WEB界面右上角看到下拉菜单(主机名),点击即可看到相关的监控信息了。

如果需要自定义控制面板,可以参考官方的文档,去修改xml文件。 原文地址:https://docs.netdata.cloud/we...

 

posted @ 2021-05-18 17:44  woaibaobei  阅读(789)  评论(0编辑  收藏  举报