在Ubuntu 20.04上安装和设置TIG Stack

在本教程中,我们将学习如何在Ubuntu 20.04上安装和设置TIG Stack。

TIG堆栈是一组强大的开源监视工具,例如Telegraf,InfluxDB和Grafana。

  • Telegraf 是一个开源服务器代理,用于从数据库,系统和IoT传感器收集和发送指标和事件。
  • InfluxDB 是一个开放源代码的时间序列数据库,并提供用于指标,事件和实时分析的数据存储。
  • 格拉法纳 是数据可视化和监视工具,支持时间序列数据存储,例如Graphite,InfluxDB,Prometheus,Elasticsearch。

TIG堆栈可用于监视系统指标,例如内存,磁盘,登录用户,系统负载,交换使用情况,系统正常运行时间,系统进程。

在Ubuntu 20.04上安装和设置TIG Stack

为了在Ubuntu 20.04上安装和设置TIG堆栈,您需要安装和设置堆栈的每个单独组件,即Telegraf,InfluxDB,Grafana。

运行系统更新

首先,请确保您的系统软件包是最新的。

apt update
apt upgrade

在Ubuntu 20.04上安装Telegraf

您可以通过下载DEB软件包文件或直接从InfluxData存储库在Ubuntu 20.04上安装Telegraf。

使用DEB软件包文件安装Telegraf

要使用DEB二进制文件安装Telegraf,请从 流入数据 下载页面。您可以简单地获取到二进制安装程序的链接,并使用wget将其拉出。

wget https://dl.influxdata.com/telegraf/releases/telegraf_1.14.3-1_amd64.deb

下载二进制文件后,可以按以下方式安装

dpkg -i telegraf_1.14.3-1_amd64.deb

从InfluxData Repos安装Telegraf

如果要从InfluxData存储库安装它以确保在有新版本发布时进行无缝更新,只需按如下所示创建InfluxData存储库即可;

wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
apt update
apt install telegraf

在Ubuntu 20.04上运行Telegraf

安装完成后,您可以启动Telegraf并使其在系统引导时运行(这通常在安装过程中自动完成)。

systemctl enable --now telegraf

在Ubuntu 20.04上安装InfluxDB

同样,可以使用DEB软件包文件或从InfluxData存储库安装InfluxDB。

使用DEB软件包文件安装InfluxDB

二进制包可以从以下位置下载 InfluxData下载页面

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.8.0_amd64.deb
dpkg -i influxdb_1.8.0_amd64.deb

从InfluxData Repos安装InfluxDB

在撰写本文时,Ubuntu 20.04的InfluxDB存储库不提供InfluxDB软件包。但是,Focal Universe存储库上提供了InfluxDB软件包,但在撰写本文时,它不是最新版本。因此,我们更喜欢使用debian二进制软件包在Ubuntu 20.04上安装InfluxDB。

启动并启用InfluxDB以在系统启动时运行;

systemctl enable --now influxdb

您可以通过运行以下命令来检查状态;

systemctl status influxdb

在Ubuntu 20.04上安装Grafana

与Telegraf和InfluxDB相同,您可以使用debian软件包文件或直接从Grafana仓库在Ubuntu 20.04上安装Grafana。

使用Debian软件包文件安装Grafana

要使用debian软件包文件安装Grafana,请从以下位置下载Grafana的最新稳定发行版: Grafana下载页面。默认情况下,通常会选择最新的稳定版本。

apt install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_7.0.1_amd64.deb
dpkg -i grafana_7.0.1_amd64.deb

从Grafana仓库安装Grafana

在本教程中,我们将安装Grafana的开源版本。创建仓库并按以下步骤安装Grafana;

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
apt update -y
apt install grafana

运行格拉法纳

systemctl daemon-reload
systemctl enable --now grafana-server

检查状态;

systemctl status grafana-server
● grafana-server.service - Grafana instance
     Loaded: loaded (/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-05-30 10:00:09 UTC; 3s ago
       Docs: http://docs.grafana.org
   Main PID: 6325 (grafana-server)
      Tasks: 8 (limit: 2282)
     Memory: 7.8M
     CGroup: /system.slice/grafana-server.service
             └─6325 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid --packaging=deb cfg:default.paths.logs=/var/lo>

May 30 10:00:10 ubuntu20 grafana-server[6325]: t=2020-05-30T10:00:10+0000 lvl=info msg="Executing migration" logger=migrator id="add unique index user.email"
...

在Ubuntu 20.04上配置TIG Stack

堆栈中的所有组件放置到位后,继续进行配置。

创建InfluxDB Telegraf数据库和数据库用户

创建InfluxDB数据库以存储由Telegraf代理收集的时间序列指标。使用连接到InfluxDB influx 客户端命令。

influx
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
>

接下来,创建InfluxDB数据库。在此演示中,我们创建一个名为 telegraf 和一个数据库用户名为 telegraf

create database telegraf
create user telegraf with password '[email protected]'
grant all on telegraf to telegraf

您可以列出创建的数据库。

show databases
name: databases
name
----
telegraf
_internal

列出用户;

show users
user     admin
----     -----
telegraf false

退出InfluxDB并使用上面创建的凭据验证与数据库的连接;

influx -username 'telegraf' -password '' -database telegraf

输入密码。如果一切顺利,您应该得到InfluxDB提示符;

password: [email protected]
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
> 

配置Telegraf

是一个插件驱动的服务器代理,用于从数据库,系统和物联网传感器收集和发送指标和事件。所有度量均从声明的输入中收集,并发送到声明的输出。它基本上由四种不同的插件类型组成:

  • 输入插件 从系统,服务收集指标
  • 处理器插件 转换,修饰和/或过滤指标
  • 聚合器插件 创建汇总指标(例如,平均值,最小值,最大值,分位数等)
  • 输出插件 针对我们的案例,将指标写入各种目的地,例如InfluxDB。

/etc/telegraf/telegraf.conf 是默认的Telegraf配置文件。

在本教程中,我们将配置TIG堆栈监视器系统内存使用情况,系统进程,磁盘使用情况,系统负载,系统正常运行时间和登录用户。

这样,我们将在输入过滤器上使用上述指定指标生成自定义Telegraf配置。可以使用以下命令生成自定义Telegraf配置文件 telegraf 命令。

创建原始Telegraf配置文件的备份。

mv /etc/telegraf/telegraf.conf{,.old}

为指定指标生成自定义Telegraf;

telegraf config -input-filter cpu:mem:swap:system:processes:disk -output-filter influxdb > /etc/telegraf/telegraf.conf

进一步了解Telegraf输入插件 Telegraf插件 Github页面。

生成配置文件后,对其进行编辑以定义与InfluxDB指标数据库的连接详细信息;

vim /etc/telegraf/telegraf.conf

相应地替换InfluxDB数据库连接详细信息。

###############################################################################
#                            OUTPUT PLUGINS                                   #
###############################################################################


# Configuration for sending metrics to InfluxDB
[[outputs.influxdb]]
  urls = ["http://127.0.0.1:8086"]
  database = "telegraf"
  username = "telegraf"
  password = "[email protected]"

这是没有注释行的配置文件的样子;

grep -v "^s*[#;]|^s*$" /etc/telegraf/telegraf.conf
[global_tags]
[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "10s"
  flush_jitter = "0s"
  precision = ""
  hostname = ""
  omit_hostname = false
[[outputs.influxdb]]
  urls = ["http://127.0.0.1:8086"]
  database = "telegraf"
  username = "telegraf"
  password = "[email protected]"
[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false
[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
[[inputs.kernel]]
[[inputs.mem]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]

有关Telegraf的更多配置,请参阅 Telegraf管理配置 页。

修改后重新启动Telegraf;

systemctl restart telegraf

重新检查状态;

systemctl status telegraf
● telegraf.service - The plugin-driven server agent for reporting metrics into InfluxDB
     Loaded: loaded (/lib/systemd/system/telegraf.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-05-30 16:43:07 UTC; 8s ago
       Docs: https://github.com/influxdata/telegraf
   Main PID: 4776 (telegraf)
      Tasks: 10 (limit: 2282)
     Memory: 10.1M
     CGroup: /system.slice/telegraf.service
             └─4776 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d

May 30 16:43:07 ubuntu20 systemd[1]: Started The plugin-driven server agent for reporting metrics into InfluxDB.
May 30 16:43:07 ubuntu20 telegraf[4776]: 2020-05-30T16:43:07Z I! Starting Telegraf 1.14.3
May 30 16:43:07 ubuntu20 telegraf[4776]: 2020-05-30T16:43:07Z I! Loaded inputs: swap system cpu disk diskio kernel mem processes
May 30 16:43:07 ubuntu20 telegraf[4776]: 2020-05-30T16:43:07Z I! Loaded aggregators:
May 30 16:43:07 ubuntu20 telegraf[4776]: 2020-05-30T16:43:07Z I! Loaded processors:
May 30 16:43:07 ubuntu20 telegraf[4776]: 2020-05-30T16:43:07Z I! Loaded outputs: influxdb
May 30 16:43:07 ubuntu20 telegraf[4776]: 2020-05-30T16:43:07Z I! Tags enabled: host=ubuntu20
May 30 16:43:07 ubuntu20 telegraf[4776]: 2020-05-30T16:43:07Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"ubuntu20", Flush Interval:10s

启动Telegraf并验证是否出现数据

Telegraf使您可以运行配置测试,将指标输出到标准输出。对定义的所有指标进行常规测试;

telegraf --config /etc/telegraf/telegraf.conf --test

要针对特定​​指标(例如,系统输入插件)运行配置测试;

telegraf -test -config /etc/telegraf/telegraf.conf --input-filter system
2020-05-30T11:07:42Z I! Starting Telegraf 1.14.3
> system,host=ubuntu20 load1=0.01,load15=0,load5=0.02,n_cpus=2i,n_users=2i 1590836862000000000
> system,host=ubuntu20 uptime=9206i 1590836862000000000
> system,host=ubuntu20 uptime_format=" 2:33" 1590836862000000000

配置Grafana以显示InfluxDB / Telegraf指标

访问Grafana Web界面

要从外部访问Grafana,您需要在UFW上打开端口3000 / tcp(如果正在运行)。

ufw allow 3000/tcp

您现在可以访问Grafana Web界面, http://server-IP-or-Hostname:3000。在登录页面上,输入 admin 用户名和密码。

重置密码,然后进入Grafana Web界面。

添加InfluxDB数据源

要添加数据源,请单击下面的屏幕快照中任一突出显示的部分。

Grafana InfluxDB数据源

搜索并选择InfluxDB数据源。

设置InfluxDB数据源的名称和URL。您可以将其保留为 http://localhost:8086 用于本地连接。

在Ubuntu 20.04上安装和设置TIG堆栈。

要测试与InfluxDB数据库的连接,请单击 保存并测试 按钮。

在Ubuntu 20.04上安装和设置TIG Stack创建Grafana Telegraf仪表板

您可以为Telegraf创建自​​己的仪表板,或者从已经创建的仪表板中找到满足您需求的仪表板 Grafana社区仪表板。在本教程中,我们使用社区 Telegraf系统指标仪表板 由用户jmutai创建。

要导入仪表板,请单击 + (plus) 在Grafana UI的左侧面板上签名。您可以使用特定Grafana仪表板页面上提供的仪表板ID或JSON文件进行导入。

在Ubuntu 20.04上安装和设置TIG Stack

请点击 加载 加载仪表板。

仪表板加载后, 选择InfluxDB数据源并导入仪表板。现在,您应该能够看到详细说明各种系统指标的各种仪表板。

在Ubuntu 20.04上安装和设置TIG堆栈。

这标志着我们如何在Ubuntu 20.04上安装和设置TIG堆栈的结尾。

进一步阅读

Telegraf 1.14文档

InfluxDB 1.8文档

Grafana文档

Sidebar