服务器实时监控平台Telegraf+InfluxDB+Grafana

本篇主要讲解在CentOS环境下进行搭建部署

1、InfluxDB

InfluxDB是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。

类似的数据库有Elasticsearch、Graphite等。

下载地址:

https://portal.influxdata.com/downloads/

1.1、安装

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.9.x86_64.rpm
sudo yum localinstall influxdb-1.8.9.x86_64.rpm

1.2、配置
vim /etc/influxdb/influxdb.conf

服务器实时监控平台Telegraf+InfluxDB+Grafana
1.3、启动与查看状态

1、启动

systemctl start influxdb.service

2、查看状态

systemctl status influxdb.service

如图所示:已启动

服务器实时监控平台Telegraf+InfluxDB+Grafana
1.4、创建数据库与帐户密码

进入数据库

influx

创建数据库telegraf

create database telegraf

创建管理员admin,密码为admin

create user "admin" with password 'admin' with all privileges

创建普通用户telegraf,密码为telegraf

create user "telegraf" with password 'telegraf'

之后输入exit,退出即可。

服务器实时监控平台Telegraf+InfluxDB+Grafana

2、Telegraf

Telegraf是一个插件驱动的服务器代理,用于收集和报告指标,并且是TICK Stack的第一部分。

Telegraf插件可以直接从它运行的系统中获取各种指标,从第三方API中提取指标,甚至通过statsd和Kafka消费者服务监听指标。它还具有输出插件,可将指标发送到各种其他数据存储、服务和消息队列,包括InfluxDB、Graphite、OpenTSDB、Datadog、Librato、Kafka、MQTT、NSQ等。

下载地址:

https://portal.influxdata.com/downloads/

2.1、安装

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.19.3-1.x86_64.rpm
yum install -y telegraf-1.19.3-1.x86_64.rpm

2.2、配置

vim /etc/telegraf/telegraf.conf

修改outputs.influxdb区域:

服务器实时监控平台Telegraf+InfluxDB+Grafana
服务器实时监控平台Telegraf+InfluxDB+Grafana

2.3、启动与查看状态

1、启动

systemctl start telegraf

2、查看状态

systemctl status telegraf

如图所示:已启动

服务器实时监控平台Telegraf+InfluxDB+Grafana

2.4、查看要监控的数据

[root@centos-linux ~]# influx
Connected to http://localhost:8086 version 1.8.9
InfluxDB shell version: 1.8.9
> show databases
name: databases
name
----
_internal
jmeter
telegraf
> use telegraf
Using database telegraf
> show measurements
name: measurements
name
----
cpu
disk
diskio
kernel
mem
processes
swap
system

或者可以使用InfluxDB Studio客户端连接工具来查询数据库

如图所示:

服务器实时监控平台Telegraf+InfluxDB+Grafana

3、Grafana

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。

下载地址:

https://grafana.com/grafana/download

3.1、安装

wget https://dl.grafana.com/oss/release/grafana-8.1.2-1.x86_64.rpm
sudo yum install grafana-8.1.2-1.x86_64.rpm

3.2、配置

vim /etc/grafana/grafana.ini

服务器实时监控平台Telegraf+InfluxDB+Grafana
服务器实时监控平台Telegraf+InfluxDB+Grafana

3.3、启动与查看状态

1、启动

systemctl start grafana-server.service

2、查看状态

systemctl status grafana-server.service

如图所示:已启动

服务器实时监控平台Telegraf+InfluxDB+Grafana
3.4、访问登录
打开浏览器,访问地址http://IP:3000,出现如下界面,说明Grafana服务启动成功。

输入用户名和密码,均为“admin”,登录即可。

服务器实时监控平台Telegraf+InfluxDB+Grafana
注:如果无法访问,检查一下防火墙设置。

解决方法:

方式一(关闭防火墙)

systemctl stop firewalld

方式二(开启防火墙,添加开放的端口)

(1)开启防火墙

systemctl start firewalld

(2)添加开放端口(例如端口3000)

firewall-cmd --zone=public --add-port=3000/tcp --permanent

(3)更新防火墙规则

firewall-cmd --reload

防火墙相关命令:

开启防火墙

systemctl start firewalld

关闭防火墙

systemctl stop firewalld

查看防火墙状态

systemctl status firewalld.service

查看已开放的端口

firewall-cmd --list-ports

添加开放端口,例如3000(开放后需要更新规则才能生效)

firewall-cmd --zone=public --add-port=3000/tcp --permanent

更新防火墙规则

firewall-cmd --reload

3.5、创建数据源

方式一:首页直接点击数据源

服务器实时监控平台Telegraf+InfluxDB+Grafana

方式二:左侧选择配置-数据源

服务器实时监控平台Telegraf+InfluxDB+Grafana
选择InfluxDB作为数据源。

服务器实时监控平台Telegraf+InfluxDB+Grafana
填写配置信息:

Name:自定义名称

URL:当InfluxDB和Grafana安装到同一台服务器上,可写localhost

服务器实时监控平台Telegraf+InfluxDB+Grafana
Database:匹配安装InfluxDB时,所创建的数据库与帐户密码

服务器实时监控平台Telegraf+InfluxDB+Grafana
之后点击保存即可。

服务器实时监控平台Telegraf+InfluxDB+Grafana

3.6、创建仪表板

方式一:首页直接点击仪表板

服务器实时监控平台Telegraf+InfluxDB+Grafana
方式二:左侧选择创建-仪表板

服务器实时监控平台Telegraf+InfluxDB+Grafana
新增面板区域。

服务器实时监控平台Telegraf+InfluxDB+Grafana
之后点击Add an empty panel,添加一个空面板,并根据实际情况配置仪表板。

设置数据源,添加不同的指标(cpu、内存、磁盘、网络流量等)。

例如监控服务器的cpu,添加指标:

用户cpu占用,系统cpu占用,iowait(系统因为io导致的进程wait)占用

服务器实时监控平台Telegraf+InfluxDB+Grafana
设置百分比占用显示
服务器实时监控平台Telegraf+InfluxDB+Grafana
自定义仪表板名字,之后保存即可。

服务器实时监控平台Telegraf+InfluxDB+Grafana
仪表板创建完成,并开始监控已设置的指标。

服务器实时监控平台Telegraf+InfluxDB+Grafana

4、监控MySQL

4.1、创建Telegraf配置文件(收集MySQL)

vim /etc/telegraf/telegraf.d/telegraf_mysql.conf

添加如下内容:

[[outputs.influxdb]]
  database = "mysql_metrics"  # 数据库名称,采集的数据都放在此库中
  urls = ["http://127.0.0.1:8086"] # InfluxDB数据库地址
  namepass = ["*_mysql"]
  username = "telegraf"
  password = "telegraf"
 
[[inputs.mysql]]
  servers = ["root:123456qwe!@tcp(localhost:3306)/?tls=false"] # MySQL用户名、密码以及连接MySQL的地址
  name_suffix = "_mysql"  # 名称后缀

服务器实时监控平台Telegraf+InfluxDB+Grafana
4.2、重启Telegraf

systemctl restart telegraf

4.3、查看要监控的字段

[root@centos-linux ~]# influx
Connected to http://localhost:8086 version 1.8.9
InfluxDB shell version: 1.8.9
> show databases
name: databases
name
----
_internal
jmeter
telegraf
mysql_metrics
> use mysql_metrics
Using database mysql_metrics
> show measurements
name: measurements
name
----
mysql_mysql
> show field keys from mysql_mysql
name: mysql_mysql
fieldKey fieldType
-------- ---------
aborted_clients integer
aborted_connects integer
bytes_received integer
bytes_sent integer
commands_admin_commands integer
commands_alter_db integer
commands_alter_event integer
commands_alter_function integer
commands_alter_instance integer
commands_alter_procedure integer
commands_alter_resource_group integer
commands_alter_server integer
commands_alter_table integer
commands_alter_tablespace integer
commands_alter_user integer
commands_alter_user_default_role integer

或者可以使用InfluxDB Studio客户端连接工具来查询数据库

如图所示:

服务器实时监控平台Telegraf+InfluxDB+Grafana

4.4、Grafana创建数据源

登陆Grafana,创建数据源(选择InfluxDB作为数据源)

服务器实时监控平台Telegraf+InfluxDB+Grafana
填写配置信息:

Name:自定义名称

URL:当InfluxDB和Grafana安装到同一台服务器上,可写localhost

服务器实时监控平台Telegraf+InfluxDB+Grafana
Database:匹配Telegraf配置文件(telegraf_mysql.conf),所创建的数据库与帐户密码。

服务器实时监控平台Telegraf+InfluxDB+Grafana
之后点击保存即可。

服务器实时监控平台Telegraf+InfluxDB+Grafana

4.5、Grafana导入监控模板

官方模板库

https://grafana.com/grafana/dashboards

按条件进行搜索,点击进入模板(例如第二个模板)。

服务器实时监控平台Telegraf+InfluxDB+Grafana
点击Download JSON,下载此模板的Json文件。

服务器实时监控平台Telegraf+InfluxDB+Grafana
打开Grafana,点击Import。

服务器实时监控平台Telegraf+InfluxDB+Grafana
选择已下载完成的模板Json文件。
服务器实时监控平台Telegraf+InfluxDB+Grafana
配置完成后,点击Import即可。

服务器实时监控平台Telegraf+InfluxDB+Grafana
仪表板创建完成

监控效果图:

服务器实时监控平台Telegraf+InfluxDB+Grafana
服务器实时监控平台Telegraf+InfluxDB+Grafana
我也整理了一些软件测试的学习资料
服务器实时监控平台Telegraf+InfluxDB+Grafana
以上资料,对于学软件测试的小伙伴来说应该会很有帮助,希望也能帮助到你。需要的小伙伴可以关注我微信公众号:程序员二黑,免费获取!

学习软件测试是件需要坚持的事情,学习的过程可能会很枯燥,不过有一些人一起学的话大概就不会了吧,加入我们,跟我们一起学习,群号:785128166,有人陪伴,不会孤单

如果文章对你有帮助的,请帮我点赞收藏,这样我才有动力继续更新下去!

推荐阅读

在职阿里6年,一个29岁女软件测试工程师的心声

当过服务员、快递员,现在年薪30W,历尽山河叛逆少年终会成长

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档

上一篇:InfluxDB - Linux安装InfluxDB服务


下一篇:influxDB 2.0安装及使用说明