prometheus+grafana监控平台搭建

1、安装prometheus(监控系统和时间序列数据库)

下载地址:https://prometheus.io/download/

选取对应版本:

#上传到服务器并解压
tar -zxvf prometheus-2.28.1.linux-amd64.tar.gz
#运行prometheus
cd prometheus-2.28.1.linux-amd64
./prometheus --config.file=prometheus.yml

prometheus.yml配置说明

#Prometheus全局配置
global:
  scrape_interval: 15s  #采集数据间隔,默认15秒。该配置可配置在每个job_name中
  evaluation_interval: 15s  #监控规则评估频率,比如设置了内存使用大于70%发出报警的规则,然后每15秒来执行一次这个规则
 
#Prometheus告警设置
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
#监控配置
scrape_configs:
  - job_name: 'prometheus-server'  #定义一个监控组,其下可以有多个实例配置
    static_configs:
    - targets: ['localhost:9090']  #节点的地址,可以写多个地址
  - job_name: 'www_server'  #定义另一个监控组
    static_configs:
    - targets: ['10.160.2.107:9100','192.168.1.100:9100']  #组内多个被监控主机
      labels:  #自定义标签,可以通过标签对查询数据进行分组管理
      idc:beijing  #将上面2个主机打上idc标签,值为beijing
#   params:  #过滤器
#     collect[]:
#       - cpu #只采集CPU数据
####使用正则替换标签
#  - job_name: 'mysql_node'
#    static_configs:
#    - targets: ['10.160.2.110:9100','192.168.1.111:9100']
#    metric_relable_configs:  #通过正则重命名标签
#    - action: replace  #replace替换是默认动作。此外还有keep(只采集匹配标签的实例)、drop(不采集匹配正则的实例)、labelkeep\labeldrop(对标签进行过滤处理而非实例)等动作
#      source_labels: ['job']  #原标签,job是默认就会产生的标签,这里job标签的值是mysql_node
#      regex: (.*)  #正则匹配,这里匹配job标签内的内容,也就是node
#      replacement: beijing  #替换成什么内容,如果写$1就是将正则里的内容拿过来
#      target_label: idc  #把替换到的内容赋值给idc标签
#    - action: labeldrop  #删除标签
#      regex: job  #把原有的job标签删除不显示
访问prometheus,浏览器输入http://ip:9090

2、安装grafana

下载地址:https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1

 

上传到服务器并解压(也可以直接在服务器直接执行上图命令)
rpm -ivh grafana-8.0.6-1.x86_64.rpm
或 yum install grafana-8.0.6-1.x86_64.rpm
启动grafana
systemctl start grafana-server

浏览器输入http://ip:30000

 配置数据源:

 添加模板:

1、系统监控:8919、9276

2、jvm监控:8563

3、mysql数据监控:7362

3、安装node_exporter

下载地址:https://prometheus.io/download/

选取对应版本:

上传到服务器并解压
tar -zxvf node_exporter-1.2.0.linux-amd64.tar.gz

启动node_exporter
cd node_exporter
./node_exporter

浏览器输入http://ip:9100/metric

 

 

回到prometheus服务器的配置文件里添加被监控机器的配置段

在主配置文件最后面添加被监控主机信息
[root@server ~]# vim /prometheus/prometheus.yml 

  - job_name: 'prometheus001'      # 给被监控主机取个名字,我这里直接填的IP
    static_configs:
    - targets: ['192.168.0.78:9100']      # 这里填写被监控主机的IP和端口

  - job_name: 'prometheus002'
    static_configs:
    - targets: ['192.168.0.123:9100']

有多少台被监控主机就照格式添加在后面好了,我这里监控了105/115两台主机

 4、监控mysql

下载地址:https://prometheus.io/download/

选取对应版本:

安装
tar zxvf mysqld_exporter-0.14.0.linux-amd64.tar.gz 

创建mysql配置文件、运行时可免密码连接数据库:vi /opt/Prometheus/mysql_exporter/.my.cnf
[client]
user=root
password=123456
port=3337

启动exporter客户端
./mysqld_exporter --config.my-cnf=.my.cnf
网站查看捕获mysql数据
访问:http://192.168.0.113:9104/metrics

使用prometheus监控修改监控端配置文件:vi prometheus.yml

 

 5、监控jvm

下载地址:https://github.com/prometheus

选取对应版本:

 

 

 配置config.yaml

[root@master-node prometheus]#vi config.yaml
wercaseOutputLabelNames: 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

监控tomcat配置

被测服务器: jmx_xxx.jar   tomcat.yml
方到tomcat的bin文件夹
# 修改bin/catalina.sh 文件
# 添加:
JAVA_OPTS="-javaagent:./jmx_prometheus_javaagent-0.16.1.jar=8585:./tomcat.yml"

监控微服务JVM

java -javaagent:./jmx_prometheus_javaagent-0.16.1.jar=8585:config.yaml -jar yourJar.jar
网站查看捕获jvm数据
访问:http://192.168.0.102:8585/metrics

Prometheus配置修改 修改prometheus.yml文件

 

posted on 2021-05-14 15:52  uestc2007  阅读(89)  评论(0编辑  收藏  举报

导航