- wget http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/FCGI-0.73.tar.gz
- tar xvzf FCGI-0.73.tar.gz
- cd FCGI-0.73
- perl Makefile.PL
- make
- make install
(2)、安装FCGI-ProcManager模块
- wget http://mirrors.ustc.edu.cn/CPAN/authors/id/B/BO/BOBTFISH/FCGI-ProcManager-0.24.tar.gz
- tar xvzf FCGI-ProcManager-0.19.tar.gz
- cd FCGI-ProcManager-0.19
- perl Makefile.PL
- make
- make install
(3)、安装IO和IO::ALL模块
- wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/IO-1.25.tar.gz
- tar zxvf IO-1.25.tar.gz
- cd IO-1.25
- perl Makefile.PL
- make
- make install
- wget http://mirrors.xmu.edu.cn/CPAN/authors/id/I/IN/INGY/IO-All-0.44.tar.gz
- tar zxvf IO-All-0.41.tar.gz
- cd IO-All-0.41
- perl Makefile.PL
- make
- make install
(4)、下载Perl脚本
这个脚本的目的就是产生一个PERL的FastCGI接口,让Nginx可以以CGI方式处理Perl。注:建议把这个脚本放在Nginx安装目录,修改脚本权限为777
- http://www.chlinux.net/perl-fcgi.zip
- unzip perl-fcgi.zip
- cp perl-fcgi.pl /usr/local/nginx/
- chmod 755 /usr/local/nginx/perl-fcgi.pl
(5)、建立一个CGI启动/停止脚本
这个SHELL脚本只是为了方便管理上面的Perl脚本。脚本中的nobody为nginx的运行用户,请据自己的实际情况调整。
注意事项:不能用root用户执行(会提示). 要用与Nginx相同身份的用户执行。否则可能会在Nginx Log中提示 Permision Denied。
- vi /usr/local/nginx/start_perl_cgi.sh
- #!/bin/bash
- #set -x
- dir=/usr/local/ nginx/
- stop ()
- {
- #pkill -f $dir/perl-fcgi.pl
- kill $(cat $dir/logs/perl-fcgi.pid)
- rm $dir/logs/perl-fcgi.pid 2>/dev/null
- rm $dir/logs/perl-fcgi.sock 2>/dev/null
- echo "stop perl-fcgi done"
- }
- start ()
- {
- rm $dir/now_start_perl_fcgi.sh 2>/dev/null
- chown nobody.nobody $dir/logs
- echo "$dir/perl-fcgi.pl -l $dir/logs/perl-fcgi.log -pid $dir/logs/perl-fcgi.pid -S $dir/logs/perl-fcgi.sock" >>$dir/now_start_perl_fcgi.sh
- chown nobody.nobody $dir/now_start_perl_fcgi.sh
- chmod u+x $dir/now_start_perl_fcgi.sh
- sudo -u nobody $dir/now_start_perl_fcgi.sh
- echo "start perl-fcgi done"
- }
- case $1 in
- stop)
- stop
- ;;
- start)
- start
- ;;
- restart)
- stop
- start
- ;;
- esac
修改SHELL脚本权限
chmod 755 /usr/local/nginx/start_perl_cgi.sh
启动脚本
/usr/local/nginx/start_perl_cgi.sh start
正常情况下在/usr/local/nginx/logs下生成perl-fcgi.sock这个文件,如果没有生成,请检查下上面的步聚。
2、安装Nagios和相关插件
(1)、安装前准备
安装的机器上必须有一个WEB服务,本文是在Nginx环境上安装的。下载nagios主程序和相关插件程序包
- wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
- wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
- wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
安装GD库(Nagios中的statusmap和trends模块必须)
yum -y install libgd2-noxpm libgd2-noxpm-devel
(2)、Nagios监控端安装
1、创建Nagios用户及组
建立Nagios账号
/usr/sbin/useradd -m -s /sbin/nologin nagios
2、创建一个名为nagcmd的用户组,用于从web接口执行外部命令。将Nagios用户和Nginx用户加入组中。
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www
注:上面的www是Nginx用户所属的组,如有不同请自行调整。
3、编译安装Nagios
- tar zxvf nagios-3.2.3.tar.gz
- cd nagios-3.2.3
- ./configure --with-command-group=nagcmd
- make
- make all
- make install
- make install-init
- make install-config
- make install-commandmode
- #这里是在Nginx下运行Nagios,这一步就不用做了
- make install-webconf
- cd ..
- 注:
- make install 用于安装主要的程序、CGI及HTML文件
- make install-init 用于生成init启动脚本
- make install-config 用于安装示例配置文件
- make install-commandmode 用于设置相应的目录权限
- make install-webconf 用于安装Apache配置文件
4、验证程序是否被正确安装
切换目录到安装路径,这里是/usr/local/nagios,看是否存在etc、bin、 sbin、 share、 var这五个目录,如果存在则可以表明程序被正确的安装到系统了。
ls /usr/local/nagios/
bin/ etc/ sbin/ share/ var/
注;bin–Nagios执行程序所在目录,其中的nagios文件即为主程序。
etc–Nagios配置文件位置
sbin–Nagios cgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share–Nagios网页文件所在的目录
var–Nagios日志文件、spid 等文件所在的目录
var/archives–日志归档目录
var/rw–用来存放外部命令文件
5、配置NGINX
1)、配置Nagios Web界面登陆帐号及密码
htpasswd -c /usr/local/nagios/etc/nagiospasswd test
如果你没有htpasswd(这个工具由Apache安装包所提供),可在线生成需要加密数据。
a)、访问http://www.4webhelp.net/us/password.php生成需要加密数据
b)、创建加密验证文件
vi /usr/local/nagios/etc/nagiospasswd
#加入生成的加密数据,冒号前是用户名,后面是加密后的密码
test:25JB.R7mXY96o
修改Nagios配置文件,给新增的用户增加访问权限
vi /usr/local/nagios/etc/cgi.cfg
#以下几项中分别加入新增的用户,多用户用逗号分隔。
- authorized_for_system_information=nagiosadmin,test
- authorized_for_configuration_information=nagiosadmin,test
- authorized_for_system_commands=nagiosadmin,test
- authorized_for_all_services=nagiosadmin,test
- authorized_for_all_hosts=nagiosadmin,test
- authorized_for_all_service_commands=nagiosadmin,test
- authorized_for_all_host_commands=nagiosadmin,test
2)、修改NGINX配置,以支持WEB方式访问Nagios
方法一:以http://ip方式访问,NGINX配置片断如下
- server
- {
- listen 80;
- server_name 192.168.1.51;
- index index.html index.htm index.php;
- root /usr/local/nagios/share;
- auth_basic "Nagios Access";
- auth_basic_user_file /usr/local/nagios/etc/nagiospasswd;
- location ~ .*\.(php|php5)?$
- {
- #fastcgi_pass unix:/tmp/php-cgi.sock;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- include fcgi.conf;
- }
- location ~ .*\.(cgi|pl)?$
- {
- gzip off;
- root /usr/local/nagios/sbin;
- rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
- fastcgi_pass unix:/usr/local/nginx/logs/perl-fcgi.sock;
- fastcgi_param SCRIPT_FILENAME /usr/local/nagios/sbin$fastcgi_script_name;
- fastcgi_index index.cgi;
- fastcgi_read_timeout 60;
- fastcgi_param REMOTE_USER $remote_user;
- include fcgi.conf;
- auth_basic "Nagios Access";
- auth_basic_user_file /usr/local/nagios/etc/nagiospasswd;
- }
- location /nagios
- {
- alias /usr/local/nagios/share;
- auth_basic "Nagios Access";
- auth_basic_user_file /usr/local/nagios/etc/nagiospasswd;
- }
- }
6、编译并安装Nagios插件
由于Nagios主程序只是提供一个运行框架,其具体监控是靠运行在其下的插件完成的,所以Nagios插件是必须安装的。
- tar zxvf nagios-plugins-1.4.15.tar.gz
- cd nagios-plugins-1.4.15
- ./configure --with-nagios-user=nagios --with-nagios-group=nagios
- make
- make install
验证Nagios插件是否正确安装
ls /usr/local//nagios/libexec
显示安装的插件文件,即所有的插件都安装在libexec这个目录下。
7、启动服务
启动前先检查下配置文件是否正确
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果没有报错,可以启动Nagios服务
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
查看Nagios运行状态
/usr/local/nagios/bin/nagiostats
8、安装NRPE
由于Nagios只能监测自己所在的主机的一些本地情况,例如,cpu负载、内存使用、硬盘使用等等。如果想要监测被监控的服务器上的这些本地情况,就要用到NRPE。NRPE(Nagios Remote Plugin Executor)是Nagios的一个扩展,它被用于被监控的服务器上,向Nagios监控平台提供该服务器的一些本地的情况。NRPE可以称为Nagios的Linux客户端。
由于NRPE是通过SSL方式在监控和被监控主机上进行数据传输的,所以必须先安装ssl相关的软件包。
编译安装NRPE
- tar zxvf nrpe-2.12.tar.gz
- cd nrpe-2.12
- ./configure
- make all
- make install-plugin
- make install-daemon
- make install-daemon-config
注:监控主机上只需要make install-plugin这一步就可以了。监控机上只要有一个check_nrpe插件用于连接被监控端nrpe的daemon就行了。
启动NRPE
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
验证NRPE是否正确安装
/usr/local/nagios/libexec/check_nrpe -H localhost
注:如果成功,会返回NRPE的版本号.
三、Nagios被控端安装配置
1、创建Nagios用户及组
建立Nagios账号
/usr/sbin/useradd -m -s /sbin/nologin nagios
2、编译并安装Nagios插件
tar zxvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
cd ..
验证程序是否被正确安装:
ls /usr/local/nagios/libexec
显示安装的插件文件,即所有的插件都安装在libexec这个目录下。
3、安装NRPE
tar zxvf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
cd ..
4、启动NRPE
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
验证NRPE是否正确安装
/usr/local/nagios/libexec/check_nrpe -H localhost
注:如果成功,会返回NRPE的版本号。
5、修改NRPE配置文件,让监控主机可以访问被监控主机的NRPE。
缺省NRPE配置文件中只允许本机访问NRPE的Daemon
vi /usr/local/nagios/etc/nrpe.cfg
#缺省为127.0.0.1,只能本机访问
allowed_hosts=192.168.1.108
6、重启nrpe的方法
killall nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
5、配置nagios
定义主机和主机组
1、建立一个host.cfg用来定义主机
Host.cfg文件内容如下
- define host{
- use linux-server
- host_name WEB1 #主机名随便取,建议取一个便于记忆的名字,主机名后面最后别有空格
- alias WEB1 #主机别名
- address 192.168.1.51 #主机IP地址,我现在就暂时填写本机的IP
- check_command check-host-alive #检查命令,此命令来自commands.cfg,用来监控主机是否存活
- max_check_attempts 5 #检查失败后重试的次数
- check_period 24x7 #检查的时间段24x7,同样来自于我们之前在timeperiods.cfg中定义的
- contact_groups sagroup #联系人组,上面在contactgroups.cfg中定义的sagroup
- notification_interval 10 #提醒的间隔,每隔10秒提醒一次
- notification_period 24x7 #提醒的周期, 24x7,同样来自于我们之前在timeperiods.cfg中定义的
- notification_options d,u,r #指定什么情况下提醒,具体含义见之前contacts.cfg部分的介绍
- }
通过简单的复制修改就能定义多个主机了。
可以建一个hostgroup.cfg文件来定义主机组文件内容如下:
- define hostgroup{
- hostgroup_name DB-servers
- #主机组名,可以随意
- alias DB Server
- members DB1,DB2
- #成员
- }
2、建立一个service.cfg文件来定义服务,service.cfg文件内容如下:
- define service{
- use local-service,srv-pnp
- host_name WEB1 #主机名,这主机名必须在host.cfg文件里有定义
- service_description Current disk #服务说明
- check_command check_local_disk!20%!10%!/ #服务检查命令,这个命令来自command.cfg文件
- max_check_attempts 5 #最多检查次数
- check_period 24x7 #服务检查周期
- notification_interval 10 #通知时间间隔
- normal_check_interval 1 #正常检查服务的时间间隔
- retry_check_interval 1 #重新检查时间间隔
- notification_period 24x7 #通知时间段
- notification_options w,u,c,r,d #服务在什么状态下通知,d = 状态为 DOWN , u = 状态为 UNREACHABLE , r = 状态恢复为 OK , f = flapping,
- contact_groups admins #联系人组
- }
定义联系人,设置联系人的文件名是contacts.cfg 系统默认就存在,我们只要修改就行了文件内容如下:
- define contact{
- contact_name nagiosadmin #联系人名
- use generic-contact
- alias Nagios Admin #联系人别名,
- email nagios@localhost #联系人的邮件,nagios就是用这个邮件报警的,可以设置多个由逗号分开
- }
nrpe的主配置文件是/usr/local/nagios/etc/nrpe.cfg,在command.cfg文件中定义nrpe的命令
- define command{
- command_name check_nrpe
- command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
- }
要监控远程主机的服务需要在被监控机的nrpe主配置文件中定义。然后在监控服务器的command.cfg文件中定义命令。操作内容如下:被监控机的定义
- command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 #监控CPU的负载
- command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda2 #监控硬盘第二分区的使用情况
- command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z #监控僵尸进程
- command[check_local_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 -P #监控活动进程
- command[check_mysql]=/usr/local/nagios/libexec/check_mysql -H localhost -u mysql用户名 –p mysql密码 –d 需要监控的数据库
- #监控mysql数据库。主要监控mysql的开启数据,每秒的查询,慢查询,刷新的表,打开的表。注mysql的用户只要给select权限就可以
- command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10% #监控交换分区的使用情况,超过20%就报 w 超过10%就报 c
- command[check_nginx]=/usr/local/nagios/libexec/check_nginx.sh --url www.chlinux.net/index.php #监控nginx的状态。可以监控403.502等等
- command[check_traffic]=/usr/local/nagios/libexec/check_traffic.sh -V 2c -C public -H 127.0.0.1 -I 2 -w 300,300 -c 500,600 -K –B #监控网卡流量
被监控机配置好后需要重启nrpe
nrpe重启方法
killall -9 nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
[root@localhost ~]# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12 检查是否有类似的输出,如果有就是启动成功,没有就检查配置是否正确
监控机的配置
在service.cfg文件配置如下:
- define service{
- use local-service,srv-pnp
- host_name WEB1
- service_description Root Partition
- check_command check_nrpe!check_disk
- check_period 24x7
- max_check_attempts 4
- normal_check_interval 1
- retry_check_interval 1
- contact_groups admins
- notification_interval 10
- notification_period 24x7
- notification_options w,u,c,r
- }
服务端配置完后需要重启nagios服务
三、安装pnp
Pnp是一个绘图工具,需要依赖rrdtool软件包
- wget http://pkgs.fedoraproject.org/repo/pkgs/pnp4nagios/pnp-0.4.13.tar.gz/20a96f81edba29dcd21215bde4af8b57/pnp-0.4.13.tar.gz
- tar zxvf pnp-0.4.13.tar.gz
- cd pnp-0.4.13
- ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-perfdata-dir=/usr/local/nagios/share/perfdata --with-rrdtool
- make all
- make install
- make install-config
- make install-init
- cd /usr/local/nagios/etc/pnp
- cp npcd.cfg-sample npcd.cfg
- cp rra.cfg-sample rra.cfg
- cp process_perfdata.cfg-sample process_perfdata.cfg
- chown nagios.nagios /usr/local/nagios/etc/pnp/ -R
修改nagios的主配置文件 /usr/local/nagios/etc/nagios.cfg
#打开注释项:
- host_perfdata_command=process-host-perfdata
- service_perfdata_command=process-service-perfdata
- process_performance_data=1
5.修改 commands.cfg
- cd /usr/local/nagios/etc/objects
- vim commands.cfg
- ##添加
- # 'process-host-perfdata' command definition
- define command{
- command_name process-host-perfdata
- command_line /usr/local/nagios/libexec/process_perfdata.pl
- }
- define command{
- command_name process-service-perfdata
- command_line /usr/local/nagios/libexec/process_perfdata.pl
- }
6. 添加小太阳模版,镶嵌在nagios页面上。
- define host {
- name host-pnp
- action_url /pnp/index.php?host=$HOSTNAME$
- register 0
- }
- define service {
- name srv-pnp
- action_url /pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
- register 0
- }
- 7,修改 hosts.cfg 和 services.cfg
- cd /usr/local/nagios/etc/eric.com
- #修改hosts.cfg
- vim hosts.cfg
- define host{
- use linux-server,host-pnp
- host_name eric.com
- alias eric.com
- address 192.168.6.101
- }
-
-
- # 修改 services.cfg
- define service{
- use local-service,srv-pnp
- host_name eric.com
- service_description PING
- check_command check_ping!100.0,20%!500.0,60%
- }
- 8.重启 nagios 服务
- /etc/init.d/nagios restart
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub