系统日志

【架构】分布式追踪系统设计与实现

最后都变了- 提交于 2019-12-23 18:40:08
分布式追踪系统 使用 Zipkin 和 Brave 实现分布式系统追踪(基础篇) - 推酷 OpenZipkin · A distributed tracing system Twitter zipkin 分布式跟踪系统的设计与实现 - 马宏的世界 - 博客频道 - CSDN.NET openzipkin/brave: Java distributed tracing implementation compatible with Zipkin backend services. openzipkin/zipkin: Zipkin is a distributed tracing system zipkin - liaokailin的专栏 - 博客频道 - CSDN.NET #研发解决方案介绍#Tracing(鹰眼) - 旁观者 - 博客园 分布式系统为什么需要 Tracing? 先介绍一个概念: 分布式跟踪 ,或 分布式追踪 。 电商平台由数以百计的分布式服务构成,每一个请求路由过来后,会经过多个业务系统并留下足迹,并产生对各种Cache或DB的访问,但是这些分散的数据对于问题排查,或是流程优化都帮助有限。对于这么一个跨进程/跨线程的场景,汇总收集并分析海量日志就显得尤为重要。 要能做到追踪每个请求的完整调用链路,收集调用链路上每个服务的性能数据,计算性能数据和比对性能指标(SLA

dubbo+zipkin调用链监控

三世轮回 提交于 2019-12-23 18:38:30
分布式环境下,对于线上出现问题往往比单体应用要复杂的多,原因是前端的一个请求可能对应后端多个系统的多个请求,错综复杂。 对于快速问题定位,我们一般希望是这样的: 从下到下关键节点的日志,入参,出差,异常等。 关键节点的响应时间 关键节点依赖关系 而这些需求原来在单体应用中可以比较容易实现,但到了分布式环境,可能会出现: 每个系统的技术栈不同 有的系统有日志有的连日志都没有 日志实现手段不相同 以上系统都是自治的,要想看整体的调用链非常困难。 分布式系统日志统一的手段有很多,比如常见的ELK,但这些日志都是文本,不太容易做分析。 更希望看到类似如下浏览器对于网络请求的分析:将分散的请求串联在一起 zipkin 这是推特的一个产品,通过API收集各系统的调用链信息然后做数据分析,展示调用链数据。 核心功能: 搜索调用链信息 此处不多说,无非就是从存储中按一定条件搜索请求信息。 zipkin默认是内存存储,也可以是其它的比如:mysq,elasticsearch 查看某条请求的详细调用链 比如查询产品明细,除了产品的基本信息还需要展示对产品的所有评论。下图可以清晰的展示调用关系,product-dubbo-consumer调用product-dubbo-provider,product-dubbo-provider内部再调用comment-dubbo-provider

Linux用户登录日志查询

廉价感情. 提交于 2019-12-21 20:10:38
# 1 utmp、wtmp、btmp文件 Linux用户登录信息放在三个文件中: 1  /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间; 2  /var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由last命令查看; 3  /var/log/btmp:记录失败的登录尝试信息,默认由lastb命令查看。 这三个文件都是二进制数据文件,并且三个文件结构完全相同,是由/usr/include/bits/utmp.h文件定义了这三个文件的结构体。 默认情况下文件的日志信息会通过logrotate日志管理工具定期清理。logrotate的配置文件是/etc/logrotate.conf,此处是logrotate的缺省设置,通常不需要对它进行修改。日志文件的轮循压缩等设置存放在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下,它会覆盖缺省设置。 如果不想记录相关信息,则可以直接将相关文件删除即可。如果系统不存在该文件,则需要在此路径touch一个文件就可以继续记录相关信息了。 此外: 如果想禁用who命令,则只需要将utmp的可读权限去掉就行,这样非root用户就不能用此命令了;如果是btmp文件,手工创建的话注意权限必须为600,否则不能正确写入信息。 # 2

rsyslog及loganalyzer

僤鯓⒐⒋嵵緔 提交于 2019-12-21 11:34:13
rsyslog: 日志:历史日志 历史事件: 时间,事件 日志级别:事件的关键性程度,Loglevel 系统日志服务: syslog:(centos5)分两种进程 syslogd: system 记录系统日志,为用户空间的用户进程记录日志, klogd: kernel 记录内核日志 rsyslog:(centos6) syslogd klogd rsyslog:特性(适用于小公司) 多线程:由于服务需要记录的越来越多,而且syslog不但可以为本机进程记录日志,还可以为非本机上的其他主机的进程所产生事件接收,记录日志,所以rsyslog要支持更好的并发性。 支持的协议:UDP, TCP, SSL, TLS, RELP; MySQL, PGSQL, Oralce实现日志存储; 强大的过滤器,可实现过滤日志信息中任何部分; 自定义输出格式 elasticsearch(分布式存储系统), logstash(日志收集系统), kibana(前端日志展示工具) = elk(适用于大公司) elasticsearch是存储和分析系统,但无法收集日志,所以logstash是日志收集,有了日志收集,也有存储和分析,就需要展示日志,但elasticsearch是展示风格是命令行接口,所以需要另一个前端展示工具kibana 日志收集方: facility :设施,从功能或程序上对日志进行分类;

Centos6.7 ELK日志系统部署

陌路散爱 提交于 2019-12-21 03:58:21
Centos6.7 ELK日志系统部署 原文地址: http://www.cnblogs.com/caoguo/p/4991602.html 一. 环境 elk服务器:192.168.55.134 logstash日志采集端:192.168.55.132 二.安装JDK [root@elk01 ~]# cd /usr/local/src [root@elk01 src]# wget http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.tar.gz?AuthParam=1447919869_29a658de74feaeda612894dc77923aa4 [root@elk01 src]# tar zxvf jdk-8u65-linux-x64.tar.gz [root@elk01 src]# mv jdk1.8.0_65/ /usr/local/ [root@elk01 ~]# vi /etc/profile JAVA_HOME=/usr/local/jdk1.8.0_20 export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH [root@elk01 ~]# source /etc/profile #检查下 三.redis安装 ####

消息队列-MQ

自作多情 提交于 2019-12-21 02:20:26
原文链接: https://zhuanlan.zhihu.com/p/55712984 01 概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。 实现高性能,高可用,可伸缩和最终一致性架构。 使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。 02 消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景 2.1 异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式 (1)串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端 (2)并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间 假设三个业务节点每个使用50毫秒钟,不考虑网络等其他开销,则串行方式的时间是150毫秒,并行的时间可能是100毫秒。 因为CPU在单位时间内处理的请求数是一定的,假设CPU1秒内吞吐量是100次。则串行方式1秒内CPU可处理的请求量是7次(1000/150)。并行方式处理的请求量是10次(1000/100) 小结:如以上案例描述,传统的方式系统的性能

关于 Web消息推送系统 web-msg-sender 配置https 协议

风格不统一 提交于 2019-12-20 12:38:35
前几天做了一个语音播报功能,本地测试ok,但是上线要求https协议费了点时间 1.启动失败情况出现如下错误请检查php.ini 文件 disabled_functions 函数是否禁用了 stream_socket_server(); 2. workerman.log 仅用于记录workerman自身相关启停等日志. 如果启动不成功会写入日志 3.客户端常见报错,手册地址: http://doc.workerman.net/faq/client-connect-fail.html 4.上代码把修改,start_io.php 5.修改start_web.php 6.前端代码调用 7. 最后一步后端服务启动停止, 如果出现报错,请参考 步骤一 排除 ### 启动服务 php start.php start -d ### 停止服务 php start.php stop ### 服务状态 php start.php status 来源: CSDN 作者: qq_31570703 链接: https://blog.csdn.net/qq_31570703/article/details/103628915

HBase工程师线上工作经验总结----HBase常见问题及分析

点点圈 提交于 2019-12-20 11:22:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 阅读本文可以带着下面问题: 1.HBase遇到问题,可以从几方面解决问题? 2.HBase个别请求为什么很慢?你认为是什么原因? 3. 客户端读写请求为什么大量出错?该从哪方面来分析? 4.大量服务端exception,一般原因是什么? 5.系统越来越慢的原因是什么? 6.Hbase数据写进去,为什么会没有了,可能的原因是什么? 7. regionserver发生abort,遇到最多是什么情况? 8.从哪些方面可以判断HBase集群是否健康? 9.为了加强HBase的安全性,你会采取哪些措施? 在Tcon分布式系统测试实践的分享中,笔者提到了测试人员参与线上问题分析的必要性: 1、测试工作中的问题定位提供了大量经验,可以直接应用于线上。 2、快速的解决问题可以避免大故障的发生。 3、从线上的问题可以帮助我们准确抓住 测试 的重点和不足。 因此在日常的线上维护工作中,积累和很多HBase的问题分析经验,这里于大家分享一下,如有错误和不足请指出。 问题分析的主要手段 1、监控系统:首先用于判断系统各项指标是否正常,明确系统目前状况 2、服务端日志:查看例如region移动轨迹,发生了什么动作,服务端接受处理了哪些客户端请求。 3、gc日志:gc情况是否正常 4、操作系统日志和命令:操作系统层面、硬件是否故障

SQL Server DBCC命令大全

你离开我真会死。 提交于 2019-12-20 07:31:15
SQL Server DBCC命令大全 原文出处: https://www.cnblogs.com/lyhabc/archive/2013/01/19/2867174.html DBCC DROPCLEANBUFFERS:从缓冲池中删除所有缓存,清除缓冲区 在进行测试时,使用这个命令可以从SQLSERVER的数据缓存data cache(buffer)清除所有的测试数据,以保证测试的公正性。 需要注意的是这个命令只移走干净的缓存,不移走脏缓存。由于这个原因,在执行这个命令前,应该先执行CheckPoint,将所有脏的缓存写入磁盘, 这样在运行DBCC RROPCLEANBUFFERS 时,可以保证所有的数据缓存被清理,而不是其中的一部分。 DBCC CacheStats:显示存在于当前buffer Cache中的对象的信息,例如:hit rates,编译的对象和执行计划 DBCC ErrorLog :如果很少重启mssqlserver服务,那么服务器的日志(不是数据库事务日志)会增长得很快,而且打开和查看日志的速度也会很慢 使用这个命令,可以截断当前的服务器日志,主要是生成一个新的日志。可以考虑设置一个调度任务,每周执行这个命令自动截断服务器日志。 使用存储过程sp_cycle_errorlog也可以达到同样的目的 一、DBCC 帮助类命令 DBCC HELP('?')

linux日志守护进程 syslog

拈花ヽ惹草 提交于 2019-12-19 08:22:45
几乎所有的网络设备都可以通过syslog协议,将日志信息以UDP的形式传送给远端服务器,远端接收日志服务器必须通过syslogd监听UDP端口514,并根据 syslog.conf 配置文件张的配置处理。配置文件 /etc/rsyslog.conf 中规定了syslogd如何根据设备和信息的重要级别来报告信息。 CentOS6.5之前,配置文件为/etc/syslog.conf,从CentOS6.5之后,配置文件名变更为/etc/rsyslog.conf 。 syslog支持日志分类输出到特定文件中,但是有几个限制: 1、syslog日志输出支持分类,但不支持每个进程单独输出到某个文件(因为syslog并不是作为一套完整的日志库而产生的); 2、syslog输出的日志文件位置并不是任意的,默认仅仅限于【/var/log/】目录下,如果指定到其他位置,视为无效; 配置文件的格式: 【服务.优先级 <tab> action字段】。 其中,【服务.优先级】一起统称为选择条件。条件选择是对服务进行了分类,便于syslog对日志的输出管理。同时一行的配置中,允许出现多个选择条件,多个选择条件使用 ; 隔开。 服务(facility),用来指定syslog的功能,主要包括: 1 kern 内核信息,首先通过 klogd 传递; 2 user 用户进程; 3 mail 邮件; 4 daemon