Prometheus 安装部署监控JMX

系统环境:

系统版本:centos7

Prometheus版本:2.20.1

服务器ip:192.168.0.226

客户端ip:192.168.10.62

一、服务器端系统安装:(192.168.0.226)

1、将下载好的包文件上传到服务器并解压:

cd /usr/local/

rz    #上传包文件

tar -zxvf prometheus-2.20.1.linux-amd64.tar.gz

mv prometheus-2.20.1.linux-amd64 prometheus       #更改目录名

 2、设置目录权限,并加入到systemd服务中

groupadd prometheus
useradd -g prometheus -s /sbin/nologin prometheus
chown -R prometheus:prometheus /usr/local/prometheus/

vim /usr/lib/systemd/system/prometheus.service

chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service

以下为配置prometheus.service文件内容


[Unit]

#Description=Prometheus

Documentation=https://prometheus.io/

#After=network.target

[Service]


#Type=simple

#User=prometheus


ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml

Restart=on-failure

[Install]

WantedBy=multi-user.target

3、修改Prometheus的配置文件(注意配置文件的格式,缩进格式很重要)

vim /usr/local/prometheus/prometheus.yml

- job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']        #监控本机


  - job_name: 'linux-server01'

    scrape_interval: 10s

    static_configs:

      - targets: ['192.168.10.62:9100']         #监控客户机及端口

        labels:

          instance: 192.168.10.62

 4、启动Prometheus服务

systemctl start prometheus

systemctl enable prometheus

 5、浏览器访问测试:

显示已经监测到本机的9090端口。

二、客户端安装 (192.168.10.62)

1、将下载好的包文件上传到服务器并解压:

cd /usr/local/

rz    #上传包文件

tar -zxvf node_exporter-1.0.1.linux-amd64.tar.gz 

mv node_exporter-1.0.1.linux-amd64 node_exporter      #更改目录名

 或者使用yum安装

 curl -Lo /etc/yum.repos.d/_copr_ibotty-prometheus-exporters.repo https://copr.fedorainfracloud.org/coprs/ibotty/prometheus-exporters/repo/epel-7/ibotty-prometheus-exporters-epel-7.repo

yum install node_exporter

2、 设置目录权限,并加入到systemd服务中

groupadd prometheus
useradd -g prometheus -s /sbin/nologin prometheus
chown -R prometheus:prometheus /usr/local/node_exporter
vim /usr/lib/systemd/system/node_exporter.service

以下为配置文件node_exporter.service内容

[Unit]

Description=node_exporter

Documentation=https://prometheus.io/

After=network.target

[Service]

Type=simple

User=prometheus

ExecStart=/usr/local/node_exporter/node_exporter

Restart=on-failure

[Install] 

WantedBy=multi-user.target

3、启动客户端,并设置开机自启。

systemctl enable node_exporter
systemctl start node_exporter  

 4、另外,node_exporter的默认端口是9100/tcp,如果想修改默认端口,可以修改启动参数,然后添加到启动文件中即可。

       到服务端网页上刷新查看客户端状态

 好的,Prometheus的服务端和客户端就已经安装完毕了,下篇文章将介绍,监控图形如何在grafana上炫酷的展示出来。

三、Prometheus监控tomcat服务

tomcat客户端:

1、添加tomcat的监控端口,修改tomcat的配置:/tomcat/bin/catalina.sh文件,添加以下配置。

 2、在tomcat的bin目录下,添加config.yaml文件,添加以下文件内容,对象上方的配置文件内容。


---
lowercaseOutputLabelNames: true
lowercaseOutputName: true
rules:
- pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):'
  name: tomcat_$3_total
  labels:
    port: "$2"
    protocol: "$1"
  help: Tomcat global $3
  type: COUNTER
- pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount):'
  name: tomcat_servlet_$3_total
  labels:
    module: "$1"
    servlet: "$2"
  help: Tomcat servlet $3 total
  type: COUNTER
- pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount):'
  name: tomcat_threadpool_$3
  labels:
    port: "$2"
    protocol: "$1"
  help: Tomcat threadpool $3
  type: GAUGE
- pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):'
  name: tomcat_session_$3_total
  labels:
    context: "$2"
    host: "$1"
  help: Tomcat session $3 total
  type: COUNTER

 不知道为什么,上面的内容添加后,有部分数据项无法监控,所以找到了以下的内容

---
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

 Prometheus服务端:

 1、进入到prometheus.yml配置文件中,添加以下内容,从文件中监控tomcat进程。 

2、在/usr/local/prometheus/目录下新建tomcat.yml文件,指定tomcat客户端的地址及端口。

3、重启Prometheus服务,然后到页面上查看是否已经正常监控;以下为正常状态。

 4、大家可以在grafana中添加监控项,炫酷的显示出来监控效果。

四、监控jmx时,错误及解决

问题:

在添加jmx以后,Prometheus监控提示没有正常up

解决:

因为获取时间超时了,可以把超时时间修改的长一点。打开Prometheus配置文件:prometheus.yml

适当调整超时时间,然后重启Prometheus服务,再进行测试。

猜你喜欢

转载自blog.csdn.net/tiny_du/article/details/108402265