运维平台架构设计及开发(持续更新中...)

开发环境: Python 2.x GoLang 1.6 Django 1.6 Bootstrap 3.0 JQuery1.8 架构: 模块介绍: Agent:使用GoLang开发,主要收集主机信息、执行下发任务、主机状态上报、服务检测等 Master:使用GoLang开发,接收Agent上报的信息,存储到MySQL Dashboard:使用Python Django开发,前台展示及管理。前端使用B......
Python 2019年01月26日 17:15:58

Consul集群K/V数据(3)

Consul 提供了一个简单的键值存储(KV store)。它可以用于保存动态配置、辅助服务间协作、建立领导选举以及其他开发者想要实现的功能。 有两种方法可以访问 Consul KV 存储:通过 HTTP API 或者 Consul KV CLI。下面通过 Consul KV CLI 的使用方法。 ./consul kv get nginx/worker_connections Error! No......
Linux服务 2022年10月25日 09:46:07

Consul介绍与安装配置(1)

在传统的单体架构下不够灵活不能很好的适应变化,从而向微服务架构进行转换,而伴随着大量服务的出现,管理运维十分不便,于是开始搞一些自动化的策略,服务发现应运而生。所以如果需要使用服务发现,应该 了解 服务治理的痛点。 介绍 Consul 是 HashiCorp 公司的一个开源的服务注册与发现工具,具有分布式、高可用性、可横向扩展、多数据中心的服务发现和配置共享的服务软件。Consul 官网目前主要推......
Linux服务 2022年10月24日 10:36:39

Consul集群ACL配置(2)

Consul使用 Access Control Lists(ACL-访问控制列表)来控制对UI、API、CLI、服务通信和代理通信的访问;ACL的核心是将规则分组为策略,然后将一个或多个策略与令牌相关联。 Consul使用token的形式进行安全控制访问,这里的token就是随机的字符串,有了token就有对应的操作权限,就好比之前说到WebAPI接口加访问控制一样,通过一个授权token就可以访......
Linux服务 2022年10月24日 10:13:22

服务发现与注册之Consul介绍

什么是服务发现 在微服务的框架中,服务发现是一个重要的模块及组成部分,了解微服务的同学应该都知道它的重要性,我们这里就来简单的了解下,先来看一张图: 从图中看,客户端需要调用服务A,B,C,客户端必须要知道所有服务的网络位置(服务的ip和端口),以前的做法大多都是配置在配置文件中,或者配置在数据中,这就带来了几个问题: 从图中看,客户端需要调用服务A,B,C,客户端必须要知道所有服务的网络位置(服......
Linux服务 2019年06月25日 15:11:01

Python 之kafka Consumer和Producer

Topic 和 Partition Topic 在逻辑上可以被认为是一个 queue,每条消费都必须指定它的 Topic,可以简单理解为必须指明把这条消息放进哪个queue 里。为了使得 Kafka 的吞吐率可以线性提高,物理上把 Topic 分成一个或多个 Partition,每个 Partition 在物理上对应一个文件夹,该文件夹下存储这个 Partition 的所有消息和索引文件。若创建 ......
Linux服务,Python 2019年06月10日 15:13:15

kafka 介绍和使用

介绍 Apache Kafka是一个开源分布式发布-订阅消息系统,使用Scala编写。最初是LinkedIn公司开发,之后成为Apache项目。kafka是一种快速、可扩展的、分区的、可复制、分布式、多副本、多订阅者的日志服务,可以用于web日志、搜索日志、监控日志、访问日志等等。它提供了类似于JMS的特性,但设计实现完全不同。此外kafka对消息保存是根据Topic进行归类的。 官网 特性 高吞......
Linux服务 2019年06月10日 14:24:04

Linux OOM-killer

OOM_killer是Linux自我保护的一种机制,当内存不足时不至于出现太严重问题,如果内存不足将唤醒oom_killer,选出/proc/ pid /oom_score最大的并将之kill掉。 为了保护重要进程不被oom-killer掉,可以禁用OOM echo -17 /proc/ pid /oom_adj # -17表示禁用OOM 禁用整个系统的OOM: sysctl -w vm.pani......
Linux服务 2019年05月05日 14:29:33

git tag操作

git tag标签可以针对某一时间点的版本做标记,常用于版本发布。 列出标签 $ git tag # 列出当前仓库的所有标签 $ git tag -l ‘v0.2.*’ # 搜索符合模式的标签 打标签 git标签分为两种类型:轻量标签和附注标签。 轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象(比较常用的的附注标签)。 $ git tag v0.2.2-light # 轻量标签 $......
Linux服务 2019年05月05日 14:05:21

Linux中的tty、pty及pts介绍

背景介绍 在计算机产生之初,由于体型巨大和价格昂贵,不能像今天的PC机一样一人一台,只能多人共用一台主机。也就是说,所有的使用者,都使用一套自己的IO设备连接到同一台主机上,来操作(使用)计算机。这种情况下,每个使用者所使用的,就是一个“终端”。即一台主机,连接很多终端,终端为主机提供了人机接口,每个人都通过终端使用主机的资源。 随着时代的发展,尤其是PC时代的到来,使每人一台计算机成为现实。在这......
Linux命令,Linux服务 2019年04月19日 16:02:51

GitBook使用

介绍 在我们认识Gitbook之前,应当先熟悉对Git的使用,Git是目前比较好的分布式版本控制系统(当然还有svn)。 Git不仅是程序员管理代码的工具,它的分布式协作同样适用很多场景,其中之一就是写作,因此Gitbook呼之欲出。 Gitbook是一个基于Node.js的命令行工具,支持Markdown和AsciiDoc两种语法,可以输出HTML、PDF、eBook等格式。因此使用Gitboo......
Linux服务 2019年04月02日 16:55:00