14 haozlee

尚未进行身份认证

我要认证

多年linux开发经验,熟悉c++,python。个人主页:https://leehao.me

等级
TA的排名 3k+

filebeat 日志输出至 kafka

Filebeat 是一款轻量级的日志采集器,可以用来收集日志,并将日志汇总起来处理。Filebeat 的工具原理如下图所示:图片来源:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html通过 filebeat 配置文件 filebeat.yml 指定需要收集的日志,并指定输出至 elasticsearch,logstash,kafka,redis 等。本文讲述如何配置 filebeat,将日志输

2020-08-03 18:19:11

Kafka 生产者和消费者学习笔记

最近搭建 kafka 集群环境以便于收集应用程序日志并进行个性化的处理,因此学习了 kafka 生产者和消费者 python 程序的实现。这篇文章当是个 kafka 的学习笔记。一、搭建 kafka 集群为方便测试,我们在 MacOS 单机上搭建具有三个 kafka 节点的集群。如果在生产上部署 kafka ,请在不同的物理机上部署 kafka 集群。1. 下载 kafka 镜像我们使用 wurstmeister/kafka 镜像来部署 kafka,由于 kafka 依赖于 zookeeper ,因

2020-07-04 21:07:20

使用 prometheus python 库编写自定义指标

虽然 prometheus 已有大量可直接使用的 exporter 可供使用,以满足收集不同的监控指标的需要。例如,node exporter 可以收集机器 cpu,内存等指标,cadvisor 可以收集容器指标。然而,如果需要收集一些定制化的指标,还是需要我们编写自定义的指标。本文讲述如何使用 prometheus python 客户端库和 flask 编写 prometheus 自定义指标。安装依赖库我们的程序依赖于 flask 和 prometheus client 两个库,其 requirem

2020-06-27 21:28:07

prometheus 发送企业微信

最近在公司搭建 prometheus 监控平台。文章 《Prometheus 使用阿里云邮件推送发送告警邮件》 已说明如何实现 prometheus 发送邮件告警的功能,这篇文章说明如何实现发送企业微信告警的功能。申请企业微信账号为实现发送企业微信告警消息,需要一个企业微信账号,在页面 企业微信 可以免费申请一个测试账号。进入应用管理 - 创建应用,创建一个用于接收告警消息的账号。创建成功后,可以看到该应用的 AgentId 和 Secret 串,如图所示:配置 alertmanagerAler

2020-06-25 17:38:34

C++ Lambda 学习笔记

C++ 中,对于一个对象或一个表达式,如果可以对其使用调用运算符(()),则称它是可调用的。即,如果 e 是可调用的,则可以这样使用:e(args)其中,args 是一个逗号分隔的一个或多个参数的列表。C++ 中可调用对象除了我们熟悉的函数或函数指针外,还包括函数对象以及 lambda 表达式。本文重点讲述 lambda 表达式。lambda 表达式表示一个可调用的代码单元,我们可以将...

2020-04-26 21:45:59

C++ 函数对象学习笔记

函数对象本质上是一个类对象,它重载了函数调用操作符 operator()。调用操作符的函数体实现函数的功能。例如,我们定义类 LessThan:class LessThan {public: bool operator() (const string &s1, const string &s2) { return s1.size() < s2.s...

2020-04-26 10:48:17

POJ 1401 Factorial 解题报告

以下是算法的直观解释。假设求60!的结果后面有几个0。由《编程之美》可知其实是求1,2,3……60中共有几个5的因子,如,5有一个,10有两个,……一起加起来即得到结果。但是如果一个一个这样计算下去,会超时的。其实还有更简单的计算方法。我们知道,在1->60的数中,以下的数可以被5整除:5,10,15,20,25,30,35,40,45,50,55,60共60/5 = 12

2011-01-08 12:36:00

在多线程环境中使用Jedis

Jedis是一个Java语言的Redis客户端,它为Java语言连接与操作Redis提供了简单易用的接口。Jedis不是线程安全的,故不应该在多线程环境中共用一个Jedis实例。但是,也应该避免直接创建多个Jedis实例,因为这种做法会导致创建过多的socket连接,性能不高。 要保证线程安全且获得较好的性能,可以使用JedisPool。

2015-07-20 09:49:06

SOAP Web Services 简介

SOAP(Simple Object Access Protocol)是一种基于 XML 的 web 服务协议。SOAP 是平台独立的,不依赖于特定的语言,例如,我们可以使用 C#,C/C++,或者 Java 语言来实现 SOAP web 服务。SOAP 的优点SOAP 的优点有:WS Security:SOAP 使用 WS Security 作为其安全的标准,安全性较高。语言与平台独立:可以使

2017-06-04 18:51:55

Prometheus 使用阿里云邮件推送发送告警邮件

我们在文章 《使用 docker-compose 搭建 prometheus 监控系统》 的基础上,增加 prometheus 的告警功能。Prometheus 指标的收集和存储与告警是分开的,告警功能由 alertmanager 提供。我们需要在 prometheus 定义告警规则,这些规则可以触发事件,然后传播到 alertmanager。接下来,alertmanager 会决定如何处理相应...

2020-03-03 15:31:49

使用 docker-compose 搭建 prometheus 监控系统

Prometheus 是当前一套非常流行的开源监控和报警系统,于 2016 年加入了 Clound Native Computing Foundation,是继 kubernates 之后的第二个托管项目。本文讲述如何使用 docker 快速搭建 prometheus 监控系统。概览本文的实验环境为 Mac OS,监控系统主要是用来监控两台 CentOS 主机资源使用情况。搭建的监控系统包括...

2020-02-16 21:27:45

使用 gitlab 搭建 docker 私有仓库

我们知道,gitlab 可以用来管理 git 提交的源代码,此外,gitlab 还集成了 docker registry 的功能,可以用来作为一个 docker 镜像私有仓库使用。启用 gitlab registry 功能我们假设已安装好 gitlab,具体安装可参考 《使用 docker 安装 gitlab》。Gitlab 默认不打开 docker registry 的功能,需要修改配置打...

2020-02-12 10:26:04

使用 docker 安装 gitlab

Gitlab 作为开源的 git 代码仓库,功能强大,使用起来非常方便。本文讲述如何使用 docker 来安装 gitlab。本文假定已安装好 docker,可以输入 docker --version 来验证是否已正常安装,输出:Docker version 19.03.5, build 633a0ea使用 docker run 命令安装为方便安装,我们先拉取最新版本的 gitlab ...

2020-02-11 15:45:11

Docker Compose 入门教程

Docker compose (以下简称为 compose)可用于定义和运行多容器 docker 应用程序。通过 compose,我们可以使用 YAML 文件来配置应用程序的服务(services),然后只需要通过一个命令,就可以将配置的所有服务启动起来。使用 compose 只需要三步:使用 Dockerfile 定义应用的环境,以便于可以任何地方复制应用的环境使用 docker-co...

2020-02-09 21:39:01

Docker 数据持久化

概览默认情况下,在 docker 容器(container)内创建的文件或产生的数据都只是保存在容器的可写层,这意味着当容器不存在时,容器内产生的数据也没有保存下来。Docker 提供两种容器数据持久化的方法,使用这两种方法即使容器不存在时,数据也能持久化下来:Bind mount:bind mount 可以是宿主机(host)文件系统的任意目录或文件,除了 docker 容器可以访问,宿...

2020-02-06 19:54:06

gRPC C++ 入门教程

之前曾经写过 Python 使用 gRPC 收发消息的教程,可以参考文章 《体验 gRPC 那些事儿》。最近计划在 C++ 项目中使用 gRPC,故写一篇文章来记录一下如何使用 C++ 语言来实现一个简单的 gRPC 服务端和客户端程序。本教程需要先安装 gRPC,有关 gRPC 的安装教程可以参考文章 《CentOS 7 安装 gRPC》,《体验 gRPC 那些事儿》。本文涉及的程序包括四部...

2020-02-01 20:38:14

CentOS 7 安装 gRPC

之前的文章曾经介绍过有关 protobuf 的安装使用,《Google Protocol Buffers 体验日志》,不过那篇文章针对的 MacOS 系统。最近在公司环境引入 gRPC 的使用,服务器都是 CentOS 7 系统,故写篇文章记录 CentOS 7 下如何安装 gRPC。安装依赖的软件首先是安装必要的软件,包括 git,make,gcc,等。yum install epel-r...

2020-01-23 10:49:16

分布式对象存储服务器 MinIO 牛刀小试

数据存储包括三种类型,分别是块存储,文件存储和对象存储。有关这三种类型的差别,可以参考 对象存储、文件存储和块存储的区别。MioIO 是一个开源的分布式对象存储系统,非常适合于存储大容量非结构化的数据,例如图片,视频,日志文件,备份数据等。本文讲述如何快速搭建 MioIO 服务端和客户端,以便于对 MioIO 有个概要了解。MinIO 服务端安装MioIO 是一个非常轻量级的对象存储系统,可...

2020-01-22 16:11:42

携程 Apollo 配置中心初探

最近在对开源配置中心进行调研。当前流行的开源配置中心包括 Apollo,Nacos,以及 Disconf。Apollo 应该是当前最流行,所以写篇文章来记录 Apollo 的安装与使用。Apollo 是携程开源的分布式配置中心,能够集中化管理不同环境,不同集群的配置,配置修改后能够实时推送到应用,并且具备权限治理功能。本文讲述如何快速搭建开发或者测试使用 Apollo 配置中心。如果需要在生产...

2020-01-21 09:24:20

一文带你了解 RTO 和 RPO

RTO 和 RPO 都是企业灾难恢复(Disaster Recovery, DR)需要考虑的关键指标,这两个指标可以用来指导企业来制定合适的业务系统服务或数据的恢复方案。本文介绍 RTO 和 RPO 的概念以及区别。图:RPO(Recovery point object) 和 RTO(Recovery time object)是提供业务连续性的关键指标RTORTO,Recovery ti...

2020-01-12 21:50:55

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。