From 9528df97b888ccb26be98c1ea9c356c1e57655ec Mon Sep 17 00:00:00 2001 From: leion8310 Date: Mon, 20 Aug 2018 17:30:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B5=85=E8=B0=88=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E8=BF=90=E8=90=A5=E4=B8=AD=E7=9A=84=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- monitor.md | 258 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 monitor.md diff --git a/monitor.md b/monitor.md new file mode 100644 index 0000000..c2da013 --- /dev/null +++ b/monitor.md @@ -0,0 +1,258 @@ +# 浅谈企业运营中的监控系统 + +[TOC] + +## 监控级别 + +- 系统级监控 + + > 系统级监控面向服务器、操作系统、硬件设备的监控维度,如CPU、内存、IO、网络、磁盘等 + +- 应用级监控 + + > 应用监控更关注于服务、应用、业务、数据等维度,如中间件状态、队列状态、JVM状态、应用服务状态、业务量、交易成功率、交易耗时等 + + +## 监控目的 + +- 管理 + + > 针对经营管理活动中产生的岗位权限、指标、业务等数据信息,建立起相应的监控体系,实现多角度、多层次、全方位的在线监控 + +- 实时监控 + + > 对企业各类业务活动开展动态、实时监控,自动形成监控结果,并以邮件、短信、桌面预警等多种方式实现智能预警,帮助企业及时掌控风险 + +- 跟踪 + + > 对已确认的业务异常,自动触发业务整改,及时终止、更正违规业务;对有时限要求的事项,可全程跟踪异常整改与事务办理情况,提高风险管理能力 + +- 数据分析 + + > 提供多种监控分析与结果展示功能,帮助决策层掌握企业运营中的风险动态,为决策分析提供有力支持。 + + +## 监控模型图 + +![20180820153473715390908.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153473715390908.png) + +## 监控数据来源 + +- 探针 + + > 监控系统(Zabbix)、定时脚本、系统命令等 + +- 数据库 + + > 根据具体业务的统计维度编写SQL(通常只查询简单的数据、杜绝性能低下的查询、切勿在主库上查询) + +- 中间件自带监控 + + > 如Jvm监控API、Durid监控API、JBoss监控API等 + +- 日志文件 + + > 业务平台产生的日志文件;可通过脚本、系统命令抽取 + +## 常见的开源监控方案 + +- 数据采集(探针) + + - Python + - Perl + - Linux Shell + - Windows Powershell + - Zabbix + - Druid + - 各种云自带 + - StatsD + - Longstash + - Open-Falcon + - ...(太多太多了) + +- 数据处理 + + - InfluxDB + - Graphite + - ElasticSearch + - Zabbix + - Open-Falcon + - ...(太多太多了) + +- 数据视图 + + - Grafana + - Kibana + - Zabbix UI + - LongView + - Open-Falcon UI + - OWL + - ...(太多太多了) + + +## 监控维度 + +### 系统级监控 + + +#### 服务器监控 + + +- 检索条件 + + ![20180819153468066358047.png](http://o6fhqh1oe.bkt.clouddn.com/20180819153468066358047.png) + +- 全局视图 + + ![20180820153474773069349.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153474773069349.png) + +- 硬件性能 + + ![20180820153474749589917.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153474749589917.png) + +- 磁盘空间 + + ![20180820153474678580833.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153474678580833.png) + +#### 网络监控 + +- 线路状态 + + ![20180820153474702479468.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153474702479468.png) + +- 网卡流量 + + ![20180820153474724335212.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153474724335212.png) + +- 服务请求量 + + ![20180820153474714945089.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153474714945089.png) + +### 应用级监控 + +#### 业务监控 + +- 交易统计类 + + ![20180820153475118693280.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153475118693280.png) + +- 排榜统计类 + + ![20180820153474733635029.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153474733635029.png) + +- 线程数统计类 + + ![20180820153475128612047.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153475128612047.png) + + + + +- 耗时统计类 + + ![2018082015347513093401.png](http://o6fhqh1oe.bkt.clouddn.com/2018082015347513093401.png) + + + + + +- 失败原因统计 + + + +- 汇总统计类 + + ![20180820153475261853088.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153475261853088.png) + +#### 数据库监控 + + +- Load + + ![20180820153475217849592.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153475217849592.png) + +- Session + + ![20180820153475138862574.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153475138862574.png) + +- CPU + + ![20180820153475225034781.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153475225034781.png) + +- SQL + + ![20180820153475255016161.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153475255016161.png) + +#### 平台监控 + +- JBoss + + ![20180820153475234811131.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153475234811131.png) + +- JVM + + ![20180820153475238971348.png](http://o6fhqh1oe.bkt.clouddn.com/20180820153475238971348.png) + +- Load + + ![2018082015347524628016.png](http://o6fhqh1oe.bkt.clouddn.com/2018082015347524628016.png) + + +## 基于ECP日志监控脚本范例 + + +- POS交易线程数统计 + + ```shell + tail -n 80 ehpspos2_pos.trc | grep -a active | tail -n 1 | awk '{print $6}' | grep -o '[0-9]*' + ``` + +- 交易明细分组求和(txn_xxx.lst) + + > 最后1000笔按服务名&&交易码分组,统计数量、最大时间、平均时间 + + ```shell + tail -n 1000 txn_pos.lst | awk -F '|' '{print $3"."$4" "$5}' | awk '{max[$1]=max[$1]>$2?max[$1]:$2;number[$1]++;sum[$1]+=$2}END{for (i in max) printf "%s \t%s\t%.0f\t%s \n",i,number[i],sum[i]/number[i],max[i]}' OFS="\t" + ``` + +- 通道平均响应时间 + + ```shell + tail -n 1000 muniefsb_pos.trc | grep -a connector | awk -F '|' '{print $5}' | awk '{sum+=$1} END {printf "%.0f\n",sum/NR}' + ``` + +- POS扫码消费平均响应时间 + + ```shell + tail -n 1000 txn_*.lst | grep -a -E "4433001|4433002|4433011" | tail -n 30 | awk -F '|' '{print $5}' | awk '{sum+=$1} END {printf "%.0f\n",sum/NR}' + ``` + +- 时间大于20秒的交易 + + ```shell + cat tpospay1_pos*.trc* | grep connector | awk -F '|' '$5 > 20000 {print $1,$5}' + ``` + +- 平均汇总 + + ```shell + tail -n 1000 $TRC/muniefsb_${NODE}.trc |grep -a connector | tail -n 30 | awk -F '|' '{print $5}' | awk '{sum+=$1} END {printf "%.0f\n",sum/NR}' + ``` + +- 查询次数统计 + + ```shell + cat txntrc_pos*.lst |grep -a '08:45' |grep -a -E '4433003|5533003|5533008' | awk -F '|' '{sum[$13]+=1}END{for (i in sum)print i,sum[i]}' | sort -n -k 2 -r + ``` + +- 安全中心服务线程数监控 + + ```shell + tail -n 1000 tsafpub1_*.trc | grep connector | tail -n 30 | awk -F '|' '{print $5}' | awk '{sum+=$1} END {printf "%.0f\n",sum/NR}' + ``` + +- 按机构汇总统计交易笔数(前10) + + ```shell + grep -E "ehpspos[0-9].*2010020|ehpspos[0-9].*2010021|ehpspos[0-9].*2010060|ehpspos[0-9].*4433001|ehpspos[0-9].*4433011|ehpspos[0-9].*5533001|ehpspos[0-9].*5533001|ehpspos[0-9].*5533006" txntrc_*.lst* | awk -F '|' '{sum[$13]+=1}END{for (i in sum)print i,sum[i]}' | sort -r -n -k 2 | sed -n '1,10p' + ``` +