基于Docker快速搭建EFK日志中心
需要集中的日志系统的原因目前现状,每个服务生产上有三台,定位生产问题,需要连上一台机器,然后使用 cd / tail / less / grep / sed / awk 等 linux命令去日志里查找故障原因。如果在这台机器没搜索到线索,就去另外两台机器上查日志。
但在分布式系统中,众多服务分散部署在数十台甚至上百台不同的服务器上,想要快速方便的实现查找、分析和归档等功能,使用Linux命令等传统的方式查询到想要的日志就费事费力,更不要说对日志进行分析与归纳了。
为解决大量日志归档,文件搜索慢,如何多维度查询就得需要集中化日志管理,将所有服务器上的日志收集汇总,常见的解决思路就是建立集中式日志收集系统。
EFK
Elasticsearch:负责存储日志。Elasticsearch 是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等。
FileBeat:负责收集日志。
Filebeat 隶属于 Beats。目前 Beats 包含六种工具:
Packetbeat( ...
离线yum源
由于大部分的主要业务都在专网,内网环境下运行,无法使用yum安装升级和更新,服务器少的情况下可以使用离线安装,但随着服务器规模上升,还是需要使用统一的自建yum源更方便。
什么是yum源yum是在ReddHat中的一个包管理器。基于RPM包管理,能够从指定服务器自动下载RPM包并安装,可以自动处理依赖关系,能够一次安装所有依赖的软件包,无需一次一次的下载安装。yum源就是存放rpm包以及依赖关系的服务器,一般公共网络的yum源:163、souhu、阿里、中国科技大学、清华等。
yum源标识(repo id)
base:之操作系统镜像源,包含了ISO镜像内的所有软件包
updates:包含了系统更新,升级的软件包
extras:扩充的软件包合集
epel:为“红帽系”的错做系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux
自定义repo id
以K8S yum源为例,[repo id]本地可以随意定义,主要是看baseurl连接的源,当多个repo id重复时,会以最后加载的为准
搭建离线yum源注意:需要准备一台可以连接互联网的服务 ...
企业级容器技术 Docker
Docker介绍和基础操作Docker介绍容器历史1、Chroot Jail 就是常见的chroot命令的用法。它在1979年的时候就出现了,被认为是最早的容器化技术之一。它可以把一个进程的文件系统隔离起来。
2、The FreeBSD Jail (监狱)实现了操作系统级别的虚拟化,他是操作系统级别虚拟化技术的先驱之一。2000年,伴随FreeBSD4.0版的发布
3、Linux VServer http://linux-vserver.org 使用添加到Linux内核的系统级别的虚拟化功能实现的专用虚拟服务器。允许创建许多独立的虚拟专用服务器(VPS),这些虚拟专用服务器在单个物理服务器上全速同时运行,从而有效地共享硬件资源。VPS提供与传统Linux服务器几乎相同的操作系统环境。可以在这样的VPS上启动所有服务(例如ssh,邮件,Web和数据库服务器),而无需(或者在特殊情况下只需进行很少的修改),就像在任何真实服务器上一样。每个VPS都有自己的用户账户数据库和root密码,并且与其他虚拟机服务器隔离,但它们共享相同的硬件资源。
4、Solaris Containers 也是操 ...
链路追踪SkyWalking
什么是SkyWalking SkyWalking官网
SkyWalking是一个优秀的国产开源框架,2015年由个人吴晟(华为开发者)开源,2017年加入Apache孵化器。短短两年就被收入Apache麾下,实力可见一斑。SkyWalking支持dubbo,SpringCloud,SpringBoot集成,代码无侵入,通信方式采用GRPC,性能较好,实现方式是java探针,支持告警,支持JVM监控,支持全局调用统计等,功能比较完善。
SkyWalking优势
采用字节码增强的技术实现代码无侵入
功能比较丰富,报表统计,UI界面更加人性化
SkyWalking架构SkyWalking和zipkin一样,分为服务端和客户端,服务端负责手机日志数据并且展示
SkyWalking在逻辑上风味四个部分:Probes(探针),Platform backend(平台后端),Storage (存储)and UI(用户界面)
Probes:收集数据并根据SkyWalking要求重新格式化(不同探头支持不同的来源)
Platform backend:支持数据聚合,分析,涵盖跟踪、指标和日志
St ...
安全加固,浅谈OpenSSL和OpenSSH
OpenSSLOpenSSl是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是不能只将它作为一个库来使用,它是一个多用途。跨平台的密码工具。
基本功能OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库,SSL协议库以及应用程序。
OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。
OpenSSL:多用途的命令工具,每种功能都使用专用的子命令来实现
libcrypto:加密,解密库文件
libssl:加密模块应用库,实现了ssl及tls
密码算法库对称加密算法我们一般的加密使用一个密码加密文件,然后解密也用同样的密码,这个对是称加密。OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中AES使用的加密反馈模式(CFB)和输出反馈模式(O ...
轻量化日志中心 Grafana Loki
需要集中的日志系统的原因目前现状,每个服务生产上有三台,定位生产问题,需要连上一台机器,然后使用 cd / tail / less / grep / sed / awk 等 linux命令去日志里查找故障原因。如果在这台机器没搜索到线索,就去另外两台机器上查日志。
但在分布式系统中,众多服务分散部署在数十台甚至上百台不同的服务器上,想要快速方便的实现查找、分析和归档等功能,使用Linux命令等传统的方式查询到想要的日志就费事费力,更不要说对日志进行分析与归纳了。
为解决大量日志归档,文件搜索慢,如何多维度查询就得需要集中化日志管理,将所有服务器上的日志收集汇总,常见的解决思路就是建立集中式日志收集系统。
LPGLoki + Promtail + GRafana
Loki:聚合并存储日志数据,可以作为Grafana的数据源,为Grafana提供可视化数据
Promtail:日志收集器,有点像Filebeat,可以手机日志文件中的日志,并把收集到的数据推送到Loki。
Grafana:从Loki中获取日志信息,进行可视化展示
Loki是 Grafana Labs 团队最新的开源项目,是 ...
从JDK源码剖析JVM类加载机制
JVM类加载机制类加载运行全过程当用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。
package ink.chensir.jvm;/** * @description: Hello JVM * @author: chensir * @slogan: 时间从来不语 却回答了所有问题 */public class SayHello { public static final String HELLO_STR ="Hello Jvm !"; public void helloJvm(){ System.out.println(HELLO_STR); } public static void main(String[] args) { SayHello sayHello = new SayHello(); sayHello.helloJvm(); }}
通过java命令执行代码的大体流程如下:
...
企业级反向代理HAProxy
HAProxy简介HAProxy是法国开发者Willy Tarreau在2000年使用C语言开发的一个开源软件,是一款具备高并发(一万以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支持正则表达式及web状态统计。从2013年HAProxy分为社区版和企业版,企业版将提供更多的特性和功能以及全天24小时的技术支持等服务。
企业版https://www.haproxy.com
社区版http://www.haproxy.org
https://github.com/haproxy
HAProxy功能支持功能
TCP 和 HTTP反向代理
SSL/TSL服务器
可以针对HTTP请求添加cookie,进行路由后端服务器
可平衡负载至后端服务器,并支持持久性连接
支持所有主服务器故障切换至备用服务器
支持专用端口实现监控服务
支持停止接收新连接请求,而不影响现有连接
可以双向添加,修改或删除HTTP报文首部
响应报文压缩
支持基于pattern实现连接请求的访问控制
通过特定的URI为授权用户提供详细的状态信息
支持HTTP反向代理
支持动态程序的反向 ...
Centos7磁盘IOPS压力测试
什么是IOPSIOPS(Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。
IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。
随机读写频繁的应用:小文件存储(图片)、OLTP数据库、邮件服务器,关注随机写性能,IOPS是关键衡量指标。
顺序读写频繁的应用:传输大量连续数据、电视台的视频编辑、视频点播VOD(Video On Demand),关注连续读写性能。数据吞吐量是关键衡量指标。
IOPS和数据吞吐量适用于不同的场合:
读取10000个1KB文件,用时10秒 Throught(吞吐量)=1MB/s,IOPS=1000 追求IOPS
读取1个10MB文件,用时0.2秒 Throught(吞吐量)=50MB/s,追求吞吐量
简而言之:
磁盘的IOPS,也就是在一秒内,磁盘进行多少次I/O读写。
磁盘的吞吐量,也就是每秒磁盘I/O的流量,即磁盘写入加上读出的数据的大小。
IOPS计算公式对于磁盘来说一个完整的IO操作是这样进行的:
当控制器对磁盘发出一 ...
MySQL基准测试及性能优化
mysql基准测试什么是基准测试数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。
基准测试与压力测试
基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具生成,不要求真实;
压力测试一般考虑业务逻辑(如购物车业务),要求真实的数据。
基准测试的作用对于多数Web应用,整个系统的瓶颈在于数据库;原因很简单:Web应用中的其他因素,例如网络带宽、负载均衡节点、应用服务器(包括CPU、内存、硬盘灯、连接数等)、缓存,都很容易通过水平的扩展(俗称加机器)来实现性能的提高。而对于MySQL,由于数据一致性的要求,无法通过增加机器来分散向数据库写数据带来的压力;虽然可以通过前置缓存(Redis等)、读写分离、分库分表来减轻压力,但是与系统其它组件的水平扩展相比,受到了太多的限制。
而对数据库的基准测试的作用,就是分析在当前的配置下(包括硬件配置、OS、数据库设置等),数据库的性能表现,从而找出MySQL的性能阈值,并根据实际系统的要求调整配置。
基准测试的指标常见的数据库指标包括:
TPS/QPS:衡量吞吐量。
...