赞
踩
随着科技发展,企业业务多样化带来的架构庞大而复杂,致使监控越来越重要。通过监控,我们可以对所研发的服务运行状态进行收集、告警、查看趋势等。
相较于之前,对于硬件监控较多,会选择zabbix,但近几年随着云原生的快速发展,各种应用容器化、微服务流行起来,新一代的监控如Prometheus等应运而生。
俗话说,没有监控的系统就是在裸奔,好的监控就是运维人员的第三只手,第三只眼。本期我们将使用Prometheus及Grafana搭建一套监控系统来监控OpenGauss 数据库(高斯数据库)。
Prometheus是一个开源监控解决方案,用于收集和聚合指标作为时间序列数据。
在Kubernetes容器管理系统中,通常会搭配Prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报。Prometheus性能足够支撑上万台规模的集群。
wget https://github.com/prometheus/prometheus/releases/download/v2.13.0/prometheus-2.13.0.linux-amd64.tar.gz
tar -xf prometheus-2.13.0.linux-amd64.tar.gz
mv prometheus-2.13.0.linux-amd64 /usr/local/
ln -s /usr/local/prometheus-2.13.0.linux-amd64/ /usr/local/prometheus
useradd -s /sbin/nologin -M prometheus
mkdir /data/prometheus -p
nohup ./usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus &
iptables -I INPUT -p tcp --dport 9090 -j ACCEPT
Prometheus 配置文件 promethes.yml 需要更改该配置文件:
# my global config
global:
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 configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# 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:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
#示例:定时pull node探针的数据
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
- job_name: 'opengauss'
static_configs:
- targets: ['localhost:9187']
Grafana 是一款开源的数据可视化工具,使用 Grafana 可以非常轻松的将数据转成图表(如下图)的展现形式来做到数据监控以及数据统计。
wget https://dl.grafana.com/oss/release/grafana-6.4.2.linux-amd64.tar.gz
tar -zxvf grafana-6.4.2.linux-amd64.tar.gz
mv grafana-6.4.2 /usr/local/
ln -s /usr/local/grafana-6.4.2/ /usr/local/grafana
useradd -s /sbin/nologin -M grafana
mkdir /data/grafana
chown -R grafana:grafana /usr/local/grafana/
chown -R grafana:grafana /data/grafana/
修改配置文件 /usr/local/grafana/conf/defaults.ini 文件
将文件内容梗概为以下内容:
data = /data/grafana/data
logs = /data/grafana/log
plugins = /data/grafana/plugins
provisioning = /data/grafana/conf/provisioning
nohup ./usr/local/grafana/bin/grafana-server -homepath /usr/local/grafana &
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
mkdir -p /usr/local/prometheus_exporter
mv node_exporter-0.18.1.linux-amd64 /usr/local/prometheus_exporter/
cd /usr/local/prometheus_exporter/
ln -s node_exporter-0.18.1.linux-amd64/ node_exporter
cd /usr/local/prometheus_exporter/node_exporter/
nohup ./node_exporter >/dev/null 2>&1 &
Node 探针监控端口为 9100,需要更改promethes.yml文件后重启Prometheus才会生效
下载:opengauss_exporter_0.0.9_linux_amd64.zip
官方地址为:https://gitee.com/opengauss/openGauss-prometheus-exporter
unzip opengauss_exporter_0.0.9_linux_amd64.zip
mv opengauss_exporter_0.0.9_linux_amd64 /usr/local/prometheus_exporter/
cd /usr/local/prometheus_exporter/
ln -s opengauss_exporter_0.0.9_linux_amd64/ opengauss_exporter
cd opengauss_exporter
Step 3:设置环境变量
export DATA_SOURCE_NAME="host=数据库Ip地址 user=用户名 password=用户密码 port=数据库端口 dbname=数据库名 sslmode=disable"
Step 4:启动opengauss_exporter探针服务
nohup ./opengauss_exporter &
opengauss_exporter 与 postgres_exporter 探针一样,监听的都是9187端口,需要更改promethes.yml文件重启后才会生效。
访问Prometheus 服务,localhost:9090 ,可以看到三个监听的服务,其中9090为默认的。
访问 Grafana ,localhost:3000;
点击保存并测试后,选择 Dashboards Tab 页,导入 Prometheus 2.0。
选择数据源
成功监控主机状态
完成以上内容,至此,一套完整的监控系统就搭建好了。一起来看看效果吧~ ⬇
监控是在业务开发中必不可少的一部分。
有了监控,就相当于给开发人员装上了眼睛和耳朵,实时的可以对服务运行状况进行监测,以及在系统出现异常时第一时间通知到相关人员以快速处理。
本期我们重点围绕Prometheus与Grafana搭建了一套监控系统,实现监测OpenGauss 数据库。
当然,若在生产环境下实际应用,大家还需借助云平台现有的服务以便降低自己搭建的复杂度。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。