Posts under category "运维"

keepalived的简单配置

Dec 21,2015 keepalived

Keepalived是一款流行的高可用软件,通过为keepalived集群设置虚IP和健康检测脚本,当检查失败的时候,根据keepalived的策略使虚IP在服务器之间漂移。由于虚IP漂移过程中可能有交换机arp缓存导致请求失效,所以在切换到master之后,应立刻自动执行脚本刷新交换机的缓存。

Continue Reading ...

Nginx记录用户请求Header到access log

为了统计和其它用途,经常有人需要自定义Nginx日志,把http请求中的某个字段记录到日志中,刚好在看lua+nginx的文章,第一想到的是用lua赋值来做,但是想想有点小恶心,于是Google了一番,发现Nginx自己就能够记录收到的HTTP请求的头部数据,测试如下方法可用。

Continue Reading ...

利用strace做PHP故障排查

Nov 23,2015 strace php

tools.jpg 收到报警线上运行PHP程序的8核服务器load average达到200多,这个太吓人了。赶紧登录系统运行top,看到好几个php-fpm进程CPU利用率达到100%,看到大多数CPU都消耗在内核态,即sys模式,运行状态良好的程序大多时候应该运行在用户态才对呀。

strace看看进程内部的系统调用,为了方便重复查看,把输出重定向到临时文件/tmp/php.debug中:

# strace -p <PID> 2> /tmp/php.debug

Continue Reading ...

深夜运维思考

Jul 24,2015

晚上睡不着,起来写写文章,最近看书没耐心,囫囵吞枣,心中记下一两个点就很不错了,不敢写技术,就写写最近的一些思考吧。

thinkings-about-ops

Continue Reading ...

Nginx的简单ACL

Jul 06,2015 Nginx acl

Apache类似,Nginx自带acl功能,使用关键字accessdeny进行配置,从上往下匹配,完成匹配则执行对应的操作。

accessdeny可以放在http,server,location,limit_except段中。可以限制网段,也可以是单个IP。例子如下:

location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}

匹配到deny的访问会出现"403 Forbidden"错误。

Continue Reading ...

诡异的gitlab排错经历

杭州春天

春天到了! 这个gitlab排错经历实在太有趣了,值得记一下!

Continue Reading ...

moosefs分布式网络文件系统

由于单机文件系统的不可靠性,软硬件都存在故障风险,所以在重要场合,大多已经开始采用分布式文件系统,分布式系统遵循不把鸡蛋放在一个篮子里的原则,在一台机器崩溃的情况,文件系统集群中的其它服务器依旧可以提供完整的文件存取服务。由于分布式文件系统的容错性、高可靠性和高可扩展性的优点,其自诞生起就一直很火,各类开源产品层出不穷。本文演示了如何使用moosefs(简称mfs)搭建一套分布式网络文件系统!

Continue Reading ...

磁盘IO分析工具iostat和iotop

Feb 03,2015 iostat iotop

磁盘IO是服务器性能的一个重要指标,下面介绍两个常用的观察IO的命令,iostat我一般用来查看磁盘的IO,以及在测试磁盘时做一个监控工具,iotop在排查服务器问题时,可以用来找到某些异常程序!下面都会做一个简要的介绍!

Continue Reading ...