存档

‘TroubleShooting’ 分类的存档

brew安装软件时下不下来软件的问题

2016年1月13日 没有评论

最近在Macbook pro上装一个叫LaunchRocket的东东

brew cask install launchrocket

时老出错,就是说launchrocket老下不下来
于是把要下的链接拷贝下来,找台机器手工下载下来再拷贝到需要的机器上

cp LaunchRocket.prefPane.zip /Library/Caches/Homebrew/launchrocket-0.7.zip;

然后再

brew cask install launchrocket

就直接OK了

分类: tips, TroubleShooting 标签:

CoreOS的手工升级经历

2016年1月9日 没有评论

公司办公室有台CoreOS,版本是stable 633.1.0,最早都是自动升级的,后来发现有坑:虽然号称A、B区自动升级,可还是避免不了升级完毕要重启。于是上面跑的docker多了,就把自动升级关掉了。最近想用docker的一些新功能,于是又捡起来想手工升下级。

update_engine_client -check_for_update;
update_engine_client -update;

却不想发现问题若干:
一,update server的问题

sudo journalctl -f -u update-engine

看log时发现有连public.update.core-os.net的53端口的请求被拒绝,google了一把,发现都是https连443端口的,于是手写cloud-config文件,将升级server强制指为:https://public.update.core-os.net,cloud-config文件如下:

#cloud-config

coreos:
  update:
    group: stable
    reboot-strategy: off
    server: https://public.update.core-os.net/v1/update/

然后用命令

sudo coreos-cloudinit --from-file temp-update;

以后,再重启update-engine。

sudo systemctl restart update-engine.service;


二,我大宋局域网的问题
最后再看log时发现新问题:

sudo journalctl -f -u update-engine

,发现这回有连接https连commondatastorage.googleapis.com的443端口被拒。实测的确连不上,又想我司是有ipv6科学上网环境的呀,于是手工wget -6前面那个url,发现畅快无比!但为嘛更新时没走ipv6呢?不管了,wget -6时返回的有commondatastorage.googleapis.com的ipv6地址,于是手工生写/etc/hosts文件:

commondatastorage.googleapis.com	2404:6800:4005:800::2010

然后再重新更新,终于搞定了。

分类: TroubleShooting 标签:

redis有太多CLOSE_WAIT状态的问题

2015年12月28日 2 条评论

有台机器,突然发现redis频繁挂掉,netstat发现其6379端口上一大堆的CLOSE_WAIT的连接、/var/log/message里有报Out of Memory的错误,然后就干掉了redis-server的信息。
显然,干掉redis的是OOM-killer
为什么以前没有如此频发的redis被干掉呢
感觉跟CLOSE_WAIT有关,这状态是被动断的一方收到Fin并发出ack后的状态,此后应该是被动断的一方接着发Fin才对,但也许这时redis已挂掉,没有发Fin,所以主动断的一方还在等Fin。于是我把挂在CLOSE_WAIT状态上的另一端的进程一个个干掉,再启动redis,然后再把手工停掉的进程再一个个起起来
看起来貌似正常了

分类: TroubleShooting 标签:

net.ipv4.ip_local_port_range的问题

2015年12月19日 没有评论

又挖坑了。
最近碰到一个问题,某台机器A(CentOS6.x)去wget某个公网资源的时候老是连接超时,同时wget http://www.baidu.com却秒下。
同时,在另外一台机器B(CentOS6.x)上wget先前那个资源却没有问题。
由于A和B都是内网机器,出公网走的是同一个网关C(nat出去的),于是在C上听包,发现从A和B两台机器上分别wget这个资源时唯一的区别在于A的源端口(snat后)是2xxxx,而B的源端口(snat后)是4xxxx。再进一步,发现A、B机器snat后的源端口是和其A、B机器snat之前的原端口一致的。
最后,本着试试的心态,在A机器上执行:

sysctl -w net.ipv4.ip_local_port_range="50000 61000"

再,wget这个资源,居然就OK了!
这里我有一个问题:
难道对方服务器又做源地址端口的限制吗?这是个什么应用场景?

分类: TroubleShooting 标签:

linux下通过ospf发布静态路由

2015年10月2日 没有评论

我司的机器分布在各个地方,再加上办公室,一共n多个点,这些点之间我们是先互相打n多条tunnel,然后再通过ospf把这些tunnel组织起来的。现今某个ospf节点上又通过tunnel连接了远端的一个小小的私网,那个节点实在是太小了,而且,它仅有一条路由出来,所以不想也没必要再布个ospf节点,再整合到现有的ospf系统里,就想把这条静态路由通过ospf广播给各个ospf节点即可。
背景介绍完了,现在说问题,网上一搜方法,一大堆,大多是说要用命令

redistribute static subnets

来发布静态路由到ospf里,但是我的quagga里

redistribute static

根本就不支持subnets参数!!!不支持不支持不支持!(重要的话说三遍)
于是乎,我按照文档直接先在quagga里设置一条静态路由,然后再在ospf里设置:

redistribute static

,貌似一切OK,但是在邻近的ospf节点上始终看不到这条发布的路由。:(
在长假第二天,这个问题终于解决了,其实很简单:这条路由在设置ospf时已经存在于系统里了,所以设置后 ,在vtysh中

show ip route

时可以看到这条路由有两条,一条标”S”,代表是静态路由(在quagga里设置的),还有一条标记为“K”(那是以前在系统层面添加的)。解决方法简单,在系统层面将那条路由删掉即可!

分类: TroubleShooting 标签:

ulimit和并发连接数

2015年8月6日 没有评论

碰到一个问题,一台线上机器,重启服务后发现连接数老上不去,停留在6万多,而以前都是几十万,自己测试连接服务端口也连不上。当时发现连别的服务,比如sshd,一下就连上了。听包也能看到有syn的包过来,但就是没有ack的包回去。
最终发现问题在于,重启服务的时候没有用启动脚本起,里面有个很重要的环境参数没有正确设置,

ulimit -HSn 1000000

没有执行,而ulimit -n看,当前正是6xxxx,跟连接数大致相当。好理解呀,每个连接都要耗一个文件描述符fd。连接数到6万多,这个服务没有文件描述符可用了,自然不能accept新的连接了呀。
知道原因了解决起来就简单了,停掉服务,再用启动脚本起,问题马上就解决了。
反思:其实这个问题很明显,以前也有碰到,比如编译和启动squid的时候,系统都会告诉你:现在ulimit -n的参数不够!文件描述符不够!请增大了再来编译(运行)服务!只是这里系统不提示,也不报错,定位问题就慢了很多。

分类: TroubleShooting 标签:

tcp_wrapper跟ipv4映射ipv6地址的坑

2015年7月12日 没有评论

周末,跟这个坑斗争两天。
现象是某台服务器,/etc/hosts.allow里写的有中控的ip地址,但是中控却连不上,/var/log/secure里明确写着:“refused connect from ::ffff:10.10.10.10 (::ffff:10.10.10.10)”,这里的”10.10.10.10″是中控的ip。
最早想的方法就偏了,老想着怎么在/etc/hosts.allow里把::ffff:10.10.10.10这个ip加上,怎么试都不行。后来发现:中控10.10.10.10和目标服务器都是启用了ipv6(不是动态加载的那种,而是直接编进kernel),另外某台可以登录目标服务器也在其/etc/hosts.allow列表里的机器却是被我干掉了ipv6的机器,
当时又想,会不会是两个系统,ssh请求时发的包不一样,于是用ssh -4方式也不行,然后听包对比,发现貌似也没有什么明显区别。这会儿突然发现,可以的那台机器连过来的时候在netstat -na里显示,也是::ffff:x.x.x.x的形式,于是想,也许跟ipv6、sshd都没啥关系,关键是tcp_wrappers
这次方向貌似正确了,于是各种试/etc/hosts.allow文件,最后发现:如果不用n.n.n.n/m.m.m.m的方式写10.10.10.10这条记录,比如我写10.、10.10.、10.10.10.,甚至于10.10.10.10,都是可以滴。但一写10.10.10.10/255.255.255.255或者10.10.10.10/255.255.255.0都不行。
最后,在目标服务器的/etc/hosts.allow里最后加了一句“sshd: 10.10.10.10”了事!
这个问题其实还是没弄清楚,如果说这是bug的话,那为什么另外一台写n.n.n.n/m.m.m.m的形式就可以,但10.10.10.10就非不行。所以,还是没理顺。

分类: TroubleShooting 标签:

cloudstack不能注册iso

2015年5月20日 没有评论

CloudStack 4.4的系统
如果你不能注册iso
那么可尝试修改全局设置中的secstorage.allowed.internal.sites为0.0.0.0
再重启管理节点
应该就好了

分类: TroubleShooting 标签:

idrac8把DNS drac name的缺省值改成idrac了

2015年5月9日 没有评论

疑问句。因为最近刚入一台dell r430的机器就是这样,这让用了n多年idrac的DNS drac name带service tag特性的人情何以堪?而且这也不合理呀,非常不合理。
Dell官方的人都不懂这个,说回去给我reset一下idrac的配置再看看,也没最终回应。鄙视dell的售后技术支持一下
最新信息:刚才我把idrac的设置初始化了,发现DNS drac name还是“idrac”……

分类: TroubleShooting 标签:

服务器启动不了掉进grub的处理过程

2015年5月9日 没有评论

在grub提示符下

find /boot/grub/stage1 # 找出stage1在哪个分区,也就是找出/boot在哪个分区

如果系统提示:
(hd1,0)
那么这是指第二块硬盘的第一个分区
于是接着输入:

root (hd1,0) # 把启动分区指向/boot区
kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/sdb2 # 因为真正的/区是在/dev/sdb2
initrd /initrd-2.6.32-358.el6.x86_64kdump.img
boot

这里一般就可以启动了,但也不能肯定
我就碰到过启动的kernel在/lib/modules下确找不到相应kernel版本的目录,当然起不来咯

分类: TroubleShooting 标签: