如何使用netdata和grafana监视Linux服务器

时间:2020-02-23 14:40:08  来源:igfitidea点击:

本教程将通过安装NetData的步骤,并配置要在Grafana上可视化的度量标准。
将用于存储NetData监视指标的数据库是 Influx 的。
NetData是用于基础设施系统和各种应用的强大分布式,实时健康和性能监控工具。

我们可以高度优化所有系统和容器上安装的监视代理。
另一方面,Grafana是一种工具,允许我们在存储位置时查询和可视化指标。

第1步:安装netdata

通过运行开发人员提供的KickStart脚本,可以在任何Linux系统上安装NetData。

对于RHEL 8和FreeBSD,使用:

如何在RHEL 8/CentOS上安装NetData 8

如何在RHEL 8/CentOS上安装NetData 8

对于任何其他Linuxflavor ,在自动脚本下面运行以安装NetData。

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

对于RHEL 8和FREEBSD等其他系统,请使用以下教程:

这将在系统上构建NetData之前安装所有NetData系统依赖性。
安装后应自动启动该服务。

$systemctl status netdata
 ● netdata.service - Real time performance monitoring
    Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: disabled)
    Active: active (running) since Sat 2019-03-02 07:14:31 CET; 4min 44s ago
   Process: 21775 ExecStartPre=/bin/chown -R netdata:netdata /var/run/netdata (code=exited, status=0/SUCCESS)
   Process: 21771 ExecStartPre=/bin/mkdir -p /var/run/netdata (code=exited, status=0/SUCCESS)
   Process: 21768 ExecStartPre=/bin/chown -R netdata:netdata /var/cache/netdata (code=exited, status=0/SUCCESS)
   Process: 21766 ExecStartPre=/bin/mkdir -p /var/cache/netdata (code=exited, status=0/SUCCESS)
  Main PID: 21778 (netdata)
    CGroup: /system.slice/netdata.service
            ├─21778 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D -W set global process scheduling policy keep -W set global OOM score keep
            ├─21837 bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1
            ├─21847 /usr/libexec/netdata/plugins.d/apps.plugin 1
            └─21851 /usr/libexec/netdata/plugins.d/go.d.plugin 1
 Mar 02 07:14:31 techwiz-app-server systemd[1]: Starting Real time performance monitoring…
 Mar 02 07:14:31 techwiz-app-server systemd[1]: Started Real time performance monitoring.
 Mar 02 07:14:31 techwiz-app-server netdata[21778]: /usr/libexec/netdata/plugins.d/anonymous-statistics.sh 'START' '-' '-'
 Mar 02 07:14:31 techwiz-app-server netdata[21778]: 2019-03-02 07:14:31: netdata INFO  : MAIN : /usr/libexec/netdata/plugins.d/anonymous-stati…'-' '-'
 Hint: Some lines were ellipsized, use -l to show in full.

我们还可以通过运行在Docker容器中尝试NetData:

docker run -d --name=netdata \
  -p 19999:19999 \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --cap-add SYS_PTRACE \
  --security-opt apparmor=unconfined \
  netdata/netdata

第2步:安装influxdb&grafana

下一步是安装 Influx 和Grafana,我们为Debian,Ubuntu和CentOS服务器提供教程。

安装Grafana:

如何在ubuntu和debian上安装grafana

在CentOS 7上安装Grafana和FlowuxDB

如何在Rhel 8上安装Grafana

安装influxDB:

在ubuntu和debian上安装influxdb

如何在Fedora上安装influxDB

如何在RHEL 8/CentOS 8上安装influxDB

第3步:配置NetData以使用influxDB

我们将NetData配置为使用 Influx 作为时间序列数据库。
打开NetData配置并寻找 [backend]块和设置。

[backend]
    enabled = yes
    type = opentsdb
    destination = localhost:4242

它应该类似于下面的。

现在打开 Influx 配置并启用OpentsDB服务

$sudo vim /etc/influxdb/influxdb.conf
[[opentsdb]]
   enabled = true
   bind-address = ":4242"
   database = "opentsdb"

改变后重新启动 Influx 和NetData服务。

sudo systemctl restart influxdb netdata

确认我们有端口 4242听。

~# ss -tunelp | grep 4242
 tcp    LISTEN   0 128  *:4242  *:* users:(("influxd",pid=27646,fd=15)) uid:998 ino:176788 sk:17 v6only:0 <->

NetData应开始向 Influx 发送指标。

$influx -username 'monitoring' -password 'StrongPassword'
 Connected to http://localhost:8086 version 1.7.4
 InfluxDB shell version: 1.7.4
 Enter an InfluxQL query
> SHOW DATABASES
name: databases
name
---
_internal
opentsdb

你可以看到 opentsdb已创建数据库,让我们确认此数据库中是否存在NetData指标。

> USE opentsdb 
> SHOW MEASUREMENTS LIMIT 10
   name: measurements
   name
   netdata.apps.cpu.VMs
   netdata.apps.cpu.X
   netdata.apps.cpu.apps.plugin
   netdata.apps.cpu.charts.d.plugin
   netdata.apps.cpu.containers
   netdata.apps.cpu.cron
   netdata.apps.cpu.dhcp
   netdata.apps.cpu.go.d.plugin
   netdata.apps.cpu.iscsi
   netdata.apps.cpu.kernel

第4步:配置Grafana以使用influxDB

登录Grafana使用 http://serverip:3000并作为管理员用户和密码登录。
点击"添加数据源:

从列表中选择influxDB数据源类型。

如果我们已打开HTTP身份验证,请提供服务器URL,数据库名称和身份验证详细信息。

保存并测试提供的设置。

第5步:创建/导入NetData Grafana仪表板。

我找到了Grafana的一个工作NetData仪表板。
通过提供仪表板号导入它。

单击"加载"以获取导入的仪表板。
选择前面添加的 Influx 数据源以完成导入。

在短时间内,我们应该在Grafana看到服务器的NetData指标。