Linux下nginx+nagios 监控平台搭建Word格式.docx
《Linux下nginx+nagios 监控平台搭建Word格式.docx》由会员分享,可在线阅读,更多相关《Linux下nginx+nagios 监控平台搭建Word格式.docx(7页珍藏版)》请在冰豆网上搜索。
cdnagios-3.2.3&
./configure--with-command-group=nagcmd--prefix=/usr/local/nagios&
makeall&
makeinstall&
makeinstall-init&
makeinstall-config&
makeinstall-commandmode
nagios安装完毕:
验证程序是否被正确安装。
切换目录到安装路径(这里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var这五个目录,如果存在则可以表明程序被正确的安装到系统了。
接下来编译并安装nagios插件nagios-plugins
cd/usr/src&
tarzxvfnagios-plugins-1.4.13.tar.gz&
cdnagios-plugins-1.4.13&
./configure--with-nagios-user=nagios--with-nagios-group=nagios--perfix=/usr/local/nagios&
make&
makeinstall
插件安装完毕!
ls/usr/local/nagios/libexec
会显示安装的插件文件,即所有的插件都安装在libexec这个目录下。
四、创建一个nagiosadmin用户:
用于Nagios的WEB接口登录。
记下你所设置的登录口令,一会儿你会用到它
这里要借助于apche的htpasswd,在有apache机器上执行下列命令
/usr/local/apache2/bin/htpasswd-c/usr/local/nagios/etc/htpasswdnagiosadmin
输入两次一样的密码即可。
启动nagios;
chkconfig–addnagios添加到service中,chkconfignagios–level35on设置成开机启动。
【把selinux、iptables关闭,或者更改iptables策略需要访问nagios】
五、安装perlfcgi模块:
(1)、安装FCGI
tar-zxvfFCGI-0.67.tar.gz&
cdFCGI-0.67&
perlMakefile.PL&
(2)、安装FCGI-ProcManager:
cd../&
tar-xzxfFCGI-ProcManager-0.18.tar.gz&
cdFCGI-ProcManager-0.18&
make&
安装完毕即可。
接下来配置cgi脚本、nginx配置文件:
cd
/usr/local/nagios/bin/下新建文件,并写入以下内容viperl-cgi.pl
#!
/usr/bin/perl
useFCGI;
#perl-MCPAN-e‘installFCGI’
useSocket;
#thiskeepstheprogramaliveorsomethingafterexec’ingperlscripts
END()
{
}
BEGIN()
*CORE:
:
GLOBAL:
exit
=
sub
die
“fakeexit\nrc=”.shift().”\n”;
};
eval
q{exit};
if
($@)
unless
$@
=~
/^fakeexit/;
;
main;
submain{
#$socket=FCGI:
OpenSocket(“:
3461″,10);
#useIPsockets
$socket
=FCGI:
OpenSocket(
“/var/run/nagios.sock”,
10
);
#useUNIXsockets–userrunningthisscriptmusthavewaccesstothe‘nginx’folder!
!
$request
Request(
\*STDIN,
\*STDOUT,
\*STDERR,
\%ENV,
($request)
{request_loop()};
FCGI:
CloseSocket(
subrequest_loop{
while(
$request->
Accept()
>
)
#processinganySTDINinputfromWebServer(forCGI-GETactions)
$env
GetEnvironment();
$stdin_passthrough
=”;
$req_len
+
$ENV{CONTENT_LENGTH};
($ENV{REQUEST_METHOD}
eq
‘GET’){
.=
$ENV{‘QUERY_STRING’};
#runningthecgiapp
(
(-x$ENV{SCRIPT_FILENAME})
#canIexecutethis?
(-s
$ENV{SCRIPT_FILENAME})
#Isthisfileempty?
(-r$ENV{SCRIPT_FILENAME})
#canIreadthisfile?
){
#http:
//perldoc.perl.org/perlipc.html#Safe-Pipe-Opens
open
$cgi_app,
‘-|’,
$ENV{SCRIPT_FILENAME},
or
print(“Content-type:
text/plain\r\n\r\n”);
print
“Error:
CGIappreturnednooutput–Executing$ENV{SCRIPT_FILENAME}failed!
\n”;
($cgi_app)
{print
<
$cgi_app>
close
$cgi_app;
else
NosuchCGIapp–$req_len–$ENV{CONTENT_LENGTH}–$ENV{REQUEST_METHOD}–$ENV{SCRIPT_FILENAME}maynotexistorisnotexecutablebythisprocess.\n”;
}
设置权限chmod+xperl-cgi.pl即可!
以下是我的nginx.conf文件server内容:
server
listen80;
server_name192.168.2.79;
root/usr/local/nagios/share;
indexindex.php;
auth_basic“YouName”;
auth_basic_user_file/usr/local/nagios/etc/htpasswd;
log_formatnagios‘$remote_addr–$remote_user[$time_local]“$request”‘
‘$status$body_bytes_sent“$http_referer”‘
‘”$http_user_agent”$http_x_forwarded_for’;
access_log/usr/local/nginx/nagios.lognagios;
location~.*\.(php|php5)?
$
#fastcgi_passunix:
/tmp/php-cgi.sock;
fastcgi_pass127.0.0.1:
9000;
fastcgi_indexindex.php;
includefcgi.conf;
location~\.cgi${
root/usr/local/nagios/sbin;
rewrite^/nagios/cgi-bin/(.*)\.cgi/$1.cgibreak;
fastcgi_indexindex.cgi;
fastcgi_passunix:
/var/run/nagios.sock;
fastcgi_paramSCRIPT_FILENAME/usr/local/nagios/sbin$fastcgi_script_name;
fastcgi_paramQUERY_STRING$query_string;
fastcgi_paramREMOTE_ADDR$remote_addr;
fastcgi_paramREMOTE_PORT$remote_port;
fastcgi_paramREQUEST_METHOD$request_method;
fastcgi_paramREQUEST_URI$request_uri;
fastcgi_paramREMOTE_USER$remote_user;
#默认没有红色这一句,如果没有,后面nagios页面会报错,具体错误后面给出。
#fastcgi_paramSCRIPT_NAME$fastcgi_script_name;
fastcgi_paramSERVER_ADDR$server_addr;
fastcgi_paramSERVER_NAME$server_name;
fastcgi_paramSERVER_PORT$server_port;
fastcgi_paramSERVER_PROTOCOL$server_protocol;
fastcgi_paramSERVER_SOFTWAREnginx;
fastcgi_paramCONTENT_LENGTH$content_length;
fastcgi_paramCONTENT_TYPE$content_type;
fastcgi_paramGATEWAY_INTERFACECGI/1.1;
fastcgi_paramHTTP_ACCEPT_ENCODINGgzip,deflate;
fastcgi_paramHTTP_ACCEPT_LANGUAGEzh-cn;
fcgi.conf文件内容如下:
fastcgi_param
GATEWAY_INTERFACE
CGI/1.1;
SERVER_SOFTWARE
nginx;
QUERY_STRING
$query_string;
REQUEST_METHOD
$request_method;
CONTENT_TYPE
$content_type;
CONTENT_LENGTH
$content_length;
SCRIPT_FILENAME
$document_root$fastcgi_script_name;
SCRIPT_NAME
$fastcgi_script_name;
REQUEST_URI
$request_uri;
DOCUMENT_URI
$document_uri;
DOCUMENT_ROOT
$document_root;
SERVER_PROTOCOL
$server_protocol;
REMOTE_ADDR
$remote_addr;
REMOTE_PORT
$remote_port;
SERVER_ADDR
$server_addr;
SERVER_PORT
$server_port;
SERVER_NAME
$server_name;
#PHPonly,requiredifPHPwasbuiltwith–enable-force-cgi-redirect
REDIRECT_STATUS
200;
以上可以把nginx中fastcGI部分整合到fcgi.conf中。
启动nginx,确定有fastcGI9000端口。
后台启动screen
./perl-cgi.pl>
/dev/null
;
ctrl+a+d退出screen。
然后chmod
777
/var/run/nagios.sock
并且重启servicenagiosrestart
六。
安装完毕,然后访问:
直接访问http:
//192.168.2.79
会弹出登录框,输入用户名nagiosadmin和密码,会看到nagios默认监控localhost!
页面如下:
而且点击详细服务关闭报警,也不报错:
这样的话,nginx+nagios环境搭建完毕!
剩下的就是具体监控客户端的配置啦!
文章后续给出!
本文环境已经测试通过,搭建的时候,也遇到了好多例如403、502、504等等系列问题,一点一滴的解决。
一件事只有你真正做过,你才会感觉到学到很多东西。
如下的报错:
(1)、ItseemsthatyouhavechosentonotusetheauthenticationfunctionalityoftheCGIs.
Idon'
twanttobepersonallyresponsibleforwhatmayhappenasaresultofallowing
unauthorizeduserstoissuecommandstoNagios,soyou'
llhavetodisablethissafeguardifyou
arereallystubbornandwanttoinvitetrouble.
(2)、Itappearsasthoughyoudonothavepermissiontoviewinformationforanyofthehostsyourequested...
Ifyoubelievethisisanerror,checktheHTTPserverauthenticationrequirementsforaccessingthisCGI
andchecktheauthorizationoptionsinyourCGIconfigurationfile
可参照修改:
本文参考文章链接:
http:
//bbs.linuxtone.org/thread-4441-1-1.html
//bbs.linuxtone.org/thread-7404-1-1.html
本文出自“【烟雨楼台】”博客,请务必保留此出处