Files
2018-09-04 15:43:59 +08:00

7.1 KiB
Raw Permalink Blame History

浅谈企业运营中的监控系统

[TOC]

监控级别

  • 系统级监控

    系统级监控面向服务器、操作系统、硬件设备的监控维度,如CPU、内存、IO、网络、磁盘等

  • 应用级监控

    应用监控更关注于服务、应用、业务、数据等维度,如中间件状态、队列状态、JVM状态、应用服务状态、业务量、交易成功率、交易耗时等

监控目的

  • 管理

    针对经营管理活动中产生的岗位权限、指标、业务等数据信息,建立起相应的监控体系,实现多角度、多层次、全方位的在线监控

  • 实时监控

    对企业各类业务活动开展动态、实时监控,自动形成监控结果,并以邮件、短信、桌面预警等多种方式实现智能预警,帮助企业及时掌控风险

  • 跟踪

    对已确认的业务异常,自动触发业务整改,及时终止、更正违规业务;对有时限要求的事项,可全程跟踪异常整改与事务办理情况,提高风险管理能力

  • 数据分析

    提供多种监控分析与结果展示功能,帮助决策层掌握企业运营中的风险动态,为决策分析提供有力支持。

监控模型图

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

  • 全局视图

    20180820153474773069349.png

  • 硬件性能

    20180820153474749589917.png

  • 磁盘空间

    20180820153474678580833.png

网络监控

  • 线路状态

    20180820153474702479468.png

  • 网卡流量

    20180820153474724335212.png

  • 服务请求量

    20180820153474714945089.png

应用级监控

业务监控

  • 交易统计类

    20180820153475118693280.png

  • 排榜统计类

    20180820153474733635029.png

  • 线程数统计类

    20180820153475128612047.png

  • 耗时统计类

    2018082015347513093401.png

  • 失败原因统计

  • 汇总统计类

    20180820153475261853088.png

数据库监控

  • Load

    20180820153475217849592.png

  • Session

    20180820153475138862574.png

  • CPU

    20180820153475225034781.png

  • SQL

    20180820153475255016161.png

平台监控

  • JBoss

    20180820153475234811131.png

  • JVM

    20180820153475238971348.png

  • Load

    2018082015347524628016.png

基于ECP日志监控脚本范例

  • POS交易线程数统计

    tail -n 80  ehpspos2_pos.trc  | grep -a active | tail -n 1 | awk  '{print $6}' | grep -o '[0-9]*'
    
  • 交易明细分组求和(txn_xxx.lst)

    最后1000笔按服务名&&交易码分组,统计数量、最大时间、平均时间

    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"
    
  • 通道平均响应时间

    tail -n 1000 muniefsb_pos.trc | grep -a connector   | awk -F '|' '{print $5}' | awk '{sum+=$1} END {printf "%.0f\n",sum/NR}'
    
  • POS扫码消费平均响应时间

    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秒的交易

    cat tpospay1_pos*.trc* | grep connector | awk -F '|' '$5 > 20000 {print $1,$5}'
    
  • 平均汇总

    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}'
    
  • 查询次数统计

    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
    
  • 安全中心服务线程数监控

    tail -n 1000 tsafpub1_*.trc | grep connector | tail -n 30   | awk -F '|' '{print $5}' | awk '{sum+=$1} END {printf "%.0f\n",sum/NR}'
    
  • 按机构汇总统计交易笔数(前10)

    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'
    

监控常见的问题分析

  • 接入服务&接出服务线程数同时飙升

这种情况多由于上游通道系统异常、网络异常导致的