如何使用netdata和grafana监视Linux服务器
本教程将通过安装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指标。