在ubuntu9.10下用cacti监控nginx运行

Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结 构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。http://www.cacti.net/

1 安装cacti

bear@njava:/$  sudo apt-get install cacti-cactid 

2 下载cacti-nginx脚本

bear@njava:/$ wget http://forums.cacti.net/download.php?id=12676
bear@njava:/$ tar -xzvf cacti-nginx.tar.gz
bear@njava:/$ sudo cp cacti-nginx/get_nginx_socket_status.pl /usr/share/cacti/site/scripts
bear@njava:/$ sudo cp cacti-nginx/get_nginx_clients_status.pl /usr/share/cacti/site/scripts
bear@njava:/$ sudo chmod 755 /usr/share/cacti/site/scripts/get_nginx*

3 检查脚本

bear@njava:/$ /usr/share/cacti/site/scripts/get_nginx_socket_status.pl http://www.njava.com/nginx_status

4 配置cacti的nginx虚拟主机

 
bear@njava:$ sudo vi /etc/nginx/sites-available/cacti
server {
        listen   80;
        server_name cacti.njava.com;
        access_log  /var/log/nginx/cacti.access.log;

        location / {
                root   /usr/share/cacti/site;
                index  index.html index.htm index.php;
        }

        location ~ \.php$ {
                fastcgi_pass unix:/tmp/php-cgi.njava.sock;
                fastcgi_index index.php;
                set $path_info "/";
                set $real_script_name $fastcgi_script_name;
                if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                    set $real_script_name $1;
                    set $path_info $2;
                }
               fastcgi_param SCRIPT_FILENAME /usr/share/cacti/site/$real_script_name;
               fastcgi_param script_name $real_script_name;
               fastcgi_param path_info $path_info;
               include /etc/nginx/fastcgi_params;
        }
}

bear@njava:$ sudo ln -s /etc/nginx/sites-available/cacti  /etc/nginx/sites-enable/cacti

bear@njava:$ sudo /etc/init.d/nginx reload

5 从cacti的UI上传cacti模板

cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml

Tags: , ,

星期日, 3月 28th, 2010 服务器 没有评论

ssh因为eCryptfs的原因PubkeyAuthentication登录不上

折腾了一天,ubuntu9.10服务端authorized_keys文件权限,.ssh权限都正常,ssh基于密码登录能正常登录,但是基于ras的密钥登录却出现问题。必须要服务器控制台先登录了,远程的ssh才能登录。查期原因,原来是eCryptfs闹腾的。

eCryptfs – Enterprise Cryptographic Filesystem 是linux下一个企业级的磁盘加密系统。

解决办法一

 $ /sbin/umount.ecryptfs_private
 $ cd $HOME
 $ chmod 700 .
 $ mkdir -m 700 .ssh
 $ chmod 500 .
 $ echo $YOUR_REAL_PUBLIC_KEY > .ssh/authorized_keys
 $ /sbin/mount.ecryptfs_private

解决方法二
bear@njava:~$ vi /etc/ssh/sshd_config

AuthorizedKeysFile /etc/.ssh/%u/authorized_keys

Tags: ,

星期六, 3月 27th, 2010 服务器 没有评论

ubuntu启动加载调整sysv-rc-conf

1 安装sysv-rc-conf

bear@njava:~$ sudo apt-get update
bear@njava:~$ sudo apt-get install sysv-rc-conf

2 运行

bear@njava:~$ sudo sysv-rc-conf

3 运行等级
开机进程执行顺序如下:
运行等级 S:开机进程中的第一个运行等级。/etc/init.d/rcS脚本将被调用到开启并且/etc/rcS.d目录下的所有进程将被执行。
运行等级 1:单用户模式。/etc/rc1.d目录下的所有进程将被执行。
运行等级 2,3,4,5:在debian系统里是多用户环境,可能不包含图形用户界面。同样的,在相应目录下的进程将被运行。
运行等级 0:关闭计算机
运行等级 6:重起计算机

Tags: ,

星期六, 3月 27th, 2010 服务器 没有评论

ssh安全策略

1 客户机生成私钥和公钥

客户端:

$ ssh-keygen -t rsa

2 上传公钥 xx.pub

ssh-copy-id -i ~/.ssh/bear@njava.pub bear@njava.com

或者
服务端:

$ mkdir ~/.ssh
$ chmod 700 .ssh
$ cat xx.pub>~/.ssh/authorized_keys
$ chmod 600 authorized_keys

3 禁止密码登录
服务端:

$ sudo vim /etc/ssh/sshd_config 

#PasswordAuthentication yes /*禁止密码验证登录
PasswordAuthentication no

#确保公钥登录
PubkeyAuthentication yes 

#LogLevel info  提高日志级别
LogLevel VERBOSE

#LoginGraceTime 120 登录等待的最短时间 改为20秒,可以有效的防御thwarting automated),暴力攻击ssh,和DDOS
LoginGraceTime 20

#Banner /etc/issue.net 警告信息,建立/etc/issue 文件,ln -s 到 /etc/issue.net
Banner /etc/issue.net

#只允许特定用户ssh登录
AllowUsers 'bear njava'

#不允许特定用户ssh登录
DenyUsers 'pig java'

#只允许指定组用户登录
AllowGroups sshlogin

#添加组信息的方法
#sudo addgroup --gid 450 sshlogin
#sudo adduser  sshlogin 

#改变ssh监听端口
Port 2222

4 重启ssh

sudo /etc/init.d/ssh restart

Tags: , ,

星期五, 3月 26th, 2010 服务器 没有评论

什么是UNIX Domain Socket IPC

socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。UNIX Domain Socket也提供面向流和面向数据包两种API接口,类似于TCP和UDP,但是面向消息的UNIX Domain Socket也是可靠的,消息既不会丢失也不会顺序错乱。

UNIX Domain Socket是全双工的,API接口语义丰富,相比其它IPC机制有明显的优越性,目前已成为使用最广泛的IPC机制,比如X Window服务器和GUI程序之间就是通过UNIX Domain Socket通讯的。

使用UNIX Domain Socket的过程和网络socket十分相似,也要先调用socket()创建一个socket文件描述符,address family指定为AF_UNIX,type可以选择SOCK_DGRAM或SOCK_STREAM,protocol参数仍然指定为0即可。

UNIX Domain Socket与网络socket编程最明显的不同在于地址格式不同,用结构体sockaddr_un表示,网络编程的socket地址是IP地址加端口号,而UNIX Domain Socket的地址是一个socket类型的文件在文件系统中的路径,这个socket文件由bind()调用创建,如果调用bind()时该文件已存在,则bind()错误返回。

Tags: ,

星期五, 3月 26th, 2010 网络 没有评论

nginx链接php的一种方法,unix domain socket

1 建立sock文件/tmp/php-cgi.njava.sock

bear@njava:/tmp$sudo chown www-data /tmp/php-cgi.njava.sock

2 修改站点配置/etc/nginx/site-available

# fastcgi_pass  127.0.0.1:9000;
fastcgi_pass   unix:/tmp/php-cgi.njava.sock;

3 修改php-cgi启动方式

#DAEMON_OPTS=”-a 127.0.0.1 -p 9000 -C 1 -u www-data -f /usr/bin/php-cgi”
DAEMON_OPTS=”-a 127.0.0.1 -s /tmp/php-cgi.njava.sock -C 1 -u www-data -f /usr/bin/php-cgi

Tags: , ,

星期五, 3月 26th, 2010 服务器 没有评论

域名的8种状态

1、 ACTIVE:活动状态。由Registry设置;该域名可以由Registrar更改;可以续费;至少被指派一个DNS。

2、 REGISTRY-LOCK:注册局锁定。由注册局设置;该域名不可以由注册商更改、删除;必须由注册局解除此状态才可以由注册商更改域名信息;域名可以续费;如果域名被指派至少一个DNS则可以包含在(域名根服务器)的区域中(可以正常使用)。

3、 REGISTRY-HOLD:注册局保留。由注册局设置;该域名不可以由注册商更改、删除;必须由注册局解除此状态才可以由注册商更改域名信息;域名可以续费;该域名不包括在(域名根服务器)的区域中(不能正常使用)。

4、 REGISTRAR-LOCK:注册商锁定。由该域名的原始注册商设置;该域名不可以被更改或删除;必须由注册商解除此状态才可以更改域名信息;该域名可以续费。该域名包含在(域名根服务器)的区域中(可以正常使用)。

5、 REGISTRAR-HOLD:注册商保留。由该域名的原始注册商设置;该域名不可以被更改或删除;必须由注册商解除此状态才可以更改域名信息;该域名可以续费。该域名不包括在(域名根服务器)的区域中(不能正常使用)。

6、 REDEMPTIONPERIOD:宽限期。当注册商向注册局提出删除域名请求后,由注册局将域名设置称此状态,不过,条件是该域名已经注册了5天以上(如果该域名注册时间不足5天,则立即删除);该域名不包括在(域名根服务器)的区域中(不能正常使用);该域名不可以被更改或清除,只可以被恢复;任何其他注册商提出对此域名的更改或其他请求都将被拒绝;该状态最多保持30天。

7、 PENDINGRESTORE:恢复未决。当注册商提出将处于REDEMPTIONPERIOD的域名恢复请求后,由注册局设置;该域名包含在(域名根服务器)的区域中(可以正常使用);注册商提出的更改或任何其他请求都将被拒绝;在7天之内,有注册商向注册局提供必需的恢复文件,如果注册商在7天之内提供了这些文件,该域名将被置为ACTIVE状态,否则,该域名将重新返回到REDEMPTIONPERIOD状态。

8、 PENDINGDELETE:删除未决。如果一个域名在被设置成REDEMPTIONPERIOD状态期间内,注册商没有提出恢复请求,那么,域名将被置于PENDINGDELETE状态,注册商对此域名的任何请求都将被拒绝;5天之后清除。

Tags:

星期四, 3月 25th, 2010 Web 没有评论

Google.cn已经302去香港了

3月23日消息,据国外媒体报道,谷歌周一宣布,已正式关闭中国内地网站Google.cn,同时将用户重新定向到谷歌香港网站。

 北京时间3月23日凌晨3时零3分,谷歌公司高级副总裁、首席法律官大卫·德拉蒙德公开发表声明,再次借黑客攻击问题指责中国,宣布停止对谷歌中国搜索服务的“过滤审查”,并将搜索服务由中国内地转至香港。

谷歌称:“履行我们不再对Google.cn进行审查的承诺很难,我们希望全世界尽可能多的网民访问到我们的服务,其中包括中国内地用户。但是,在整个谈判过程中,中国政府的态度很明确,自我审查是一个不可商量的法律规定。”

谷歌表示:“我们相信,这种通过谷歌香港网站(Google.com.hk)提供未经审查的简体中文搜索服务的做法是可行的,而且完全合法,将在很大程度上提升中国网民所访问的信息量。”

谷歌还表示:“我们十分希望中国政府能够尊重我们的决定。”另外,关闭Google.cn网站后,谷歌在内地的研发和销售团队将予以保留。

受该决定影响,谷歌在内地的一部分员工可能将失业,但知情人士称,大部分员工仍将继续为香港网站Google.com.hk服务。

google跳转

bear@bear-laptop:~$ curl -I www.g.cn

HTTP/1.1 301 Moved Permanently

Location: http://www.google.cn/webhp?source=g_cn

Date: Tue, 23 Mar 2010 03:51:48 GMT

Expires: Tue, 23 Mar 2010 03:51:48 GMT

Cache-Control: private, max-age=2592000

Content-Type: text/html; charset=UTF-8

Server: gws

Content-Length: 235

X-XSS-Protection: 0

google302去香港了,不是301,哈哈

bear@bear-laptop:~$ curl -I www.google.cn

HTTP/1.1 302 Found

Location: http://www.google.com.hk/url?sa=p&cki=PREF%3DID%3Dd83b4d507eefd755:FF%3D2:LD%3Dzh-CN:NW%3D1:TM%3D1269316321:LM%3D1269316321:S%3DGFQBLG4qIPsWAO51&q=http://www.google.com.hk/&ust=1269316351043237&usg=AFQjCNERVTkZUumndQ1a34tTuFj4UFHGcw

Cache-Control: private

Content-Type: text/html; charset=UTF-8

Set-Cookie: PREF=ID=d83b4d507eefd755:NW=1:TM=1269316321:LM=1269316321:S=rcWSYLH01KNeQF_W; expires=Thu, 22-Mar-2012 03:52:01 GMT; path=/; domain=.google.cn

Set-Cookie: NID=33=h6A0wWWNC8Lv83l8JJzytNn7No3_LZ_vsJvYRPdOW6Hxvye_kwKOS3XRm5jPFvgACIiQ7lLsA_-9QjFbQo2OEqyiUzM7GtqkwMB8BUh6WS6WIFkSoggDjgUKulmrp1EW; expires=Wed, 22-Sep-2010 03:52:01 GMT; path=/; domain=.google.cn; HttpOnly

Date: Tue, 23 Mar 2010 03:52:01 GMT

Server: gws

Content-Length: 445

X-XSS-Protection: 0


bear@bear-laptop:~$ date
2010年 03月 23日 星期二 11:52:39 CST

Tags: ,

星期二, 3月 23rd, 2010 Web 没有评论

给ubuntu9.10下的nginx安装nagios监控

1 开权限

root@njava:~# sudo -s
root@njava:~# useradd -m -s /bin/bash nagios
root@njava:~# passwd nagios
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@njava:~# groupadd nagios
groupadd: group 'nagios' already exists
root@njava:~# usermod -G nagios nagios
root@njava:~# groupadd nagcmd
root@njava:~# usermod -a -G nagcmd nagios
root@njava:~# usermod -a -G nagcmd www-data
root@njava:~# 

2 下软件

root@njava:~# axel http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
root@njava:~# axel http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz
root@njava:~# tar -xzvf nagios-3.2.1.tar.gz 

3 编译设置

root@njava:~# cd nagios-3.2.1
root@njava:~/nagios-3.2.1# ./configure --with-command-group=nagcmd
root@njava:~/nagios-3.2.1# make all
root@njava:~/nagios-3.2.1# make install
root@njava:~/nagios-3.2.1# make install-init
root@njava:~/nagios-3.2.1# make install-config
root@njava:~/nagios-3.2.1# make install-commandmode

4 安装apache配置,对nagios无用

root@njava:~/nagios-3.2.1# make install-webconf

5 配置nginx

root@njava:~/nagios-plugins-1.4.14# cat /etc/nginx/sites-available/nagios 
server {
	listen   80;
	server_name nagios.njava.com;
        
	access_log  /var/log/nginx/nagios.access.log;

	location / {
		root   /usr/local/nagios/share;
		index  index.php;
        }

        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                set $path_info "/";
                set $real_script_name $fastcgi_script_name;
                if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                    set $real_script_name $1;
                    set $path_info $2;
                }
               fastcgi_param SCRIPT_FILENAME /usr/local/nagios/share/$real_script_name;
               fastcgi_param script_name $real_script_name;
               fastcgi_param path_info $path_info;
               include /etc/nginx/fastcgi_params;
        }
       location /nagios/images {
                alias /usr/local/nagios/share/images;
        }
                   
        location /nagios/stylesheets {
                alias /usr/local/nagios/share/stylesheets;
          }


         location /cgi-bin {
                 alias /usr/local/nagios/sbin;

    }

    location ~ \.cgi$ {

        root           /usr/local/nagios/sbin;

        rewrite ^/cgi-bin/(.*)\.cgi /$1.cgi break;

        fastcgi_index  index.cgi;

        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

        include        nginx_fcgi_params;

        fastcgi_read_timeout    5m;

        fastcgi_pass   unix:/var/run/nginx-fcgi.sock;

    }

6 安装Nagios Plugins

root@njava:~# tar -xzvf nagios-plugins-1.4.14.tar.gz
root@njava:~# cd nagios-plugins-1.4.14
root@njava:~/nagios-plugins-1.4.14# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
...
...            --with-apt-get-command: /usr/bin/apt-get
              --with-ping6-command: /bin/ping6 -n -U -w %d -c %d %s
               --with-ping-command: /bin/ping -n -U -w %d -c %d %s
                       --with-ipv6: yes
                      --with-mysql: no
                    --with-openssl: yes
                     --with-gnutls: no
               --enable-extra-opts: no
                       --with-perl: /usr/bin/perl
             --enable-perl-modules: no
                     --with-cgiurl: /nagios/cgi-bin
               --with-trusted-path: /bin:/sbin:/usr/bin:/usr/sbin
                   --enable-libtap: no
root@njava:~/nagios-plugins-1.4.14# make && make install

7 启动nagios相关设置

root@njava:~/nagios-plugins-1.4.14# ln -s /etc/init.d/nagios /etc/rcS.d/
S99nagios

9 nagios设置
用户登录验证

root@njava:~/nagios-plugins-1.4.14#vi /usr/local/nagios/etc/cgi.cfg
    use_authentication=0

CGI工作目录

root@njava:~/nagios-plugins-1.4.14#vi /usr/local/nagios/share/config.inc.php
$cfg['cgi_base_url']='/cgi-bin';

8 效验nagios执行nagios

root@njava:~/nagios-plugins-1.4.14# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Things look okay - No serious problems were detected during the pre-flight check
root@njava:~/nagios-plugins-1.4.14# /etc/init.d/nagios start

参考:
1 http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html

Tags: , , ,

星期一, 3月 22nd, 2010 服务器 没有评论

Nginx0.8.34 支持 CGI

1 安装FCGI

root@njava:~# wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.67.tar.gz
root@njava:~# tar -zxf FCGI-0.67.tar.gz
root@njava:~#cd FCGI-0.67
root@njava:~/FCGI-0.67#  perl Makefile.PL
root@njava:~/FCGI-0.67#  make && make install
root@njava:~/FCGI-0.67#  cd ..

2 安装FCGI-ProcManager

root@njava:~# wget http://search.cpan.org/CPAN/authors/id/G/GB/GBJK/FCGI-ProcManager-0.18.tar.gz
root@njava:~#tar -zxf FCGI-ProcManager-0.18.tar.gz
root@njava:~#cd FCGI-ProcManager-0.18
root@njava:~/FCGI-ProcManager-0.18#perl Makefile.PL
root@njava:~/FCGI-ProcManager-0.18#make && make install
root@njava:~/FCGI-ProcManager-0.18#cd ..

3 安装IO-ALL

root@njava:~#wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/IO-All-0.39.tar.gz
root@njava:~# tar zxf IO-All-0.39.tar.gz
root@njava:~#cd IO-All-0.39
root@njava:~/IO-All-0.39# perl Makefile.PL
root@njava:~/IO-All-0.39# make && make install

4 安装nginx-fcgi脚本

root@njava:~#wget http://www.nginx.eu/nginx-fcgi/nginx-fcgi.txt
root@njava:~#mv nginx-fcgi.txt /usr/sbin/nginx-fcgi
root@njava:~# chmod +x /usr/sbin/nginx-fcgi

不以root权限执行脚本,注释nginx-fcgi

#if ( $> == "0" ) {
#        print "\n\tERROR\tRunning as a root!\n";
#        print "\tSuggested not to do so !!!\n\n";
#       exit 1;
#}

5启动nginx-fcgi

nginx-fcgi -l /var/log/nginx/nginx-fcgi.log -pid /var/run/nginx-fcgi.pid -S /var/run/nginx-fcgi.sock
chown www-data:www.data /var/run/nginx-fcgi.sock

注意nginx-fcgi.sock的权限让nginx的执行账户有权读写
6 复制fastcgi_params一份用来设置nginx_fcgi_params

root@njava:~#cp /etc/nginx/fastcgi_params /etc/nginx/nginx_fcgi_params
root@njava:~#vi /nginx/nginx_fcgi_params
#fastcgi_param  REDIRECT_STATUS    200;

7 代理cgi设置

    server {
        listen       80;
        server_name  njava.com;

        location ~ ^/cgi-bin/.*\.cgi$
        {
            root           /home/bear/njava/test;
            fastcgi_index  index.cgi;
            fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            include        nginx_fcgi_params;
            fastcgi_read_timeout    5m;
            fastcgi_pass   unix:/var/run/nginx-fcgi.sock;
        }
    }

8 完工

Tags: ,

星期一, 3月 22nd, 2010 服务器 没有评论
Pages: Prev 1 2 3 ... 5 6 7 8 9 10 11 12 13 14 15 Next
1LMooBmUE153Wnd3zDryWvDyXxQudbFxDr