ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Prometheus监控tomcat

2021-09-19 15:04:58  阅读:310  来源: 互联网

标签:tomcat local prometheus Prometheus 监控 node1 node2 root


节点配置说明

node1节点安装Prometheus
node2节点安装tomcat


node1/192.168.1.111/2G/2U/80G
node2/192.168.1.112/2G/2U/80G

node1节点上配置

# 下载prometheus安装包
[root@node1 ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.30.0/prometheus-2.30.0.linux-amd64.tar.gz
[root@node1 ~]# tar -zxvf prometheus-2.30.0.linux-amd64.tar.gz -C /usr/local/
[root@node1 ~]# cp /usr/local/prometheus-2.30.0.linux-amd64/prometheus /usr/local/bin/


# 创建prometheus数据存放目录
[root@node1 ~]# mkdir -p /home/data/prometheus/


# 配置启动文件
[root@node1 ~]# vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
After=network.target
Documentation=https://prometheus.io/docs/introduction/overview/

[Service]
Type=simple
WorkingDirectory=/home/data/prometheus/
ExecStart=/usr/local/bin/prometheus \
  --config.file=/usr/local/prometheus-2.30.0.linux-amd64/prometheus.yml \
  --web.read-timeout=5m \
  --web.max-connections=512 \
  --storage.tsdb.retention=15d \
  --storage.tsdb.path=/home/data/prometheus \
  --query.timeout=2m

Restart=on-failure

[Install]
WantedBy=multi-user.target




启动prometheus
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl start prometheus && systemctl enable prometheus
[root@node1 ~]# systemctl status prometheus

node2节点配置

# 安装java环境
# https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

[root@node2 ~]# tar -zxvf jdk-8u301-linux-x64.tar.gz -C /usr/local/
# 设置环境变量
[root@node2 ~]# vim /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_301       
JRE_HOME=/usr/local/jdk1.8.0_301/jre     
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

[root@node2 ~]# source /etc/profile
[root@node2 ~]# java -version

# 安装tomcat
[root@node2 ~]# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gz
[root@node2 ~]# tar -zxvf apache-tomcat-9.0.53.tar.gz -C /usr/local/
[root@node2 ~]# ln -s /usr/local/apache-tomcat-9.0.53/ /usr/local/tomcat9
# [root@node2 ~]# echo "export CATALINA_HOME=/usr/local/tomcat9">>/etc/profile
[root@node2 ~]# source /etc/profile
[root@node2 ~]# env|grep "_HOME"

=========== 待验证 =============
# 查看熵池的大小: 
cat /proc/sys/kernel/random/entropy_avail 180
增加熵池大小,解决Tomcat在CentOS 7巨慢的问题

# 安装rng服务,增大熵池
yum -y install rng-tools
systemctl start rngd && systemctl enable rngd
# 启动服务访问Tomcat页面快一百倍..
===============================
# 启动tomcat脚本
[root@node2 ~]# vim /etc/init.d/tomcat
#!/bin/bash
#chkconfig: 2345 96 14
export JAVA_HOME=/usr/local/jdk1.8.0_301
export CATALINA_HOME=/usr/local/tomcat9
exec $CATALINA_HOME/bin/catalina.sh $*


[root@node2 ~]# chmod +x /etc/init.d/tomcat
[root@node2 ~]# chkconfig --level 2345 tomcat on


[root@node2 ~]# ss -anpt|grep java
tomcat三个端口
# 8005:是tomcat本身的端口,本地管理端口号  
# 8080:主端口号,是tomcat负责建立http连接的端口,通过浏览器访问tomcat服务器的web 应用时,使用此端口  
# 8009:是tomcat负责和其他http服务器建立连接的端口,ajp的编辑器 


# 下载prometheus_javaagent的jar包
[root@node1 ~]# wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.16.1/jmx_prometheus_javaagent-0.16.1.jar -O /usr/local/tomcat9/bin/jmx_prometheus_javaagent-0.16.1.jar

# 下载tomcat.yml
# https://github.com/prometheus/jmx_exporter/blob/master/example_configs/tomcat.yml
[root@node1 ~]# cp tomcat.yaml  /usr/local/tomcat9/bin/config.yaml 
[root@node1 ~]# cat /usr/local/tomcat9/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


[root@node2 ~]# cd /usr/local/tomcat9/bin/
[root@node2 bin]# vim catalina.sh 
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"     # 在该行下面添加如下行
JAVA_OPTS="-javaagent:/usr/local/tomcat9/bin/jmx_prometheus_javaagent-0.16.1.jar=39081:/usr/local/tomcat9/bin/config.yaml"


[root@node2 ~]# service tomcat start         {start|stop}
[root@node2 ~]# systemctl status tomcat

[root@node2 ~]# ss -anpt|grep java
LISTEN     0   1     [::ffff:127.0.0.1]:8005  [::]:*    users:(("java",pid=12163,fd=71))
LISTEN     0   3     [::]:39081               [::]:*    users:(("java",pid=12163,fd=13))
LISTEN     0   100   [::]:8080                [::]:*    users:(("java",pid=12163,fd=65))


# 浏览器访问node节点
http://192.168.1.112:39081/

添加tomcat到prometheus

# 在node1节点上添加node2上tomcat到prometheus
[root@node1 ~]# vim /usr/local/prometheus-2.30.0.linux-amd64/prometheus.yml
<在最后追加上去以下内容>
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"]          #往上是自带的
====================================================
  - job_name: 'node2-tomcat'                 #往下是新添加的
    static_configs:
      - targets: ['192.168.1.112:39081']

      
注:targets可为多个,如:
    static_configs:
      - targets:
        - localhost:9100
        - web1:9100
        - web2:9100



        
# node1节点上重启Prometheus
[root@node1 ~]# systemctl restart prometheus

浏览器访问node1节点的9090端口
http://192.168.1.111:9090/
up{instance="192.168.1.112:39081"}

node1节点安装grafana

[root@node1 ~]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.1.4-1.x86_64.rpm
[root@node1 ~]# yum -y install grafana-enterprise-8.1.4-1.x86_64.rpm
# 启动
[root@node1 ~]# systemctl start grafana-server && systemctl enable grafana-server
[root@node1 ~]# systemctl status grafana-server
浏览器访问node1节点IP+3000(默认端口),账密都是admin,第一次登录后需修改密码

标签:tomcat,local,prometheus,Prometheus,监控,node1,node2,root
来源: https://www.cnblogs.com/smlile-you-me/p/15311732.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有