听云悟空平台运维手册_第1页
听云悟空平台运维手册_第2页
听云悟空平台运维手册_第3页
听云悟空平台运维手册_第4页
听云悟空平台运维手册_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

斤云

/TINGYON

听云悟空平台

运维手册

版本V1.10

Copyright©2007-2021基调网络及其许可者所有,保留一切权利。

未经北京基调网络股份有限公司书面许可,本文档不得整体或部分地复印、复制、翻译或缩减成任

何电子介质或计算机可以阅读的格式。

本文档中的Logo、"听云"、"tingyun”等文字、图形及其组合,以及文档中听云服务的名称等为听

云及其关联公司在中国和其他国家的注册商标。未经听云书面授权,任何人不得以任1可方式展示、

使用或做其他处理(包括但不限于复制、传播、展示、镜像、上传、下载),也不得向他人表明您有

权展示、使用或做其他处理。对于本手册中出现的其它公司的商标、产品标识及商品名称,由各自

权利人拥有。

免责声明:

由于产品版本升级或其他原因,本手册内容有可能变更。基调网络保留在没有任何通知或者提示的

情况下对本手册的内容进行修改的权利。基调网络尽全力在本手册中提供准确的信息,但是基调网

络并不确保手册内容完全没有错误,本手册中的所有陈述、信息和建议也不构成任何明示或暗示的

担保。

联系信息:

公司总部(北京总部):

地址:子大厦301室

邮编:100027

电话:400-898-9580

公司官网:

刖百

产品版本

与本手册相对应的产品版本如下所示。

产品名称产品版本手册版本

听云悟空平台V3.XV1.10

内容介绍

本手册主要介绍了听云悟空私有化平台在运行过程中,巡检的相关任务、组件的维护和故障处

理的方法等。

读者对象

本手册适用于以下人员:

•运维工程师

•监控工程师

修改记录

修订记录累积了每次手册更新的说明。最新版本的文档包含以前所有版本的更新内容。

版本V1.10(2021-06-28)

调整口监控部分的组织结构,增加同城灾留章节。

版本V1.00(2020-12-11)

本手册首次发布。

文档反馈

针对本手册的反馈,请发送邮件到:

目录

1服务管理....................................................................错误味定义书签。

2自监控.......................................................................错误床定义书签。

2.1概述..............................................................错误味定义书签。

2.2原理..............................................................错误保定义书签。

2.2.1探针的监控...................................................错误!未定义书签。

2.2.2传输组件的监控...............................................错误!未定义书签。

2.2.3后台任务的监控...............................................错误味定义书签。

2.3自监控架构........................................................错误!未定义书签。

2.4监控指标详解.....................................................错误!未定义书签。

2.4.1操作系统监控指标详解.........................................错误!未定义书签。

系统摘要..................................................错误!未定义书签。

CPU负载.................................................错误!未定义书签。

内存使用..................................................错误!未定义书签。

CPU使用率...............................................错误!未定义书签。

进程信息..................................................错误!未定义书签。

上下文切换...............................................错误!未定义书签。

中断次数..................................................错误!未定义书签。

网络吞吐量...............................................错误!未定义书签。

网卡每小时的收发量.......................................错误!未定义书签。

0SWAP的使用.............................................错误!未定义书签。

1SWAP的使用活跃度......................................错误!未定义书签。

2打开文件数..............................................错误!未定义书签。

3挂载点磁盘空间..........................................错误!未定义书签。

2.4.1.14磁盘延迟................................................错误!未定义书签。

2.4.1.15磁盘\OPS.....................................................................................错误!未定义书签。

2.4.1.16磁盘吞吐................................................错误!未定义书签。

710util................................................................................................错误!未定义书签。

2.4.2进程监控指标详解.............................................错误!未定义书签。

2.4.3组件监控.....................................................错误味定义书签。

Nginx监控.................................................错误!未定义书签。

Tomcat监控..............................................错误!未定义书签。

Zookeeper的...........................................错误!未定义书签。

Kafka监控.................................................错误!未定义书签。

2.435Redis监控................................................错误!未定义书签。

MySQL监控..............................................错误!未定义书签。

ElasticSearch雌........................................错误!未定义书签。

2.4.4JVM监控.....................................................四味定义书签。

JVM启动时间..............................................错误!未定义书签。

2.4.4.2当前线程数/deadlock线程数...............................错误!未定义书签。

JDK版本.................................................错误!未定义书签。

Heap区内存使用情况......................................错误!未定义书签。

NonHeap区内存使用情况.................................错误!未定义书签。

Eden/Survivor/Old区使用情况..............................错误!未定义书签。

2.4.47平..........................................................均每秒GC次数..错误!未定义书签。

2.4.4.8平均每次GC时间..........................................$前吴!未定义书签。

2.4.4.9进程负载..................................................错误!未定义书签。

2.4.5进程监控.....................................................错误!未定义书签。

2.4.5.1进程数....................................................错误!未定义书签。

2.4.5.2进程级CPU时间.........................................错误!未定义书签。

2.4.5.3进程级10指标.............................................错误!未定义书签。

2.4.5.4进程级文件句柄数..........................................错误!未定义书签。

2.4.5.5进程级内存使用...........................................错误!未定义书签。

3巡检.........................................................................错误!未定义书签。

3.1日常巡检...........................................................错误!未定义书签。

3.2数据流检查........................................................错误味定义书签。

4组件维护....................................................................错误味定义书签。

4.1概述..............................................................■味定义书签。

4.2DRUID配置多路径..................................................错误!未定义书签。

4.3ELASTICSEARCH配置多路径.........................................错误!未定义书签。

4.4HADOOP配置多路径................................................错误!未定义书签。

4.5KAFKA配置多路径.................................................错误!未定义书签。

5组件扩容....................................................................错误味定义书签。

5.1ES扩容..........................................................错误!未定义书签。

5.1.1准备资源.....................................................错误味定义书签。

5.1.2新增ES节点服务..............................................错误!未定义书签。

5.1.3节点验证......................................................错误味定义书签。

5.1.4开启数据自动均衡.............................................错误味定义书签。

5.1.5等待数据均衡.................................................错误味定义书签。

5.2REDIS扩容.........................................................错误味定义书签。

5.2.1准备资源.....................................................错误!未定义书签。

5.2.2新增Redis节点...............................................错误!未定义书签。

5.2.3修改配置文件.................................................错误!未定义书签。

5.2.4修改配置文件.................................................错误!未定义书签。

5.2.5启动Redis..............................................................................................错误!未定义书签。

5.2.6验证Redis是否正常...........................................错误味定义书签。

5.2.7启动哨兵服务.................................................错误味定义书签。

5.3MYSQL扩容.......................................................错误味定义书签。

5.3.1准备资源.....................................................错误味定义书签。

5.3.2新增MySQL节点.............................................错误!未定义书签。

5.3.3安装MySQLShell..................................................................................错误!未定义书签。

5.3.4安装MySQLRouter...............................................................................错误!未定义书签。

5.3.5节点加入集群.................................................错误!未定义书签。

5.3.6验证数据.....................................................错误!未定义书签。

5.4DRUID扩容........................................................错误!未定义书签。

5.4.1新增Druid节点................................................错误!未定义书签。

5.4.2增加historical节点............................................错误!未定义书签。

5.4.3增加middleManager节点......................................错误!未定义书签。

5.4.4迁移broker服务..............................................错误味定义书签。

5.5KAFKA扩容........................................................错误味定义书签。

5.5.1新增kafka集群节点...........................................错误味定义书签。

5.5.2修改配置文件.................................................错误味定义书签。

5.5.3配置kafka的环境变量.........................................错误!未定义书签。

5.5.4注册新节点到zookeeper.......................................................................错误味定义书签。

5.5.5添加新节点到集群.............................................错误!未定义书签。

5.5.6应用迁移.....................................................错误味定义书签。

6备份和恢复...................................................................错误味定义书签。

6.1应用备份和恢复...................................................错误!未定义书签。

6.1.1手工备份操作.................................................错误保定义书签。

6.1.2定时备份......................................................错误!未定义书签。

6.1.3恢复..........................................................错误!未定义书签。

6.1.4恢复时间说明.................................................错误!未定义书签。

6.2数据备份和恢复...................................................错误!未定义书签。

6.2.1MySQL备份...................................................错误!未定义书签。

6.2.2MySQL恢复...................................................错误!未定义书签。

6.2.3druid备份.....................................................错误!未定义书签。

6.2.4ES备份.......................................................错误味定义书签。

6.2.5Druid恢复.....................................................错误!未定义书签。

6.2.6ES恢复.......................................................错误味定义书签。

7同城灾备....................................................................错误味定义书签。

7.1同城灾备场景.....................................................错误保定义书签。

7.2灾备架构设计.....................................................错误!未定义书签。

7.3日常维护..........................................................错误味定义书签。

7.4灾备切换..........................................................错误味定义书签。

7.5灾备回切..........................................................错误味定义书签。

7.6数据一致性........................................................错误!未定义书签。

8维护Q&A...............................................................................................................................................错误味定义书签。

8.1应用日志中报ESINDEXREADONLY,如何处理?.......................错误!未定义书签。

8.2用户体验分析自动嵌码怎么验证探针是否下发成功?..................错误!未定义书签。

8.3APM-LICENSE-SERVER启动异常......................................错误!未定义书签。

8.4自监控配置邮件告警抛异常.........................................错误味定义书签。

1服务管理

•对整个环境进行服务管理。

-关闭mysql

shservice,stopmysql

--启动zookeeper集群

shservice_startzookeeper

-关闭所有服务

shservice_stopall

-启动所有服务

shservice_startall

-列出kafka所在的机器列表

shservice_listkafka

-列出所有服务所在的机器列表

shservice_listkafka

-单独启动某台机器上的kafka服务

shservice_startkafka.

•对整个环境进行服务检直。

-卸载curlwget

shyumerasecurlwget

-卸载binddhcp

shyumerasebinddhcp

-卸载默认数据库

shyumerasemariadb

-检杳NTP版本

shntpd--version

•Nginx安全

--检查Nginx配置

在文件中添加

Vi

add_headerX-Frame-OptionsSAMEORIGIN;〃增加x-frame限制

然后重启应用

/usr/local/nginx/sbin/nginx-sreload

•sense-mock认证处理

安装完成后,修改

location/sense-mock/{

#proxy_pass:42017/;〃注释原有配置

proxy_pass:8302/sense-mock/;〃配置URL跳转到gateway;

)

•grafana配置

安装完成后,修改/opt/tingyun/monitor3.0/grafana/conf/将grafana账号管理统一到应用

账号管理。

[ic_oauth]

name=OAuth

enabled=true

allow_sign_up=true

clientjd=someid

client_secret=some_secret

scopes=user:email

email_attribute_name=emailprimary

email_attribute_path=

auth_url=http:〃平台IP:8080/oauth/auth〃认证采月应用账号系统

token_url=http://平台IP:8080/auth-api/oauth/token?source=bpi

〃认证采用应用账号系统

api_url=http://平台IP:8080/auth-api/oauth/account?source=bpi

〃认证采用应用账号系统

teamjds=

allowed_organizations=

tls_skip_verify_insecure=false

tls_clier)t_cert=

tls_clier)t_key=

tls_client_ca=

send_client_credentials_via_post=false

2自监控

2.1概述

APM整套系统是一套复杂的分布式系统,对于这样一个系统的运行需要较强的自运维能力才能

保障系统的运行,我们根据系统架构进行拆分、简单可概括为探针的监控、监控传输组件的监

控、后台任务的监控三部分。保障了这三部分的网络和应用正常,才能保障整个系统能够对外

提供服务。

2.2原理

下面我们分别对三个部分进行详细的原理描述。

2.2.1探针的监控

探针的监控我们将展示探针的类型,探针名称,状态(在线/掉线),最后一条数据上传时间。其

中状态是以探针是否成功上传数据到传输组件为依据,传输组件会记录该状态,我们将利用

promethus收集这些探针状态进行展示。如果探针5分钟内没数据我们定义该探针为掉线状

态,需要进行排查。

2.2.2传输组件的监控

传输组件我们重点需要关注吞吐量和并发数。可以通过grafana进行日常监控。我们的传输组

件利用了Tomcat容器,所以对Tomcat的JVM进行监控,获取如下信息,如果达到性能瓶颈

则进行横向扩展。

线程池信息

用于显示线程池信息,current为当前线程池大小,busy为当前繁忙线程,即当前处理的并发清

求数,如busy数量高到max60%考虑增加Tomcat线程数并扩容机器配置。

16X151&5016^517:0017:0517:1017:151720172517:30173517x10

-max-current-busy

吞吐量

用于显示Tomcat的请求吞吐量,评估是否超过网卡带宽,若单台Tomcat吞吐量过高,建议横

向扩展。

BytesSent/Received

125________________________________

100

75

50

25+

0---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

16:4516:501&5517:0017:0517:1017:1517:2017:2>17:30173517:40

一received-sent

每秒请求数/每秒错误请求数

下图为Tomcat每秒请求数与每秒错误数,该指标与线程池信息可构成该Tomcat应用的基线信

Qps/Eps

request-error

平均响应时间

下图为Tomcat请求的瓶颈响应时间,注意观察如果有暴涨则需要对该应用进行优化,可先对

JVM参数进行调优,如不明显则进行应用本身层面的排查。

request

如进行横向扩展,则需要Nginx后端挂载多个Tomcat,需要对Nginx的吞吐量和并发数进行监

控,详情如下:

Nginx并发连接数

下图的active展示的是nginx的并发连接数。即nginxESTABILSH状态连接的数量,如果并

发数过高,建议通过横向扩展增加并发处理能力。

Reading/Waiting/Writing数量

用于显示正在读取的HTTP请求数/准备响应的连接数/空闲等待的请求数。

Nginx每秒请求数

用于显示Nginx的每秒请求数,该指标与并发连接数可构成nginx的基线指标,注意nginx的

cpu利用率不要超过60%,如超过则考虑横向扩容

2.2.3后台任务的监控

后台应用主要负责从kafka收数据入库,我们主要针对kafka的消息积压数进行监控。

详情如下:

ConsumerGroupLag值

查看某ConsumerGroup积压的数量,稳定在某一个区间则没问题,如一直增长说明消费端处

理不过来,需要进行排查。

此外,因为监控数据入库会有不同的维度,我们会对库内所有维度的入库时间监控。当库内存

储维度信息的最后一条时间〈当前时间5分钟会有警告。

2.3自监控架构

除了必要的探针端、传输端和后台应用的监控,我们还需要对所有的机器资源和组件进行监

控,以便系统出现瓶颈时,及时处理和扩容。为此我们提供了以下自监控。

•系统监控:针对所有机器操作系统的CPU、内存、10、网络进行监控。

•进程监控:针对APM系统的所有进程进行监控。

•组件监控:针对APM系统的Redis、MySQL、Kafka.Zookeeper.ES、Nginx等组件进

行监控。

•JVM监控:针对Java进程的JVM进行监控。

•图表展示:针对上述采集到的指标进行图标展示,方便查看指标趋势。

•告警:对运维平台触发的告警信息通知运维人员。

自监控系统的架构如下图所示:

2.4监控指标详解

APM平台本身也是一套复杂的后台系统,因此需要对其进行完整的监控。我们从操作系统、进

程、组件、JVM等几个维度分别进行监控,以期能达到自监控的目的。

下面分别进行解释。

2.4.1操作系统监控指标详解

众所周知,操作系统层面的监控是监控的基本监控,许多的故障和问题都发生在操作系统本身

上,如CPU负载过高、内存不够等。接下来我们会对系统层面的所有指标逐一进行说明。

系统摘要

主要包括机器启动时间、CPU核心数、内存总容量和可用内存容量。

4.6weeks1223.39GiB

CPU负载

用于展示CPU的负载、注意观察负载是否有超过核心数,如负载较高,需要扩容CPU或者进

行应用迁移。

内存使用

用于展示已用和可用内存,建议可用内存至少2G。

Memory

ZSGiB

23GiB

19GiB

14GiB

9GiB

5GiB

OB

11:1011:1511:20112511:30113511:4011)4511:50115512:0012:05

manmaxF

Used19.51GiB2139GiB20.16QB

Available1.99GiB工88GB3.23QB

CPU使用率

展示user、systemiowait,softirqcpu占比,建议全部加起来不超过60%。

CPUUsage

100.0%

50Q%

0%

13:40IMS1350135514K»14:0514:1014:151420142514301435

minmax•v”

uter1.91*11.76%3X)4%

sysietn0方冰1.33W0.79H

lowait0.0&H0.37%0.15%

softirq0.1OW0.10.12W

进程信息

展示当前处于Runnable状态的进程以及阻塞等待的进程数,需要注意是否有突然暴涨或暴跌。

Processes

IB

上下文切换

用于展示上下文切换次数,需注意是否有累涨或暴跌.

ContextSwitches

15K

10K、_.

5K

0

1M5135013:55140014=0514:1014:15142014251430143514^0

minmax«vg

ContextSwitches1029K12.94K1089K

ContextSwitchesperVirtualCPU8581.08K907

241.7中断次数

用于展示系统中断次数,需注意是否有暴涨或暴跌。

网络吞吐量

用于展示出入的网络吞吐量,注意不要超过网卡和交换机的上限,如当前大部分为千兆网卡,

则网络吞吐量建议不要超过600Mbps。

Inbound662kBps1309MBps1.176MBps

Outbound493kBps725kBps554kBps

网卡每小时的收发量

用于展示网卡每小时的收发量,此数据与网络吞吐量正相关,注意如有暴涨暴跌要分析其原因

是否合理。

NetworkUtilizationHourlyOLa#t24Wuc

3.78GB5.13«4.70GiB

1.86GB3.62QBZ87GiB

0SWAP的使用

用于展示sw叩的使用,因为Linux系统会尽量使用内存,偶尔使用swap,所以使用一点

swap没关系,但是如果使用较多,占比超过60%,建议对内存进行扩容。

Free462MiB464MiB463MiB

1SWAP的使用活跃度

用于展示swap换进换出的频率,此指标和SWAP使用空间对应着看,如换进换出频繁,且占

比超过60%建议对内存进行扩容。如换进换出不频繁有可能是某一时刻swap使用量过多,可

以考虑将SWAP内容清掉再进行观察。

SwapIn(Reads)0Bps2Z5kBps563Bps

2打开文件数

用于展示系统的最大打开文件数和当前打开文件数,注意如果使用率超过60%需要调整系统参

数或迁移部分应用。

-LimitX427Mil

-Alocated50KFileDescriptors

2.0Mil

1.5Mil

1.0Mil

500K

U>------------------

11/28000011/290(H»11/3000001241000012/200:0012/3000012/400KX)

minmaxavg*

—Umic2.427MdZ427MilZ427Mil

-Allocated35K97K56K

241.13挂载点磁盘空间

用于展示挂载点磁盘空间的使用情况,超过80%需要清理磁盘或进行磁盘扩容。

下图可展示各挂载点的磁盘的具体容量信息。

44兹盘延迟

用于展示磁盘读写的延迟,注意如果有延迟大幅增高,需要确认是否为业务正常。

5磁盘IOPS

用于展示各磁盘读写IOPS,可用于直看磁盘读写频率,如有暴涨或暴跌需注意是否异常,此指

标要结合吞吐和i。util来判断磁盘是否存在瓶颈。

6磁盘吞吐

用于展示各磁盘的读写吞吐量,如果有暴涨或暴跌需注意是否异常,此指标要结婚iops和I0

uti来判断是否磁盘存在瓶颈。

7IOutil

用于展示各磁盘的繁忙程度,如超过60%且iops不高,磁盘吞吐也不高则说明磁盘读写存在严

重瓶颈,建议升级更快的磁盘。注意顺序读写会大量占用磁盘吞吐,离散读写会大量占用

l0PSo

2.4.2进程监控指标详解

对Nginx、DC、wrap,backend,alarm、MySQL、Zookeeper.Kafka.Redis、

ElasticSearch进程和端口的监控。

2.4.3组件监控

Nginx监控

Nginx并发连接数

下图的active展示的是nginx的并发连接数。即NginxESTABILSH状态连接的数量,如果井

发数过高,建议通过横向扩展增加并发处理能力。

一actMreading一waiting-wrmng

Reading/Waiting/Writing数量

用于显示正在读取的http请求数/准备响应的连接数/空闲等行的请求数。

Nginx每秒请求数

用于显示Nginx的每秒请求数,该指标与并发连接数可构成Nginx的基线指标,注意Nginx的

CPU利用率不要超过60%,如超过则考虑横向扩容。

Tomcat监才空

线程池信息

用于显示Tomcat线程池信息,cu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论