注册
【与达梦同行】监控系列(一)Dm8+Prometheus+Grafana搭建
技术分享/ 文章详情 /

【与达梦同行】监控系列(一)Dm8+Prometheus+Grafana搭建

卖女孩的小废柴 2022/12/11 4506 2 1

文章地址

dm+prometheus+grafana的地址,请跳转到链接查看
监控系列(一)Dm8+Prometheus+Grafana搭建
监控系列(二)Dem对接Prometheus+grafana显示
监控系列(三)自定义DM采集项(exporter)+主机监控+grafana展示
监控系列(四)Prometheus的自定义配置DM的告警监控项(短信/邮件)
监控系列(五)利用半自动部署工具十分钟搞定达梦与prometheus监控部署

一、背景

近期进行适配,因用户统一监控平台使用的是promethesu+grafana+altermannger这一套,因此对达梦数据库进行适配对接。
目前主要有两种方式:

  1. 部署Dem管理系统对外提供接口推送到prometheus进行采集数据,采集项可查看《Dem手册》9.1.4 管理 prometheus 监控数据的接口
  2. 根据需求手写采集的指标项并推送到prometheus进行采集数据,grafama效果如图所示:
    image.png
    image.png
    image.png
    接下来一系列文章会从各个组件的搭建、如何自定义采集项exporter组件(源码)、手动/自动推送数据、邮件告警、短信告警、自动化部署脚本、注意事项等分为多篇文章。

二、相关组件概念

1. prometheus介绍

Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库(TSDB)的组合。它受启发于 Google 的 内部的监控系统,由工作在 SoundCloud 的前 google 员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。
2016 年,doker容器化部署兴起,Prometheus 正式加入 Cloud Native Computing Foundation(CNCF)基金会的项目,成为受欢迎度仅次于 Kubernetes 的项目。2017 年底发布了基于全新存储层的 2.0 版本,能更好地与容器平台、云平台配合。因为kubernetes(俗称k8s)的流行带动了prometheus的发展。

官网:https://prometheus.io/docs/introduction/overview/

Prometheus的基本原理是通过HTTP周期性抓取被监控组件的状态(接口),任意组件只要提供对应的HTTP接口并且符合Prometheus定义的数据格式,就可以接入Prometheus监控。

Prometheus Server负责定时在目标(被监控组件)上抓取Metrics(指标)数据并保存到本地存储里面。Prometheus主要采用了Pull(拉)的方式获取数据,不仅降低客户端的复杂度,客户端只需要采集数据,无需了解服务端情况,而且服务端可以更加方便的水平扩展。
image.png

2. prometheus与zabbix的对比

prometheus:Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库,并且系统每隔一两周就会有一个小版本的更新,而Prometheus与它的“师兄”Kubernetes都自带云原生的光环,天然能够友好协作。

zabbix:Zabbix是由Alexei Vladishev开源的分布式监控系统,是一个企业级的分布式开源监控方案。能够监控各种网络参数以及服务器健康性和完整性的软件。

image.png

3. prometheus丨TSDB时序数据库

时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多纬度的聚合查询等基本功能。

时间序列数据(TimeSeries Data) : 按照时间顺序记录系统、设备状态变化的数据被称为时序数据。应用的场景很多, 如:

  1. 无人驾驶车辆运行中要记录的经度,纬度,速度,方向,旁边物体的距离等等。每时每刻都要将数据记录下来做分析。
  2. 某一个地区的各车辆的行驶轨迹数据
  3. 传统证券行业实时交易数据
  4. 实时运维监控数据等

4. Grafana介绍

grafana 是一款采用 Go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。
下载地址:https://grafana.com/grafana/download
image.png

三、prometheus的安装

1. prometheus下载

下载地址:https://prometheus.io/download/,版本也可使用文章末尾的资料包
根据环境下载对应的版本,x86环境的话用这个prometheus-2.40.5.linux-amd64.tar.gz
image.png

2. prometheus安装

## 1. 更新同步操作系统时间,避免时间误差 [root@VM-24-17-centos opt]# ntpdate edu.ntp.org.cn && hwclock -w ## 2. 新建目录 [root@VM-24-17-centos opt]# mkdir /opt/jiankong/jiankongSoft -p [root@VM-24-17-centos opt]# cd /opt/jiankong/jiankongSoft ## 3. 上传压缩包 并解压 [root@server ~]# tar -zxvf prometheus-2.35.0.linux-amd64.tar.gz -C /opt/jiankong ## 4. 重命名prometheus文件名 [root@localhost jiankongSoft]# cd /opt/jiankong [root@localhost jiankong]# mv prometheus-2.40.5.linux-amd64 prometheus-2.40.5

3. prometheus启动

## 5. 前台启动服务进行测试 [root@VM-24-17-centos opt]# cd /opt/jiankong/prometheus-2.40.5 [root@VM-24-17-centos prometheus-2.35.0]# ./prometheus --config.file="prometheus.yml" ## 5.1(备用)如需更换启动端口添加web.listen-address参数 [root@localhost prometheus-2.40.5]# ./prometheus --config.file="prometheus.yml" --web.listen-address="0.0.0.0:9091" #服务启动默认占用9090端口(文章的话就是用9091端口) [root@server ~]# lsof -i:9090 ## 6.前台测试没有问题后,使用后台启动方式 [root@localhost prometheus-2.40.5]# nohup ./prometheus --config.file="prometheus.yml" --web.listen-address="0.0.0.0:9091" > ./prometheus.log 2>&1 & [1] 30524 ## 7.记得查询进程是否存在 [root@localhost prometheus-2.40.5]# ps -ef|grep prometheus root 30524 29851 0 12:51 pts/1 00:00:00 ./prometheus --config.file=prometheus.yml --web.listen-address=0.0.0.0:9091 root 30534 29851 0 12:51 pts/1 00:00:00 grep prometheus ## 8. 需要停到服务时,kill掉即可

常见错误 err=“listen tcp 0.0.0.0:9090: bind: address already in use”

image.png
这是因为端口被占用,杀掉占用端口的服务或者添加web.listen-address参数调整端口

[root@localhost prometheus-2.40.5]# ./prometheus --config.file="prometheus.yml" --web.listen-address="0.0.0.0:9091"

image.png

4. prometheus使用

通过浏览器访问http://服务器IP:9091就可以访问到prometheus的主界面(默认时9090,此处是9091端口)

http://192.168.145.161:9091/

项目启动后会默认监控了本机,点Status --》点Targets --》可以看到只监控了本机
image.png

采集的信息可以通过http://服务器IP:9091/metrics可以查看到监控的数据 (prometheus本身也会采集本机的信息)
http://192.168.145.161:9091/metrics

image.png

在web主界面可以通过关键字查询监控项

image.png

5. prometheus注册服务(可选)

## 1.编辑服务自启动文件 [root@master1 ~]#vim /lib/systemd/system/prometheus.service ## 提示 这里用的是9091端口 [root@master1 ~]#cat /lib/systemd/system/prometheus.service [Unit] Description=Prometheus Server Documentation=https://prometheus.io/docs/introduction/overview/ After=network.target [Service] Type=simple Restart=on-failure User=root Group=root WorkingDirectory=/opt/jiankong/prometheus-2.40.5/ ExecStart=/opt/jiankong/prometheus-2.40.5/prometheus --web.listen-address="0.0.0.0:9091" --web.read-timeout=5m --web.max-connections=256 --storage.tsdb.retention=15d --storage.tsdb.path=data/ --query.max-concurrency=20 --query.timeout=2m ExecReload=/bin/kill -HUP $MAINPID LimitNOFILE=65535 [Install] WantedBy=multi-user.target #我们需要将定制的prometheus的配置文件和数据目录作为启动参数配置好 #其它的参数,可以基于prometheus --help 查看更多 ## 2. 更新systemd服务信息 [root@master1 ~]# systemctl daemon-reload ## 3. 服务开机自动启动 [root@master1 ~]# systemctl enable --now prometheus.service ## 4.启动服务 [root@master1 ~]# systemctl start prometheus ## 其他的备用命令 [root@master1 ~]# systemctl enable prometheus.service [root@master1 ~]# systemctl stop prometheus.service [root@master1 ~]# systemctl restart prometheus.service [root@master1 ~]# systemctl status prometheus.service [root@master1 ~]# journalctl -u prometheus -f -n 500

四、Grafana的安装

1. Grafanna下载

下载地址:https://grafana.com/grafana/download,版本也可使用文章末尾的资料包
根据环境下载对应的版本,x86环境的话用这个Standalone Linux Binaries(64 Bit)
image.png

2. Grafanna安装

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.3.1.linux-amd64.tar.gz tar -zxvf grafana-enterprise-9.3.1.linux-amd64.tar.gz ## 1. 进入目录 [root@VM-24-17-centos opt]# mkdir /opt/jiankong/jiankongSoft -p [root@VM-24-17-centos opt]# cd /opt/jiankong/jiankongSoft ## 2. 上传压缩包 并解压 [root@server ~]# tar -zxvf grafana-enterprise-9.3.1.linux-amd64.tar.gz -C /opt/jiankong

3. Grafanna启动

## 3. 进入到grafana目录 [root@localhost bin]# cd /opt/jiankong/grafana-9.3.1 ## 4. 启动服务 [root@VM-24-17-centos grafana-9.3.1]# nohup ./bin/grafana-server > ./grafana.log 2>&1 & ## 查看端口默认是3000 [root@server ~]# lsof -i:3000 ## 通过浏览器访问http://IP:3000 ,默认用户名和密码:admin

4. Grafanna注册服务(可选)

1. 编辑配置文件 [root@master1 ~]#vim /lib/systemd/system/grafana_server.service [root@master1 ~]#cat /lib/systemd/system/grafana_server.service [Unit] Description=Grafana After=network.target [Service] Restart=simple ##注意用户 User=root Group=root WorkingDirectory=/opt/jiankong/grafana-9.3.1 ExecStart=/opt/jiankong/grafana-9.3.1/bin/grafana-server ExecReload=/bin/kill -HUP $MAINPID LimitNOFILE=65535 [Install] WantedBy=multi-user.target ## 2. 更新systemd服务信息 [root@master1 ~]# systemctl daemon-reload ## 3. 服务开机自动启动 [root@master1 ~]# systemctl enable --now grafana_server.service ## 4.启动服务 [root@master1 ~]# systemctl start grafana_server ## 其他的备用命令 [root@master1 ~]# systemctl enable grafana_server.service [root@master1 ~]# systemctl stop grafana_server.service [root@master1 ~]# systemctl restart grafana_server.service [root@master1 ~]# systemctl status grafana_server.service [root@master1 ~]# journalctl -u grafana_server -f -n 500

5. 添加prometheus数据源相关联

点击配置,点击 Data Sources:
image.png
点击添加按钮:
image.png
找到 Prometheus,点击 Select
image.png
image.png
image.png
image.png
点击 Back 返回即可,可以看到 Data Sources 页面,出现了添加的 Prometheus:
image.png

资料包

链接:https://pan.baidu.com/s/1lo6AynZBR5JdRZwY_1arbA?pwd=o178 提取码:o178

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服