jmx_prometheus_javaagent+prometheus+alertmanager+grafana完成容器化java監控告警(二)


一、拓撲圖

 

 

 二、收集數據

2.1前期准備

創建共享目錄,即為了各節點都創建該目錄,有兩個文件,做數據共享
/home/target/prom-jvm-demo
1、下載文件
jmx_prometheus_javaagent-0.3.1.jar
2、創建文件
[root@manager prom-jvm-demo]# cat simple-config.yml 
---
rules:
- pattern: ".*"

2.2啟動容器

注:6060作為java監控數據暴露端口,每一個服務單獨占用一個端口,即啟動java服務便伴隨着啟動java監控服務

2.2.1 docker 啟動(測試)

docker run -d \
  --name tomcat-1 \
  -v /home/target/prom-jvm-demo:/jmx-exporter \
  -e CATALINA_OPTS="-Xms64m -Xmx128m -javaagent:/jmx-exporter/jmx_prometheus_javaagent-0.3.1.jar=6060:/jmx-exporter/simple-config.yml" \
  -p 6060:6060 \
  -p 8012:8080 \
  10.0.0.194:4999/tomcat:8.5.61

2.2.2 docker 啟動

docker service create --name bj_ywjy_yxsmgr2 \
 --publish 6061:6060 \
 --publish 8081:8080 \
 --mount type=bind,src=/home/target/bj_ywjy_yxsmgr,dst=/usr/local/tomcat/webapps  \
 --mount type=bind,src=/home/target/bj_ywjy_yxsmgr/logs,dst=/usr/local/tomcat/logs  \
 --mount type=bind,src=/home/target/prom-jvm-demo,dst=/jmx-exporter  \
 --env CATALINA_OPTS="-Xms64m -Xmx128m -javaagent:/jmx-exporter/jmx_prometheus_javaagent-0.3.1.jar=6060:/jmx-exporter/simple-config.yml" \
 --network springcloud-overlay  \
 --log-driver=gelf --log-opt gelf-address=udp://10.0.0.184:12201  \
 --log-opt tag=bj_ywjy_yxsmgr2  10.0.0.194:4999/tomcat:8.5.61

2.2.3 訪問獲取到的數據

http://10.0.0.196:6060/metrics
 

三、prometheus配置

3.1 將獲取到的java數據關聯到prometheus中

[root@autodeploy prometheus-2.25.2]# cat 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: ['10.0.0.189:9090']

  - job_name: 'Container monitoring'
    static_configs:
    - targets:
      - "10.0.0.194:8888"
      - "10.0.0.195:8888"
      - "10.0.0.196:8888"

  - job_name: 'bj_ywjy_yxsmgr'
    static_configs:
    - targets:
      - "10.0.0.194:6060"
  - job_name: 'bj_ywjy_yxsmgr2'
    static_configs:
    - targets:
      - "10.0.0.194:6061"

配置jvm監控規則可根據 cadvisor+prometheus+alertmanager+grafana完成容器化監控告警(一)配置參數調整改進,這里就不體現了!

3.2重啟prometheus

[root@autodeploy prometheus-2.25.2]# cat start.sh 
#!/bin/bash
pid=`ps -ef|grep prometheus|grep -v grep|awk '{print $2}'`
kill -9 $pid
nohup ./prometheus --config.file=prometheus.yml &

3.3訪問測試

http://10.0.0.189:9090/

 

 

四、alertmanager配置告警

4.1告警模板

[root@autodeploy rules]# cat weixin.tmpl
{{ define "wechat.default.message" }}
{{ range $i, $alert :=.Alerts }}
========監控報警====
告警狀態: {{   .Status }}
告警級別: {{ $alert.Labels.severity }}
告警類型: {{ $alert.Labels.alertname }}
告警應用: {{ $alert.Labels.name }} {{ $alert.Labels.job }}
告警主機: {{ $alert.Labels.instance }}
當前最新值: {{ $alert.Annotations.summary }}
告警詳情: {{ $alert.Annotations.description }}
告警時間: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
========end=========
{{ end }}
{{ end }}

4.2重啟alertmanager

[root@autodeploy alertmanager-0.21.0]# cat start.sh 
#!/bin/bash
pid=`ps -ef|grep aler|grep -v grep|awk '{print $2}'`
kill -9 $pid
nohup ./alertmanager --config.file=alertmanager.yml --storage.path=data --log.level=debug &

五、微信告警展示

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM