监控

集群监控系统的设计方案

北城以北 提交于 2020-02-29 09:05:57
背景 一个项目发展了一段时间以后,总会分成为数众多的子应用,各自以集群的形式部署在不同的服务器上。当部署的应用多了以后,整个集群的异常监控就成为一个比较麻烦的事情。最近接到的需求便是开发一个监控系统,监控所有子应用的抛出的异常信息,以及各种定时线程的执行情况等。 一些 原则 因为项目已经比较庞大了,所以这套监控系统对原有的各应用不能有太大的侵入性,代码的改动量不能太大。 项目的子应用众多,设计监控方案时,要考虑通用性,尽量减少边际成本。 整个项目的子应用分布在上百台服务器上,所以设计时应考虑到部署实施的简便性。 方案一 最开始考虑的方案,开发一个web服务器 monitor 和 触手 agent,把 agent 部署到所有的服务器上,通过分析指定目录下的日志文件获取该服务器上的所有应用运转情况。而相对应的,所有需要监控的子应用需要输出自身的错误日志 和 定时线程的执行日志到指定目录,配合监控。 这个方案的好处是通过 agent 不单可以监控应用,还能做很多额外的事情,比如服务器内存负载监控,应用异常时的自动重启等等,还一个优点是跨语言,不局限于java;不足之处也很明显:部署和更新繁琐,代码侵入性略大,每个应用都需要新增大量的日志输出代码;而且agent多了以后,可能需要专门的运维来负责维护。 方案二 第二套方案仍然需要开发web服务器 monitor,但不再提供agent

如何使用 Java8 实现观察者模式?(上)

拜拜、爱过 提交于 2020-02-28 13:51:47
【编者按】本文作者是 BAE 系统公司的软件工程师 Justin Albano。在本篇文章中,作者通过在 Java8 环境下实现观察者模式的实例,进一步介绍了什么是观察者模式、专业化及其命名规则,供大家参考学习。本文系国内 ITOM 管理平台 OneAPM 工程师编译整理。 观察者(Observer)模式又名发布-订阅(Publish/Subscribe)模式,是四人组(GoF,即 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides)在1994合著的《设计模式:可复用面向对象软件的基础》中提出的(详见书中293-313页)。尽管这种模式已经有相当长的历史,它仍然广泛适用于各种场景,甚至成为了标准Java库的一个组成部分。目前虽然已经有大量关于观察者模式的文章,但它们都专注于在 Java 中的实现,却忽视了开发者在Java中使用观察者模式时遇到的各种问题。 本文的写作初衷就是为了填补这一空白:本文主要介绍通过使用 Java8 架构实现观察者模式,并在此基础上进一步探讨关于经典模式的复杂问题,包括匿名内部类、lambda 表达式、线程安全以及非平凡耗时长的观察者实现。本文内容虽然并不全面,很多这种模式所涉及的复杂问题,远不是一篇文章就能说清的。但是读完本文,读者能了解什么是观察者模式,它在Java中的通用性以及如何处理在

不想被“监控”了?教你一招摆脱广告追踪

好久不见. 提交于 2020-01-10 06:57:20
全文共 2260 字,预计学习时长 7 分钟 来源:Pexels 你知道手机比你更准确了解你现在所处的位置吗?你知道在你上网或者使用应用程序时,有成堆的公司会悄悄地追踪你的动态吗? 定位广告已是一个普遍现象,商家们争先恐后地让您的手机充满了根据您兴趣爱好和消费倾向投放的广告,这些与您相关的信息主要就是通过手机收集日常生活规律数据,并进行分析而得到的。 比如说NewRelic,仅仅帮助公司持续追踪用户的错误,然后快速地反馈给公司。但是其他的追踪器,比如脸书、苹果、微软、亚马逊、谷歌和其它许多公司受众网络,则会随心所欲地收集大量数据,不管是从你自己的设备上还是从你的网络中。他们收集这些信息并进行处理分析,以帮助他们的客户找到消费群为动力,通过精准广告投入赚钱。 那么,这里就存在一个问题。 来源:Pexels 为什么你的手机、平板、电视等设备可以“背叛”你,“跟踪”你,并把你的信息“分享”给第三方呢? 别怪这些设备,其实是你自己允许它们这么做的,当你接受冗长的隐私协议时,你也接受了隐藏在其下的数据共享条款。 收集这些数据的公司通常有一个合理的解释,例如苹果跟踪个人电话和电子邮件是为了防止欺诈,而很多人认为这样做侵犯隐私。 广告屏蔽一直是消费者信息保密的传统做法,但这只在网络浏览器上有效。现在,更多的公司会选择在手机程序上追踪用户。而删除自己的Facebook账户并不能阻止公司的追踪行为

超级 Ping 监测工具——为您的网络状态保驾护航

試著忘記壹切 提交于 2020-01-07 12:56:48
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 关于 Ping Ping 是一个网络命令,主要是用于确定本地主机是否能与另一台主机交换(发送与接收)数据。根据返回的信息,就可以推断 TCP/IP 参数是否设置得正确以及运行是否正常。正常情况下,Ping 将返回若干个参数,丢失率为 0,当网络状态不佳或网络中断的情况下,Ping 操作将无法正常返回 TTL 参数(显示请求超时或其他 bug )。 通过 Windows 平台的 ms-dos 可以简单执行 Ping 操作,然而这种操作只能简单测试网络是否正常联通,大体上排除网络访问层、网卡、MODEM 的输入输出线路、电缆和路由器等存在的故障,要想更进一步了解网站的连通速度和连线时间,获取连接错误的详细信息,还需要通过具体的监测工具。 超级Ping工具 是一套实现对多个主机网络状态的实时监测、监测结果分析、断网告警、网络状态上报等功能的工具,采用 ICMP 协议即 Ping 的方式来实现对主机网络状态的监测。具有以下几个特点:1、基于 ICMP 协议实现网络监测。2、支持连续监测和间隔监测两种网络监测模式。3、提供短信、邮件等多种网络异常告警方法。4、可同时监测多台主机。 Ping 监控的使用场景 要了解 Ping 监控的使用场景,我们就不得不介绍 Ping 监控 的几个指标。 可用性 可用性是在某个考察时间

Cloud Test 在手,宕机时让您不再措手不及

最后都变了- 提交于 2020-01-07 12:56:30
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1月28日, Github 上午 10:04 分宕机了,导致全球各地的用户不能访问。官方回复可能是网络中断引起的,到 10:28 分已经可以正常访问。 对于互联网公司来说,一旦宕机就会措手不及,如何才能在第一时间知道宕机,是很多企业关注和亟需解决的问题。OneAPM 适时推出的一款服务质量监测类产品—— Cloud Test,24 小时监控网站,并提供实时的信息反馈。这里重点介绍下 Cloud Test 的 Ping 监控 、单页面监控、 API 监控 。 Ping 监控可以查看可用性、丢包率、加载时间。Ping 监控输入 IP 或 Ping Host 地址即可,如下图: 单页面监控输入 URL 就可查看网页性能监控数据,网页性能展示如下图: API 监控可以查看 API 的返回值是否正确、是否超时等性能,网页性能展示如下图: Cloud Test 还可以进行报警设置,一旦性能超过阈值就会第一时间给您发邮件,让您不再对网站异常措手不及。 Cloud Test 是基于云技术的实时监控系统,能够帮大家实时监控网站性能,监控CDN、DNS、API等第三方服务提供商的可用性,实现应用性能及时监测及时报警。想阅读更多技术文章,请访问 OneAPM 官方技术博客。 本文转自 OneAPM 官方博客 来源: oschina

用了OneAPM CT,宕机早知道!

你。 提交于 2020-01-07 12:55:58
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Twitter 的公司网站和移动应用在 1 月 19 日早上出现宕机,导致全球部分地区用户无法正常访问。这次宕机影响了很多用户,英国和印度用户已经无法访问 Twitter 。第三方监测机构 DownDetector 称,北欧地区受此次 Twitter 宕机影响最大,特别是英国、法国和德国。无独有偶,京东主页最近也总出现各种问题,谁让奶茶妹妹怀孕了呢,强东,用了 OneAPM Cloud Test 你就可以随心所欲的陪着老婆孩子了! Twitter 、京东都不免出现宕机,作为互联网企业,或多或少都会出现网页、服务器无法访问等情况,这对于用户体验而言无疑是致命打击,特别是对于网购、游戏类网站来说,系统及服务器稳定性是基本要求,直接影响用户流失及企业营收。 Cloud Test 在这样的需求下应运而生。 有了 Cloud Test ,从此不用再提心吊胆,出现宕机、加载超时问题第一时间通知你! Cloud Test 是基于云技术的实时监控系统,能够帮大家实时监控网站性能,监控 CDN、DNS、API 等第三方服务提供商的可用性,实现应用性能及时监测及时报警。 以单页面监控为例,可以监控网站的可用性、DNS 时间、建立连接时间。一旦出现宕机, CT 就会第一时间给通知您,避免不必要的损失。 除此之外, CT

《监控》之“躲”在北京

痞子三分冷 提交于 2019-12-22 06:39:37
“躲”在北京 2009 年 6 月,北京。 今年的夏天,北京热得特别早, 6 月中旬下了场雨,晚上还得盖被子。雨过天晴,温度很快回升, 6 月底,已经到 38 ℃ 了。 今 天是 6 月 29 号,天气出奇的热,很像最近的股市和楼市。热法颇具水准,用流行的话说就是桑拿天,天气闷,湿度大,汗出不来,说不出的难受。 今天也是我正式休假以来的第 14 天。 也就是说我已经光明正大地“躲”了 14 天了。 这 14 天我“躲”在北京的东北角快接近五环路的位置。 晚上,坐在路边一个烟熏火燎的烧烤地摊前的马扎子上,光着膀子,白色的 T 恤衫就搭在肩膀上,可以当毛巾用了,前面是一个油乎乎的也看不出颜色的小桌子,上面堆着烤好的鸡翅、肉筋、猪腰子、板筋、馒头片,吃着热辣的烤货,喝着冰镇的燕京啤酒,抽着“将军牌”香烟。面前已经堆起一小堆竹签子。而地上,也已经是一片烟头。 换成别的时候,心情一定特爽,特别在这样的桑拿天里,喝冰啤酒、吃烤串,享受哇。但是我今天就一个心情,那就是:缺乏安全感! 真的,我现在就需要安全感,我“躲”在这个北京城的东北角也是为了安全感,自从 14 天前,我的公司老板 Kary 对我说:“你去休个假吧,多少天无所谓,带薪的”,我就知道,我得找找这个“安全感”。 “老板,再来 20 块钱的肉筋!”我喊道。 “哥们儿,我请,您继续说……”我对和我坐一张小桌子的这个北京的哥说。这个的哥

《监控》之分析

只愿长相守 提交于 2019-12-22 06:38:30
“胡哥,不是……兄弟我确实遇到些难处,才躲到这个地方来的,不是我信不过胡哥你,而是,不想扫了今天我们的兴头啊,难得……” “少废话了”,我还没有说完,就被胡哥生硬地打断,不过我能看得出来他没有真的很生气,“欠别人钱了?干了个妞出事了?打伤人了?犯事了?还能怎么着……哥哥这么多年什么没有见过,说出来一起扛啊。”胡哥分明也喝了不少,开始吹牛。 “嗯,这个事,说出来你真的不一定知道。”我叹了口气,整理一下我的思路,下决心再次面对这件事情! “哦?” “这个事情说来话长了,我们得慢慢说”,我给胡哥点上一支烟,自己也点上一支。“你知道的,我现在是EGE软件公司的大中华区安全合作部的高级经理,你知道这个大中华区安全合作部是干什么的吗?”我笑着对胡哥卖个关子。 “这个‘安全’是对内对外呢?” “对内对外都有,不过一般都是内部的人、外部的事。”我又卖了一个关子。 “呵呵,那就是监控监控员工的邮件、聊天记录,看看谁泄露公司机密,还能干啥大事?”胡哥有点疑惑。 “你说的都有,但是还有别的,你说的这些哪个公司不会啊,要只是那样就不是EGE了!呵呵。”我笑着说,自己也觉得笑得有点冷。 “派出商业间谍,排查自己公司的商业间谍?”胡哥开始有了兴致,继续问。 “有,但是还有……” “跟踪客户,跟踪竞争对手,监听,偷窃信息,恐吓,雇佣黑社会……顶天了吧?”胡哥接着说。 “有。” “靠,还有,夸张了吧

Ubuntu上快速搭建Nagios监控

江枫思渺然 提交于 2019-12-10 15:45:11
Nagios是常用的系统监控工具,提供了很多基本服务的监控脚本,如HTTP,MYSQL等,同时具有不错的可扩展性,自己可定制针对特定参数的监控脚本以及报警的方式。但Nagios的配置相当复杂,本文总结了我最近在Ubuntu Server上搭建Nagios的过程,以方便大家将来更加快速的安装搭建监控系统。 Nagios安装 安装分为nagios server和被监控端两部分。nagios server提供web界面,报警配置;被监控端需要安装nagios nrpe服务,负责与server通信本机的监控情况。 1) Nagios Server的安装: 默认情况下,nagios会使用apache2作为自己的web server。本着快速的原则,在server上运行: sudo apt-get install apache2 nagios3 nagios-nrpe-plugin nagios-nrpe-plugin用于与被监控机器上的nrpe服务通信; 安装过程中,会提示输入nagsio web管理员的密码,nagios web的登录帐号和密码是nagiosadmin/<安装时设定的密码>;也可以修改/etc/nagios3/htpasswd.users来改变用户、密码。 安装完成后,在/etc/apache2/conf.d下会建立nagios3.conf,这是关于nagios

监控报警系统搭建及二次开发经验

。_饼干妹妹 提交于 2019-12-10 09:02:55
本次分享的内容是监控报警系统搭建,以及基于开源组件的二次开发。自从接受了公司监控报警系统二期开发需求以来,我们完成了监控数据的补全完善、报警系统搭建调试和报警规则配置界面的开发。下图是监控报警系统的架构图,除了业务数据收集器外,其余全部基于原生开源组件或二次开发完成,整个系统采用TICK(telegraf + influxdb + chronograf + kapacitor)架构,使用go语言实现。 influxdb时间序列数据库 influxdb 数据库是一个时间序列数据库,他会为每行数据打上时间戳,即使数据被并发写入,也会按照时间先后顺序存储。同时它也是一个关系型数据库,可以通过sql语言进行增删改查,学习成本低。官方提供了一个简单实用的web界面,非常地人性化。在工程实践中,我们发现了它的一个坑,在大数据量查询时会crash,重启后才能恢复,这个问题仍待研究。不必担心的是,因为监控系统中不存在特别大数据量的查询,生产环境下influxdb的性能表现十分良好。 telegraf数据收集器 telegraf 是一个数据收集器,负责收集所有的原始数据,格式化后存入influxdb。telegraf内置了大量的数据输入、输出和分析插件,能够收集php-fpm、nginx、access log、mysql、redis等组件的监控数据。telegraf的扩展性很强,开源社区也十分活跃