关于 一月, 2013 的文章

分享一个Windows Server 2008上的防火墙配置脚本

以下是我的一台线上Windows服务器的防火墙配置脚本。
主要的思路是首先重置防火墙配置,该操作会将防火墙默认恢复到对input数据进行过滤而对output的数据不做过滤;
接着我们就可以添加对3389登录端口,以及内部机器,公网开放端口的相关配置。

编辑文件 "防火墙规则.bat"

rem 恢复防火墙到默认值
netsh advfirewall reset

rem 设置变量offices_vpn与internal_servers
set offices_vpn=203.208.46.200/32,119.75.217.56/32,131.253.13.32/32
set internal_servers=192.168.0.0/16,218.30.118.235/32

rem 开放端口3389到offices_vpn
netsh advfirewall firewall add rule name="自定义规则_port3389_from_offices_vpn" dir=in protocol=tcp localport=3389 remoteip=%offices_vpn% action=allow

rem 建立对internal_servers之间的相互信任
netsh advfirewall firewall add rule name="自定义规则_trust_all_internal_servers" dir=in remoteip=%internal_servers% action=allow

rem 开放端口80到所有地址
netsh advfirewall firewall add rule name="自定义规则_port80_from_anywhere" dir=in protocol=tcp localport=80 action=allow

直接双击运行 "防火墙规则.bat" 即可。

接着,可以到 "开始" - "管理工具" - "高级安全 Windows 防火墙" - "入站规则" 中查看到相应的规则。

注:以上脚本中的IP地址用了Google,百度,360和Bing作为示例(我是不会泄露线上真实服务器的IP到这儿的。)

3 Comments

在Ubuntu 10.10上安装ZendOptimizer (支持apt-get方式安装的PHP)

参考文档:
http://blog.csdn.net/kings6681988/article/details/6334087

Ubuntu 10.10 系统默认的apt-get方式的PHP版本为5.3,而目前ZendOptimizer所支持php版本最高为5.2。
因此,要想支持ZendOptimizer,必须将PHP版本降级到5.2,而apt包管理工具是支持针对特定包的版本降级的。

比如,我们发现Karmic Koala即Ubuntu 9.10版本的PHP默认就是5.2,于是我们可以通过以下方式将我们需要的 php5-cli libapache2-mod-php5 php5-gd php5-mysql php5-common 这5个软件包统一降级到5.2。

首先删除目前安装的所有php相关套件
$ sudo apt-get purge `dpkg -l | grep php| awk '{print $2}'

切换到root身份
$ sudo -i

创建依赖关系文件支持PHP降级
# echo -e "Package: php5/nPin: release a=karmic/nPin-Priority: 991/n" >> /etc/apt/preferences.d/php
# apt-cache search php5-| grep php5-| awk '{print "Package:", $1,"/nPin: release a=karmic/nPin-Priority: 991/n"}' >> /etc/apt/preferences.d/php
# apt-cache search -n libapache2-mod-php5 | awk '{print "Package:", $1,"/nPin: release a=karmic/nPin-Priority: 991/n"}' >> /etc/apt/preferences.d/php
# apt-cache search -n php5-mysql | awk '{print "Package:", $1,"/nPin: release a=karmic/nPin-Priority: 991/n"}' >> /etc/apt/preferences.d/php
# apt-cache search -n php5-gd | awk '{print "Package:", $1,"/nPin: release a=karmic/nPin-Priority: 991/n"}' >> /etc/apt/preferences.d/php

退出root身份
# exit

创建Karmic(Ubuntu 9.10版本)的APT Source
$ sudo vim /etc/apt/sources.list.d/karmic.list
deb http://old-releases.ubuntu.com/ubuntu karmic main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu karmic main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu karmic-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu karmic-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu karmic-security main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu karmic-security main restricted universe multiverse

更新APT数据
$ sudo apt-get update

安装 php5-cli libapache2-mod-php5 php5-gd php5-mysql php5-common 这5个软件包
$ sudo apt-get install -t karmic php5-cli libapache2-mod-php5 php5-gd php5-mysql php5-common

查看PHP版本,可以看到已经成功降级到了5.2
$ sudo php --version
PHP 5.2.10-2ubuntu6.10 with Suhosin-Patch 0.9.7 (cli) (built: May 2 2011 23:24:44)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

下载ZendOptimizer
$ wget "http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz"
$ tar xzvf ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz
$ cd ZendOptimizer-3.3.9-linux-glibc23-x86_64/

复制ZendOptimizer.so到系统lib目录
$ sudo cp data/5_2_x_comp/ZendOptimizer.so /usr/lib64/php5/libexec/

配置php.ini使PHP支持ZendOptimizer
$ sudo vim /etc/php5/apache2/php.ini
[ZendOptimizer]
zend_extension=/usr/lib64/php5/libexec/ZendOptimizer.so

重启Apache,即刻生效
$ sudo /etc/init.d/apache2 restart

,

No Comments

西游记

如来派唐三藏师徒四人带上八部天书和小白龙去东土大唐去传教,在一路上遇到了各种妖怪,打来打去发现他们都是有后台的,无论怎么作恶都不受惩罚,八戒和沙僧觉得太黑暗了,无奈一个躲进了高老庄,一个钻进了流沙河,只有悟空坚持正义一路斩妖除魔护送师傅东去传教。
结果天庭对悟空实在忍无可忍就和如来达成协议——我们可以保证唐三藏平安到长安,不过你得把孙悟空这个刺儿头给办了,如来同意了,在一翻阴谋之下,白龙重伤坠入山涧,悟空败了,被压在了五指山下,而唐三藏却抛弃了孙悟空,孤身来到长安,在长安传完教,被封为御弟,享受完荣华富贵,寿终正寝。
就这样过了五百年,悟空终于从五指山下逃了出来,一声不吭,把天庭搅了个天翻地覆,天庭被逼无奈许诺让猪八戒化为人身,封为天蓬元帅,沙和尚封为卷帘大将,只要他们能够杀掉孙悟空。
最后的最后,因为兄弟相残而心灰意冷的悟空去寻找菩提祖师解惑,然后他封印了修为,如意金箍棒扔进了东海化作定海神针,回到花果山,陪着猴子猴孙过完了平凡的一生,最终在花果山的山顶化作了一块石头……

No Comments

Zabbix分布式监控系统实践之 (1) 环境部署

目录结构
Zabbix分布式监控系统实践之 (0) 什么是Zabbix
Zabbix分布式监控系统实践之 (1) 环境部署
Zabbix分布式监控系统实践之 (2) 自定义配置

本文内容
Zabbix分布式监控系统实践之 (1) 环境部署

参考资料
https://www.zabbix.com/wiki/howto/install/ubuntu/ubuntuinstall

环境介绍
OS: Ubuntu 10.10 Server 64-bit
Servers:
zabbix-server:10.6.1.181
zabbix-client-1:10.6.1.182

1. 环境部署
前面,我们简单介绍了一下Zabbix,那么在本章,我们就来把Zabbix的环境部署起来,然后再在下一张详细的讲解其使用方法。
由于Zabbix采用的是分布式架构,因此我们采用两台服务器,一台做Server,另外一台做Agent,来搭建一个最小的环境。

2. 安装步骤
2.1 安装系统依赖以及mysql-server与php
$ sudo apt-get install build-essential mysql-server libmysqlclient15-dev php5 php5-gd php5-mysql snmp libsnmp-dev snmpd libcurl4-openssl-dev fping apache2

在弹出的界面中配置MySQL的Root密码,比如zabbixadmin
MySQL password: zabbixadmin

2.2 新建用户zabbix
$ sudo adduser zabbix

 
Enter new UNIX password: zabbix
Retype new UNIX password: zabbix

$ sudo adduser zabbix admin
$ sudo visudo
添加如下内容,给予Zabbix用户sudo权限

 
zabbix ALL=(ALL)       NOPASSWD:ALL

2.3 下载源码包
$ sudo -i
# su - zabbix
$ wget "http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.4/zabbix-2.0.4.tar.gz"
$ tar xzvf zabbix-2.0.4.tar.gz

2.4 初始化数据库
$ mysql -uroot -pzabbixadmin -e "create database zabbix;"
$ mysql -uroot -pzabbixadmin -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"
$ mysql -uzabbix -pzabbix -D zabbix < zabbix-2.0.4/database/mysql/schema.sql $ mysql -uzabbix -pzabbix -D zabbix < zabbix-2.0.4/database/mysql/images.sql $ mysql -uzabbix -pzabbix -D zabbix < zabbix-2.0.4/database/mysql/data.sql 2.5 编译安装 $ cd zabbix-2.0.4/ $ ./configure --prefix=/usr/local --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent $ make $ sudo make install 阅读全文 »

,

1 Comment

Zabbix分布式监控系统实践之 (0) 什么是Zabbix

目录结构
Zabbix分布式监控系统实践之 (0) 什么是Zabbix
Zabbix分布式监控系统实践之 (1) 环境部署
Zabbix分布式监控系统实践之 (2) 自定义配置

本文内容
Zabbix分布式监控系统实践之 (0) 什么是Zabbix

参考资料
http://workaround.org/try-zabbix

环境介绍
OS: Ubuntu 10.10 Server 64-bit
Servers:
zabbix-server:10.6.1.181
zabbix-client-1:10.6.1.182

Zabbix官方Wiki
https://www.zabbix.com/wiki/start

1. 初识Zabbix
Zabbix是一个基于WEB界面的分布式开源监控系统,主要由2部分构成,Zabbix server与Zabbix agent,同时也支持Zabbix proxy。

我首次听说Zabbix,是因为看到一篇文章:Tired of Nagios and Cacti? Try Zabbix.
在此之前我只简单的用过 Cacti 和 Nagios,且一些同样做运维的哥们儿也都是用的这两款开源软件。

因此,在看到这样一个标题之后,感觉很新奇就粗略的了解了一下,当时并没有去实践。人总是对已经熟悉的东西拥抱而排斥陌生的东西。而现在,我们已经将Zabbix大量的应用到了线上环境。在日常的监控中,深切的体验到了Zabbix的高效快捷和优秀的扩展能力。

Zabbix的底层采集程序是用C语言编写的Server与Agent,而用户界面是通过php编写web,采用MySQL数据库来存储数据。
整个Zabbix其实就是一个框架,其中内置了一些针对各类OS的系统参数采集命令,可以直接调用,而其它的自定义监控参数,则可以通过自己来写一些快捷的Shell命令通过管道传递,或通过各种脚本甚至程序来传递。Zabbix只管把最后的返回值通过agent拿到,存储统计,绘图,根据定义的阈值进行报警等。

说到这里,其实所有的监控系统差不多都是这样的逻辑,所以真正有差别的地方是在最后功能的整合和易用性上。而Zabbix之所以好用,就是因为它整合的相当好,拿来之后就能用,agent安装简单方便,server端配置,完善的用户界面,绘图,报警和扩展等都非常方便。在做电信项目的时候,与电信的一款付费的商业软件对比,丝毫不逊色,以至于电信的维护人员都主动找我来学习Zabbix的安装与配置方法,打算替换他们的监控系统。

1.2 功能对比
介绍到这里,我们不如用一个图片来简单的对比一下目前各个主流的监控系统。

阅读全文 »

,

No Comments

Chef集中管理工具实践之 (3) 自定义配置

目录结构
Chef集中管理工具实践之 (0) 什么是Chef
Chef集中管理工具实践之 (1) 环境部署
Chef集中管理工具实践之 (2) 服务器配置
Chef集中管理工具实践之 (3) 自定义配置

本文内容
Chef集中管理工具实践之 (3) 自定义配置

参考资料
http://wiki.opscode.com/display/chef/Resources#Resources-Service

环境介绍
OS: Ubuntu 10.10 Server 64-bit
Servers:
chef-server:10.6.1.170
chef-workstation:10.6.1.171
chef-client-1:10.6.1.172

1. 开始创造属于自己的大餐
“等我的手艺熟练之后我还会写我自己的菜色和菜谱,来创造属于我自己的大餐。” 在前面我提到过这句话,并且在上一个章节,也通过使用官方社区提供的cookbook完成了账号与openssh的配置。
在这一章,我们就来编写一个cookbook,将不同的自定义配置任务做成不同的recipe,最后实现对服务器的配置。

2. 如何开始
如何开始呢?使用官方社区的cookbook很简单,只需要修改attributes里面的参数就可以了,如果要自己来写,该怎么写用什么格式呢?
相信你一定有这个疑问存在。不过你可以尽管放心,Chef的官方社区有很完善的在线文档可供参考的。

上面提到的“参考资料”中的URL,就是对应的文档地址:http://wiki.opscode.com/display/chef/Resources#Resources-Service
具体内容很多,我们可以通过右侧的目录结构来理清思绪。

总共有差不多30个模块,每一个都有相应的示例。
最常用的有:
账号管理方面 Group,User
配置文件方面 Template,File,
脚本命令方面 Script,Execute
系统服务方面 Cron,Service,Mount,Package

这些模块的具体用法,都可以在上面的页面中找到,在这里我先就不描述了,接下来我们通过实践来理解它们。

3. 规划接下来要做的事情
以我的实际生产环境中遇到的情况为例,操作系统为Ubuntu,有以下几个任务要完成:
1.新建一个名为project的用户组,并将之前创建的用户ubuntu添加到该组
2.更改系统默认的APT镜像源为http://old-releases.ubuntu.com
3.通过apt-get安装build-essential
4.编译安装pcre 8.10

这一次,我们不再到官方社区去搜寻第三方的cookbook,而是自己来编写一个cookbook。

3.1 首先,来设计这个cookbook
将cookbook命名为mycookbook
然后分别创建4个不同的recipe,分别命名为
conf_group, conf_sources.list, install_build-essential, build_pcre
来实现对以上4个任务的完成

3.2 开始编写cookbook
3.2.1 创建cookbook
ubuntu@chef-workstation:/opt/chef-local$ sudo knife cookbook create mycookbook

 
** Creating cookbook mycookbook
** Creating README for cookbook: mycookbook
** Creating CHANGELOG for cookbook: mycookbook
** Creating metadata for cookbook: mycookbook

阅读全文 »

, ,

2 Comments

在Windows7上创建WiFi热点共享有线网络连接

1. 以“管理员”启动cmd.exe进入命令行模式;

2. 执行以下命令创建虚拟网卡
netsh wlan set hostednetwork mode=allow ssid=heylinux.com key=52heylinux

3. 此时,可以在“控制面板”-“网络和共享中心”-“更改适配器设置”中看到创建好的虚拟网卡

阅读全文 »

1 Comment