监控平台Prometheus+Grafana
本篇主要讲解在CentOS环境下进行搭建部署
1、Prometheus
Prometheus是一个开源系统监控和警报工具包,最初是在SoundCloud上构建的。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并澄清项目的治理结构,Prometheus于2016年加入云原生计算基金会,作为继Kubernetes之后的第二个托管项目。
Prometheus将其指标收集并存储为时间序列数据,即指标信息与记录的时间戳一起存储,以及称为标签的可选键值对。
官网地址:
https://prometheus.io/
下载地址:
https://prometheus.io/download/
1、下载
根据服务器系统,下载指定的版本。
例如下载prometheus-2.30.0.linux-amd64.tar.gz
并将已下载的文件上传到服务器上
或者直接输入命令,在服务器上进行下载
wget https://github.com/prometheus/prometheus/releases/download/v2.30.0/prometheus-2.30.0.linux-amd64.tar.gz
2、解压
tar xf prometheus-2.30.0.linux-amd64.tar.gz
3、移动文件夹并命名为prometheus
mv prometheus-2.30.0.linux-amd64 /usr/local/prometheus
4、跳转到prometheus文件夹
cd /usr/local/prometheus
目录文件:
5、prometheus.yml文件详解
# 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、查看版本
./prometheus --version
7、后台启动
./prometheus &
1、浏览器访问
浏览器访问 http://服务器ip地址(端口默认9090)
Alerts:可以看到自定义的告警规则。
Graph:按查询条件进行数据查询,并生成指定图形。
Status:可以查看配置信息、规则、节点目标等,其中Targets表示本地和远端的监控,可以查看各节点运行情况。
2、查看监控目标
默认监控本地主机,可以通过http://服务器IP:9090/metrics查看监控数据
监控数据
进入图形,添加面板
例如输入process_cpu_seconds_total,查看CPU指标
支持关键字查询
指标项选项
点击执行,切换到图形
监控CPU使用情况
监控远程Linux主机
1、下载
需要在远程Linux主机上安装node_exporter组件,用来Prometheus服务端收集远程主机上的数据。
根据服务器系统,下载指定的版本。
例如下载node_exporter-1.2.2.linux-amd64.tar.gz
并将已下载的文件上传到服务器上
或者直接输入命令,在服务器上进行下载
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
2、解压
tar xf node_exporter-1.2.2.linux-amd64.tar.gz
3、将解压后的文件夹重命名为node_exporter
mv node_exporter-1.2.2.linux-amd64 node_exporter
4、跳转到node_exporter文件夹
cd node_exporter/
目录文件:
5、后台启动
nohup ./node_exporter &
6、查看9100端口
lsof -i:9100
7、查看监控信息
可以通过http://IP:9100/metrics查看监控主机指标数据
8、配置Prometheus服务端,拉取远程主机节点信息
跳转到prometheus文件夹
cd /usr/local/prometheus
编辑文件prometheus.yml
vim prometheus.yml
在文件内容后添加如下内容,之后保存即可。
- job_name: 'agent'
static_configs:
- targets: ['10.XXX.XXX.5:9100']
9、重启Prometheus服务
pkill prometheus
ss -nltup | grep 9090
./prometheus &
查看Prometheus服务状态
ss -naltp |grep 9090
10、浏览器访问
http://服务器IP:9090/targets
可以看到增加了一台监控信息
可以看到监控两台信息(本地主机+远端主机)
例如输入process_cpu_seconds_total,查看CPU指标。
监控远程Linux主机上的数据库
1、下载
需要在远程Linux主机上安装mysqld_exporter组件,用来Prometheus服务端收集远程主机上的数据库数据(例如MySQL)。
根据服务器系统,下载指定的版本。
例如下载mysqld_exporter-0.13.0.linux-amd64.tar.gz
并将已下载的文件上传到服务器上
或者直接输入命令,在服务器上进行下载
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0.linux-amd64.tar.gz
2、解压
tar xf mysqld_exporter-0.13.0.linux-amd64.tar.gz
3、将解压后的文件夹重命名为mysqld_exporter
mv mysqld_exporter-0.13.0.linux-amd64 mysqld_exporter
4、跳转到mysqld_exporter文件夹
cd mysqld_exporter/
目录文件:
5、创建数据库帐户
注:MySQL数据库已安装并配置完成
(1)登录数据库
mysql -uroot -p
(2)创建帐户(例如mysql_monitor)
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配置信息)
vim .my.cnf
添加内容如下:
[client]
user=mysql_monitor
password=123456
之后保存即可。
7、后台启动
nohup ./mysqld_exporter --config.my-cnf=/root/mysqld_exporter/.my.cnf &
8、查看9104端口
lsof -i:9104
9、查看监控信息
可以通过http://IP:9104/metrics查看监控数据库指标数据
10、配置Prometheus服务端,拉取远程主机上的数据库(MySQL)节点信息
跳转到prometheus文件夹
cd /usr/local/prometheus
编辑文件prometheus.yml
vim prometheus.yml
在文件内容后添加如下内容,之后保存即可。
- job_name: 'mysql'
static_configs:
- targets: ['10.XXX.XXX.5:9104']
11、重启Prometheus服务
pkill prometheus
ss -nltup | grep 9090
./prometheus &
查看Prometheus服务状态
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
1、安装
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、配置
vim /etc/grafana/grafana.ini
3、启动与查看状态
(1)启动
systemctl start grafana-server.service
(2)查看状态
systemctl status grafana-server.service
如图所示:已启动
4、访问登录
打开浏览器,访问地址http://IP:3000,出现如下界面,说明Grafana服务启动成功。
输入用户名和密码,均为“admin”,登录即可。
注:如果无法访问,检查一下防火墙设置。
解决方法:
方式一(关闭防火墙)
systemctl stop firewalld
方式二(开启防火墙,添加开放的端口)
(1)开启防火墙
systemctl start firewalld
(2)添加开放端口(例如端口3000)
firewall-cmd --zone=public --add-port=3000/tcp --permanent
(3)更新防火墙规则
firewall-cmd --reload
防火墙相关命令:
systemctl start firewalld
systemctl stop firewalld
systemctl status firewalld.service
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
登陆Grafana。
创建数据源。
方式一:首页直接点击数据源
方式二:左侧选择配置-数据源
选择Prometheus作为数据源。
填写配置信息:
Name:自定义名称
URL:当Prometheus和Grafana安装到同一台服务器上,可写localhost
之后点击保存即可。
创建仪表板。
方式一:首页直接点击仪表板
方式二:左侧选择创建-仪表板
新增面板区域。
之后点击Add an empty panel,添加一个空面板,并根据实际情况配置仪表板。
设置数据源,添加不同的指标,之后保存即可。
仪表板创建完成。
官方模板库
https://grafana.com/grafana/dashboards
按条件进行搜索,点击进入第一个模板。
点击Download JSON,下载此模板的Json文件。
打开Grafana,点击Import。
选择已下载完成的模板Json文件。
填写配置(仪表板名、选择数据源等)后,点击Import即可。
仪表板创建完成。
监控效果图:
本文分享自 AllTests软件测试 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!