Grafana+Prometheus安装文档 ——基于 RPM 的 Linux(CentOS、Fedora、OpenSuse、Red Hat)上安装
文章目录
- Grafana+Prometheus安装文档 ——基于 RPM 的 Linux(CentOS、Fedora、OpenSuse、Red Hat)上安装
- 工具版本
- 一、下载安装配置Grafana
- 1.下载Grafana
- 2.安装Grafana
- 3.启动服务器
- 4.默认配置
- 5.登录
- 二、下载安装配置node_exporter节点导出器
- 1.下载node_exporter
- 2.安装node_exporter
- 三、下载安装配置JMX Exporter
- 1.下载
- 2.运行
- 四、配置Prometheus
- 1、安装 Prometheus
- 2、在 Grafana Explore 视图中检查 Prometheus 指标
- 五、监控jvm相关配置
- 1、配置jmx_exporter
- 2、配置Prometheus
- 采集每台服务器node exporter监控数据
- 六、在Grafana上配置Prometheus数据源并创建仪表盘
- 七、多台服务器部署监控
- 1、在所监控的服务器上安装**node_exporter**与 **jmx**
- 2、修改配置
- 采集每台服务器node exporter监控数据
工具版本
jmx_prometheus_javaagent-0.16.1.jar
grafana-enterprise-8.3.3-1.x86_64
node_exporter-1.3.1.linux-amd64
prometheus-2.32.1.linux-amd64
仪表盘官网 https://grafana.com/grafana/dashboards/8563
一、下载安装配置Grafana
1.下载Grafana
linux环境下输入命令:wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.3-1.x86_64.rpm
需要选择对应的版本。
2.安装Grafana
在linux系统输入: sudo yum install grafana-enterprise-8.3.3-1.x86_64.rpm
在安装过程中需要下载相关依赖 输入:y
3.启动服务器
可以选择systemd
、init.d
、binary
方式启动
我是用了init.d
方法启动服务器
要启动服务并验证服务是否已启动:
启动:sudo service grafana-server start
查看状态:sudo service grafana-server status
停止: sudo service grafana-server stop
重启: sudo service grafana-server restart
将 Grafana 服务器配置为在开机时启动:sudo /sbin/chkconfig --add grafana-server
4.默认配置
安装二进制文件到 /usr/sbin/grafana-server
将 init.d 脚本复制到 /etc/init.d/grafana-server
将默认文件(环境变量)安装到 /etc/sysconfig/grafana-server
将配置文件复制到 /etc/grafana/grafana.ini
安装 systemd 服务(如果 systemd 可用)名称 grafana-server.service
默认配置使用日志文件在 /var/log/grafana/grafana.log
默认配置指定一个 sqlite3 数据库在 /var/lib/grafana/grafana.db
5.登录
默认:
网址 http://localhost:3000/login
账号:admin
密码:admin
初次登录会提示修改密码。
二、下载安装配置node_exporter节点导出器
1.下载node_exporter
2.安装node_exporter
tar -xvfz node_exporter-1.3.1.linux-amd64.tar.gz
cd node_exporter-1.3.1.linux-amd64
./node_exporter
会看到这样的输出,表明节点导出器现在正在运行并在端口 9100
上公开指标:
INFO[0000] Starting node_exporter (version=0.16.0, branch=HEAD, revision=d42bd70f4363dced6b77d8fc311ea57b63387e4f) source="node_exporter.go:82"
INFO[0000] Build context (go=go1.9.6, user=root@a67a9bc13a69, date=20180515-15:53:28) source="node_exporter.go:83"
INFO[0000] Enabled collectors: source="node_exporter.go:90"
INFO[0000] - boottime source="node_exporter.go:97"
...
INFO[0000] Listening on :9100 source="node_exporter.go:111"
可通过访问 http://localhost:9100/metrics 来验证是否正在导出指标.或者执行以下命令
curl http://localhost:9100/metrics
三、下载安装配置JMX Exporter
1.下载
因为使用的是jdk8,所以需要下载以下jar包:
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.16.1/jmx_prometheus_javaagent-0.16.1.jar
2.运行
下载jar包之后,只需输入以下命令(config.yml为自己配置的yml文件,在监控jvm相关配置里配置,yourJar.jar为需要代理的jar文件):
官网命令:java -javaagent:/export/grafana/jmx/jmx_prometheus_javaagent-0.16.1.jar=3010:config.yml -jar yourJar.jar
根据需要修改之后:nohup java -javaagent:/export/grafana/jmx/jmx_prometheus_javaagent-0.16.1.jar=3010:/export/grafana/jmx/simple-config.yml -jar demo1-0.0.1-SNAPSHOT.jar &
四、配置Prometheus
1、安装 Prometheus
tar -xvfz prometheus-2.32.1.linux-amd64.tar.gz
开启Prometheus:
./prometheus --config.file=prometheus.yml &
由于Prometheus默认端口9090被占用 ,需要修改默认端口
在prometheus.yml文件中 修改端口号为9101;
并运行如下命令,通过9101端口监听并开始热启动:
nohup ./prometheus --web.enable-admin-api --web.enable-lifecycle --config.file=prometheus.yml --web.listen-address=:9101 &
启动热启动:
curl -XPOST http://localhost:9090/-/reload
查看所有命令行参数:
./prometheus -h
使用参数详解:
–config.file=“prometheus.yml” 用于选择Prometheus的运行配置文件
–web.listen-address=“0.0.0.0:9090” 用于监听UI、API、和数据的地址–web.enable-lifecycle 开启热启动,可通过http请求来关机和重启
–web.enable-admin-api 设置管理控制操作的api端点
2、在 Grafana Explore 视图中检查 Prometheus 指标
通过访问 http://localhost:9090,图页面:/graph ,metrics页面: /metric
可以查看到监控的相关视图信息。
五、监控jvm相关配置
1、配置jmx_exporter
在jmx目录下创建一个simple-config.yml(名字可以随意起)文件,并在其中添加配置
---
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
blacklistObjectNames: []
rules:
- pattern: 'java.lang<type=OperatingSystem><>(committed_virtual_memory|free_physical_memory|free_swap_space|total_physical_memory|total_swap_space)_size:'
name: os_$1_bytes
type: GAUGE
attrNameSnakeCase: true
- pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
name: os_$1
type: GAUGE
attrNameSnakeCase: true
如下为所使用配置相关介绍:
名称 描述
lowercaseOutputName
是否把指标名称转换为小写,默认为false。lowercaseOutputLabelNames
是否把标签名称转换为小写,默认为falserules
一个按顺序引用的规则列表,处理过程会在第一条规则匹配上时停止。未匹配上的atrributes则不会被收集。默认以默认格式收集所有指标pattern
匹配每一个bean attribute(属性)的正则样式。该样式不是锚定的。可以设置正则捕获组用与其他配置项(如上面的样例name
: cassandra_$1_$2)。默认匹配所有格式。 name 指标名。可以引用pattern
中设置的捕获组。如果没有指定则使用默认格式。如果为空,此attribute的处理会停止且没有输出。value
指标值。静态值和引用pattern捕获组均可。如果没指定则抓取mBean attribute对应的value值。labels
标签名:标签值 形式的键值对。可引用捕获组。使用时必须配置 name 项。如果没有指定并且没有使用默认格式,则不会输出标签。whitelistObjectNames
查询对象白名单,默认是所有mBeans对象。不在白名单则不会被查询。支持正则匹配。blacklistObjectNames
查询对象黑名单,默认无。支持正则匹配。attrNameSnakeCase
将attribute名称 转换为蛇形格式。例如 anAttrName 转换为an_attr_name。默认为false
2、配置Prometheus
修改prometheus.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:9101"]
采集每台服务器node exporter监控数据
- job_name: 'node'
static_configs:
- targets: ['192.168.4.249:9100','localhost:9100']
#JMX jmx监控的进程
- job_name: 'jvmmonitor'
static_configs:
- targets: ['localhost:3010']
labels:
instance: jvmmonitor1
- targets: ['localhost:3011']
labels:
instance: jvmmonitor2
- targets: ['192.168.4.249:3010']
labels:
instance: jvmmonitor3
- targets: ['192.168.4.249:3011']
labels:
instance: jvmmonitor4
启动热启动:
curl -XPOST http://localhost:9090/-/reload
六、在Grafana上配置Prometheus数据源并创建仪表盘
仪表盘配置,在Grafana界面上create ->import
在官网https://grafana.com/grafana/dashboards/8563导入JVM dashboard,输入8563
七、多台服务器部署监控
1、在所监控的服务器上安装node_exporter与 jmx
在需要监控的服务器上下载安装配置 node_exporter 与 jmx即可
可查看安装步骤二、三
在监控服务器上安装Grafana、Prometheus即可
2、修改配置
在监控服务器的Prometheus.yml
进行修改,加入所监控的node_exporter与 jmx的ip与端口信息(并通过label标签对每个监控的进程进行备注,方便查看):
采集每台服务器node exporter监控数据
- job_name: 'node'
static_configs:
- targets: ['192.168.4.249:9100','localhost:9100']
#JMX jmx监控的进程
- job_name: 'jvmmonitor'
static_configs:
- targets: ['localhost:3010']
labels:
instance: jvmmonitor1
- targets: ['localhost:3011']
labels:
instance: jvmmonitor2
- targets: ['192.168.4.249:3010']
labels:
instance: jvmmonitor3
- targets: ['192.168.4.249:3011']
labels:
instance: jvmmonitor4