Fork me on GitHub
Suzf  Blog

How-to set up and use graphite on Ubuntu

Graphite 是一个Python写的web应用,采用django框架,Graphite用来进行收集服务器所有的即时状态,用户请求信息,Memcached命中率,RabbitMQ消息服务器的状态,Unix操作系统的负载状态,Graphite服务器大约每分钟需要有4800次更新操作,Graphite采用简单的文本协议和绘图功能可以方便地使用在任何操作系统上。

Graphite 仅是一个画图工具,不主动地收集数据,而是将接收到的数据以图形的方式展现出来。

因为Graphite不收集数据,所以需要将指定格式的数据发送给Graphite,其在将受到的数据,绘制成图像。

Graphite的功能

存储时间序列数据
根据需要呈现数据的图形

Graphite 三大组件:

Graphite-Web, a Django-based web application that renders graphs and dashboards
The Carbon metric processing daemons
The Whisper time-series database library

How-to Deploy Django Apps with uWSGI and Nginx on Ubuntu

Django 的部署可以有很多方式,采用 nginx + uwsgi 的方式是其中比较常见的一种方式。

准备工作

安装所需软件

基本测试

创建一个 test.py 的文件

运行 uWSGI

参数含义:

http :8000: 使用http协议 8000端口
wsgi-file test.py: 加载指定文件 test.py

执行 Curl 命令在终端上返回 Hello world

如果返回的是正确的内容,说明下面工作流程的组件是工作的:

测试你的 Django 项目

确保你的项目是可以顺利运行的

如果没有报错,使用 uWSGI 的方式运行它

通过浏览器访问正常, 说明下面工作流程的组件是工作的:

配置 Nginx

Running the […]

How-to Configure Consul in a Production Environment on Ubuntu

什么是 Consul?
Consul有多个组件,但作为一个整体,它是用于发现和配置基础架构中的服务的工具。它提供几个关键特性:
服务发现:Consul的客户端可以提供一个服务,如api或mysql,其他客户端可以使用Consul来发现给定服务的提供者。使用DNS或HTTP,应用程序可以轻松找到它们所依赖的服务。
健康检查:Consul 客户端可以提供与给定服务(“web服务器返回200 OK”)或本地节点(“内存利用率低于90%”)相关联的任何数量的运行状况检查。操作员可以使用此信息来监视群集运行状况,并且服务发现组件使用此信息来将流量路由到不正常的主机。
键/值存储:应用程序可以使用Consul的分层键/值存储用于任何用途,包括动态配置,功能标记,协调,领导选举等。简单的HTTP API使其易于使用。
多数据中心:Consul支持多个数据中心开箱即用。这意味着Consul的用户不必担心构建额外的抽象层以扩展到多个区域。
Consul对DevOps社区和应用程序开发人员设计的更为友好,使其成为完美的现代化,弹性基础设施。

consul的基本概念

agent
组成 consul 集群的每个成员上都要运行一个 agent,可以通过 consul agent 命令来启动。agent 可以运行在 server 状态或者 client 状态。自然的,运行在 server 状态的节点被称为 server 节点;运行在 client 状态的节点被称为 client 节点。client 节点
负责转发所有的 RPC […]

How To Install Jenkins on Ubuntu 16.04

介绍

Jenkins是一个用Java编写的开源的持续集成工具。在与Oracle发生争执后,项目从Hudson项目复刻。

Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins的主要开发者是川口耕介。[2]Jenkins是在MIT许可证下发布的自由软件。[3]

可以通过各种手段触发构建。例如提交给版本控制系统时被触发,也可以通过类似Cron的机制调度,也可以在其他的构建已经完成时,还可以通过一个特定的URL进行请求。

系统要求

Minimum Recommended Configuration:
Java 7
256MB free memory
1GB+ free disk space

Recommended Configuration for Small Team:
Java 8
1GB+ free memory
50GB+ free disk space

安装
Debian/Ubuntu

On Debian-based distributions, such […]

[译] Python Logging Howto

基本日志记录教程

日志是跟踪一些软件运行时发生的事件的手段。软件的开发人员添加日志调用到他们的代码中,以指示已发生的某些事件。一个事件是通过一个描述性消息可任选地含有可变数据(即是该事件的每次发生潜在不同的数据)中。事件是很重要的,开发者通常通过事件追踪问题, 重要性也可称为水平或严重程度。

什么时候使用 logging

日志提供了简单的日志使用一组方便的功能。这里有 debug(),info(),warning(),error()和 critical()。要确定何时使用日志记录,请参阅下表,其中规定,对于一组常见任务,使用最好的工具。