翼度科技»论坛 编程开发 mysql 查看内容

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

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
一、环境介绍

本文环境,以及本文所采用数据库为GreatSQL 8.0.32-24
  1. $ cat /etc/system-release
  2. Red Hat Enterprise Linux Server release 7.9 (Maipo)
  3. $ uname -a
  4. 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
  5. $ ldd --version
  6. 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
  1. $ mkdir /usr/local/prometheus
  2. $ cd /usr/local/prometheus
  3. $ wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
复制代码
下载完成后,用sha256sum校验一下安装包,没问题的话解压即可
  1. $ sha256sum prometheus-2.45.0.linux-amd64.tar.gz
  2. 1c7f489a3cc919c1ed0df2ae673a280309dc4a3eaa6ee3411e7d1f4bdec4d4c5
  3. $ tar xvf prometheus-2.45.0.linux-amd64.tar.gz
复制代码
建议使用systemctld来管理守护进程Prometheus服务
若文件路径或名字和本文不同记得修改
  1. $ vi /lib/systemd/system/prometheus.service
  2. [Unit]
  3. Description=Prometheus server
  4. Documentation=https://prometheus.io/docs/introduction/overview/
  5. After=network-online.target
  6. [Service]
  7. Type=simple
  8. User=root
  9. Group=root
  10. Restart=on-abnormal
  11. ExecStart=/usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus \
  12.   --config.file=/usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus.yml \
  13.   --storage.tsdb.path=/usr/local/prometheus/prometheus-2.45.0.linux-amd64/data \
  14.   --storage.tsdb.retention.time=60d \
  15.   --web.enable-lifecycle
  16. [Install]
  17. WantedBy=multi-user.target
复制代码
使用$ ./prometheus -h 就可以看到帮助信息
通知systemd重新加载配置文件
  1. $ systemctl restart prometheus
  2. # 二选一即可
  3. $ curl -X POST http://localhost:9090/-/reload
复制代码
以下为相关systemd命令
$ systemctl enable prometheus.service # 设置为开机自启动
$ systemctl disable prometheus.service # 如果不想设置为开机自启动,可以关闭
$ systemctl start prometheus.service # 开启服务
$ systemctl status prometheus.service # 查看状态
$ systemctl restart prometheus.service # 重启服务
$ systemctl stop prometheus.service # 停止服务
启动Prometheus server,并查看是否启动成功active (running)
  1. $ systemctl start prometheus.service
  2. $ systemctl status prometheus.service
  3. ● prometheus.service - Prometheus server
  4.    Loaded: loaded (/usr/lib/systemd/system/prometheus.service; disabled; vendor preset: disabled)
  5.    Active: active (running) since 三 2023-09-06 16:14:34 CST; 2s ago
  6.      Docs: https://prometheus.io/docs/introduction/overview/
  7. Main PID: 21472 (prometheus)
  8.    CGroup: /system.slice/prometheus.service
  9.            └─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...
  10. #下方省略
复制代码
若启动失败可自行排查 $ journalctl -u prometheus.service -f
访问地址:
名称地址prometheushttp://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
  1. $ cd /usr/local/prometheus
  2. $ wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz
复制代码
下载完成后,用sha256sum校验一下安装包,没问题的话解压即可
  1. $ sha256sum alertmanager-0.26.0.linux-amd64.tar.gz
  2. abd73e2ee6bf67d3888699660abbecba7b076bf1f9459a3a8999d493b149ffa6
  3. $ tar xvf alertmanager-0.26.0.linux-amd64.tar.gz
复制代码
建议使用Systemd来管理守护进程Alertmanager服务
若文件路径或名字,和下方示例不同记得修改
  1. $ vi /lib/systemd/system/alertmanager.service
  2. [Unit]
  3. Description=Alert Manager
  4. Wants=network-online.target
  5. After=network-online.target
  6. [Service]
  7. Type=simple
  8. User=root
  9. Group=root
  10. Restart=always
  11. ExecStart=/usr/local/prometheus/alertmanager-0.26.0.linux-amd64/alertmanager \
  12.   --config.file=/usr/local/prometheus/alertmanager-0.26.0.linux-amd64/alertmanager.yml \
  13.   --storage.path=/usr/local/prometheus/alertmanager-0.26.0.linux-amd64/data
  14. [Install]
  15. WantedBy=multi-user.target
复制代码
通知systemd重新加载配置文件
  1. $ systemctl restart prometheus
  2. # 二选一即可
  3. $ curl -X POST http://localhost:9090/-/reload
复制代码
启动alertmanager.service
  1. $ systemctl start alertmanager.service
复制代码
若启动失败可自行排查journalctl -u alertmanager.service -f
访问地址
应用名称地址Alertmanagerhttp://172.17.137.104:9093/Alertmanager界面如下

添加Prometheus配置
因为我们安装了Alertmanager,所以需要添加到Prometheus里面
  1. $ vi /usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus.yml
复制代码
把# - alertmanager:9093修改为localhost:9093
因为我们是装在同一个机器上,所以是localhost,若安装不在同一个机器上请修改为正确IP地址
  1. # Alertmanager configuration
  2. alerting:
  3.   alertmanagers:
  4.     - static_configs:
  5.         - targets:
  6.           - localhost:9093 <--修改这里,注意缩进
复制代码
接下来需要安装mysqld_exporter,本文依旧采用二进制方式安装
在[点击此处下载https://prometheus.io/download/中找到mysqld_exporter,下载即可
  1. # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
  2. rule_files:
  3.   - "alert.yml"  <--添加这里,注意缩进2格即可
  4.   # - "first_rules.yml"
  5.   # - "second_rules.yml"
复制代码
创建一个连接数据库的文件.mysqld_exporter.cnf
  1. $ vi /usr/local/prometheus/prometheus-2.45.0.linux-amd64/alert.yml
  2. groups:
  3. - name: Prometheus alert
  4.   rules:
  5.   # 任何实例超过30s无法联系的情况发出告警
  6.   - alert: 服务告警
  7.     expr: up == 0
  8.     for: 30s
  9.     labels:
  10.       severity: critical
  11.     annotations:
  12.       instance: "{{ $labels.instance  }}"
  13.       description: "{{ $labels.job  }} 服务已关闭"
复制代码
创建 Systemd 服务
  1. $ cd /usr/local/prometheus/prometheus-2.45.0.linux-amd64
  2. $ ./promtool check config prometheus.yml
  3. Checking prometheus.yml
  4.   SUCCESS: 1 rule files found
  5. SUCCESS: prometheus.yml is valid prometheus config file syntax
  6. Checking alert.yml
  7.   SUCCESS: 1 rules found
复制代码
通知 Systemd 重新加载配置文件
  1. $ systemctl restart prometheus
  2. # 二选一即可
  3. $ curl -X POST http://localhost:9090/-/reload
复制代码
启动alertmanager.service
  1. $ wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.1.1.linux-amd64.tar.gz
  2. $ tar -zxvf grafana-enterprise-10.1.1.linux-amd64.tar.gz
复制代码
若启动失败可自行排查journalctl -u mysqld_exporter.service -f
访问一下看看能否成功http://172.17.137.104:9104
1.添加Prometheus配置

安装完成后还需要添加Prometheus配置,为避免大家打错,这里采用追加写入
[code]$ cat >> /usr/local/prometheus/prometheus-2.45.0.linux-amd64/prometheus.yml

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具