Linux下nginx+nagios 监控平台搭建.docx
- 文档编号:6430019
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:7
- 大小:25.51KB
Linux下nginx+nagios 监控平台搭建.docx
《Linux下nginx+nagios 监控平台搭建.docx》由会员分享,可在线阅读,更多相关《Linux下nginx+nagios 监控平台搭建.docx(7页珍藏版)》请在冰豆网上搜索。
Linux下nginx+nagios监控平台搭建
【Linux下nginx+nagios监控平台搭建】
随着linux服务器可用性、稳定性逐步增强,企业对线上服务也要求越来越严格,需要有专门的监控系统监控服务的正常运转,并有问题及时发邮件、报警给linuxSA。
我们大多数nagios、cacti监控都基于apache搭建,今天我们讲一种新平台搭建nginx平台的nagios监控!
一、系统运行环境:
服务器系统版本:
Centos5.3 x64
nginx版本:
nginx-0.8.54
nagios版本:
nagios-3.2.3
二、下载所需包:
所有安装所需的源码包:
本站点集成下载:
Nginx安装请参考:
【nginx安装】
nginx安装完毕后。
三、正式安装nagios:
创建nagios用户和组,并把www加入nagios管理组:
useradd nagios&&groupaddnagcmd&& usermod-gnagcmdnagios&& usermod-gnagcmdwww
cd/usr/scr&&tarxzfnagios-3.2.3.tar.gz&&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
cd/usr/src&&tar-zxvfFCGI-0.67.tar.gz&&cdFCGI-0.67&&perlMakefile.PL&&make&&makeinstall
(2)、安装FCGI-ProcManager:
cd../&&tar-xzxfFCGI-ProcManager-0.18.tar.gz&&cdFCGI-ProcManager-0.18&&perlMakefile.PL&&make&&makeinstall
安装完毕即可。
接下来配置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
($@)
{
exit
unless
$@
=~
/^fakeexit/;
}
;
&main;
submain{
#$socket=FCGI:
:
OpenSocket(“:
3461″,10);#useIPsockets
$socket
=FCGI:
:
OpenSocket(
“/var/run/nagios.sock”,
10
);
#useUNIXsockets–userrunningthisscriptmusthavewaccesstothe‘nginx’folder!
!
$request
=FCGI:
:
Request(
\*STDIN,
\*STDOUT,
\*STDERR,
\%ENV,
$socket
);
if
($request)
{request_loop()};
FCGI:
:
CloseSocket(
$socket
);
}
subrequest_loop{
while(
$request->Accept()
>=
0
)
{
#processinganySTDINinputfromWebServer(forCGI-GETactions)
$env
=
$request->GetEnvironment();
$stdin_passthrough
=”;
$req_len
=
0
+
$ENV{CONTENT_LENGTH};
if
($ENV{REQUEST_METHOD}
eq
‘GET’){
$stdin_passthrough
.=
$ENV{‘QUERY_STRING’};
}
#runningthecgiapp
if
(
(-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},
$stdin_passthrough
or
print(“Content-type:
text/plain\r\n\r\n”);
“Error:
CGIappreturnednooutput–Executing$ENV{SCRIPT_FILENAME}failed!
\n”;
if
($cgi_app)
<$cgi_app>;
close
$cgi_app;}
}
else
{
print(“Content-type:
text/plain\r\n\r\n”);
“Error:
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;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
#PHPonly,requiredifPHPwasbuiltwith–enable-force-cgi-redirect
fastcgi_param 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
http:
//bbs.linuxtone.org/thread-7404-1-1.html
本文出自“【烟雨楼台】”博客,请务必保留此出处
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux下nginx+nagios 监控平台搭建 Linux nginx nagios 监控 平台 搭建