UDN-企业互联网技术人气社区

板块导航

浏览  : 2933
回复  : 1

[实践集] DevOps实践集——应用运维之监控预警

[复制链接]
jingyun1的头像 楼主
1. 场景
SLA(Service-Level Agreement)服务等级协议:原意是关于网络服务供应商和客户间的一份合同,在云计算背景下,演化为对云服务性能和质量的度量指标,即服务连续性保障。SLA反映出云服务的可用性和稳定性,如:
  • 应用的可用性(在线时间),如99.9%的可用性指标
  • 同时在线人数
  • 应用的特殊性能指标
  • 应用响应时间
  • 问题响应时间
应用部署到线上,网络中断、服务器宕机等问题层出不穷,怎样才能及时发现隐患和故障,保证SLA?——监控
应用程序要正常稳定地运行需要依赖很多的基础环境、软件和设备,常见的如:服务器、路由器、存储、IaaS平台、中间件、数据库等等,任何环境的故障都可能导致应用的宕机,监控的核心目标就是及时发现应用环境的各种问题,并及时发布预警、实施自动修复方案。监控系统的核心功能也就需要包括:数据采集、存储分析与预警。
1.1 监控类型
  • 基础监控
    主要是对操作系统信息、网络流量、硬件设备的监控,面向服务器
  • 应用监控
    主要是对应用程序、中间件、数据库等的监控,面向应用
  • 应用性能监控
    主要是对应用程序的性能进行监控,面向应用
其中基础监控、应用监控都可以使用Zabbix实现,应用性能监控可以选用OneAPM和监控宝等SaaS产品
1.2 监控需求
  • 内网主机监控
    物理设备:服务器、网络设备、其他设备
    监控细则:URL监控、磁盘监控、文件监控、网络连通性监控、端口监控、数据库监控、脚本监控、DNS监控、流量监控、负载监控、VIP监控等
  • 线上应用监控
    • 前端集群:Nginx、Tomcat
    • 数据库集群:MySQL、PostgreSQL、MongoDB
    • 缓存服务器:redis
    • 上线系统:Rundeck、SVN
    • 运维自动化系统:CMDB
    • 公共服务:邮件、地理、短信
  • 对监控工具的需求
    • 快速部署Agent,自动化发现主机并添加监控
    • 支持分布式部署
    • 7x24不间断服务
    • 灵活的监控方式
    • 成熟的API,方便集成自动化运维系统
2. 工具
2.1 Zabbix介绍
Zabbix是一款开源的高性能监控解决方案,提供了优秀的监控,报警,以及可视化的功能
2.1.1 Zabbix架构图
zabbix_architecture.png

2.1.2 Zabbix运行流程
zabbix_flow.png

2.1.3 主要功能和特点
  • 收集监控数据、自动化设备管理、Web监控
  • 存储监控数据
  • 管理监控数据
  • 预警,支持Email、短信等
  • 可视化监控数据
  • Zabbix单节点可以支持25000+服务器
  • 性能高,完全支持Linux、Unix、Windows、AIX、BSD等
2.2 Zabbix监控模式
  • Server-Proxy-Client
    zabbix_server_proxy.png
  • Master-Child-Client
    zabbix_master_child.png

3. 监控策略
3.1 URL监控
名称
URL
匹配字段
返回码
XXX应用
http://www.example.com/api/v1/group?profile=xxxx
success:true
200
URL监控适用于应用的可用性监控,比端口监控、进程监控更准确,URL也属于应用服务,只要URL无法访问或返回值异常,都可以视为应用不可用,其中的URL不仅仅是API,也包括其他Web页面等,通过关键词也可以判断应用是否正常
3.2 Redis监控
监控名称
报警策略
端口
6379
0
Used memory
int

redis_maxmemory
int

redis_maxconnected
int

Connected Clients
int

内存使用率百分比
%
<85%
check_memory
int

check_connected
int

3.3 MongoDB监控
监控名称
报警策略
端口
27017
<> 1
mongos进程

<2
OpCounters: Total Update Ops in Last 1 s


OpCounters: Total Query Ops in Last 1 s


OpCounters: Total Insert Ops in Last 1 s


OpCounters: Total Getmore Ops in Last 1 s


OpCounters: Total Delete Ops in Last 1 s


OpCounters: Total Commands in Last 1 s


Memory: Virtual Memory Size (MB)


Memory: Resident Memory Size (MB)


Global Locking: Total Lock Time 毫秒 in Last 1 s


Cursors: Open Curors


Cursors: Cursor Time Outs


Cursors: Client Cursor Size



3.4 Tomcat监控
采用端口监控的方式
监控名称
报警策略
8080 service is running
bool‘=0’

3.5 Nginx监控
监控名称
报警策略
发送响应内容(writing)
int

处理请求数/s
int

处理连接数/s
int

并发连接数
int

成功连接/s
int

等待连接(waiting)
int

读取请求(reading)
int

针对nginx87/88/89转发节点监控
text
出现down关键字
3.6 PHP监控
监控名称
报警策略
accepted_conn
int

listen_queue
int

php_active
int

php_idle
int

php_total
int

start_since
int

3.7 基础监控
非网卡网络监控


监控名称报警策略
ICMP loss%
ICMP pingbool3次为0
ICMP response times
tcp_waitint>3000
tcp连接数int>1w,>8w
zabbix客户端存活bool"=0"
进程监控

监控名称报警策略
系统总进程数int
系统运行状态进程数int
磁盘监控

监控名称报警策略
磁盘写ops-1分钟int
磁盘读ops-1分钟int
文件监控

监控名称报警策略
文件passwdtext
检查passwd文件md5发生变化
基础信息

监控名称报警策略
主机名string
主机时间time与监控机相差10s
系统信息string
系统运行时间time变化值小于0
内存监控

监控名称报警策略
可用内存大小int<200m,<50m
物理内存已使用百分比%
CPU监控

监控名称报警策略
cpu-idle%
cpu-interrupt%
cpu-io-wait%>20
cpu-nice%
cpu-softing%
cpu-stral%
cpu-system%
cpu-user%
cpu-loadint>35,>200
cpu核数int
磁盘监控

监控名称报警策略
磁盘剩余空间百分比%<15%,<5%
网卡监控

监控名称报警策略
网卡流入int>50m,>200m
网卡流出int>50m,>200m

想了解更多运维和DevOps的资讯和实践,关注公众号


相关帖子

发表于 2015-7-17 13:34:06 | 显示全部楼层
学习一下
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部