图文结合丨Prometheus+Grafana+GreatSQL性能监控系统搭建指南

2023年 10月 9日 30.3k 0

一、环境介绍

本文环境,以及本文所采用数据库为GreatSQL 8.0.32-24

$ cat /etc/system-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
$ uname -a
Linux gip 3.10.0-1160.el7.x86_64 #1 SMP Tue Aug 18 14:50:17 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux
$ ldd --version
ldd (GNU libc) 2.17

二、手动安装

0.简单介绍

  • Prometheus Server : 用于收集和存储时间序列数据。
  • Client Library : 客户端库,为需要监控的服务生成相应的 metrics 并暴露给 Prometheus server。当Prometheus server 来 pull 时,直接返回实时状态的 metrics。
  • Push Gateway : 主要用于短期的 jobs。由于这类 jobs 存在时间较短,可能在 Prometheus 来 pull 之前就消失了。为此,这次 jobs 可以直接向 Prometheus server 端推送它们的 metrics。这种方式主要用于服务层面的metrics,对于机器层面的 metrices,需要使用 node exporter。
  • Exporters : 用于暴露已有的第三方服务的 metrics 给 Prometheus。
  • Alertmanager : 从 Prometheus server 端接收到 alerts 后,会进行去除重复数据,分组,并路由到对收的接收方式,发出报警。常见的接收方式有:电子邮件,pagerduty,OpsGenie, webhook 等。

网上介绍很多这里就不再过多介绍了

1.安装Prometheus

官网下载最新二进制安装包➥ https://prometheus.io/download/

可以看到有很多的版本,这里选择LTS的版本,LTS在软件版本中通常表示Long Term Support,即长期支持版本。

对于Prometheus来说。LTS版本表示这个版本会获得更长期的支持和维护,而非LTS版本则更新频繁。新特性来得快。但稳定性和支持周期较短,所以在追求稳定的生产环境中。建议优先考虑使用LTS长期支持版本。

图片图片

这里选择二进制软件包prometheus-2.45.0.linux-amd64.tar.gz

$ mkdir /usr/local/prometheus
$ cd /usr/local/prometheus
$ wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz

下载完成后,用sha256sum校验一下安装包,没问题的话解压即可

$ sha256sum prometheus-2.45.0.linux-amd64.tar.gz
1c7f489a3cc919c1ed0df2ae673a280309dc4a3eaa6ee3411e7d1f4bdec4d4c5
$ tar xvf prometheus-2.45.0.linux-amd64.tar.gz

建议使用Systemd来管理守护进程Prometheus服务

若文件路径或名字和本文不同记得修改

$ vi /lib/systemd/system/prometheus.service
[Unit]
Descriptinotallow=Prometheus server
Documentatinotallow=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Service]
Type=simple
User=root
Group=root
Restart=on-abnormal
ExecStart=/usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus 
  --config.file=/usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus.yml 
  --storage.tsdb.path=/usr/local/prometheus/prometheus-2.45.0.linux-amd64/data 
  --storage.tsdb.retention.time=60d 
  --web.enable-lifecycle

[Install]
WantedBy=multi-user.target

使用$ ./prometheus -h 就可以看到帮助信息

通知Systemd重新加载配置文件

$ systemctl daemon-reload

以下为相关Systemd命令$ systemctl enable prometheus # 设置为开机自启$ systemctl disable prometheus # 关闭开机自启$ systemctl start prometheus # 开启服务$ systemctl status prometheus # 查看状态$ systemctl restart prometheus # 重启服务$ systemctl stop prometheus # 停止服务

启动Prometheus server,并查看是否启动成功active (running)

$ systemctl start prometheus.service

$ systemctl status prometheus.service
● prometheus.service - Prometheus server
   Loaded: loaded (/usr/lib/systemd/system/prometheus.service; disabled; vendor preset: disabled)
   Active: active (running) since 三 2023-09-06 16:14:34 CST; 2s ago
     Docs: https://prometheus.io/docs/introduction/overview/
 Main PID: 21472 (prometheus)
   CGroup: /system.slice/prometheus.service
           └─21472 /usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus --config.file=/usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus.yml --storage.tsdb.path=/usr/local/pr...
#下方省略

若启动失败可自行排查 $ journalctl -u prometheus.service -f

访问地址

名称

地址

prometheus

http://172.17.137.104:9090/

监控指标

http://172.17.137.104:9090/metrics

界面如下

安装完成Prometheus,接下来安装Alertmanager

2.安装Alertmanager

官网下载➥ https://prometheus.io/download/

这里我们选择alertmanager-0.26.0.linux-amd64.tar.gz

$ cd /usr/local/prometheus
$ wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz

下载完成后,用sha256sum校验一下安装包,没问题的话解压即可

$ sha256sum alertmanager-0.26.0.linux-amd64.tar.gz
abd73e2ee6bf67d3888699660abbecba7b076bf1f9459a3a8999d493b149ffa6
$ tar xvf alertmanager-0.26.0.linux-amd64.tar.gz

建议使用Systemd来管理守护进程Alertmanager服务

若文件路径或名字,和下方示例不同记得修改

$ vi /lib/systemd/system/alertmanager.service
[Unit]
Descriptinotallow=Alert Manager
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=root
Group=root
Restart=always
ExecStart=/usr/local/prometheus/alertmanager-0.26.0.linux-amd64/alertmanager 
  --config.file=/usr/local/prometheus/alertmanager-0.26.0.linux-amd64/alertmanager.yml 
  --storage.path=/usr/local/prometheus/alertmanager-0.26.0.linux-amd64/data

[Install]
WantedBy=multi-user.target

通知Systemd重新加载配置文件

$ systemctl daemon-reload

启动alertmanager.service

$ systemctl start alertmanager.service

若启动失败可自行排查journalctl -u alertmanager.service -f

访问地址

应用名称

地址

Alertmanager

http://172.17.137.104:9093/

Alertmanager界面如下

添加Prometheus配置

因为我们安装了Alertmanager,所以需要添加到Prometheus里面

$ vi /usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus.yml

把# - alertmanager:9093修改为localhost:9093

因为我们是装在同一个机器上,所以是localhost,若安装不在同一个机器上请修改为正确IP地址

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          - localhost:9093  /usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus.yml 勾选Inactive

至此,通过二进制安装Prometheus就到此完成!

三、使用Grafana

1. 添加Prometheus数据源

我们可以进入Grafana对监控的内容做一个图形的展示,登入http://172.17.137.104:3000/

图片图片

输入默认用户名admin,默认密码admin,之后会提示你修改密码,然后就成功登入Grafana

图片图片

进入后添加Prometheus的数据源,在Connections里有Data sources,总之找到Data sources即可

图片图片

点击Add data source选择Prometheus,进入配置

在红框处填写Prometheus地址,因为本文部署在本机,所以是localhost,填写完成后滑动页面到最下方,点击Save & test保存和测试

2.导入Grafana仪表盘

下载Grafana仪表盘➥ https://grafana.com/grafana/dashboards/

图片图片

红框框起来的就是我们需要下载的Node Exporter Full,如果首页没有展示的话,可以直接搜索

点击进去,选择Copy ID to clipboard复制ID

图片图片

进入http://172.17.137.104:3000/到Grafana上,选择Dashboards,点击New

选择Import

在红框处粘贴刚刚复制的,其实也就是1860,接着点击LOAD加载

图片图片

可以修改一下名字,在选择下Prometheus点击Import导入即可

图片图片

这样就完成了Grafana对Prometheus数据的展示

四、监控GreatSQL

不建议采用GreatSQL的root用户监控,因为root的权限非常大,所以我们进入GreatSQL先创建一个用于监控的用户

greatsql> CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'GreatSQL@666';
greatsql> GRANT PROCESS,REPLICATION CLIENT,SELECT ON *.* TO 'exporter'@'localhost';

接下来需要安装mysqld_exporter,本文依旧采用二进制方式安装

在https://prometheus.io/download/中找到mysqld_exporter,下载即可

$ wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gz
#验证一下是否下载完整
$ sha256sum mysqld_exporter-0.15.0.linux-amd64.tar.gz
$ tar -xvf mysqld_exporter-0.15.0.linux-amd64.tar.gz

创建一个连接数据库的文件.mysqld_exporter.cnf

$ vi /usr/local/prometheus/mysqld_exporter-0.15.0.linux-amd64/.mysqld_exporter.cnf
#填入以下内容即可
[client]
user=exporter
password=GreatSQL@666
host=localhost
port=3306

创建 Systemd 服务

$ vi /lib/systemd/system/mysqld_exporter.service
[Unit]
Descriptinotallow=Prometheus GreatSQL
After=network.target

[Service]
Type=simple
User=root
Group=root
Restart=always
ExecStart=/usr/local/prometheus/mysqld_exporter-0.15.0.linux-amd64/mysqld_exporter 
  --config.my-cnf=/usr/local/prometheus/mysqld_exporter-0.15.0.linux-amd64/.mysqld_exporter.cnf 
  --collect.global_status 
  --collect.auto_increment.columns 
  --collect.info_schema.processlist 
  --collect.binlog_size 
  --collect.info_schema.tablestats 
  --collect.global_variables 
  --collect.info_schema.innodb_metrics 
  --collect.info_schema.query_response_time 
  --collect.info_schema.userstats 
  --collect.info_schema.tables 
  --collect.perf_schema.tablelocks 
  --collect.perf_schema.file_events 
  --collect.perf_schema.eventswaits 
  --collect.perf_schema.indexiowaits 
  --collect.perf_schema.tableiowaits 
  --collect.slave_status 
  --collect.perf_schema.replication_group_members 
  --collect.perf_schema.replication_group_member_stats 
  --web.listen-address=0.0.0.0:9104

[Install]
WantedBy=multi-user.target

通知 Systemd 重新加载配置文件

$ systemctl daemon-reload

启动alertmanager.service

$ systemctl start mysqld_exporter.service

若启动失败可自行排查journalctl -u mysqld_exporter.service -f

访问一下看看能否成功http://172.17.137.104:9104

1.添加Prometheus配置

安装完成后还需要添加Prometheus配置,为避免大家打错,这里采用追加写入

$ cat >> /usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus.yml

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论