阿小信大人的头像
Where there is a Python, there is a way. 阿小信大人

Basic Message Queue with Redis2018-05-14 17:21

使用redis实现任务队列,装饰器里面的delay函数返回一个类获取结果的类用的很巧妙。

http://flask.pocoo.org/snip

......
#Python#   #queue #redis 评论[0]阅读全文[31]

Prometheus使用笔记2018-04-03 18:34

# 环境说明

10.244.114.222上以容器的方式运行织云服务,自监控方案采用Prometheus监控 10.244.114.222 ,监控host和织云服务容器两个层次的数据。

使用Prometheus官方Node Exporter收集host硬件和操作系统数据,使用Google的cAdvisor收集容器数据,并使用Grafana进行展示。

在10.175.129.107上运行Prometheus Server和Grafana,在host上运行Node Exporter和cAdvisor。

# 安装程序

## 安装Node Exporter

......
#Linux/Mac#   评论[0]阅读全文[231]

模拟netflow2018-03-05 20:52

#### 数据源

使用[NetFlow-Generator](https://github.com/mshindo/NetFlow-Generator)模拟生成netflow v5数据并发送到指定的collector

克隆NetFlow-Generator后,在其目录执行`make`即可生成一个`flowgen`可执行文件

启动flowgen产生netflow数据并上报的指定地址

./flowgen -h
Usage: flowgen [options] [flowrec-options]
options:
-n, --c

......
#Linux/Mac#   评论[0]阅读全文[238]

创建支持ssh登录和模拟网络设备的CentOS镜像2018-03-02 11:37

#### 主机安装docker

安装docker

yum install docker
docker version # 1.12.6

移动docker的数据目录到较大磁盘下

mv /var/lib/docker/ /data/docker
ln -sb /data/docker /var/lib/docker

设置docker OPTIONS:`/etc/sysconfig/docker`

# 添加如下配置 (存在就更新),docker.oa.com 是内网docker镜像地址
# 机器不支持NAT

......
#Linux/Mac#   #docker 评论[0]阅读全文[263]

docker 1.12.6 安装使用笔记2018-02-28 20:04

#### 安装docker

安装docker

yum install docker
docker version

-----------------------------------------------------------------

#### 启动docker

移动docker的数据目录到较大磁盘下

mv /var/lib/docker/ /data/docker
ln -sb /data/docker /var/lib/docker

添加docker的镜像存储库

vim /etc/sys

......
#Linux/Mac#   #docker 评论[1]阅读全文[311]

模拟网络设备2018-01-29 11:11

登录到对应的模拟服务器上新建Python虚拟环境安装snmpsim

virtualenv snmp
. snmp/bin/activate
pip install snmpsim

在虚拟环境目录下的`snmpsim/data/`文件夹里配置新的community(如果需要自定义-c参数的话),可以先按照public复制一份新配置的community命名的数据

cp public jq-netmanager -r
cp public.snmprec jq-netmanager.snmprec

启动snmpsimd服务:

......
#Linux/Mac#   评论[0]阅读全文[252]

celery 4.1.0 版本定时任务执行时间 bug2017-12-27 16:15

**为什么使用celery代替crontab?**

关于celery,他是一个分布式的任务队列。

项目中有较多的定时任务,开始是用crontab实现的,考虑到未来的拓展和管理,决定使用celery的beat来实现定时任务。

虽然对于简单的周期性定时任务使用crontab就能做到,但是一旦需要处理的任务变多需要分布式处理时crontab不便于管理。

celery通过消息队列来实现分布式可以保证定时任务不被重复执行,消息队列已经为你自动实现了同步机制。例外也可以打破crontab的每分钟才执行一次的速度限制,只要有任务消息到来我就能处理,可以使任务更加高效的被执行。使用消息

......
#Python#   评论[0]阅读全文[613]

使用nginx-lua修改influxdb API的返回结构2017-12-13 19:05

有一个API平台服务,所有接口都通过API平台转发到实际的服务上,然后再把实际服务的结果返回给客户端,API平台的规范是所有实际服务的接口返回都要统一结构为

:::json
{
"code": 0,
"msg": "",
"data": {}
}

否则无法处理,现在使用influxdb提供的api,他的返回结构并不是API平台需要的结构,所以需要做一层代理转发请求并修改返回结果为API平台需要的结构。

采用openresty来实现这个需求,只需安装好openresty,然后编写一个配置文件即可实

......
#Linux/Mac#   #nginx 评论[0]阅读全文[384]