Category Archives: Tools

使用supervisord管理容器进程

Docker可以在启动容器的时候通过设置Dockerfile中的CMD条目启动一个进程,但如果要在容器中同时启动多个进程,就需要使用进程管理工具了。supervisord(http://supervisord.org/introduction.html)是一个非常优秀的进程管理工具,使用Python开发。它可以在类UNIX系统的方式让用户来准确地监视和控制后台一定数量的服务进程。并作为一个天使进程让后台进程在当发生内部错误退出、或者进程被意外杀死时自动重启。除此之外,supervisord可以监控TCP端口,让其他主机通过客户端了命令supervisorctl通过HTTP协议直接对Server端进程进行启停,避免让进程/服务器管理者直接接触Shell或root用户。进程之间也有一个优先级和进程组关系,让管理员使用start all和stop all的关系来启动。 Continue reading

Posted in Ops, Tools, Virtualization.

Nginx基本服务与upstream配置详解

Nginx (“engine x”) 是一个高性能的HTTP 和反向代理 服务器,在大负载的情况下表现十分优秀。本文简单介绍一下安装、web服务和反向代理服务配置方法。 Continue reading

Posted in Ops, Tools.

Containerized MySQL&Redis by Docker

随着Docker和CoreOS的火爆,服务容器化将称为一种趋势,从而降低操作系统和应用程序的耦合度。本文在ubuntu 14.10下对MySQL和Redis的docker images进行简单测试。 Continue reading

Posted in Ops, Tools, Virtualization.

Kafka原理和集群测试

Kafka是一个消息系统,由LinkedIn贡献给Apache基金会,称为Apache的一个顶级项目。Kafka最初用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础。它具有可扩展、吞吐量大和可持久化等特征,以及非常好的分区、复制和容错特征。

Kafka的关键设计决策

1). Kafka在设计之时为就将持久化消息作为通常的使用情况进行了考虑。
2). Kafka主要的设计约束是吞吐量,而不是功能。
3). Kafka有关哪些数据已经被使用了的状态信息保存为数据使用者(consumer)的一部分,而不是保存在服务器之上。
4). Kafka是一种显式的分布式系统。它假设,数据生产者(producer)、代理(brokers)和数据使用者(consumer)分散于多台机器之上。
而相比而言,传统的消息队列不能很好的支持(如超长的未处理数据、不能有效持久化)。对于数据的可用性,Kafka提供了两个保证:
(1). 生产者发送到Topic的分区上消息将会按照它们发送的顺序,而消费者收到的消息也是此顺序
(2). 如果一个Topic配置了复制因子( replication facto)为N, 那么可以允许N-1服务器当掉而不丢失任何已经增加的消息 Continue reading

Posted in BigData, Ops, Tools.

Kafka主要参数详解

原文档地址:http://kafka.apache.org/documentation.html
Continue reading

Posted in BigData, Ops, Tools.

kerberos安装和管理

Kerberos 服务(kerberos官网)是一种通过网络提供安全验证处理的客户机/服务器体系结构。通过验证,可保证网络事务的发送者和接收者的身份真实。该服务还可以检验来回传递的数据的有效性(完整性),并在传输过程中对数据进行加密(保密性)。使用 Kerberos 服务,可以安全登录到其他计算机、执行命令、交换数据以及传输文件。此外,该服务还提供授权服务,这样,管理员便可限制对服务和计算机的访问。而且,作为 Kerberos 用户,您还可以控制其他用户对您帐户的访问。 Continue reading

Posted in Ops, Tools.

Cacti原理和配置

Cacti是一个基于PHP,MySQL,SNMP及RRDTool开发的图形监控分析工具。它本身是一个具有强大绘图挂历展示能力的PHP Web应用,监控数据的获取依赖于SNMP(snmpget),对于数据的存储和图形绘制依赖于RRDTool(也就是说数据必须是时间序列相关的数据)。 Cacti 的设计初衷是为了让 RRDTool使用更加方便。此外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。所以要深入了解Cacti,首选需要了解SNMP协议和RRDTool。
Continue reading

Posted in Ops, Tools.

Cloudera Manager 5离线安装参考

0. 主机规划

Cloudera Manager需要一台单独的主机
debugo01 Cloudera Manager, yum repo
debugo02 NameNode, DataNode, Yarn RM, Spark Master, Spark Worker …
debugo03 DataNode, Spark Worker, Secondery NameNode …
Continue reading

Posted in BigData, Ops, Tools.

Docker入门

Develop, Ship and Run Any Application, Anywhere.
Docker consists of:
The Docker Engine – our lightweight and powerful open source container virtualization technology combined with a work flow for building and containerizing your applications.
Docker Hub – our SaaS service for sharing and managing your application stacks.
Docker hub(app仓库)也是docker的组成,可以在https://hub.docker.com/ 登录并注册一个docker账户,搜索、下载别人分享的docker app,也可以自己上传和保存自己修改/创建的docker app(即docker image托管)。hub repository上提供了APP非常丰富多彩,基本上囊括了常用的一切应用平台。相关资料参见:
Docker1.0发布—迈入云(DockerHub应用分发平台)端(Docker引擎)时代
http://www.openstack.cn/p1961.html
官方文档:
https://docs.docker.com/
另外官方有个在线模拟的tutorial,10分钟就可以了解docker的基本使用。
http://www.docker.com/tryit/
15个有用的docker技巧
http://www.21ops.com/linux/13512.html
Continue reading

Posted in Ops, Tools, Virtualization.

使用fio进行I/O性能测试

fio是一个非常灵活的I/O测试工具,支持多线程或进程模拟等I/O操作来进行压力测试,project官网为fio
(1). 安装fio首先要安装异步的I/O支持libaio.x86_64(Linux-native asynchronous I/O access library):
yum install libaio libaio-devel
应用使用IO通常有二种方式:同步和异步。 同步的IO一次只能发出一个IO请求,等待内核完成才返回,这样对于单个线程iodepth总是小于1,但是可以透过多个线程并发执行来解决,通常我们会用16-32根线程同时工作把iodepth塞满。 异步的话就是用类似libaio这样的linux native aio一次提交一批,然后等待一批的完成,减少交互的次数,会更有效率。(摘自参考2) Continue reading

Posted in Ops, Tools.