会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 手机微博运维监控系统实战!

手机微博运维监控系统实战

时间:2025-11-05 13:39:54 来源:益强数据堂 作者:人工智能 阅读:152次

业务是手机实战满足公司资本发展向前走的生力军,它的微博脚步永远都不应该停下来。与直接参与架构的监控设计和研发人员相比,技术保障人员是系统一群默默无闻的幕后英雄。***的手机实战架构是不存在的,这就需要技术保障人员不断查找并解决问题、微博规避架构风险、监控完善业务以及开发所需要的系统基础设施,为业务架构的手机实战稳定运行提供强大的支撑,为业务线的微博架构设计和开发人员做好后勤保障。

现在,监控各类技术大会层出不穷,系统技术人员有了更多学习前沿技术和设计思想的手机实战渠道。但是微博学习到的这些思路,是监控否真的适合公司的业务?要解决业务架构的云服务器提供商更种缺点,是否一定要推翻重做?作为技术保障人员,怎样在不重建体系的前提下,降低系统的故障率,让它运行得更好?

王春生 秒拍网架构师/前新浪系统架构师、研发技术保障部总监

在由高招主办的“CTO训练营”活动现场,前手机微博技术保障体系负责人、现秒拍网架构师就上述问题与现场同学进行了分享和探讨。这位有十余年系统设计和技术架构经验的老兵认为,大多数情况下,我们目前线上运行的架构,就是最适合公司业务线状的架构。面对现实存在的一些问题,我们完全没必要推翻现有的体系,而是找到一些方式和方案,能够实时的发现或者监控线上存在的问题;同时通过相应的技术指标,预判并规避可能出现的风险。

手机微博架构浅析

2014年,企商汇手机微博的业务翻倍增长,这促使手机微博的架构进行了一次重大改造。主要方式是将PHP的Scribe,包括自己定义的PHP模板引擎换成鸟哥写的Yaff;将很多PHP自身运算变成了PHP模块,等等。

王春生首先对手机微博架构进行了简单分析。Microservice包括开放平台的核心池和非核心池两部分,来将不同的业务进行隔离。用户可以通过手机客户端直接访问CDN获取图片,以及直接访问“图床”Service 来上传图片;MAPI会请求Microsevice。

王春生坦言,整个架构无论是从平台体系还是从业务体系来讲,与许多互联网应用的架构非常相似,无非就是接入层、业务层、数据层,当然可能有多个接入层、多个数据层和多个业务层。那么一个这样简单的结构,它的网站模板问题到底可能出现在哪儿呢?

上图是王春生整理出来的手机微博遇到最多的问题,并将这些问题从业务及体验、架构及技术保障这三个层面进行了梳理。

分析来看,这些架构所遇到的问题基本都差不多。主要所括容量上和容错上的一些问题;一些架构上的不合理;监控、报警不够及时,响应的速度和解决问题的速度不够快;技术债务和技术风险等。

要想把这些技术技术债务、技术风险,包括一些对架构产生影响的外部因素挖掘出来,首先要解决的问题就是监控。因为无法对问题进行度量,管理和优化也就无从谈起。

监控体系实战

技术选型:Zabbix

手机微博监控选择的是Zabbix。王春生谈到,其实任何一款现在主流的开源监控产品,如Nagios、Zabbix、Ganglia、Bosun等等,几乎都可以满足对监控的需求。大家没有必要在监控系统的选型上费太多力气,而真正花费时间和精力的是在监控项的设计上,因为监控项的设计是监控工作中最重要的环节。

说到这里,王春生指出了许多公司运维工程师陷入的一个误区——尽管同时采用了多套不同的监控系统,甚至自己写了一部分shell脚本,但线上一些常见问题并没有得到及时的报警。于是不断有新的监控项堆积出来,然而,往往还是很难定位到问题的具体细节。

监控项设计:最小粒度原则

因此,手机微博设计监控项首先考虑的是采用最小粒度原则,任何一个涉及到单机的监控项都会定位到单机上。在成千上万台机器中,只要有一台机器出现问题,可以迅速定位出现问题的那台机器。这台机器在哪一个IDC,影响到的是什么样的用户人群,同样也能够快速知道。

但监控做的细经常遇到的一个问题就是收到到的报警太多。某一个区域,或者说某一个功能特征的系统出现问题时,经常一下子收到几十条、几百条的报警短信。因此在汇总时会考虑一些收敛功能的设计。

另外在设计监控项时,还要考虑到它覆盖的广度和深度,因此手机微博的监控系统做了一个简单的分层:操作系统层、Server层(服务软件层)、业务层。

所有操作系统的日志、业务的日志全部都到Rsyslog里面去,会通过Rsyslog做转发,比如转发到HDFS、Elasticsearch里面去,这基本是目前互联网公司通用的做法。值得一提的是,手机微博的监控整体上都是用的Rsyslog,基于日志进行实时计算。

ELK/ERK:定位复杂问题

监控系统虽然能帮助我们快速发现问题,但只有监控的话,还是没有办法更深入的挖掘到底出在哪儿。通过监控,我们只能得到的是一些计算出来的数值,所以它得到的结果是很概要的。当故障发生时,尤其是在一个复杂行为里,我们很难快速定位问题真正发生的位置。另外,监控项之间的关联关系也是需要提前挖掘的。比如要将Feed接口所依赖的十几个微服务的接口的定义出来,就需要花费很多的时间和精力。而且一旦业务发生变化,监控体系也要随之调整,这是比较麻烦的。

因此,微博采用了ELK和ERK体系,并进行了一些优化,比如用Rsyslog替换Logstash。记录下来的大量日志需要进行一定的格式化分析,让开发工程师和架构师更好的对系统进行优化。通过ELK体系,可以做出这样的饼图出来,直观定位监控系统报警的那些问题,查找出来到底是哪一行代码性能最差,影响了全局。

整体来看,手机微博技术保障体系的监控系统的功能,主要是快速发现并尽可能快地定位问题。通过ELK和ERK套件,更加精准的定位问题,以及发现一些更为复杂的问题。ELK和ERK套件的优势就是日志是实时的,现场感很强,并且它支持的日是志类型非常丰富。几乎在问题发生同时,我们就可以知道线上系统是哪一个环节都现问题,出现了什么问题。另外,它还提供了很多关联分析。

但它的劣势就是日志的存储是需要一定成本的,另外效率并不高,历史的回溯能力也不强。

保障业务前进的后勤部队

当然,技术保障体系不止于监控。总的来说,技术保障就是要给业务架构师和开发工程师这些在前面冲锋的战士,提供相应的支持和更好的素材,来保证整体业务快速向前。我们的业务要往前冲,除了开发工程师,除了架构师,设计方案、写代码之后的所有事情,都需要有一个专门的技术保障团队为大家提供服务和支撑。技术保障一方面对业务线提供支持,帮助架构设计和代码实现快速部署,使产品尽快面世。另外还可以通过一些基础的监控数据分析,和一些基础设施的开发,偿还一些技术债务。

讲师简介

王春生 秒拍架构师

秒拍网架构师,先后担任过新浪系统架构师、研发技术保障部总监,10余年系统设计、技术架构经验,尤其擅长高性能、高并发、大数据业务架构设计。具备丰富的技术团队管理经验。多个基于Rsyslog的技术作品,被Rsyslog官方引进使用。个人译著《Puppet 3实战手册》,《NoSQL权威指南》。

了解更多训练营内容请登录 http://x.51cto.com/act/

(责任编辑:人工智能)

上一篇:2K屏幕手机观看VR的体验如何?(探索2K屏幕手机在VR世界中的表现,挖掘更真实的沉浸感)
下一篇:要想使用命令行安装和卸载软件,当然得事先知道要安装或卸载的软件包名称。而APT 是基于Debian 的Linux 发行版(包括Ubuntu)包管理命令,使用 apt-cache 我们便可以找出系统中包相关的元数据信息,本文中将就将向大家介绍如何查看Ubuntu 安装包信息。使用apt-cache假如要列出 Ubuntu 系统中所有可用的软件包,我们只需执行如下命令:复制代码代码如下:apt-cache pkgnames | less该命令中的 | less 管道输出,可以让我们在数据较多时通过上、下箭头或“PgUp” 及“PgDn” 来滚动查看。当我们不找到所需包名或不需要滚动查看时,只需按 q 即可退出。假如你知道软件包名的开头字符,我们便可以使用搜索功能来缩小范围。例如要查看Firefox 的包名,则可使用类似如下命令:复制代码代码如下:apt-cache pkgnames firef 使用上述命令,我们便可以查看到所有以 firef 开头的软件包。当我们知道包名后,要显示软件包的详细信息,例如:版本号、大小、校验值和软件描述等信息时,则可使用 show 选项来进行查看:复制代码代码如下:apt-cache show firefox 当大家要查看某个软件包所需依赖及哪些包依赖于该软件包时,则需要使用 showpkg 选项:复制代码代码如下:apt-cache showpkg firefox 当我们需要查看当前 Ubuntu 不同类型包的统计及整体统计信息时,可以使用 stats 选项:复制代码代码如下:apt-cache stats 要了解某个软件包的迁移及相关说明时,我们可以使用search 选项:复制代码代码如下:apt-cache search firefox-locale-zh-hans 使用axi-cacheaxi-cache 可以算是apt-cache 命令的孪生兄弟,但它可以提供的描述信息和相关性更强。我们还是以Firefox 来举个例子:复制代码代码如下:axi-cache search firef 该命令默认中显示20条结果:查看更多信息可使用如下命令:复制代码代码如下:axi-cache more 以上就是告诉大家Ubuntu安装包信息是如何查看的,希望该文对大家的学习有所帮助。
最新内容
推荐内容
  • Ubuntu是一个流行的Linux操作系统,基于Debian发行版和GNOME桌面环境,和其他Linux发行版相比,Ubuntu非常易用,和Windows相容性很好,非常适合Windows用户的迁移,预装了大量常用软件,中文版的功能也较全,支持拼音输入法,预装了Firefox、Open Office、多媒体播放、图像处理等大多数常用软件,一般会自动安装网卡、音效卡等设备的驱动,对于不打游戏不用网银的用户来说,基本上能用的功能都有了,在Windows操作系统下不用分区即可安装使用,就如同安装一个应用软件那么容易,整个Ubuntu操作系统在Windows下就如同一个大文件一样,很容易卸载掉。下面我就介绍一下Ubuntu操作系统安装使用的方法,供Ubuntu新手参考,希望能起到Linux扫盲的作用。     下载Ubuntu   Ubuntu有三个版本,分别是桌面版(Desktop Edition),服务器版(Server Edition),上网本版(Netbook Remix),普通桌面电脑使用桌面版即可,下载地址请点这里,32位CPU请选择32bit version,上网本则可下载Netbook Remix,目前Ubuntu已经占据三分之一的上网本市场,仅次于Windows XP系统。Google的Chrome操作系统强有力的对手就是Ubuntu Netbook Remix。   目前最新的版本是9.04版,下载后的文件名是ubuntu-9.04-desktop-i386.iso,大小是698M,通过迅雷下载非常快,大约半个小时左右可以下载完毕。   安装Ubuntu   在Windows下可以不用重新分区,直接像安装一个应用程序那样安装Ubuntu,安装方法是,先使用一个虚拟光驱(例如微软的Windows虚拟光驱)装载ubuntu-9.04-desktop-i386.iso文件,然后运行根目录下的wubi.exe,运行前要将本地磁盘的名字都修改为英文名,否则会出现错误信息“UnicodeEncodeError: ascii codec cant encode characters in position 0-3: ordinal not in range(128)”而无法运行。       运行之后,会出现如下界面,选择“Install inside Windows”即可在Windows下直接安装而无需分区。    接着出现下面的安装界面,选择一个磁盘,然后将语言选择为“Chinese(Simplified)简体中文”,Installation size为Ubuntu环境的总共磁盘大小,然后是登录用户名和密码,设置好了以后就点安装继续。    后面的安装操作很简单,不需要手动干预就可以直接安装好整个操作系统,大部分的硬件驱动都可以自动安装好。提示安装完毕后,重启系统,就可以使用Ubuntu了。   自动登录Ubuntu   Ubuntu默认是每次登录都是要输入用户名和密码的,这是基于安全方面的考虑,不过对于桌面版,大家都习惯自己的电脑能自动登录,类似Windows XP系统那样,通过一些设置可以实现Ubuntu自动登录。设置的方法是:点击“系统”—“系统管理”—“登录窗口” (需要输入管理员密码),然后在“安全”选项页—勾选(启用自动登录),然后在下拉列表里选择自己的用户名。之后Ubuntu就能够自动登录了。   开机自动运行程序   类似Windows的启动菜单,在Linux也可以实现开机自动运行一些命令,比较简单的方法是修改 /etc/rc.local 文件,将需要执行的命令添加进去。     桌面设置   Ubuntu的桌面,默认有两个任务栏,一个在上面,一个在下面,通常习惯Windows的用户喜欢将上面的移到下面,Ubuntu的面板无法拖动,在上面点右键后,可以让其显示在屏幕下端。   桌面背景设置和Windows很类似,在“桌面”上点右键,点更改桌面背景,就可以进行修改设置。   修改root密码   Ubuntu默认的用户并不是root,我们可以通过操作来使用root这个超级管理员帐号,以获得更大的权限。先打开终端,然后执行下面的语句   sudo passwd root   就可以修改超级管理员root的密码,之后就可以使用su命令切换到root用户来执行某些更高权限的操作。   Hosts修改   在Windows下,我们上Twitter等网站都需要修改hosts文件,在Linux下也有hosts文件,文件位于/etc/hosts,使用root用户可以编辑修改这个文件,主机名和IP的格式与Windows的完全相同,例如:   127.0.0.1 localhost   在Ubuntu下安装软件   Ubuntu下的软件安装有几种方式,常用的是deb包的安装方式,deb是debian系列的Linux包管理方式,ubuntu属于debian的派生,也默认支持这种软件安装方式,当下载到一个deb格式的软件后,直接在界面上就可以安装。   另一种常见的安装方式是源代码编译安装,很多软件会提供了源代码给最终用户,用户需要自行编译安装,先使用tar将源代码解压缩到一个目录下,然后进入这个目录,执行以下三条命令:   ./configure     make   sudo make install   执行完成后,即可完成软件的编译和安装。   还有一种方式是apt-get的安装方法,APT是Debian及其衍生发行版的软件包管理器,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。常用的安装命令是:   sudo apt-get install 软件名   sudo apt-get remove 软件名   Firefox浏览器的更新   Ubuntu安装完成后会自动安装一个Firefox浏览器,遗憾的是这个Firefox版本通常较低,例如Ubuntu 9.04会安装Firefox 3.0,不过我们可以想办法下载最新的Firefox覆盖掉老版本Firefox,具体方法是,先上Firefox官方网站下载最新的Linux版本Firefox,然后将其解压缩到某一个目录下,例如firefox目录,进入终端,到这个目录的父目录,执行下面的语句:   sudo cp -r firefox /usr/lib/firefox-3.5.2   sudo mv /usr/bin/firefox /usr/bin/firefox.old   sudo ln -s /usr/lib/firefox-3.5.2/firefox /usr/bin/firefox-3.5.2   sudo ln -s /usr/bin/firefox-3.5.2 /usr/bin/firefox   之后就可以将Firefox成功替换为最新的Firefox 3.52版本,未来的Firefox更新也可以使用这种方法。     Firefox的Flash问题   经过我的实际测试,Ubuntu自动安装的Flash插件swfdec存在很多问题,在Firefox中,很多网页的Flash无法显示,包括Google音乐和开心网等,因此建议使用下面两条语句将其卸载。   sudo apt-get remove swfdec-mozilla   sudo apt-get remove swfdec-gnome   之后可安装官方的Adobe Flash Player的Linux版,下载地址是: http://get.adobe.com/flashplayer/   安装完成后,还要解决中文乱码问题,解决方法是执行下面语句:   sudo cp /etc/fonts/conf.d/49-sansserif.conf /etc/fonts/conf.d/49-sansserif.conf.bak   sudo rm /etc/fonts/conf.d/49-sansserif.conf   之后,Firefox的Flash就完全正常了,在Firefox中访问开心网等Flash网站,显示都正常。   安装常用软件   介绍完了安装的方法和Firefox,下面就可以去各个网站下载一些常用的Linux软件来安装了,下面是我整理的一些常用的Linux软件列表:   Linux QQ:访问这个地址,下载deb文件安装,可以在Linux下玩腾讯QQ。   防火墙 firestarter: 使用 sudo apt-get install firestarter 安装。   杀毒软件 AntiVir: 虽然Linux下的病毒很少,但对于新手还是有必要安装一个杀毒软件,访问这个地址可以下载免费版的AntiVir杀毒软件,这个软件我曾经在《五个最佳的防病毒软件》中介绍过。   rpm 转 deb 工具: 使用 sudo apt-get install alien 安装   JAVA环境安装: JRE的安装 sudo apt-get install sun-java6-jre ,JDK的安装 sudo apt-get install sun-java6-jdk       eclipse安装: 先到这个地址下载最新的eclipse,然后使用tar xvfz eclipse-php-galileo-linux-gtk.tar.gz -C /opt 解压缩后就可以使用。    Picasa 3 for Linux安装: 访问这个地址,下载后直接安装。   Google Earth安装: 在这里下载最新版本的Google Earth,下载下来是个BIN文件,在图形界面上右击 GoogleEarthLinux.bin,在“权限”选项卡中勾选“允许以程序执行文件”,如下图。    之后在终端上执行 ./GoogleEarthLinux.bin 即可安装。    安装LAMP环境   Ubuntu的桌面版也可以安装LAMP(Linux + Apache + MySQL + PHP)环境,这里我介绍一个最简单的方法,就是使用XAMPP,这个项目我曾经在《常见的WAMP集成环境》中介绍过,XAMPP不但支持Windows,还支持Linux,在其网站下载之后,运行下面两条命令:   tar xvfz xampp-linux-1.7.2.tar.gz -C /opt   /opt/lampp/lampp start   就可以启动LAMP环境,XAMPP是功能全面的集成环境,软件包中包含Apache、MySQL、SQLite、PHP、Perl、FileZilla FTP Server、Tomcat等等,很适合开发环境使用。   安装程序添加程序菜单和桌面       有些程序是直接解压缩安装的,因此不会添加“应用程序”的菜单项,我们可以手动将其添加菜单项,具体方法是,打开“系统”—“首选项”—“主菜单”,新增即可。   添加桌面快捷方式是,在桌面上点右键,创建启动器。这个“启动器”就是Windows里面的“快捷方式”。   将“应用程序”的菜单项创建到桌面快捷方式的方法是,在“应用程序”的菜单项上单击鼠标右键,选择“将此启动器添加到桌面”或“将此启动器添加到面板”,就可以了。
  • 如何自定义windows 7文件鼠标停留时的内容注释
  • 打造个性化Win 7系统之windows 7个性化图标
  • windows 7系统下蓝牙耳机连接电脑听音乐的详细图解
  • 电脑进入BIOS界面教程(掌握电脑BIOS操作的关键步骤)
  • windows 7 64位旗舰版设置字体显示比例让字体变大
热点内容