寻觅生命中的那一片浅草......

发布者 夜行人

将Cygwin换成Cygwin64导致sshd无法使用一例

问题:
openssh /bin/bash: Operation not permitted
connection closed ::1 或者 connection closed 127.0.0.1

解决办法:
计算机,管理,用户,把cyg_server,sshd这2个用户删掉
vi /etc/passwd 同样把上面的2个用户删掉
ssh-host-config -y就可以了
如果还是不行,试试以管理员身份运行Cygwin.bat

参考文章:http://cygwin.1069669.n5.nabble.com/ssh-logon-failure-td57002.html

2.6.32-279.5.2.el6.x86_64引起的软中断不均衡

昨天代理反馈游戏卡顿,玩家闹得厉害,ping服务器的时候,延迟非常不稳定,100-400ms不等,找不到原因,研发反馈
玩家反馈卡顿的时间,与大型活动开启时间点吻合,怀疑是玩家较多引起流量过大导致,但看Zabbix监控,该机器流量最大
也只有18Mbit/s而已,带宽未满,不应该这样。

深夜登上去查了些服务器状态,发现软中断集中在CPU0,胸当诡异,经查,有开启irqbalance服务,查网卡中断亲和性也确实
是有设置。肿么不生效呢?百思不得骑姐。

想起最近几天研究cpu中断和RPS/RFS时看到的一文:http://hi.baidu.com/nw207/item/ab9098411d76ab31fa896027
里面有提到博通网卡,因为开启MSI而导致CPU中断亲和性不生效的问题,难道是网卡驱动引起?然后看了下网卡的驱动,并
以另外一台CPU软中断均衡的作对比。

一、系统环境
CentOS 6.2 64bit,开启了irqbalance服务

网卡型号
Ethernet controller: Broadcom Corporation NetXtreme BCM5719 Gigabit Ethernet PCIe (rev 01)

二、有问题机器:

1、内核:2.6.32-279.5.2.el6.x86_64

2、网卡驱动信息
driver: tg3
version: 3.122
firmware-version: 5719-v1.33 NCSI v1.0.60.0
bus-info: 0000:03:00.0

三、没有问题机器

1、内核:2.6.32-358.14.1.el6.x86_64

2、网卡驱动信息
driver: tg3
version: 3.124
firmware-version: 5719-v1.33 NCSI v1.0.60.0
bus-info: 0000:03:00.0

四、测试

手头上刚好有一台同配置机器,内核是CentOS6.2默认版本,2.6.32-220.el6.x86_64,

题外话,此版本内核,CPU软中断是正常的,但因为它在约220天的时候,会莫名宕机,所以我们一般是把它升级为2.6.32-279.5.2.el6.x86_64

好,我升级将它升级到2.6.32-279.5.2.el6.x86_64,重启机器,发现CPU软中断马上集中在CPU0
然后我再升级到2.6.32-358.14.1.el6.x86_64,重启,CPU软中断马上均衡了,至此,问题解决,安排了生产服维护,升级内核。

使Nagstamon支持Zabbix2.0.5

牛人太多了,下面这个项目叫Zagstamon,使Nagstamon支持Zabbix1.8的:

https://github.com/sergeyignatov/zagstamon.git
我们用的是2.0.5

我把它改了下,兼容1.8和2.0.5

我先fork到我自己这里来了,同时提交了pull request到源仓库

https://github.com/johncanlam/zagstamon.git

需要注意的是,Zabbix端要把主机组设置成普通组,我不是很懂,同事配的Zabbix,他说步骤是

管理,一般,其他,在发现到的主机组,设置一个不用被监控的组即可,例如现在是bat,你想bat可以显示,那么可以把它修改为test,那么test组就无法显示,而bat则可以显示了

Zabbix接口的一些命令:
获取认证信息
curl -i -X POST -H ‘Content-Type: application/json-rpc’ -d ‘{“params”: {“password”: “urpassword”, “user”: “uruser”}, “jsonrpc”: “2.0”, “method”: “user.authenticate”,”auth”: “”, “id”: 0}’ http://ur.zabbix.com/api_jsonrpc.php
输出,result就是认证信息
{“jsonrpc”:”2.0″,”result”:”18e3c644119b340587d94a39480104nf”,”id”:0}
获取主机信息,用了上面获取到的主机信息:
curl -i -X POST -H ‘Content-Type: application/json’ -d ‘{“jsonrpc”:”2.0″,”method”:”host.get”,”params”:{“output”:[“hostid”,”name”],”filter”:{“host”:””}},”auth”:”18e3c644119b340587d94a39480104nf”,”id”:1}’ http://ur.zabbix.com/api_jsonrpc.php
获取组信息:
curl -i -X POST -H ‘Content-Type: application/json’ -d ‘{“params”: {“filter”: {“name”: [“server_group_name”]}, “output”: “extend”, “with_monitored_items”: true}, “jsonrpc”: “2.0”, “method”: “hostgroup.get”, “auth”: “18e3c644119b340587d94a39480104nf”, “id”: 3}’ http://ur.zabbix.com/api_jsonrpc.php
输出,注意internal的值要是0才可以被zagstamon获取到它的状态:

{“groupid”:”13″,”name”:”server_group_name”,”internal”:”0″}

获取Zabbix版本:
curl -i -X POST -H ‘Content-Type: application/json’ -d ‘{“jsonrpc”: “2.0”, “method”: “apiinfo.version”, “auth”: “18e3c644119b340587d94a39480104nf”, “id”: 3}’ http://ur.zabbix.com/api_jsonrpc.php
最后,我打包了一个exe文件,下载地址
虽然nagstamon作者已经写好了build的Python脚本,我是直接运行的,在编译这个exe也费了一番功夫,最后发现,用ActiveState的Python 2.7编译是有问题的 ,最后找同事拿了个win7的虚拟机,安装官方的Python2.7,很顺利地编译成功了.

func热更新模块

我们使用的salt是可以热更新模块的,最近在看func,所以想实现一番

代码请猛击下面的地址,比较暴力的实现方法

func热更新模块

假设你增加一个文件,里面有一个ping方法

/usr/local/lib/python2.7/site-packages/func/minion/modules/mc_ping.py

则直接执行下面的命令即可,无需重启func

func “*129*” call mc_ping ping

xmlrpc over ssl

最近在看func的源码,深奥,经大师指点,看完代码要自己实现一次,搞了个比较简单的

源码见

https://github.com/johncanlam/sslxmlrpc

2025年七月
« 5月    
 123456
78910111213
14151617181920
21222324252627
28293031