1 Nagios
Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
2 Nagios监控项目
1)监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
2)监控主机资源(处理器负荷、磁盘利用率等);
3)简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
4)并行服务检查机制;
5)具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;父主机就是本地主机,子主机是远程主机
6)当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
7)可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;
8)自动的日志滚动功能;
9)可以支持并实现对主机的冗余监控;
10)可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
11)可以通过手机查看系统监控信息;
12)可指定自定义的事件处理控制器;
3 使用Nagios监控本机
配置Nagios服务器端
3.1 准备源文件
先连接内网服务器172.19.0.254——给虚拟机添加一个网卡,并为其选择桥接模式,然后打开虚拟编辑器,点击更改设置会自动识别并添加一个Vmnet0,然后给Vmnet0也选成桥接模式,设置为桥接到Intel(R) Centrino(R) …… 6205 (这个是无线连接的名字)。如果遇到问题可以还原默认网络设置,并且设置真实机的Vmnet0、Vmnet8为自动获取IP。不能选NAT模式,因为NAT模式是单向的通信。
#wget http://172.19.0.254/conf2repos/centos.txt
#wget http://172.19.0.254/conf2repos/epel.txt
//wget命令用于下载,文件名区分大小写;只能下载到用户家目录下。还要看一下下载的源文件中的源服务器IP是否正确,不正确的话要改过来
#cd /etc/yum.repos.d/
#mv /root/centos.txt ./CentOS-Base.repo
#mv /root/epel.txt ./epel.repo
注:此时/etc/yum.repos下有三个文件:my.repo、CentOSBase.repo、epel.repo
3.2 使HTTP支持PHP页面
1)安装http及php:#yum install httpd php php-mbstring php-pear -y
2)删除test页面: #rm -rf /etc/httpd/conf.d/welcome.conf
注:该界面即当/var/www/html下没有index.html文件时,使用浏览器访问时显示的是“TESTING 123”界面
3)配置apache: #vim /etc/httpd/conf/httpd.conf 里面内容可以写
条目1:ServerTokens 指令,这个指令可以隐藏Apache的一些敏感信息,如:
ServerTokens Prod——写了这个,服务器会发送,比如Server: Apache
ServerTokens Major——写了这个,服务器会发送,比如 Server: Apache/2
ServerTokens Minor——写了这个,服务器会发送,比如)Server: Apache/2.0
ServerTokens Min——写了这个,服务器会发送,比如 Server: Apache/2.0.41
ServerTokens OS——写了这个,服务器会发送,比如Server: Apache/2.0.41(Unix)
ServerTokens Full (或未指定)——写了这个,服务器会发送,比如 Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
//也就是说,从上至下隐藏的信息会越来越少。
条目2:KeepAlive 。
对于HTTP/1.1服务器的客户端来说,将会尽量的保持客户的HTTP连接,通过一个连接传送多份HTTP请求响应。浏览器默认是保持连接的,当你打开100 个图片的网站时,浏览器有可能只打开2个连接,通过这两个 连接传送数据,而不是开100个连接。
注:也可以不用对该配置文件做更改。
4)配置php: #vim /etc/php.ini 将date.timezone=这行取消注释,并改成
date.timezone="Asia/Shanghai"
#echo "<?php phpinfo()?>" > /var/www/html/index.php
#systemctl restart httpd
//<?php phpinfo()?>是调用了PHP的某一个模块
5)启动apache,在真实主机使用浏览器访问:http://172.16.33.28(本虚拟机IP);如果访问成功说明已经支持PHP页面,那么我们就可以继续搭建Nagios了。测试页面可以保留也可以删除:
#rm -rf /var/www/html/index.php
3.3 使用web页面管理nagios服务器
1)安装nagios:
#yum --enablerepo=epel install nagios nagios-plugins-{ping,disk,users,procs,load,swap,ssh,http} -y
//--enablerepo=epel是临时启用epel源,有时候源里面设置enablde=1的话,多个源会产生冲突,所以一般都是设置为enabled=0,然后等使用的时候再启用。本命令安装了Nagios服务与Nagios的监控插件(procs内存监控插件,load负载监控插件,swap虚拟内存监控插件等等)
2)编辑nagios配置文件:#vim /etc/httpd/conf.d/nagios.conf
把第16行添加注释 #Require all granted
在22行下面添加:Require ip 127.0.0.1 172.16.0.0/16(包含自己IP的网络段)
//在require valid-user下面添加
在47行 # Require all granted
在53行下面添加:Require ip 127.0.0.1 172.16.0.0/16(同上)
//在require valid-user下面添加
注:把require valid-user 取消注释,这样才会让输入用户名和密码登录Nagios
3)生成Nagios管理员账号及密码:#htpasswd /etc/nagios/passwd nagiosadmin
New password: admin
Re-type new password:admin
Updating password for user nagiosadmin
4)启动Nagios: #systemctl start nagios
设置开机自启动: #systemctl enable nagios
重启HTTP服务: #systemctl restart httpd
5)用真实机使用浏览器访问:http://172.16.33.28/nagios
//这样就能用web页面管理Nagios服务器了
Unreachable 网络不可达 up正在运行
panding 待定 unknown 未知(就是没连上)
3.4 安装邮件服务器,用于Nagios通知
可以用 #mail 查看当前用户的邮件,邮件都保存在 /var/spool/mail 下。
1)安装软件 #yum install postfix mailx -y
2)编辑配置文件 #vim /etc/postfix/main.cf
75行 myhostname = www.server.com //指定主机名
83行 mydomain = server.com //指定域名
99行 myorigin = $mydoamin //指定源
116行 inte_interfaces = all //指定端口
164行 mydestination = $myhostname,loaclhost.$mydomain,localhost,$mydomain
264行 mynetwork = 172.16.0.0/16,127.0.0.0/8
419行 home_mailbox = Maildir/
574行 smtpd_banner = $myhostname ESMTP //指定协议
并添加:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions=permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
3)启动postfix服务 # systemctl start postfix
设置开机自启 # systemctl enable postfix
4)配置DNS正解区域,zj.db里面写:
@ NS www.server.com.
www A 192.168.1.1
5)设置Nagios收件人,编辑配置文件 # vim /etc/nagios/objects/contacts.cfg
34行 email root@localhost
6)重启服务 # systemctl restart nagios
7)在真实机用IE浏览 http://172.16.33.28/nagios 。在web管理界面中开启通知Service->找到右侧带有红色”\”标记->点击->找到右侧->Enable notifications for this service->Commit
4 在Nagios中添加本机监控项目
1)查询nagios监控插件都有哪些
#yum --enablerepo=epel search nagios-plugins-
2)添加nagios监控插件
#yum --enablerepo=epel install nagios-plugins- {ping,disk,users,procs,load,swap,ssh,http} -y
注:安装插件实际上是在/usr/lib64/nagios/plugins
3)查看nagios监控插件使用方法 #/usr/lib64/nagios/plugins/check_disk -h
注:实际上是/usr/lib64/nagios/plugins下命令的使用方法
4)配置commands.cfg定义插件调用方法
#vim /etc/nagios/objects/commands.cfg
define command{
command_name check_sda1
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}
5)配置nagios插件检测指定分区
#vim /etc/nagios/objects/localhost.cfg
define service{
use local-service
host_name localhost
service_description Boot Partition
check_command check_sda1!80%!90%!/dev/sda1
}
6)重启Nagios服务 # systemctl restart nagios
7)在真实机用IE浏览 #http://172.16.33.28/nagios //Nagios服务器IP
5 使用Nagios远程监控其他Linux主机
生产环境中,其实就是2个客户端,一个客户端配置的是监控机制,另一个配置的是被监控机制。所以实验环境只需要2个虚拟机能够相互通信且都能与真实机通信即可。
远程监控原理:Nagios服务器会找到本地npre插件,npre插件会找到被监控主机上的npre程序,npre程序会自行找到本机的监控插件,如disk插件,disk插件会检查本机的disk状况然后返回检查结果给npre程序,npre程序再讲本机disk情况返回给Nagios服务器的npre插件,从而Nagios server就能得知被监控主机的情况。
5.1 配置被监控主机
1)安装nagios软件
#yum --enablerepo=epel install nrpe nagios-plugins- {ping,disk,users,procs,load,swap,ssh} -y
注:NRPE(Nagios Remote Plugin Execution)插件一起安装。NRPE插件 可以使用类似代理的方式在远程系统上做检查。
2)配置nrpe.cfg ,编辑配置文件 #vim /etc/nagios/nrpe.cfg
81行 allowed_hosts=127.0.0.1,192.168.1.2 //192.168.1.2为nagios服务器IP地址
97行 dont_blame_nrpe=1 //允许由nagios服务器传递监控参数
注释210-214行的本地检测: /*
210 # command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
211 # command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
212 # command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
213 # command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z
214 #command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200 */
开启223-226行,由服务器传递检测参数 :/*
223 command[check_users]=/usr/lib64/nagios/plugins/check_users -w $ARG1$ -c $ARG2$
224 command[check_load]=/usr/lib64/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
225 command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
226 command[check_procs]=/usr/lib64/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$ */
3) 开启nrpe: #systemctl start nrpe
设置nrpe开机自启 #systemctl enable nrpe
5.2 配置Nagios服务器
1)安装nagios插件: #yum --enablerepo=epel install nagios-plugins-nrpe -y
2)设定服务器监控配置文件所在目录 ,#vim /etc/nagios/nagios.cfg
取消第51行注释:cfg_dir=/etc/nagios/servers //监控远程主机信息存放的目录
创建目录: #mkdir -v /etc/nagios/servers
更改属主属组 #chgrp nagios /etc/nagios/servers
更改权限 #chmod 750 /etc/nagios/servers
3)配置监控哪台主机 #vim /etc/nagios/servers/noc.cfg //noc这个名字是可以改的
define host{
use linux-server
hostname client
alias client
address 192.168.32.253 (***client_ip***即被监控的Linux客户端的IP)
}
4)控制监控使用的命令,编辑配置文件# vim /etc/nagios/objects/commands.cfg
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
5)添加监控项目,编辑配置文件 # vim /etc/nagios/servers/noc.cfg
define service{
use generic-service
host_name client
service_description Root Partition
check_command check_nrpe!check_disk\!20%\!10%\!/
} // 转义符 \ ,! 表示取反
6)重启Nagios服务 # systemctl restart nagios
如果重启服务失败,可以使用命令 #/usr/sbin/nagios -v /etc/nagios/nagios.cfg来查看具体配置文件的具体错误
7)在真实机上使用浏览器查看http://192.168.32.252/nagios
转载请注明出处,谢谢!