LNMP之前已安裝
1、Nginx對Perl的CGI支持
<span style="color:#333333">tar xzf FCGI-0.74.tar.gz
cd FCGI-0.74
perl Makefile.PL
make && make install
cd ../
tar xzf FCGI-ProcManager-0.24.tar.gz
cd FCGI-ProcManager-0.24
perl Makefile.PL
make && make install
cd ../
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
cd ../
#安裝 perl-IO-String
yum install perl-IO-String
#安裝IO::ALL模塊
wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/IO-All-0.41.tar.gz
tar zxvf IO-All-0.41.tar.gz
cd IO-All-0.41
perl Makefile.PL
make && make install
cd ../
wget http://www.mike.org.cn/wp-content/uploads/2011/07/perl-fcgi.zip
unzip perl-fcgi.zip
cp perl-fcgi.pl /usr/local/nginx/
#修改腳本權限
chmod 755 /usr/local/nginx/perl-fcgi.pl
vim /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 www.www $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 www.www $dir/now_start_perl_fcgi.sh
chmod u+x $dir/now_start_perl_fcgi.sh
sudo -u www $dir/now_start_perl_fcgi.sh
echo "start perl-fcgi done"
}
case $1 in
stop)
stop
;;
start)
start
;;
restart)
stop
start
;;
esac
#修改腳本權限
chmod 755 /usr/local/nginx/start_perl_cgi.sh
#啓動腳本
/usr/local/nginx/start_perl_cgi.sh start
</span>
<span style="color:#333333"><strong>2、安裝nagios</strong>
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www
tar xzf nagios-3.5.0.tar.gz
cd nagios
yum -y install gd-devel
./configure --prefix=/usr/local/nagios --with-command-group=nagcmd
make all
make install #用於安裝主要的程序、CGI及HTML文件
make install-init #用於生成init啓動腳本
make install-config #用於安裝示例配置文件
make install-commandmode</span>
3、安裝插件
tar xzf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
cd ../
tar xzf nrpe-2.14.tar.gz
cd nrpe-2.14
./configure
make && make install
cp sample-config/nrpe.cfg /usr/local/nagios/etc/
chown nagios.nagios /usr/local/nagios/etc/nrpe.cfg
cd ../
tar xzf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
cd ../
tar xzf nrpe-2.14.tar.gz
cd nrpe-2.14
./configure
make && make install
cp sample-config/nrpe.cfg /usr/local/nagios/etc/
chown nagios.nagios /usr/local/nagios/etc/nrpe.cfg
cd ../
4、安裝pnp4nagios
yum install rrdtool gd gd-devel php-gd
#tar -zxvf php4nagios-*.tar.gz
#cd php4nagios
#./configure –with-nagios-user=nagios –with-nagios-group=nagios (如果單獨編譯安裝的rrdtoool,則使用–with-rrdtool=/usr/local/rrdtool-1.2.xx/bin/rrdtool這樣的形式)
#make all
#make install
#make install-webconf
#make install-config
#make install-init
yum install rrdtool gd gd-devel php-gd
#tar -zxvf php4nagios-*.tar.gz
#cd php4nagios
#./configure –with-nagios-user=nagios –with-nagios-group=nagios (如果單獨編譯安裝的rrdtoool,則使用–with-rrdtool=/usr/local/rrdtool-1.2.xx/bin/rrdtool這樣的形式)
#make all
#make install
#make install-webconf
#make install-config
#make install-init
5、配置pnp4nagios
使用 Bulk Mode方式
vim /usr/local/nagios/etc/nagios.cfg
process_performance_data=1 #修改
#添加
# service performance data
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file
#
# host performance data starting with Nagios 3.0
#
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
<span style="color:#333333">vim /usr/local/nagios/etc/objects/commands.cfg
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe-H $HOSTADDRESS$ -c $ARG1$
} #這一段放在上面即可
如下:同步模式設定方法添加到末尾就可以,記住在這個配置文件裏面, 默認有這個配置,需要找到註釋掉,然後將下面的配置添加,如果不註釋掉,在你檢查nagios的配置文件的時候會報錯
define command{
command_name process-service-perfdata-file
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata
}
define command{
command_name process-host-perfdata-file
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata
}
vim /usr/local/nagios/etc/objects/templates.cfg
define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name service-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}</span>
<span style="color:#333333"><strong>6、配置nginx</strong>
server {
listen 80;
server_name nagios.zhibo.tv;
auth_basic "Nagios Access";
auth_basic_user_file /usr/local/nagios/etc/htpasswd.users;
root /usr/local/nagios/share;
location / {
root /usr/local/nagios/share;
index index.html index.htm index.php;
}
location ~ .*\.(php|php5)?$
{
root /usr/local/nagios/share;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location /nagios {
alias /usr/local/nagios/share;
}
location /cgi-bin/images {
alias /usr/local/nagios/share/images;
}
location /cgi-bin/stylesheets {
alias /usr/local/nagios/share/stylesheets;
}
location /cgi-bin {
alias /usr/local/nagios/sbin;
}
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_index index.cgi;
include fastcgi.conf;
fastcgi_read_timeout 60;
}
location /pnp4nagios {
alias /usr/local/pnp4nagios/share;
index index.php;
try_files $uri $uri/ @pnp4nagios;
}
location @pnp4nagios {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/local/pnp4nagios/share/index.php;
}
}
</span>
<span style="color:#333333"> 指定SSH監控端口號 :
check_command check_ssh! -p 38383!192.168.1.16</span>
<span style="color:#333333"><strong>7、在被監控機上</strong>
a.增加用戶
#useradd nagios -s /sbin/nologin
b.安裝Nagios插件
# tar zxvf nagios-plugins-1.4.16.tar.gz
# cd nagios-plugins-1.4.16
# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
# make && make install
這一步完成後會在/usr/local/nagios/下生成三個目錄include、libexec和share。
c.安裝NRPE
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
# tar zxvf nrpe-2.13.tar.gz
# cd nrpe-2.13
# ./configure
make all
接下來安裝NRPE插件,daemon和示例配置文件
c.1 安裝check_nrpe 監控機需要安裝check_nrpe這個插件,被監控機並不需要,我們在這裏安裝它只是爲了測試目的。
[root@node2 nrpe-2.13]# make install-plugin
c.2 安裝deamon
[root@node2 nrpe-2.13]# make install-daemon
c.3 安裝配置文件
[root@node2 nrpe-2.13]# make install-daemon-config
按照安裝文檔的說明,是將NRPE deamon作爲xinetd下的一個服務運行的。在這樣的情況下xinetd就必須要先安裝好,不過一般系統已經默認安裝了。
yum install -y xinetd
d.安裝xinetd腳本
[root@node2 nrpe-2.13]# make install-xinetd
可以看到創建了這個文件/etc/xinetd.d/nrpe
編譯這個腳本:添加監控服務器IP,監控和被監控端都添加
[root@node2 ~]# vi /etc/xinetd.d/nrpe
only_from = 192.168.11.164 127.0.0.1
vi /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=192.168.1.115,127.0.0.1,192.168.1.113
編輯/etc/services文件,增加NRPE服務
[root@node2 ~]# tail -n 4 /etc/services
iqobject 48619/tcp # iqobject
iqobject 48619/udp # iqobject
# Local services
nrpe 5666/tcp #nrpe
重啓xinetd服務
[root@node2 ~]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
查看NRPE是否已經啓動
[root@node2 ~]# netstat -an|grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN
使用上面在被監控機上安裝的check_nrpe 這個插件測試NRPE 是否工作正常。
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1</span>
<span style="color:#333333"><strong>CPU警告</strong>
vi /usr/local/nagios/etc/nrpe.cfg
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 300 -c 500
</span>
添加CPU、內存、網卡使用率監控
cd /usr/local/nagios/libexec/ 添加監控腳本到目錄
chmod +x 添加執行權限
vi /usr/local/nagios/etc/nrpe.cfg #添加命令
command[check_used_mem]=/usr/local/nagios/libexec/check_used_mem.sh -w 75 -c 85
command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh -w 60 -c 80
command[check_traffic]=/usr/local/nagios/libexec/check_traffic.sh -V 2c -C cool
you -H 127.0.0.1 -I 2 -w20,30 -c40,50 -K -B
command[check_users]=/usr/local/nagios/libexec/check_users -w 4 -c 6
command[check_load]=/usr/local/nagios/libexec/check_load -w 10,5,3 -c 15,10,5
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vda1
command[check_disk_data]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vdb
command[check_used_mem]=/usr/local/nagios/libexec/check_used_mem.sh -w 75 -c 85
command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh -w 60 -c 80
command[check_traffic]=/usr/local/nagios/libexec/check_traffic.sh -V 2c -C coolyou -H 127.0.0.1 -I 2 -w1000,1000 -c1500,1500 -K -B
command[check_ping]=/usr/local/nagios/libexec/check_ping -H 123.59.82.243 -w 100.0,20% -c 200.0,50%
服務器端添加php文件到cd /usr/local/pnp4nagios/share/templates.dist/
cd /usr/local/pnp4nagios/share/templates.dist/
網卡使用率監控需snmp
yum install -y net-snmp*
vi /etc/snmp/snmpd.conf #替換內容 ,第二行爲設置密碼
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
com2sec local localhost coolyou
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local
group MyROGroup v1 lan
group MyROGroup v2c lan
group MyROGroup usm lan
view all included .1 80
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all all
/etc/init.d/snmpd start
./check_traffic.sh -V 2c -C coolyou -H 127.0.0.1 -L #檢查網卡號
./check_traffic.sh -V 2c -C coolyou -H 127.0.0.1 -I 2 -w200,300 -c400,500 -K -B #-I加網卡號 -C加密碼
chown nagios:nagios /var/tmp/check_traffic ...
chkconfig snmpd --level 2345 on
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
com2sec local localhost coolyou
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local
group MyROGroup v1 lan
group MyROGroup v2c lan
group MyROGroup usm lan
view all included .1 80
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all all
/etc/init.d/snmpd start
./check_traffic.sh -V 2c -C coolyou -H 127.0.0.1 -L #檢查網卡號
./check_traffic.sh -V 2c -C coolyou -H 127.0.0.1 -I 2 -w200,300 -c400,500 -K -B #-I加網卡號 -C加密碼
chown nagios:nagios /var/tmp/check_traffic ...
chkconfig snmpd --level 2345 on
添加主機和服務
vi /usr/local/nagios/etc/nagios.cfg
cfg_dir=/usr/local/nagios/etc/servers #取消註釋
vi /usr/local/nagios/etc/servers/192.168.1.16.cfg
define host{
use linux-server,host-pnp
host_name 192.168.1.16
alias 192.168.1.16
address 192.168.1.16
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_ping
check_command check_ping!100.0,20%!200.0,50%
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_ssh
check_command check_ssh! -p 38383!192.168.1.16
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_http
check_command check_http
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_users
check_command check_nrpe!check_users
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_load
check_command check_nrpe!check_load
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_hda1
check_command check_local_disk!20%!10%!/
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_zombie_procs
check_command check_nrpe!check_zombie_procs
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_total_procs
check_command check_nrpe!check_total_procs
max_check_attempts 5
normal_check_interval 1
}
define service {
use generic-service,service-pnp
host_name 192.168.1.16
service_description used_mem
check_command check_nrpe!check_used_mem
max_check_attempts 5
normal_check_interval 1
}
define service {
use generic-service,service-pnp
host_name 192.168.1.16
service_description cpu
check_command check_nrpe!check_cpu
max_check_attempts 5
normal_check_interval 1
}
define service {
use generic-service,service-pnp
host_name 192.168.1.16
service_description net
check_command check_nrpe!check_traffic
max_check_attempts 5
normal_check_interval 1
}
/usr/local/nagios/etc/servers/192.168.1.16.cfg
define host{
use linux-server,host-pnp
host_name 192.168.1.16
alias 192.168.1.16
address 192.168.1.16
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_ping
check_command check_ping!100.0,20%!200.0,50%
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_ssh
check_command check_ssh! -p 38383!192.168.1.16
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_http
check_command check_http
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_users
check_command check_nrpe!check_users
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_load
check_command check_nrpe!check_load
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_hda1
check_command check_local_disk!20%!10%!/
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_zombie_procs
check_command check_nrpe!check_zombie_procs
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service,service-pnp
host_name 192.168.1.16
service_description check_total_procs
check_command check_nrpe!check_total_procs
max_check_attempts 5
normal_check_interval 1
}
define service {
use generic-service,service-pnp
host_name 192.168.1.16
service_description used_mem
check_command check_nrpe!check_used_mem
max_check_attempts 5
normal_check_interval 1
}
define service {
use generic-service,service-pnp
host_name 192.168.1.16
service_description cpu
check_command check_nrpe!check_cpu
max_check_attempts 5
normal_check_interval 1
}
define service {
use generic-service,service-pnp
host_name 192.168.1.16
service_description net
check_command check_nrpe!check_traffic
max_check_attempts 5
normal_check_interval 1
}
<span style="color:#333333"><strong>更改圖形數據目錄</strong>
/usr/local/pnp4nagios/etc/config_local.php conifg.php config.php.0.6.14
$conf['rrdbase'] = "/usr/local/pnp4nagios/var/perfdata/"
更改目錄路徑</span>
更改郵件報警時間間隔
vi vi objects/templates.cfg
notification_interval 5 #更改所有的
vi objects/templates.cfg
notification_interval 5 #更改所有的
<span style="color:#333333"><strong>更改接收郵箱</strong>
vi objects/contacts.cfg</span>
發送郵件:
默認使用mail命令發送,需要安裝並修改配置文件
vim /etc/mail.rc
set [email protected] smtp=smtp.exmail.qq.com
set [email protected] smtp-auth-password=Coolyou@2015
set smtp-auth=login
網卡監報錯 Unknown - Read or Write File /var/tmp/check_traffic_192.168.0.156_2__itnms.hist_dat_64 Error with user uid=542(nagios) gid=543(nagios) groups=543(nagios),544(nagcmd)
Unknown - Read or Write File /var/tmp/check_traffic_192.168.0.156_2__itnms.hist_dat_64 Error with user uid=542(nagios) gid=543(nagios) groups=543(nagios),544(nagcmd)
/var/tmp/check_traffic_192.168.0.156_2__itnms.hist_dat_64 :更改文件屬主屬組