Grafana是一个跨平台、开源的度量剖析和可视化工具,能够通过对接各种数据源并作可视化展现。

Prometheus是驰名开源监控我的项目,其监控工作由具体的exporter实现,exporter到指标端抓取监控数据,保留在TSDB时序数据库中。Prometheus也反对PromQL查询语言进行自定义的查问组合。

openGauss/MogDB数据库能够通过opengauss_exporter完满适配Grafana及Prometheus。

上面是效果图:

上面在麒麟ARM测试环境下演示部署过程,x86环境须要替换相干下载安装包。

1Prometheus部署

1.1. 安装包下载
软件下载地址:https://prometheus.io/download/

下载文件prometheus-2.31.1.linux-arm64.tar.gz

1.2. 创立prometheus用户

# useradd prometheus# password prometheus

1.3. 创立prometheus相应目录并解压安装包

# mkdir /appdata/prometheus# mkdir /appdata/prometheus/etc# mkdir /appdata/prometheus/log# mkdir /appdata/prometheus/data# tar -zxvf prometheus-2.31.1.linux-arm64.tar.gz -C /appdata/prometheus# chown -R prometheus: /appdata/prometheus# chmod -R 755 /appdata/prometheus

1.4. 应用prometheus用户查看装置版本

$ /appdata/prometheus/prometheus-2.31.1.linux-arm64/prometheus --version

1.5. 应用prometheus用户编辑配置文件

$ vi /appdata/prometheus/etc/prometheus.yml

内容如下:

# my global configglobal:  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.  # scrape_timeout is set to the global default (10s).# Alertmanager configurationalerting:  alertmanagers:  - static_configs:    - targets:# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.rule_files:  # - "first_rules.yml"  # - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.scrape_configs:  - job_name: 'prometheus'    static_configs:    - targets: ['x.x.x.x:50090']

1.6. 应用root用户配置prometheus开机启动

# vi /usr/lib/systemd/system/prometheus.service

内容如下:

[Unit]Description= PrometheusAfter=network.target[Service]Type=simpleUser=prometheusExecStart=/appdata/prometheus/prometheus-2.31.1.linux-arm64/prometheus --web.listen-address="0.0.0.0:50090" --config.file=/appdata/prometheus/etc/prometheus.yml --storage.tsdb.path=/appdata/prometheus/dataExecReload=/bin/kill -HUP $MAINPIDRestart=on-failure[Install]WantedBy=multi-user.target

启动服务:

# systemctl daemon-reload# systemctl enable prometheus# systemctl start prometheus

1.7. 应用web浏览器测试prometheus服务
关上 http://x.x.x.x:50090/ 如下图所示,阐明prometheus服务失常。

2node_exporter部署

2.1. 安装包下载
软件下载地址:https://github.com/prometheus...

下载文件node_exporter-1.2.2.linux-arm64.tar.gz

2.2. 应用root用户解压安装包
root用户解压安装包到prometheus用户,测试环境部署在prometheus用户下。

# tar -zxvf node_exporter-1.2.2.linux-arm64.tar.gz -C /appdata/prometheus/# chown -R prometheus: /appdata/prometheus/node_exporter-1.2.2.linux-arm64

2.3. 应用prometheus用户查看装置版本

$ /appdata/prometheus/node_exporter-1.2.2.linux-arm64/node_exporter --version

2.4. 应用root用户配置node_exporter开机启动

# vi /usr/lib/systemd/system/node_exporter.service

内容如下:

[Unit]Description= node exporterAfter=network.target[Service]Type=simpleUser=prometheusExecStart=/appdata/prometheus/node_exporter-1.2.2.linux-arm64/node_exporter --web.listen-address=":9100" --no-collector.softnetExecReload=/bin/kill -HUP $MAINPIDRestart=on-failure[Install]WantedBy=multi-user.target# systemctl daemon-reload# systemctl enable node_exporter# systemctl start node_exporter

2.5. 查看node_exporter服务
# systemctl status node_exporter
2.6. prometheus配置exporter
prometheus配置文件prometheus.yml减少上面的内容:

  - job_name: 'node_exporter'    static_configs:    - targets: ['110.128.131.16:9100']

2.7. 应用root用户重启prometheus服务
`# systemctl restart prometheus
`

3opengauss_exporter部署

3.1. 安装包下载
下载地址:https://github.com/enmotech/o...

下载文件node_exporter-1.2.2.linux-arm64.tar.gz

3.2. 应用root用户解压安装包
root用户解压安装包到prometheus用户,测试环境部署在prometheus用户下。

# unzip opengauss_exporter_0.0.9_linux_arm64.zip -d /appdata/prometheus/opengauss_exporter# chown -R prometheus: /appdata/prometheus/opengauss_exporter

3.3. 应用prometheus用户查看装置版本

$ /appdata/prometheus/opengauss_exporter/opengauss_exporter --version

3.4. 上传yaml文件
文件寄存门路:/appdata/prometheus/opengauss_exporter

批改权限:

# chown prometheus: queries.yaml
3.5. MogDB数据库端配置
3.5.1. 创立监控用户
明码复杂度要合乎数据库的要求,默认要求大小写+特殊字符,不少于8位。

$ gsql -Uomm postgres -rCREATE USER db_exporter WITH PASSWORD 'XXXXXXXX' MONADMIN;grant usage on schema dbe_perf to db_exporter;grant select on pg_stat_replication to db_exporter;

3.5.2. 配置pg_hba.conf
以md5的加密形式增加mogdbmonitor监控机白名单。

$ gs_guc set -I all -N all -h "host postgres db_exporter 110.128.131.16/32 md5"

3.6. 应用root用户配置服务开机启动

# vi /usr/lib/systemd/system/mogdb_exporter.service

内容如下:

[Unit]Description=Prometheus MogDB Exporter Server[Service]User=prometheusEnvironment="DATA_SOURCE_NAME=postgresql://db_exporter:password@ip:port/postgres?sslmode=disable"ExecStart=/appdata/prometheus/opengauss_exporter/opengauss_exporter --web.listen-address=":51007" --config="/appdata/prometheus/opengauss_exporter/queries.yaml"[Install]WantedBy=multi-user.target

启动服务:

# systemctl daemon-reload# systemctl enable mogdb_exporter# systemctl start mogdb_exporter

3.7. 查看exporter服务
# systemctl status mogdb_exporter

3.8. prometheus配置exporter
prometheus配置文件prometheus.yml减少上面的内容:

    - job_name: ' mogdb_exporter '    static_configs:        - targets: ['110.128.131.16: 51007']

3.9. 应用root用户重启prometheus服务
# systemctl restart prometheus

4Grafana部署

4.1. 安装包下载
下载地址:https://grafana.com/grafana/d...

下载文件grafana-enterprise-8.2.4.linux-arm64.tar.gz

4.2. 应用root用户解压安装包
root用户解压安装包到prometheus用户,测试环境部署在prometheus用户下。

# tar -zxvf grafana-enterprise-8.2.4.linux-arm64.tar.gz -C /appdata/prometheus/# chown -R prometheus: /appdata/prometheus/grafana-8.2.4

4.3. 应用prometheus用户查看装置版本

$ /appdata/prometheus/grafana-8.2.4/bin/grafana-server -v

4.4. 应用prometheus用户配置grafana

$ vi /appdata/prometheus/grafana-8.2.4/conf/defaults.ini

例如批改http_port = 51009、批改内置数据库3306端口等。

4.5. 应用root用户配置服务开机启动

# vi /usr/lib/systemd/system/grafana.service

内容如下:

[Unit]Description=Grafana Server[Service]User=prometheusExecStart=/appdata/prometheus/grafana-8.2.4/bin/grafana-server -homepath /appdata/prometheus/grafana-8.2.4/ -config /appdata/prometheus/grafana-8.2.4/conf/defaults.ini [Install]WantedBy=multi-user.target

启动服务:

# systemctl daemon-reload# systemctl enable grafana.service# systemctl start grafana.service

4.6. 查看grafana服务状态
# systemctl status grafana.service

4.7. 应用web浏览器测试grafana
关上 http://x.x.x.x:51009/ ,默认账号:admin,默认明码:admin

而后配置prometheus,加载dashboard即可。

对于作者
彭冲,云和恩墨PG技术顾问,网名“多米爸比”,PG社区认证专家,中国首期PostgreSQL ACE Partner,多年从事基于PostgreSQL数据库的软件研发,擅长于PL/PGSQL业务迁徙及优化,Oracle到PostgreSQL的迁徙降级,异构数据库整合;作为墨天轮PostgreSQL实际专栏作者,热衷于PostgreSQL实际技术分享,在本人的岗位踊跃推广PostgreSQL,致力为PG社区多做贡献。