RSS
 

Archive for the ‘linux’ Category

Cacti绘制自定义图形,进阶,配合自制脚本

08 Apr

前文讲述了,如何通过snmp的方式取获取并创建自己的Cacti图形,但如果某些数据是无法通过snmp取得的,可以通过脚本的方式来获取,所以只有你想不到,没有你做不到的。

比如你那一天对腾讯的在线人数感兴趣,你可以监视这个页面http://im.qq.com/中下图部分:

image

监控部的同事估计也是通过这个方式来了解腾讯的在线人数曲线的。

image

继续正题,比如我要监控squid打开一个特定的页面的速度,虽然前文已经讲述了,你可以通过squid自身提供的信息来绘制,但毕竟这是squid提供的,可能没有考虑到网络等因素,所以你需要模拟一个最终用户打开页面的情况,这就要需要自己写一个特殊的脚本:

Read the rest of this entry »

 
 

nginx+squid+gzip压缩

31 Mar

现象:nginx0.7.26 squid 2.7.9,发现压缩的页面失效,但如果跳过squid,页面压缩是有效的。

Google了一下,主要是两篇文章,两种说法:

1.说是修改squid 的 “broken_vary_encoding all”

由于文章乱转载,一时不能确定出处,所以出处可能是:

http://zys.8800.org/index.php/archives/282

2. nginx默认是使用的动态的gzip压缩,而squid2系列还不支持,所以要重新编译nginx (./configure –with-http_gzip_static_module)。

出处:http://bbs.chinaunix.net/viewthread.php?tid=1329820

有趣的是:这个原文出处的指出的原文是:http://zys.8800.org/?p=267 

但已经404错误了。

经过我的测试:第2种说法是成立的,第1种不成立,但为什么原作者却保留了一篇错误的文章,把正确的反而删了?

如果这篇文章到这里就结束了,肯定会被各位看官扔鸡蛋了,一点原创性的东西都没有,就来骗稿费(真没有稿费…)

所以我对原文给出的nginx配置做了一些优化和测试:

下面是原文给出的nginx配置:

    gzip             on
    gzip_static on;
    gzip_http_version   1.0;
    gzip_proxied        any;
    gzip_disable        "MSIE [1-6]\.";
    gzip_comp_level     9;

  1. gzip on后面少一个”;”
  2. 经过测试IE6是可以完美支持gzip的,无论是在http 1.0还是1.1的请求下,所以把IE6目前这个最广泛的浏览器排除在外,实在不解,所以我改成:gzip_disable        "MSIE [1-5]\.";
  3. 增加 gzip_types 因为nginx默认只对"text/html“压缩,但同样是文本文件的xml,css,js也是需要压缩的,所以增加这一行

    gzip_types       text/plain application/xml  application/x-javascript text/css ;  

             详情可以参考: http://wiki.nginx.org/NginxHttpGzipModule

  4. 我对gzip_comp_level进行了测试,分别从1到9,9虽然压缩比率是   最大的,但如果不适当,消耗过多的服务器资源,也是适得其反哦。我使用了一个大概是103KB的文本文件,分别使用1-9进行测试

 

压缩前 压缩比率 压缩后
103KB 1 27KB
103KB 2 26KB
103KB 3 26KB
103KB 4 24KB
103KB 5 24KB
103KB 9 23KB

所以我选择了压缩比为4 。

 
 

cacti+rrdtool支持中文+连接数监控

21 Dec

很早以前就装过rrdtool,可惜那个时候没有写文档,今天又要重来.记得那个时候是异常的曲折,不过今天是很顺利.

1.首先到官方下载最新的cacti,这次发现这个版本有很多细节上改进.佩服啊,人家这个版本更新几年了,一直是0.8.7x系列.如果是某些软件早就是8.7了.

Read the rest of this entry »

 

mysql主从备份注意的地方

06 Dec

首先需要做主从的数据库必须一模一样,如果你的数据库已经运行过一段时间,建议你先删除所有的二进制日志文件,包括索引xxx.index这个文件,否则重启mysql会出错。

从服务器上已经删除掉所有的二进制日志文件,当然包括一个master.info这个文件。这个文件是用来记录主服务器上过来的日志文件和记录位置的。如果你不删除它,它还会按照之前的记录来做,所以会出问题,我在这里浪费了很多时间了。

主服务器诊断:

show processlist;显示所有的进程。

show master status;显示主服务器的日志文件和指针位置。

mysql> show master status;
+——————+———-+—————-+——————+
File Position Binlog_Do_DB Binlog_Ignore_DB
+——————+———-+—————-+——————+
mysql-bin.000001 603 videoCommunity
+——————+———-+—————-+——————+
1 row in set (0.00 sec)

mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 603
Binlog_Do_DB: videoCommunity
Binlog_Ignore_DB:
1 row in set (0.00 sec)

如上图,mysql-bin.000001是日志记录文件,603是指针位置。

从服务器(slave)上诊断:

mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master1
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 603
Relay_Log_File: master2-relay-bin.000053
Relay_Log_Pos: 740
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: videoCommunity
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 603
Relay_Log_Space: 740
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)

确认以上信息和主服务器是否一致。

Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 603

如果从服务器正常的会有

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

如果主服务器和从服务器部分同步失败,你可以确认一下是那里失败,当然你也可以略过这一步操作,使用

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n; 忽略n部操作

START SLAVE;启动从服务

 
No Comments

Posted in linux