欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Prometheus監(jiān)控Tomcat等java應用的狀態(tài)

 更新時間:2024年12月12日 11:38:46   作者:富士康質(zhì)檢員張全蛋  
本文介紹了如何配置Tomcat監(jiān)控,使用JMX Exporter和Prometheus進行監(jiān)控,并通過Grafana展示監(jiān)控數(shù)據(jù)

5月應用服務出現(xiàn)問題,當別的小伙伴問我,有沒有Tomcat等應用狀態(tài)的監(jiān)控的時候,我有點兒尷尬。所以趕緊抽空部署一下。

在配置之前,就當已經(jīng)會安裝jdk和tomcat了。

一、下載jmx_exporter

#linux下
cd /usr/local/prometheus
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar

二、配置jmx_exporter

其實配置的時候,可以很簡單的寫成下面的格式如下

#vim /usr/local/prometheus/jmx-exporter.yaml
---
rules:
 - pattern: '.*'

不過,個人覺得上面這種配置,可以快速的上手,正式使用的時候,不推薦這樣,因為這樣會導致prometheus收集的指標太多了,對于存儲和網(wǎng)絡都會有些許的影響,特別是手機的主機特別多的時候。

比較推薦官方給的配置,如下:

#官方推薦配置實例:https://github.com/prometheus/jmx_exporter/blob/master/example_configs/tomcat.yml
#將文件下載下來放到下面文件中/usr/local/prometheus/jmx-exporter.yaml

#cat /usr/local/prometheus/jmx-exporter.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

三、配置tomcat

在配置Tomcat的時候,網(wǎng)上很多人給的都是下面這個配置:

修改文件:tomcat/bin/catalina.sh 或者win下修改tomcat/bin/catalina.bat

JAVA_OPTS=" -javaagent:/usr/local/prometheus/jmx_prometheus_javaagent-0.13.0.jar=20000:/usr/local/prometheus/jmx-exporter.yaml"

這個配置在tomcat8中挺好用的,centos6.9版本的tomcat7 和tomcat8 也都挺好用的。

但是centos6.5的tomcat7中,不好用。需要使用下面的配置

]# vim tomcat/bin/catalina.sh 
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/prometheus/jmx_prometheus_javaagent-0.13.0.jar=20000:/usr/local/prometheus/jmx-exporter.yaml";exportCATALINA_OPTS

# for  win
tomcat/bin/catalina.bat

恩,catalina_opts這個,在Tomcat7 和8 中都是好用的。

如果是java -jar的java包的話,啟動命令如下:

java -javaagent:/usr/local/prometheus/jmx_prometheus_javaagent-0.13.0.jar=20000:/usr/local/prometheus/jmx-exporter.yaml -jar yourJar.jar

啟動java應用,然后使用ps -ef |grep java 命令來檢查啟動的java應用中是否有 -javaagent。

如果有就表示正常,如果沒有,請自行排查問題所在,比如路徑不對等。

四、prometheus的配置

我的prometheus使用的是file_sd文件自動發(fā)現(xiàn)。

所以配置如下

  - job_name: "jvm_monitor"
    file_sd_configs:
      - refresh_interval: 30s
        files:
        - ./conf/jvm_monitor/*.json
  - job_name: 'JVM/druid'
    metrics_path: /metrics
    honor_labels: true
    file_sd_configs:
      - files:
        - targets/jvm/druid.yaml

[apps@HZPM004149096 jvm]$ pwd
/data/docker/prometheus/conf/targets/jvm
[apps@HZPM004149096 jvm]$ cat druid.yaml

- labels:
    app: 中運系統(tǒng)
    project: 大運系統(tǒng)
    service: zto-sitefintask-export
    team: 研發(fā)一部
    env: 生產(chǎn)
    developer: 聶青
    maintainer: 陳\綱
  targets:
    - 192.168.17.15:8024

- labels:
    app: 中運系統(tǒng)
    project: 大運系統(tǒng)
    service: zto-fintask-export
    team: 研發(fā)一部
    env: 生產(chǎn)
    developer: 聶綠水青
    maintainer: 陳振綱
  targets:
    - 192.168.72.19:8023

當然了,也可以使用一臺一臺的寫到prometheus配置文件里,如下:

// prometheus.yml 配置文件內(nèi)容
 - job_name: 'jvm_monitor'
    static_configs:
    - targets: ['192.168.1.200:20000']
      labels:
        appname: 'tomcat_xxx'

當這些都配置的時候,重新加載prometheus的配置文件,使配置生效。

五、配置grafana

grafana的dashboards編號是8563,添加到grafana中即可。之后,就完成了tomcat的監(jiān)控,如下圖,稍微做了一點兒調(diào)整。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 使用java實現(xiàn)各種數(shù)據(jù)統(tǒng)計圖(柱形圖,餅圖,折線圖)

    使用java實現(xiàn)各種數(shù)據(jù)統(tǒng)計圖(柱形圖,餅圖,折線圖)

    用Jfree實現(xiàn)條形柱狀圖表,java代碼實現(xiàn)??山?jīng)常用于報表的制作,代碼自動生成后可以自由查看??梢宰杂膳渲脠D表的各個屬性,用來達到自己的要求和目的。本文給大家介紹使用java實現(xiàn)各種數(shù)據(jù)統(tǒng)計圖(柱形圖,餅圖,折線圖),需要的朋友可以參考下
    2015-10-10
  • Spring Boot教程之利用ActiveMQ實現(xiàn)延遲消息

    Spring Boot教程之利用ActiveMQ實現(xiàn)延遲消息

    這篇文章主要給大家介紹了關于Spring Boot教程之利用ActiveMQ實現(xiàn)延遲消息的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-11-11
  • java利用正則表達式處理特殊字符的方法實例

    java利用正則表達式處理特殊字符的方法實例

    這篇文章主要給大家介紹了關于java利用正則表達式處理特殊字符的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Spring框架配置java web實現(xiàn)實例化

    Spring框架配置java web實現(xiàn)實例化

    這篇文章主要介紹了Spring框架配置java web實現(xiàn)實例化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 一篇文章帶你入門java泛型

    一篇文章帶你入門java泛型

    這篇文章主要介紹了java泛型基礎知識及通用方法,從以下幾個方面介紹一下java的泛型: 基礎, 泛型關鍵字, 泛型方法, 泛型類和接口,感興趣的可以了解一下
    2021-08-08
  • Java開發(fā)環(huán)境配置JDK超詳細整理(適合新手入門)

    Java開發(fā)環(huán)境配置JDK超詳細整理(適合新手入門)

    這篇文章主要給大家介紹了關于Java開發(fā)環(huán)境配置JDK超詳細整理的相關資料,非常適合新手入門,JDK是Java語言的軟件開發(fā)工具包,主要用于移動設備、嵌入式設備上的java應用程序,需要的朋友可以參考下
    2023-11-11
  • SpringBoot配置文件密碼加密的三種方案

    SpringBoot配置文件密碼加密的三種方案

    這篇文章主要介紹了SpringBoot配置文件密碼加密的三種方案,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • SpringBoot中使用websocket出現(xiàn)404的解決方法

    SpringBoot中使用websocket出現(xiàn)404的解決方法

    在Springboot中使用websocket時,本地開發(fā)環(huán)境可以正常運行,但部署到服務器環(huán)境出現(xiàn)404問題,所以本文小編講給大家詳細介紹一下SpringBoot中使用websocket出現(xiàn)404的解決方法,需要的朋友可以參考下
    2023-09-09
  • Mybatis order by 動態(tài)傳參出現(xiàn)的問題及解決方法

    Mybatis order by 動態(tài)傳參出現(xiàn)的問題及解決方法

    今天,我正在愉快地CRUD,突然發(fā)現(xiàn)出現(xiàn)一個Bug,我們來看看是怎么回事吧!接下來通過本文給大家介紹Mybatis order by 動態(tài)傳參出現(xiàn)的一個小bug,需要的朋友可以參考下
    2021-07-07
  • idea?與?maven?使用過程中遇到的問題及解決方案

    idea?與?maven?使用過程中遇到的問題及解決方案

    最近將IDEA 升級到 IntelliJ IDEA 2021.3.2,在將maven項目導入IDEA后,maven build時報異常,這個問題是IntelliJ IDEA 2021.3.2 不兼容導致的,下面小編給大家?guī)砹薸dea?與?maven?使用過程中遇到的問題及解決方案,感興趣的朋友一起看看吧
    2022-05-05

最新評論