Prometheus+Grafana 监控Tongweb7

文章目录

  • 1.准备工作
  • 2.Tongweb7部署
  • 3.Prometheus部署
  • 4.上传jar包并配置Tongweb7
  • 5.Prometheus配置
  • 6.安装和配置Grafana

1.准备工作

本次参考:Prometheus监控Tongweb容器

1.使用虚拟机ip:192.168.10.51(tongweb),192.168.10.52(Prometheus),192.168.10.8(Grafana ),其中51服务器确保9060,39081端口没有被占用,52服务器确保9090端口没有被占用,8服务器确保3000端口没有被占用,三台虚拟机均关闭防火墙。

2.使用的jar包:jmx_prometheus_javaagent-0.19.0.jar:jmx_prometheus_javaagent-0.19.0.jar下载链接

在这里插入图片描述

3.使用的jdk环境:jdk1.8(需配置jdk环境变量)

在这里插入图片描述
4.下载Grafana使用的仪表盘json文件:
TongWeb 面板,使用JMX Exporter采集数据

也可以新建一个json文件,复制粘贴以下内容:

{"__inputs": [{"name": "DS_PROMETHEUS","label": "Prometheus","description": "","type": "datasource","pluginId": "prometheus","pluginName": "Prometheus"}],"__elements": {},"__requires": [{"type": "panel","id": "gauge","name": "Gauge","version": ""},{"type": "grafana","id": "grafana","name": "Grafana","version": "10.0.1"},{"type": "datasource","id": "prometheus","name": "Prometheus","version": "1.0.0"},{"type": "panel","id": "stat","name": "Stat","version": ""},{"type": "panel","id": "table","name": "Table","version": ""},{"type": "panel","id": "timeseries","name": "Time series","version": ""}],"annotations": {"list": [{"builtIn": 1,"datasource": {"type": "datasource","uid": "grafana"},"enable": true,"hide": true,"iconColor": "rgba(0, 211, 255, 1)","name": "Annotations & Alerts","target": {"limit": 100,"matchAny": false,"tags": [],"type": "dashboard"},"type": "dashboard"}]},"description": "TongWeb 面板,使用JMX Exporter采集数据","editable": true,"fiscalYearStartMonth": 0,"gnetId": 19156,"graphTooltip": 0,"id": null,"links": [{"asDropdown": false,"icon": "external link","includeVars": false,"keepTime": false,"tags": [],"targetBlank": true,"title": "更新面板","tooltip": "","type": "link","url": "https://grafana.com/grafana/dashboards/19156"}],"liveNow": false,"panels": [{"collapsed": false,"datasource": {"type": "prometheus","uid": "fb65406e-39df-40f2-966c-9987082bdcfe"},"gridPos": {"h": 1,"w": 24,"x": 0,"y": 0},"id": 31,"panels": [],"repeat": "protocol","targets": [{"datasource": {"type": "prometheus","uid": "fb65406e-39df-40f2-966c-9987082bdcfe"},"refId": "A"}],"title": "监控信息","type": "row"},{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"description": "被监控服务是否处于运行状态,即该服务是否可达。当UP指标的值为1时,表示该服务正在运行,并且可以被访问,当UP指标的值为0时,则表示该服务不可达或处于停止状态。","fieldConfig": {"defaults": {"color": {"mode": "thresholds"},"mappings": [{"options": {"0": {"color": "red","index": 1,"text": "未连通"},"1": {"color": "green","index": 0,"text": "连通"}},"type": "value"},{"options": {"match": "null","result": {"color": "red","index": 2,"text": "未连通"}},"type": "special"}],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]}},"overrides": []},"gridPos": {"h": 4,"w": 4,"x": 0,"y": 1},"id": 33,"options": {"colorMode": "value","graphMode": "area","justifyMode": "auto","orientation": "auto","reduceOptions": {"calcs": ["lastNotNull"],"fields": "","values": false},"text": {},"textMode": "auto"},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": false,"expr": "up{instance=~\"$instance\"}","instant": true,"interval": "","legendFormat": "状态","refId": "A"}],"title": "运行状态","type": "stat"},{"datasource": {"type": "prometheus","uid": "$datasource"},"description": "","fieldConfig": {"defaults": {"color": {"mode": "thresholds"},"decimals": 2,"mappings": [{"options": {"match": "null","result": {"text": "N/A"}},"type": "special"}],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "orange","value": 80}]},"unit": "percent"},"overrides": []},"gridPos": {"h": 4,"w": 5,"x": 4,"y": 1},"id": 17,"links": [],"maxDataPoints": 100,"options": {"orientation": "horizontal","reduceOptions": {"calcs": ["mean"],"fields": "","values": false},"showThresholdLabels": false,"showThresholdMarkers": true},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": false,"expr": "jvm_memory_bytes_used{area='heap', instance=\"$instance\"}/jvm_memory_bytes_max{area='heap', instance=\"$instance\"}*100","format": "time_series","instant": true,"interval": "","intervalFactor": 1,"legendFormat": "","refId": "A"}],"title": "JVM内存使用率","type": "gauge"},{"datasource": {"type": "prometheus","uid": "$datasource"},"fieldConfig": {"defaults": {"color": {"mode": "thresholds"},"mappings": [{"options": {"match": "null","result": {"text": "N/A"}},"type": "special"}],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]},"unit": "none"},"overrides": []},"gridPos": {"h": 4,"w": 5,"x": 9,"y": 1},"id": 20,"links": [],"maxDataPoints": 100,"options": {"colorMode": "value","graphMode": "none","justifyMode": "auto","orientation": "horizontal","reduceOptions": {"calcs": ["mean"],"fields": "","values": false},"textMode": "auto"},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": false,"expr": "sum(tongweb_manager_sessioncounter{instance=\"$instance\"})","format": "time_series","instant": true,"interval": "","intervalFactor": 1,"legendFormat": "","refId": "A"}],"title": "会话总个数","type": "stat"},{"datasource": {"type": "prometheus","uid": "$datasource"},"fieldConfig": {"defaults": {"color": {"mode": "thresholds"},"mappings": [{"options": {"match": "null","result": {"text": "N/A"}},"type": "special"}],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null}]},"unit": "none"},"overrides": []},"gridPos": {"h": 4,"w": 5,"x": 14,"y": 1},"id": 21,"links": [],"maxDataPoints": 100,"options": {"colorMode": "value","graphMode": "none","justifyMode": "auto","orientation": "horizontal","reduceOptions": {"calcs": ["mean"],"fields": "","values": false},"textMode": "auto"},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": false,"expr": "sum(tongweb_manager_expiredsessions{instance=\"$instance\"}) ","format": "time_series","instant": true,"interval": "","intervalFactor": 1,"legendFormat": "","refId": "A"}],"title": "会话过期数","type": "stat"},{"datasource": {"type": "prometheus","uid": "$datasource"},"fieldConfig": {"defaults": {"color": {"mode": "thresholds"},"mappings": [{"options": {"match": "null","result": {"text": "N/A"}},"type": "special"}],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]},"unit": "none"},"overrides": []},"gridPos": {"h": 4,"w": 5,"x": 19,"y": 1},"id": 19,"links": [],"maxDataPoints": 100,"options": {"colorMode": "value","graphMode": "none","justifyMode": "auto","orientation": "horizontal","reduceOptions": {"calcs": ["mean"],"fields": "","values": false},"textMode": "auto"},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": false,"expr": "sum(tongweb_manager_sessioncounter{ instance=\"$instance\"} - tongweb_manager_expiredsessions{instance=\"$instance\"})","format": "time_series","instant": true,"interval": "","intervalFactor": 1,"legendFormat": "","refId": "A"}],"title": "当前会话计数","type": "stat"},{"datasource": {"type": "prometheus","uid": "$datasource"},"description": "","fieldConfig": {"defaults": {"color": {"mode": "thresholds"},"custom": {"align": "auto","cellOptions": {"type": "auto"},"inspect": false},"mappings": [{"options": {"match": "null","result": {"text": "N/A"}},"type": "special"}],"min": 0,"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null}]},"unit": "none"},"overrides": [{"matcher": {"id": "byName","options": "线程池使用率*"},"properties": [{"id": "color","value": {"mode": "continuous-GrYlRd"}},{"id": "custom.cellOptions","value": {"mode": "gradient","type": "gauge"}},{"id": "unit","value": "percent"},{"id": "decimals","value": 1},{"id": "min","value": -1},{"id": "thresholds","value": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]}},{"id": "max","value": 100}]},{"matcher": {"id": "byName","options": "http通道"},"properties": [{"id": "custom.width","value": 200}]},{"matcher": {"id": "byName","options": "最大线程数"},"properties": [{"id": "custom.width","value": 90}]},{"matcher": {"id": "byName","options": "初始线程数"},"properties": [{"id": "custom.width","value": 90}]},{"matcher": {"id": "byName","options": "线程优先级"},"properties": [{"id": "custom.width","value": 90}]},{"matcher": {"id": "byName","options": "等待队列"},"properties": [{"id": "custom.width","value": 90}]}]},"gridPos": {"h": 9,"w": 12,"x": 0,"y": 5},"id": 14,"links": [],"maxDataPoints": 100,"options": {"cellHeight": "sm","footer": {"countRows": false,"fields": "","reducer": ["sum"],"show": false},"showHeader": true,"sortBy": [{"desc": true,"displayName": "线程池使用率"}]},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": false,"expr": "tongweb_threadpool_maxthreads{ instance=\"$instance\"}","format": "table","hide": false,"instant": true,"interval": "","intervalFactor": 1,"legendFormat": "{{name}}-最大线程数","range": false,"refId": "A"},{"datasource": {"type": "prometheus","uid": "$datasource"},"editorMode": "code","exemplar": false,"expr": "tongweb_threadpool_minsparethreads{instance=\"$instance\"}","format": "table","hide": false,"instant": true,"legendFormat": "{{name}}-使用线程数","range": false,"refId": "B"},{"datasource": {"type": "prometheus","uid": "$datasource"},"editorMode": "code","exemplar": false,"expr": "tongweb_threadpool_connectioncount{ instance=\"$instance\"}","format": "table","hide": false,"instant": true,"legendFormat": "{{name}}","range": false,"refId": "C"},{"datasource": {"type": "prometheus","uid": "$datasource"},"editorMode": "code","exemplar": false,"expr": "tongweb_threadpool_connectioncount{ instance=\"$instance\"}/tongweb_threadpool_maxthreads{ instance=\"$instance\"}*100","format": "table","hide": false,"instant": true,"range": false,"refId": "D"},{"datasource": {"type": "prometheus","uid": "$datasource"},"editorMode": "code","exemplar": false,"expr": "tongweb_threadpool_threadpriority{instance=\"$instance\"}","format": "table","hide": false,"instant": true,"range": false,"refId": "E"},{"datasource": {"type": "prometheus","uid": "$datasource"},"editorMode": "code","exemplar": false,"expr": "tongweb_threadpool_backlog{instance=\"$instance\"}","format": "table","hide": false,"instant": true,"range": false,"refId": "F"}],"title": "线程池信息","transformations": [{"id": "filterFieldsByName","options": {"include": {"pattern": "/^Value #[A-Z]|^name$/"}}},{"id": "merge","options": {}},{"id": "organize","options": {"excludeByName": {},"indexByName": {},"renameByName": {"Value #A": "最大线程数","Value #B": "初始线程数","Value #C": "正在执行任务的线程数*","Value #D": "线程池使用率*","Value #E": "线程优先级","Value #F": "等待队列","name": "http通道"}}},{"id": "groupBy","options": {"fields": {"Value #E": {"aggregations": [],"operation": "groupby"},"http通道": {"aggregations": [],"operation": "groupby"},"初始线程数": {"aggregations": ["lastNotNull"],"operation": "groupby"},"最大线程数": {"aggregations": [],"operation": "groupby"},"正在执行任务的线程数": {"aggregations": [],"operation": "groupby"},"正在执行任务的线程数*": {"aggregations": [],"operation": "groupby"},"等待队列": {"aggregations": [],"operation": "groupby"},"线程优先级": {"aggregations": [],"operation": "groupby"},"线程池使用率": {"aggregations": [],"operation": "groupby"},"线程池使用率*": {"aggregations": [],"operation": "groupby"}}}}],"type": "table"},{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"fieldConfig": {"defaults": {"color": {"mode": "palette-classic"},"custom": {"axisCenteredZero": false,"axisColorMode": "text","axisLabel": "","axisPlacement": "auto","barAlignment": 0,"drawStyle": "line","fillOpacity": 6,"gradientMode": "none","hideFrom": {"legend": false,"tooltip": false,"viz": false},"lineInterpolation": "linear","lineWidth": 1,"pointSize": 1,"scaleDistribution": {"type": "linear"},"showPoints": "auto","spanNulls": false,"stacking": {"group": "A","mode": "none"},"thresholdsStyle": {"mode": "off"}},"mappings": [],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]},"unit": "percent"},"overrides": []},"gridPos": {"h": 9,"w": 12,"x": 12,"y": 5},"id": 40,"options": {"legend": {"calcs": [],"displayMode": "table","placement": "right","showLegend": true},"tooltip": {"mode": "single","sort": "none"}},"targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","expr": "tongweb_threadpool_connectioncount{ instance=\"$instance\"}/tongweb_threadpool_maxthreads{ instance=\"$instance\"}*100","instant": false,"legendFormat": "{{name}}","range": true,"refId": "A"}],"title": "线程池使用率","type": "timeseries"},{"datasource": {"type": "prometheus","uid": "$datasource"},"description": "","fieldConfig": {"defaults": {"color": {"mode": "continuous-BlPu"},"custom": {"axisCenteredZero": false,"axisColorMode": "text","axisLabel": "","axisPlacement": "auto","barAlignment": 0,"drawStyle": "line","fillOpacity": 14,"gradientMode": "none","hideFrom": {"legend": false,"tooltip": false,"viz": false},"lineInterpolation": "linear","lineStyle": {"fill": "solid"},"lineWidth": 1,"pointSize": 1,"scaleDistribution": {"type": "linear"},"showPoints": "auto","spanNulls": false,"stacking": {"group": "A","mode": "none"},"thresholdsStyle": {"mode": "off"}},"mappings": [],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]}},"overrides": []},"gridPos": {"h": 9,"w": 12,"x": 0,"y": 14},"id": 39,"links": [],"maxDataPoints": 100,"options": {"legend": {"calcs": [],"displayMode": "list","placement": "bottom","showLegend": true},"tooltip": {"mode": "single","sort": "none"}},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": false,"expr": "jvm_memory_bytes_used{area='heap', instance=\"$instance\"}/jvm_memory_bytes_max{area='heap', instance=\"$instance\"}*100","format": "time_series","instant": false,"interval": "","intervalFactor": 1,"legendFormat": "内存使用率","range": true,"refId": "A"}],"title": "JVM内存使用率","type": "timeseries"},{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"fieldConfig": {"defaults": {"color": {"mode": "palette-classic"},"custom": {"axisCenteredZero": false,"axisColorMode": "text","axisLabel": "","axisPlacement": "auto","barAlignment": 0,"drawStyle": "line","fillOpacity": 6,"gradientMode": "none","hideFrom": {"legend": false,"tooltip": false,"viz": false},"lineInterpolation": "linear","lineWidth": 1,"pointSize": 1,"scaleDistribution": {"type": "linear"},"showPoints": "auto","spanNulls": false,"stacking": {"group": "A","mode": "none"},"thresholdsStyle": {"mode": "off"}},"mappings": [],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]}},"overrides": []},"gridPos": {"h": 9,"w": 12,"x": 12,"y": 14},"id": 41,"options": {"legend": {"calcs": [],"displayMode": "table","placement": "right","showLegend": true},"tooltip": {"mode": "single","sort": "none"}},"targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","expr": "increase(tongweb_requestprocessor_errorcount{instance=\"$instance\"}[5m])","instant": false,"legendFormat": "{{worker}}-{{name}}","range": true,"refId": "A"}],"title": "近5分钟错误增长数","type": "timeseries"},{"datasource": {"type": "prometheus","uid": "$datasource"},"description": "","fieldConfig": {"defaults": {"color": {"mode": "palette-classic"},"custom": {"axisCenteredZero": false,"axisColorMode": "text","axisLabel": "","axisPlacement": "auto","barAlignment": 0,"drawStyle": "line","fillOpacity": 8,"gradientMode": "none","hideFrom": {"legend": false,"tooltip": false,"viz": false},"lineInterpolation": "linear","lineWidth": 1,"pointSize": 1,"scaleDistribution": {"type": "linear"},"showPoints": "auto","spanNulls": false,"stacking": {"group": "A","mode": "none"},"thresholdsStyle": {"mode": "off"}},"mappings": [{"options": {"match": "null","result": {"text": "N/A"}},"type": "special"}],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]},"unit": "ms"},"overrides": []},"gridPos": {"h": 9,"w": 12,"x": 0,"y": 23},"id": 35,"links": [],"maxDataPoints": 100,"options": {"legend": {"calcs": [],"displayMode": "list","placement": "right","showLegend": true},"tooltip": {"mode": "single","sort": "none"}},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": false,"expr": "sum(increase(tongweb_requestprocessor_processingtime{instance=\"$instance\"}[5m])) by (worker) / (count(tongweb_requestprocessor_processingtime{instance=\"$instance\"}) by (worker)+0.01) ","format": "time_series","instant": false,"interval": "","intervalFactor": 1,"legendFormat": "{{worker}}","range": true,"refId": "A"}],"title": "平均响应时长","type": "timeseries"},{"datasource": {"type": "prometheus","uid": "$datasource"},"description": "","fieldConfig": {"defaults": {"color": {"mode": "palette-classic"},"custom": {"axisCenteredZero": false,"axisColorMode": "text","axisLabel": "","axisPlacement": "auto","barAlignment": 0,"drawStyle": "line","fillOpacity": 11,"gradientMode": "none","hideFrom": {"legend": false,"tooltip": false,"viz": false},"lineInterpolation": "linear","lineWidth": 1,"pointSize": 1,"scaleDistribution": {"type": "linear"},"showPoints": "auto","spanNulls": false,"stacking": {"group": "A","mode": "none"},"thresholdsStyle": {"mode": "off"}},"decimals": 2,"mappings": [{"options": {"match": "null","result": {"text": "N/A"}},"type": "special"}],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "orange","value": 80}]},"unit": "percent"},"overrides": []},"gridPos": {"h": 9,"w": 12,"x": 12,"y": 23},"id": 37,"links": [],"maxDataPoints": 100,"options": {"legend": {"calcs": [],"displayMode": "list","placement": "bottom","showLegend": true},"tooltip": {"mode": "single","sort": "none"}},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": false,"expr": "jvm_memory_pool_bytes_used{ instance=\"$instance\", pool!=\"Metaspace\"}/jvm_memory_pool_bytes_max{ instance=\"$instance\", pool!=\"Metaspace\"}*100","format": "time_series","instant": false,"interval": "","intervalFactor": 1,"legendFormat": "{{pool}}","range": true,"refId": "A"}],"title": "JVM内存池使用率","type": "timeseries"},{"datasource": {"type": "prometheus","uid": "$datasource"},"description": "","fieldConfig": {"defaults": {"color": {"mode": "palette-classic"},"custom": {"axisCenteredZero": false,"axisColorMode": "text","axisLabel": "","axisPlacement": "auto","barAlignment": 0,"drawStyle": "line","fillOpacity": 10,"gradientMode": "none","hideFrom": {"legend": false,"tooltip": false,"viz": false},"lineInterpolation": "linear","lineWidth": 1,"pointSize": 5,"scaleDistribution": {"type": "linear"},"showPoints": "never","spanNulls": false,"stacking": {"group": "A","mode": "none"},"thresholdsStyle": {"mode": "off"}},"decimals": 0,"mappings": [],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]},"unit": "none"},"overrides": [{"matcher": {"id": "byValue","options": {"op": "gte","reducer": "allIsZero","value": 0}},"properties": [{"id": "custom.hideFrom","value": {"legend": true,"tooltip": true,"viz": false}}]}]},"gridPos": {"h": 9,"w": 12,"x": 0,"y": 32},"id": 23,"links": [],"options": {"legend": {"calcs": [],"displayMode": "table","placement": "right","showLegend": true},"tooltip": {"mode": "multi","sort": "none"}},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": false,"expr": "topk(5, tongweb_globalrequestprocessor_requestcount{ instance=\"$instance\"})","format": "time_series","instant": false,"interval": "","intervalFactor": 1,"legendFormat": "{{name}} ","range": true,"refId": "A"}],"title": "请求计数TOP5","type": "timeseries"},{"datasource": {"type": "prometheus","uid": "$datasource"},"description": "","fieldConfig": {"defaults": {"color": {"mode": "palette-classic"},"custom": {"axisCenteredZero": false,"axisColorMode": "text","axisLabel": "","axisPlacement": "auto","barAlignment": 0,"drawStyle": "line","fillOpacity": 10,"gradientMode": "none","hideFrom": {"legend": false,"tooltip": false,"viz": false},"lineInterpolation": "linear","lineWidth": 1,"pointSize": 5,"scaleDistribution": {"type": "linear"},"showPoints": "never","spanNulls": false,"stacking": {"group": "A","mode": "none"},"thresholdsStyle": {"mode": "off"}},"decimals": 0,"mappings": [],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]},"unit": "short"},"overrides": [{"matcher": {"id": "byValue","options": {"op": "gte","reducer": "allIsZero","value": 0}},"properties": [{"id": "custom.hideFrom","value": {"legend": true,"tooltip": true,"viz": false}}]}]},"gridPos": {"h": 9,"w": 12,"x": 12,"y": 32},"id": 24,"links": [],"options": {"legend": {"calcs": [],"displayMode": "table","placement": "right","showLegend": true},"tooltip": {"mode": "multi","sort": "none"}},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": true,"expr": "topk(5,tongweb_requestprocessor_errorcount{ instance=\"$instance\"})","format": "time_series","interval": "","intervalFactor": 1,"legendFormat": "{{worker}} ","range": true,"refId": "A"}],"title": "错误计数TOP5","type": "timeseries"},{"datasource": {"type": "prometheus","uid": "$datasource"},"description": "","fieldConfig": {"defaults": {"color": {"mode": "palette-classic"},"custom": {"axisCenteredZero": false,"axisColorMode": "text","axisLabel": "","axisPlacement": "auto","barAlignment": 0,"drawStyle": "line","fillOpacity": 10,"gradientMode": "none","hideFrom": {"legend": false,"tooltip": false,"viz": false},"lineInterpolation": "linear","lineWidth": 1,"pointSize": 5,"scaleDistribution": {"type": "linear"},"showPoints": "never","spanNulls": false,"stacking": {"group": "A","mode": "none"},"thresholdsStyle": {"mode": "off"}},"mappings": [],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]},"unit": "decbytes"},"overrides": []},"gridPos": {"h": 9,"w": 12,"x": 0,"y": 41},"id": 2,"links": [],"options": {"legend": {"calcs": [],"displayMode": "list","placement": "right","showLegend": true},"tooltip": {"mode": "multi","sort": "none"}},"pluginVersion": "10.0.1","repeatDirection": "h","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": true,"expr": "increase(tongweb_globalrequestprocessor_bytesreceived{ instance=\"$instance\"}[$__interval])","format": "time_series","interval": "60s","intervalFactor": 1,"legendFormat": "Received {{name}}","range": true,"refId": "A"},{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": true,"expr": "increase(tongweb_globalrequestprocessor_bytessent{ instance=\"$instance\"}[$__interval])","format": "time_series","interval": "60s","intervalFactor": 1,"legendFormat": "Sent {{name}}","range": true,"refId": "B"}],"title": "发送/接收流量","type": "timeseries"},{"datasource": {"type": "prometheus","uid": "$datasource"},"description": "tomcat_requestcount_total是Tomcat服务器的一个请求计数器,它记录了所有已处理的请求总数。 在Tomcat服务器中,每个客户端请求都会被处理为一个请求,在处理请求期间,服务器会从连接中读取数据、解析数据、执行应用逻辑,并返回响应。每当Tomcat服务器成功处理一个请求时,其tomcat_requestcount_total指标就会相应地增加。监控和分析该指标可以帮助管理员和开发人员更好地了解Tomcat服务器的整体负载情况和活动水平,对于性能优化和故障排除都具有一定的价值。此外,该指标也可以通过与其他指标如tomcat_bytesreceived_total和tomcat_bytessent_total等结合使用,来监测网络流量和请求响应时间等性能指标,以进一步优化Tomcat服务器的配置和性能。","fieldConfig": {"defaults": {"color": {"mode": "palette-classic"},"custom": {"axisCenteredZero": false,"axisColorMode": "text","axisLabel": "","axisPlacement": "auto","barAlignment": 0,"drawStyle": "line","fillOpacity": 10,"gradientMode": "none","hideFrom": {"legend": false,"tooltip": false,"viz": false},"lineInterpolation": "linear","lineWidth": 1,"pointSize": 5,"scaleDistribution": {"type": "linear"},"showPoints": "never","spanNulls": false,"stacking": {"group": "A","mode": "none"},"thresholdsStyle": {"mode": "off"}},"decimals": 0,"mappings": [],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]},"unit": "short"},"overrides": []},"gridPos": {"h": 9,"w": 12,"x": 12,"y": 41},"id": 4,"links": [],"options": {"legend": {"calcs": ["lastNotNull","max","min"],"displayMode": "table","placement": "right","showLegend": true},"tooltip": {"mode": "multi","sort": "none"}},"pluginVersion": "10.0.1","repeatDirection": "h","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": true,"expr": "increase(tongweb_globalrequestprocessor_requestcount{ instance=\"$instance\"}[5m])","format": "time_series","interval": "60s","intervalFactor": 1,"legendFormat": "Request {{name}}","range": true,"refId": "A"},{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": true,"expr": "increase(tongweb_globalrequestprocessor_errorcount{ instance=\"$instance\"}[5m])","format": "time_series","interval": "60s","intervalFactor": 1,"legendFormat": "Error  {{name}}","range": true,"refId": "B"}],"title": "请求计数/错误计数","type": "timeseries"},{"datasource": {"type": "prometheus","uid": "$datasource"},"description": "","fieldConfig": {"defaults": {"color": {"mode": "palette-classic"},"custom": {"axisCenteredZero": false,"axisColorMode": "text","axisLabel": "","axisPlacement": "auto","barAlignment": 0,"drawStyle": "line","fillOpacity": 10,"gradientMode": "none","hideFrom": {"legend": false,"tooltip": false,"viz": false},"lineInterpolation": "linear","lineWidth": 1,"pointSize": 5,"scaleDistribution": {"type": "linear"},"showPoints": "never","spanNulls": false,"stacking": {"group": "A","mode": "none"},"thresholdsStyle": {"mode": "off"}},"decimals": 0,"mappings": [],"thresholds": {"mode": "absolute","steps": [{"color": "green","value": null},{"color": "red","value": 80}]},"unit": "none"},"overrides": [{"__systemRef": "hideSeriesFrom","matcher": {"id": "byNames","options": {"mode": "exclude","names": ["New"],"prefix": "All except:","readOnly": true}},"properties": [{"id": "custom.hideFrom","value": {"legend": false,"tooltip": false,"viz": true}}]}]},"gridPos": {"h": 8,"w": 24,"x": 0,"y": 50},"id": 5,"links": [],"options": {"legend": {"calcs": ["lastNotNull","max","min"],"displayMode": "table","placement": "right","showLegend": true},"tooltip": {"mode": "multi","sort": "none"}},"pluginVersion": "10.0.1","targets": [{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","exemplar": true,"expr": "sum(increase(tongweb_manager_sessioncounter{ instance=\"$instance\"}[5m])) by (instance)","format": "time_series","hide": false,"interval": "60s","intervalFactor": 1,"legendFormat": "New","range": true,"refId": "A"},{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","expr": "sum(increase(tongweb_manager_expiredsessions{ instance=\"$instance\"}[5m])) by (instance)","format": "time_series","hide": false,"interval": "60s","intervalFactor": 1,"legendFormat": "Expired","range": true,"refId": "B"},{"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"editorMode": "code","expr": "sum(increase(tongweb_manager_rejectedsessions{ instance=\"$instance\"}[5m])) by (instance)","format": "time_series","hide": false,"interval": "60s","intervalFactor": 1,"legendFormat": "Rejected","range": true,"refId": "C"}],"title": "会话计数统计","type": "timeseries"}],"refresh": "5s","schemaVersion": 38,"style": "dark","tags": ["Tomcat8"],"templating": {"list": [{"current": {"selected": false,"text": "Prometheus","value": "Prometheus"},"hide": 0,"includeAll": false,"multi": false,"name": "datasource","options": [],"query": "prometheus","queryValue": "","refresh": 1,"regex": "","skipUrlSync": false,"type": "datasource"},{"allValue": ".*","current": {},"datasource": {"type": "prometheus","uid": "${DS_PROMETHEUS}"},"definition": "label_values(jvm_info{},instance)","hide": 0,"includeAll": false,"label": "Instance","multi": false,"name": "instance","options": [],"query": {"query": "label_values(jvm_info{},instance)","refId": "PrometheusVariableQueryEditor-VariableQuery"},"refresh": 2,"regex": "","skipUrlSync": false,"sort": 1,"tagValuesQuery": "","tagsQuery": "","type": "query","useTags": false}]},"time": {"from": "now-15m","to": "now"},"timepicker": {"refresh_intervals": ["5s","10s","30s","1m","5m","15m"],"time_options": ["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone": "","title": "TongWeb_dashboard","uid": "tongweb","version": 71,"weekStart": ""
}

5.tw7的安装包和授权,其中tw7使用的安装包为TongWeb7.0.4.9_M3_Enterprise_Linux.tar.gz。

2.Tongweb7部署

参考:TongWeb7-绿色版安装及启动停止和控制台访问

3.Prometheus部署

参考:一篇文章搞定Prometheus普罗米修斯监控系统的部署

4.上传jar包并配置Tongweb7

把下载好的jar包放入到Tongweb7安装目录的bin目录下
在这里插入图片描述
新建一個config.yaml
在这里插入图片描述
vi 这个文件,复制粘贴以下内容(注意缩进):

wercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem", "TONGWEB:*","config:*"]
blacklistObjectNames: []
rules:- pattern: ".*"

以下是配置内容的用途
在这里插入图片描述

TongWeb安装目录/bin目录下,修改external.vmoptions文件,在#jvm_options 后添加javaagent参数
在这里插入图片描述
參考配置:

-javaagent:"/opt/TongWeb7.0.4.9_M3_Enterprise_Linux/bin/jmx_prometheus_javaagent-0.19.0.jar=39081:/opt/TongWeb7.0.4.9_M3_Enterprise_Linux/bin/config.yaml"

备注:
1.这里要使用jmx_prometheus_javaagent-0.19.0.jar和config.yaml所在目录,我的是在/opt/TongWeb7.0.4.9_M3_Enterprise_Linux/bin。
2.配置在#jvm_options下面,如下图所示:
在这里插入图片描述

3.除了这个配置,不能有#等其他多余字符串(#在这个配置文件里不是注释修饰符)。
4.如果改错了,会导致tongweb启动失败,所以万一启动失败了,请直接删了重新配。

配置后重启tongweb,然后访问服务器ip:39081/metrics,看看有没有数据
在这里插入图片描述

5.Prometheus配置

配置prometheus.yml:

在这里插入图片描述

在这里插入图片描述

配置参考(注意缩进,192.168.10.51和39081分别对应的是tongweb这边的端口和ip):

static_configs:- targets: ["localhost:9090"]- job_name: tongwebstatic_configs:- targets: ['192.168.10.51:39081']labels:instance: 192.168.10.51

下面是我本地的配置文件,自行删除不需要的部分:

global:scrape_interval: 15s        # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s    # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093rule_files:# - "first_rules.yml"# - "second_rules.yml"scrape_configs:- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]- job_name: 'Prometheus19'metrics_path: /metricsstatic_configs:- targets:- rdsrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 192.168.10.19:9098- job_name: 'Prometheus20'metrics_path: /metricsstatic_configs:- targets:- rdsrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 192.168.10.20:9098- job_name: "tongweb"static_configs:- targets: ['192.168.10.51:39081']labels:instance: 192.168.10.51

修改完启动Prometheus

cd /usr/local/promethues/./prometheus --config.file="/usr/local/promethues/prometheus.yml" &ps ef |grep promethues

访问服务器ip:9090/targets?search=,点击status,target,就可以看到我们配置的信息:
在这里插入图片描述

6.安装和配置Grafana

Grafana下载地址

在这里插入图片描述
上图的话,安装后用 systemctl start grafana-server 启动,会方便一些。

或者用这个也行,这个的话后面启动要用脚本启动(本文使用这种方式)。
在这里插入图片描述
解压一下安装包

tar -vxf grafana-enterprise-10.3.1.linux-amd64.tar.gz

启动:
cd 到安装目录bin目录,执行./grafana-server,然后访问服务器ip:3000

注意:默认账号密码为:
账号:admin
密码:admin如果你想卸载,可以关闭服务(直接pkill grafana-server也行),直接删除安装目录,然后删除对应配置```xml
sudo rm -rf /var/lib/grafana
sudo rm -rf /var/log/grafana
sudo rm -rf /etc/grafana
sudo rm -rf /etc/grafana/grafana.ini
sudo rm -rf  /var/lib/grafana/grafana.db

在这里插入图片描述

通常情况下,Grafana 服务的配置文件位于 /etc/grafana/grafana.ini,日志通常存储在 /var/log/grafana,而数据库默认位于 /var/lib/grafana/grafana.db。您可能需要查看这些文件以进行故障排查或者进行配置更改。记得在修改配置文件之后重启 Grafana 服务使更改生效。

Grafana只用于展示数据,需要配置Prometheus数据源。

在这里插入图片描述

在这里插入图片描述
写你的prometheus的url,带上端口号9090:
在这里插入图片描述

点击下方的sava&test,有下图的提示说明成功:
在这里插入图片描述
然后回到home,找到Create your first dashboard:
在这里插入图片描述
点击import a dashboard:
在这里插入图片描述
上传之前下载的json文件在这里插入图片描述
上传后选择一下prometheus:
在这里插入图片描述
然后点击import,仪表盘就出现了:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day14-SpringBoot 原理篇

一、配置优先级 SpringBoot 中支持三种格式的配置文件: 注意事项 虽然 springboot 支持多种格式配置文件,但是在项目开发时,推荐统一使用一种格式的配置 (yml 是主流)。 配置文件优先级排名(从高到低&…

【设计模式】Java 设计模式之模板命令模式(Command)

命令模式(Command)的深入分析与实战解读 一、概述 命令模式是一种将请求封装为对象从而使你可用不同的请求把客户端与接受请求的对象解耦的模式。在命令模式中,命令对象使得发送者与接收者之间解耦,发送者通过命令对象来执行请求…

嵌套循环实现九九乘法表

大家好&#xff1a; 衷心希望各位点赞。 您的问题请留在评论区&#xff0c;我会及时回答。 案例描述 利用嵌套循环&#xff0c;实现九九乘法表。 代码 #include <iostream> #include <Windows.h>using namespace std;int main(void) {//外层循环执行一次&#…

v-bind 绑定 class 与 style 基础用法

使用 v-bind 指令绑定 class 和 style 时语法相对复杂一些&#xff0c;这两者是可以互相替代的&#xff0c;均用于响应更新HTML元素的属性&#xff0c; v-bind 绑定 class 属性可以改写成绑定 style 属性&#xff0c;只是 css 属性位置变了而已。 1. 绑定 class 属性 1.1 数组…

学了 Python 但又感觉没学 Python 不如重学 Python - day4(数据类型:列表)

目录 1、创建列表 2、列表基本操作 3、索引与分片 4、矩阵 5、常用列表方法 &#xff08;1&#xff09;append 与 extend 方法 &#xff08;2&#xff09;insert 方法 &#xff08;3&#xff09;remove 与 pop 方法 &#xff08;4&#xff09;del 语句与 clear 方法 …

conda创建环境网络报错解决办法

文章目录 一、报错示例&#xff1a;二、解决办法&#xff1a;2.1 查看配置 conda config --show-sources2.2 修改文件 /home/XXXX/.condarc 一、报错示例&#xff1a; UnavailableInvalidChannel: HTTP 404 NOT FOUND for channel nvidia <http://mirrors.tuna.tsinghua.ed…

【机器学习-05】模型的评估与选择

在前面【机器学习-01】机器学习基本概念与建模流程的文章中我们已经知道了机器学习的一些基本概念和模型构建的流程&#xff0c;本章我们将介绍模型训练出来后如何对模型进行评估和选择等 1、 误差与过拟合 学习器对样本的实际预测结果与真实值之间的差异&#xff0c;我们称之…

一次完整的 HTTP 请求所经历的步骤

1&#xff1a; DNS 解析(通过访问的域名找出其 IP 地址&#xff0c;递归搜索)。 2&#xff1a; HTTP 请求&#xff0c;当输入一个请求时&#xff0c;建立一个 Socket 连接发起 TCP的 3 次握手。如果是 HTTPS 请求&#xff0c;会略微有不同。 3&#xff1a; 客户端向服务器发…

Redis 搭建主从集群

文章目录 1. 主从集群架构1.1 准备实例和配置1.2 启动1.3 开启主从关系1.4 测试 2. 主从同步原理2.1 全量同步2.2 增量同步repl_backlog原理 2.3 主从同步优化小结 单节点的 Redis 并发能力有限&#xff0c;要进一步提高 Redis 的并发能力&#xff0c;就需要搭建主从集群&#…

杰发科技AC7801——Flash数据读取

0. 简介 因为需要对Flash做CRC校验&#xff0c;第一步先把flash数据读出来。 1. 代码 代码如下所示 #include "ac780x_eflash.h" #include "string.h" #define TestSize 1024 ///< 4K #define TestAddressStart 0x08000000 uint8_t Data[7000]; int…

<DFS剪枝>数字王国之军训排队

DFS剪枝 其实就是将搜索过程一些不必要的部分直接剔除掉。 剪枝是回溯法的一种重要优化手段&#xff0c;往往需要先写一个暴力搜索&#xff0c;然后找到某些特殊的数学关系&#xff0c;或者逻辑关系&#xff0c;通过它们的约束让搜索树尽可能浅而小&#xff0c;从而达到降低时间…

MAC地址(静态、黑洞、优先级)

拓扑图 配置 1&#xff09;静态MAC地址配置 mac-address learning disable命令用来关闭MAC地址学习功能。 关闭MAC地址学习功能后&#xff0c;设备将不会再从该接口学习新的MAC地址。关闭MAC地址学习后可配置的动作有discard和forward。 关闭MAC地址学习功能的缺省动作为fo…

NSS [SWPUCTF 2022 新生赛]ez_ez_unserialize

NSS [SWPUCTF 2022 新生赛]ez_ez_unserialize 开题&#xff0c;直接给了题目源码。 简单看了一下&#xff0c;题目告诉我们flag在哪&#xff0c;而且类中有高亮文件方法。怎么拿flag已经很明显了。关键点在于__weakup()魔术方法固定死了我们高亮的文件。所以这题只需要绕过__w…

【故障排查】10分钟解决Quartz重复调度的疑难杂症

我司使用Apache DolphinScheduler作为调度框架很久了&#xff0c;感兴趣的小伙伴可以看看这些干货文章&#xff1a; 因为之前监控到会出现重复的调度的问题&#xff0c;所以此文记录排查重复调度问题的全过程&#xff0c;希望对社区其他的小伙伴能够起到抛砖引玉的作用&#x…

【学习】python函数语法(面像对象、封装函数)

阅读开源深度学习源码的时候&#xff0c;使用到了很多封装函数以及Python的高级语法&#xff0c;看起来很混乱很痛苦很困难。对python函数语法做个总结&#xff01;&#xff01;&#xff01; Table of Contents 熟练Python语法&#xff0c;尤其是函数参数、迭代器与生成器、函…

使用Redis做缓存的小案例

如果不了解Redis&#xff0c;可以查看本人博客&#xff1a;Redis入门 Redis基于内存&#xff0c;因此查询速度快&#xff0c;常常可以用来作为缓存使用&#xff0c;缓存就是我们在内存中开辟一段区域来存储我们查询比较频繁的数据&#xff0c;这样&#xff0c;我们在下一次查询…

C#,图论与图算法,有向图(Directed Graph)的环(Cycle)的普通判断算法与源代码

1 检查该图是否包含循环 给定一个有向图,检查该图是否包含循环。如果给定的图形至少包含一个循环,则函数应返回true,否则返回false。 方法:深度优先遍历可用于检测图中的循环。连接图的DFS生成树。只有当图中存在后缘时,图中才存在循环。后边是从节点到自身(自循环)或…

[视觉基础知识]: img to bev # include bev seg

参考&#xff1a;https://towardsdatascience.com/monocular-birds-eye-view-semantic-segmentation-for-autonomous-driving-ee2f771afb59 有源传感器&#xff08;lidar or radar&#xff09;得到的数据&#xff0c;天然就是一种bev表示&#xff08;x-y平面&#xff09;&#…

想速成AD?凡亿教育正式上线《Altium Designer 24:150讲操作速成实战课程》

随着电子技术的不断发展,芯片生产工艺迭代更新,印制电路板(PCB)结构日益复杂,从最早的单片机到双面板,再到复杂的多层板结构,电路板上的布线密度越来越高。 同时,随着DSP、ARM、FPGA、DDR等高速逻辑元件的应用,PCB的信号完整性和抗干扰性能显得尤为重要,光靠EDA软件的自动布线…

LeetCode每日一题 翻转二叉树(二叉树)

题目描述 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出&#xff1a;[2,3,1]示…