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

开发环境: 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

Python中赋值、浅拷贝与深拷贝

介绍 Python中关于对象复制有三种类型 赋值 浅拷贝 深拷贝 赋值 Python中对象的赋值就是简单的对象引用,如下: a = [1,2,3, hello ,[ python , C++ ]] b = a 这种情况下,b和a是一样的,它们指向同一片内存,b不过是a的别名,是引用。 可以使用 b is a 来判断,返回true,表明他们地址相同,内容相同。也可使用id(x) for x in a......
Python 2020年08月05日 10:28:27

Prometheus alertmanager 告警(4)

上一节 Prometheus node_exporter 部署(3) 一站式运维告警解决方法 电话、短信、微信、邮件、多人排班、分派策略 介绍 Prometheus 将数据采集和报警分成两个模块。报警规则配置在Prometheus Servers上,然后发送报警信息到AlertManger,Alertmanager 对收到的告警信息进行处理,包括去重,降噪,分组,沉默,抑制,策略路由,告警通知。 ......
其他 2020年07月20日 09:53:28

Python Celery队列、定时任务

介绍 Celery (开源)是一个 Python 编写的简单、灵活、可靠的用来处理大量信息的异步的分布式任务队列,主要用于实时处理和任务调度, 同时提供操作和维护分布式系统所需的工具。Celery可以支持多台不同的计算机执行不同的任务或者相同的任务。 组件 Brokers Celery 有生产者和消费者的角色,brokers 是生产者和消费者存放/拿取产品的地方(队列),常见的 brokers 有......
Python 2020年01月06日 14:31:27

Ansible 使用

简介 ansible是一个自动化IT工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible其关注点并非配置管理、应用部署或IT流程工作流,而是提供一个统一的界面来协调所有的IT自动化功能,因此Ansible的系统更加易用,部署更快。 ansible可以让用户避免......
其他 2019年11月12日 12:01:44

Python 新式类和经典类区别及类特性

1、新式类和经典类对比 声明方式 , Python3.x取消了经典类,默认都是新式类,并且不必显式的继承object(写法上不在乎加不加) class A: # 经典类 def __init__(self): pass class B(object): # 新式类 def __init__(self): pass # 新式类声明的时候需要继承内置object对象(或者内置类型如,list、dict......
Python 2019年10月25日 16:00:15

Python 推导式、迭代器、生成器浅析

推导式是一个或多个迭代器快速简洁创建数据结构的一种方法。 列表推导式 number = [i for i in range(1, 10)] # 简单形式 number = [i for i in range(1, 10) if i %2 == 1] # 加上条件判断 number = [(k, v) for k in range(1, 10) for v in range(2, 20)] # 多f......
Python 2019年10月25日 15:09:45

Python 内嵌函数、闭包、装饰器浅析

Python 内嵌函数(返回式函数)、闭包、装饰器,共同之处都是以函数作为参数传递到函数,不同之处在于调用和返回的的区别。 内部函数 def func(num): def add(num): # 传入外部参数 return num + 1 return add(num) # 返回内嵌函数 func(1) 2 内嵌函数引用外部传入参数,外部函数显示的返回是内部函数add的调用, 当需要在函数内部多次......
Python 2019年10月25日 12:36:57

rpm文件打包

安装rpmbuild工具包 yum -y install rpm-build 生成打包目录(我这里采用手动方式创建) mkdir rpmbuild/ cd rpmbuild mkdir {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} 进入SPECS目录,编写SPEC文件,先看下SPEC编写格式及说明 Name: 软件包的名称,后面可使用%{name}的方式引用......
Linux命令 2019年09月17日 10:31:25

Go 两种读写文件的方式

1、使用 io/ioutil 库 package main import ( fmt io/ioutil ) var ( filename = /tmp/tt.txt ) func main() { // 读取文件 返回[]byte 类型 body, err := ioutil.ReadFile(filename) if err != nil { panic(err) } fmt.Println(......
GoLang 2019年08月23日 11:03:12

Prometheus 安装配置(2)

上一节 Prometheus 介绍(1) 下载安装(我使用是Centos 7.2的系统,选择对应的平台下载最新版本) https://prometheus.io/download/ cd /data mkdir prometheus cd prometheus/ wget https://github.com/prometheus/prometheus/releases/download/v2.9......
其他 2019年08月20日 17:13:02