
服务器实时监控平台
Telegraf+InfluxDB+Grafana
本篇主要讲解在CentOS环境下进行搭建部署
1、InfluxDB
InfluxDB是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。
类似的数据库有Elasticsearch、Graphite等。
下载地址:
https://portal.influxdata.com/downloads/
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.9.x86_64.rpm
sudo yum localinstall influxdb-1.8.9.x86_64.rpmvim /etc/influxdb/influxdb.conf
1、启动
systemctl start influxdb.service2、查看状态
systemctl status influxdb.service如图所示:已启动

进入数据库
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,退出即可。

2、Telegraf
Telegraf是一个插件驱动的服务器代理,用于收集和报告指标,并且是TICK Stack的第一部分。
Telegraf插件可以直接从它运行的系统中获取各种指标,从第三方API中提取指标,甚至通过statsd和Kafka消费者服务监听指标。它还具有输出插件,可将指标发送到各种其他数据存储、服务和消息队列,包括InfluxDB、Graphite、OpenTSDB、Datadog、Librato、Kafka、MQTT、NSQ等。
下载地址:
https://portal.influxdata.com/downloads/
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.rpmvim /etc/telegraf/telegraf.conf修改outputs.influxdb区域:


1、启动
systemctl start telegraf2、查看状态
systemctl status telegraf如图所示:已启动

[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客户端连接工具来查询数据库
如图所示:

3、Grafana
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。
下载地址:
https://grafana.com/grafana/download
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.rpmvim /etc/grafana/grafana.ini

1、启动
systemctl start grafana-server.service2、查看状态
systemctl status grafana-server.service如图所示:已启动

打开浏览器,访问地址http://IP:3000,出现如下界面,说明Grafana服务启动成功。
输入用户名和密码,均为“admin”,登录即可。

注:如果无法访问,检查一下防火墙设置。
解决方法:
方式一(关闭防火墙)
systemctl stop firewalld方式二(开启防火墙,添加开放的端口)
(1)开启防火墙
systemctl start firewalld(2)添加开放端口(例如端口3000)
firewall-cmd --zone=public --add-port=3000/tcp --permanent(3)更新防火墙规则
firewall-cmd --reload防火墙相关命令:
systemctl start firewalldsystemctl stop firewalldsystemctl status firewalld.servicefirewall-cmd --list-portsfirewall-cmd --zone=public --add-port=3000/tcp --permanentfirewall-cmd --reload方式一:首页直接点击数据源

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

选择InfluxDB作为数据源。

填写配置信息:
Name:自定义名称
URL:当InfluxDB和Grafana安装到同一台服务器上,可写localhost

Database:匹配安装InfluxDB时,所创建的数据库与帐户密码

之后点击保存即可。

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

方式二:左侧选择创建-仪表板

新增面板区域。

之后点击Add an empty panel,添加一个空面板,并根据实际情况配置仪表板。
设置数据源,添加不同的指标(cpu、内存、磁盘、网络流量等)。
例如监控服务器的cpu,添加指标:
用户cpu占用,系统cpu占用,iowait(系统因为io导致的进程wait)占用

设置百分比占用显示

自定义仪表板名字,之后保存即可。

仪表板创建完成,并开始监控已设置的指标。

4、监控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" # 名称后缀
systemctl restart telegraf[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客户端连接工具来查询数据库
如图所示:

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

填写配置信息:
Name:自定义名称
URL:当InfluxDB和Grafana安装到同一台服务器上,可写localhost

Database:匹配Telegraf配置文件(telegraf_mysql.conf),所创建的数据库与帐户密码。

之后点击保存即可。

官方模板库
https://grafana.com/grafana/dashboards
按条件进行搜索,点击进入模板(例如第二个模板)。

点击Download JSON,下载此模板的Json文件。

打开Grafana,点击Import。

选择已下载完成的模板Json文件。

配置完成后,点击Import即可。

仪表板创建完成
监控效果图:

