百度网站安全在线检测,百度云盘,网站的建设和编程,wordpress 标签插件文章目录 1.准备工作2.Tongweb7部署3.Prometheus部署4.上传jar包并配置Tongweb75.Prometheus配置6.安装和配置Grafana 1.准备工作
本次参考#xff1a;Prometheus监控Tongweb容器
1.使用虚拟机ip#xff1a;192.168.10.51#xff08;tongweb#xff09;#xff0c;192.1… 文章目录 1.准备工作2.Tongweb7部署3.Prometheus部署4.上传jar包并配置Tongweb75.Prometheus配置6.安装和配置Grafana 1.准备工作
本次参考Prometheus监控Tongweb容器
1.使用虚拟机ip192.168.10.51tongweb192.168.10.52Prometheus192.168.10.8(Grafana ),其中51服务器确保906039081端口没有被占用,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{areaheap, instance\$instance\}/jvm_memory_bytes_max{areaheap, 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{areaheap, instance\$instance\}/jvm_memory_bytes_max{areaheap, 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:typeOperatingSystem, 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.jar39081:/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.ymlscrape_configs:- job_name: prometheus# metrics_path defaults to /metrics# scheme defaults to http.static_configs:- targets: [localhost:9090]- job_name: Prometheus19metrics_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: Prometheus20metrics_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: tongwebstatic_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,点击statustarget就可以看到我们配置的信息
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
点击下方的savatest有下图的提示说明成功 然后回到home找到Create your first dashboard 点击import a dashboard 上传之前下载的json文件 上传后选择一下prometheus 然后点击import仪表盘就出现了