前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >监控平台Prometheus+Grafana

监控平台Prometheus+Grafana

作者头像
wangmcn
发布2022-07-26 15:18:10
9560
发布2022-07-26 15:18:10
举报
文章被收录于专栏:AllTests软件测试

监控平台Prometheus+Grafana

目录

  • 1、Prometheus
    • 1.1、安装与配置
    • 1.2、查看监控指标
    • 1.3、监控远程主机
    • 1.4、监控数据库
  • 2、Grafana
    • 2.1、安装与配置
    • 2.2、添加数据源
    • 2.3、添加仪表板
    • 2.4、官方仪表板

本篇主要讲解在CentOS环境下进行搭建部署

1、Prometheus

Prometheus是一个开源系统监控和警报工具包,最初是在SoundCloud上构建的。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并澄清项目的治理结构,Prometheus于2016年加入云原生计算基金会,作为继Kubernetes之后的第二个托管项目。

Prometheus将其指标收集并存储为时间序列数据,即指标信息与记录的时间戳一起存储,以及称为标签的可选键值对。

官网地址:

https://prometheus.io/

下载地址:

https://prometheus.io/download/

1.1、安装与配置

1、下载

根据服务器系统,下载指定的版本。

例如下载prometheus-2.30.0.linux-amd64.tar.gz

并将已下载的文件上传到服务器上

或者直接输入命令,在服务器上进行下载

代码语言:javascript
复制
wget https://github.com/prometheus/prometheus/releases/download/v2.30.0/prometheus-2.30.0.linux-amd64.tar.gz

2、解压

代码语言:javascript
复制
tar xf prometheus-2.30.0.linux-amd64.tar.gz

3、移动文件夹并命名为prometheus

代码语言:javascript
复制
mv prometheus-2.30.0.linux-amd64 /usr/local/prometheus

4、跳转到prometheus文件夹

代码语言:javascript
复制
cd /usr/local/prometheus

目录文件:

5、prometheus.yml文件详解

代码语言:javascript
复制
# my global config
# 全局配置
global:
  scrape_interval: 15s # 多久收集一次数据
  evaluation_interval: 15s # 多久评估一次规则
  # scrape_timeout is set to the global default (10s). 每次收集数据的超时时间,默认10秒
 
# 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"]

6、查看版本

代码语言:javascript
复制
./prometheus --version

7、后台启动

代码语言:javascript
复制
./prometheus &

1.2、查看监控指标

1、浏览器访问

浏览器访问 http://服务器ip地址(端口默认9090)

Alerts:可以看到自定义的告警规则。

Graph:按查询条件进行数据查询,并生成指定图形。

Status:可以查看配置信息、规则、节点目标等,其中Targets表示本地和远端的监控,可以查看各节点运行情况。

2、查看监控目标

默认监控本地主机,可以通过http://服务器IP:9090/metrics查看监控数据

监控数据

进入图形,添加面板

例如输入process_cpu_seconds_total,查看CPU指标

支持关键字查询

指标项选项

点击执行,切换到图形

监控CPU使用情况

1.3、监控远程主机

监控远程Linux主机

1、下载

需要在远程Linux主机上安装node_exporter组件,用来Prometheus服务端收集远程主机上的数据。

根据服务器系统,下载指定的版本。

例如下载node_exporter-1.2.2.linux-amd64.tar.gz

并将已下载的文件上传到服务器上

或者直接输入命令,在服务器上进行下载

代码语言:javascript
复制
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz

2、解压

代码语言:javascript
复制
tar xf node_exporter-1.2.2.linux-amd64.tar.gz

3、将解压后的文件夹重命名为node_exporter

代码语言:javascript
复制
mv node_exporter-1.2.2.linux-amd64 node_exporter

4、跳转到node_exporter文件夹

代码语言:javascript
复制
cd node_exporter/

目录文件:

5、后台启动

代码语言:javascript
复制
nohup ./node_exporter &

6、查看9100端口

代码语言:javascript
复制
lsof -i:9100

7、查看监控信息

可以通过http://IP:9100/metrics查看监控主机指标数据

8、配置Prometheus服务端,拉取远程主机节点信息

跳转到prometheus文件夹

代码语言:javascript
复制
cd /usr/local/prometheus

编辑文件prometheus.yml

代码语言:javascript
复制
vim prometheus.yml

在文件内容后添加如下内容,之后保存即可。

代码语言:javascript
复制
- job_name: 'agent'
 
    static_configs:
      - targets: ['10.XXX.XXX.5:9100']

9、重启Prometheus服务

代码语言:javascript
复制
pkill prometheus
ss -nltup | grep 9090
./prometheus &

查看Prometheus服务状态

代码语言:javascript
复制
ss -naltp |grep 9090

10、浏览器访问

http://服务器IP:9090/targets

可以看到增加了一台监控信息

可以看到监控两台信息(本地主机+远端主机)

例如输入process_cpu_seconds_total,查看CPU指标。

1.4、监控数据库

监控远程Linux主机上的数据库

1、下载

需要在远程Linux主机上安装mysqld_exporter组件,用来Prometheus服务端收集远程主机上的数据库数据(例如MySQL)。

根据服务器系统,下载指定的版本。

例如下载mysqld_exporter-0.13.0.linux-amd64.tar.gz

并将已下载的文件上传到服务器上

或者直接输入命令,在服务器上进行下载

代码语言:javascript
复制
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0.linux-amd64.tar.gz

2、解压

代码语言:javascript
复制
tar xf mysqld_exporter-0.13.0.linux-amd64.tar.gz

3、将解压后的文件夹重命名为mysqld_exporter

代码语言:javascript
复制
mv mysqld_exporter-0.13.0.linux-amd64 mysqld_exporter

4、跳转到mysqld_exporter文件夹

代码语言:javascript
复制
cd mysqld_exporter/

目录文件:

5、创建数据库帐户

注:MySQL数据库已安装并配置完成

(1)登录数据库

代码语言:javascript
复制
mysql -uroot -p

(2)创建帐户(例如mysql_monitor)

代码语言:javascript
复制
CREATE USER 'mysql_monitor'@'localhost' IDENTIFIED BY '123456';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysql_monitor'@'localhost';
flush privileges;
exit

6、在mysqld_exporter目录下创建.my.cnf文件(用于设置MySQL配置信息)

代码语言:javascript
复制
vim .my.cnf

添加内容如下:

代码语言:javascript
复制
[client]
user=mysql_monitor
password=123456

之后保存即可。

7、后台启动

代码语言:javascript
复制
nohup ./mysqld_exporter --config.my-cnf=/root/mysqld_exporter/.my.cnf &

8、查看9104端口

代码语言:javascript
复制
lsof -i:9104

9、查看监控信息

可以通过http://IP:9104/metrics查看监控数据库指标数据

10、配置Prometheus服务端,拉取远程主机上的数据库(MySQL)节点信息

跳转到prometheus文件夹

代码语言:javascript
复制
cd /usr/local/prometheus

编辑文件prometheus.yml

代码语言:javascript
复制
vim prometheus.yml

在文件内容后添加如下内容,之后保存即可。

代码语言:javascript
复制
- job_name: 'mysql'
 
    static_configs:
      - targets: ['10.XXX.XXX.5:9104']

11、重启Prometheus服务

代码语言:javascript
复制
pkill prometheus
ss -nltup | grep 9090
./prometheus &

查看Prometheus服务状态

代码语言:javascript
复制
ss -naltp |grep 9090

12、浏览器访问

http://服务器IP:9090/targets

可以看到增加了一台远程主机上的数据库监控信息

可以看到监控数据库信息

例如输入mysql_exporter_scrapes_total,查看MySQL被抓取的总次数

2、Grafana

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。

官网地址:

https://grafana.com/grafana/

下载地址:

https://grafana.com/grafana/download

2.1、安装与配置

1、安装

代码语言:javascript
复制
wget https://dl.grafana.com/oss/release/grafana-8.1.2-1.x86_64.rpm
sudo yum install grafana-8.1.2-1.x86_64.rpm

2、配置

代码语言:javascript
复制
vim /etc/grafana/grafana.ini

3、启动与查看状态

(1)启动

代码语言:javascript
复制
systemctl start grafana-server.service

(2)查看状态

代码语言:javascript
复制
systemctl status grafana-server.service

如图所示:已启动

4、访问登录

打开浏览器,访问地址http://IP:3000,出现如下界面,说明Grafana服务启动成功。

输入用户名和密码,均为“admin”,登录即可。

注:如果无法访问,检查一下防火墙设置。

解决方法:

方式一(关闭防火墙)

代码语言:javascript
复制
systemctl stop firewalld

方式二(开启防火墙,添加开放的端口)

(1)开启防火墙

代码语言:javascript
复制
systemctl start firewalld

(2)添加开放端口(例如端口3000)

代码语言:javascript
复制
firewall-cmd --zone=public --add-port=3000/tcp --permanent

(3)更新防火墙规则

代码语言:javascript
复制
firewall-cmd --reload

防火墙相关命令:

  • 开启防火墙
代码语言:javascript
复制
systemctl start firewalld
  • 关闭防火墙
代码语言:javascript
复制
systemctl stop firewalld
  • 查看防火墙状态
代码语言:javascript
复制
systemctl status firewalld.service
  • 查看已开放的端口
代码语言:javascript
复制
firewall-cmd --list-ports
  • 添加开放端口,例如3000(开放后需要更新规则才能生效)
代码语言:javascript
复制
firewall-cmd --zone=public --add-port=3000/tcp --permanent
  • 更新防火墙规则
代码语言:javascript
复制
firewall-cmd --reload

2.2、添加数据源

登陆Grafana。

创建数据源。

方式一:首页直接点击数据源

方式二:左侧选择配置-数据源

选择Prometheus作为数据源。

填写配置信息:

Name:自定义名称

URL:当Prometheus和Grafana安装到同一台服务器上,可写localhost

之后点击保存即可。

2.3、添加仪表板

创建仪表板。

方式一:首页直接点击仪表板

方式二:左侧选择创建-仪表板

新增面板区域。

之后点击Add an empty panel,添加一个空面板,并根据实际情况配置仪表板。

设置数据源,添加不同的指标,之后保存即可。

仪表板创建完成。

2.4、官方仪表板

官方模板库

https://grafana.com/grafana/dashboards

按条件进行搜索,点击进入第一个模板。

点击Download JSON,下载此模板的Json文件。

打开Grafana,点击Import。

选择已下载完成的模板Json文件。

填写配置(仪表板名、选择数据源等)后,点击Import即可。

仪表板创建完成。

监控效果图:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 1.1、安装与配置
  • 1.2、查看监控指标
  • 1.3、监控远程主机
  • 1.4、监控数据库
  • 2.1、安装与配置
  • 2.2、添加数据源
  • 2.3、添加仪表板
  • 2.4、官方仪表板
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档