试验格式
CentOS-6.6-x86_64(minimal) puppet-3.7.4 nagios-4.0.8.tar.gz nagios-plugins-2.0.3.tar.gz nrpe-2.15.tar.gz 192.168.188.10mirrors.redking.com 192.168.188.20master.redking.com 192.168.188.20nagios.redking.com 192.168.188.31agent1.redking.com 192.168.188.32agent2.redking.com 192.168.188.33agent3.redking.comPuppet要求所有机器都有一个完整的域名(FQDN)。如果没有DNS服务器提供域名,可以在两台机器上设置主机名(注意,安装Puppet前要先设置主机名,因为安装Puppet时主机名会被写入证书,客户端和服务器通信需要用到)。因为我配置了DNS,所以不需要换主机。否则,您需要更改主机文件的名称。
1。关闭selinux、iptables,并将ntp
设置为采用CentOS-6.6-x86_64.iso进行最小安装
关闭selinux
[root@master~]#cat/etc/selinux/config #ThisfilecontrolsthestateofSELinuxonthesystem. #SELINUX=cantakeoneofthesethreevalues: #enforcing-SELinuxsecuritypolicyisenforced. #permissive-SELinuxprintswarningsinsteadofenforcing. #disabled-NoSELinuxpolicyisloaded. SELINUX=enforcing #SELINUXTYPE=cantakeoneofthesetwovalues: #targeted-Targetedprocessesareprotected, #mls-MultiLevelSecurityprotection. SELINUXTYPE=targeted [root@master~]#sed-i'/SELINUX/s/enforcing/disabled/g'/etc/selinux/config [root@master~]#cat/etc/selinux/config #ThisfilecontrolsthestateofSELinuxonthesystem. #SELINUX=cantakeoneofthesethreevalues: #enforcing-SELinuxsecuritypolicyisenforced. #permissive-SELinuxprintswarningsinsteadofenforcing. #disabled-NoSELinuxpolicyisloaded. SELINUX=disabled #SELINUXTYPE=cantakeoneofthesetwovalues: #targeted-Targetedprocessesareprotected, #mls-MultiLevelSecurityprotection. SELINUXTYPE=targeted [root@master~]#setenforce0停止iptables
[root@node1~]#chkconfig--list|greptables ip6tables0:off1:off2:on3:on4:on5:on6:off iptables0:off1:off2:on3:on4:on5:on6:off [root@node1~]#chkconfigip6tablesoff [root@node1~]#chkconfigiptablesoff [root@node1~]#serviceip6tablesstop ip6tables:SettingchainstopolicyACCEPT:filter[OK] ip6tables:Flushingfirewallrules:[OK] ip6tables:Unloadingmodules:[OK] [root@node1~]#serviceiptablesstop iptables:SettingchainstopolicyACCEPT:filter[OK] iptables:Flushingfirewallrules:[OK] iptables:Unloadingmodules:[OK] [root@node1~]#
设置ntp
[root@master~]#ntpdatepool.ntp.org [root@master~]#chkconfig--list|grepntp ntpd0:off1:off2:off3:off4:off5:off6:off ntpdate0:off1:off2:off3:off4:off5:off6:off [root@master~]#chkconfigntpdon [root@master~]#servicentpdstart Startingntpd:[OK] [root@master~]#
2.安装puppet服务
puppet不在CentOS的基本源中,需要加入PuppetLabs提供的官方源:
对于puppet客户机,修改/etc/puppet/puppet.conf以指定主服务器。
并重新启动傀儡服务。
[root@agent1~]#servicepuppetrestart4.客户端申请证书
服务器自动颁发证书设置
设置主机自动颁发所有证书。我们只需要在/etc/puppet目录中创建autosign.conf文件。(不需要修改/etc/puppet/puppet.conf文件,因为我的默认autosign.conf文件的位置没有被修改)
client需要向服务器端发出请求,让服务器对客户端进行管理.这其实是一个证书签发的过程.第一次运行puppet客户端的时候会生成一个SSL证书并指定发给Puppet服务端,服务器端如果同意管理客户端,就会对这个证书进行签发,可以用这个命令来签发证书,由于我们已经在客户端设置了server地址,因此不需要跟服务端地址 [root@agent1~]#puppetagent--test
你可以申请证书。因为我配置了自动证书颁发,所以是直接在服务器端颁发和执行的。
[root@master~]#puppetcertlist--allNagios服务器安装
1.安装Nagios相关的依赖包
[root@master~]#yuminstall-yhttpdphpgccglibcglibc-commongdgd-developenssl-devel2.创建Nagios用户和组
[root@master~]#useradd-mnagios [root@master~]#passwdnagios 创建nagcmd用户组以执行来自Web接口命令,并添加nagios和apache用户到此用户组 [root@master~]#groupaddnagcmd [root@master~]#usermod-a-Gnagcmdnagios [root@master~]#usermod-a-Gnagcmdapache3.下载Nagios和插件软件包
在http://www.nagios.org/download/下载Nagios核心和Nagios插件
4.编译并安装Nagios
[root@mastertmp]#tarzxfnagios-4.0.8.tar.gz [root@mastertmp]#cdnagios-4.0.8#运行Nagios配置脚本,并将nagcmd更改为之前创建的组。
[root@masternagios-4.0.8]#./configure--with-command-group=nagcmd#编译Nagios源代码
[root@masternagios-4.0.8]#makeall#安装二进制文件、初始化脚本文件和示例配置文件,并设置外部命令目录的权限。
[root@masternagios-4.0.8]#makeinstall [root@masternagios-4.0.8]#makeinstall-init [root@masternagios-4.0.8]#makeinstall-config [root@masternagios-4.0.8]#makeinstall-commandmode5.修改配置文件
样式文件位于/usr/local/nagios/etc目录下,邮件地址可以更改。
[root@masternagios-4.0.8]#vim/usr/local/nagios/etc/objects/contacts.cfg6.配置Web界面
在Apache的conf.d目录中安装NagiosWeb配置文件
[root@masternagios-4.0.8]#makeinstall-webconf创建nagiosadmin帐户以登录NagiosWeb界面
[root@masternagios-4.0.8]#htpasswd-c/usr/local/nagios/etc/htpasswd.usersnagiosadmin [root@masternagios-4.0.8]#servicehttpdstart Startinghttpd:[OK] [root@masternagios-4.0.8]#chkconfighttpdon开启httpd服务,使配置生效,设置启动自启动。
7.编译并安装Nagios插件
[root@mastertmp]#tarzxvfnagios-plugins-2.0.3.tar.gz [root@mastertmp]#cdnagios-plugins-2.0.3 [root@masternagios-plugins-2.0.3]#./configure--with-nagios-user=nagios--with-nagios-group=nagios [root@masternagios-plugins-2.0.3]#make&&makeinstall8.编译并安装Nrpe
[root@mastertmp]#tarzxvfnrpe-2.15.tar.gz [root@masternrpe-2.15]#./configure [root@masternrpe-2.15]#makeall [root@masternrpe-2.15]#makeinstall-plugin [root@masternrpe-2.15]#makeinstall-daemon [root@masternrpe-2.15]#makeinstall-daemon-config9.启动Nagios
监视本机HTTPSSH显示警告错误的通知,解决方案
[root@master~]#vim/usr/local/nagios/etc/objects/localhost.cfg #DefineaservicetocheckSSHonthelocalmachine. #Disablenotificationsforthisservicebydefault,asnotallusersmayhaveSSHenabled. defineservice{ uselocal-service;Nameofservicetemplatetouse host_namelocalhost service_descriptionSSH check_commandcheck_ssh notifications_enabled1#改为1,即可 } #DefineaservicetocheckHTTPonthelocalmachine. #Disablenotificationsforthisservicebydefault,asnotallusersmayhaveHTTPenabled. defineservice{ uselocal-service;Nameofservicetemplatetouse host_namelocalhost service_descriptionHTTP check_commandcheck_http notifications_enabled1#改为1,即可 } [root@master~]#touch/var/www/html/index.html在启动Nagios之前测试配置文件
[root@master~]#/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg启动Nagios、nrpe并设置自启动。
[root@master~]#chkconfignagios--add [root@master~]#chkconfig--list|grepnagios nagios0:off1:off2:off3:on4:on5:on6:off [root@master~]#chkconfignagioson [root@master~]#servicenagiosstart Startingnagios:done. [root@master~]#echo"/usr/local/nagios/bin/nrpe-c/usr/local/nagios/etc/nrpe.cfg-d">>/etc/rc.d/rc.local [root@masternrpe-2.15]#/usr/local/nagios/bin/nrpe-c/usr/local/nagios/etc/nrpe.cfg-d [root@masternrpe-2.15]#netstat-tunpl|grepnrpe tcp000.0.0.0:56660.0.0.0:*LISTEN70100/nrpe tcp00:::5666:::*LISTEN70100/nrpe [root@masternrpe-2.15]#执行/usr/local/Nagios/libexec/check_nrpe-h127.0.0.1检查连接是否正常。
在http://192.168.188.20/nagios/使用之前定义的nagiosadmin帐户和密码登录Nagios
创建Nagios客户端监控
1.傀儡师安装相应的模块。
Nagios目前没有官方提供的软件源码,可以在批量部署中使用第三方epel源码,采用Example42提供的puppet-nrpe实现Linux服务器的批量部署。部署客户端使用三个官方模块:epel、nrpe和puppi。
Epel模块用于安装nrpe软件,nrpe模块用于收集主机信息。puppi是Example42模块的一个组件,使用Example42模块时需要加载。
Puppi是一个Puppet模块和CLI命令,它可以标准化和自动化应用程序的快速部署,并提供快速和标准的查询命令来检查系统资源。
[root@master~]#gitclonehttps://github.com/puppetlabs/puppetlabs-stdlib/etc/puppet/modules/stdlib [root@master~]#gitclonehttps://github.com/example42/puppi/etc/puppet/modules/puppi [root@master~]#gitclonehttps://github.com/example42/puppet-nrpe/etc/puppet/modules/nrpe [root@master~]#puppetmoduleinstallstahnma/epel [root@master~]#vim/etc/puppet/puppet.conf [master] modulepath=/etc/puppet/modules/2.创建代理节点组配置文件。
[root@master~]#mkdir/etc/puppet/manifests/nodes [root@master~]#vim/etc/puppet/manifests/nodes/agentgroup.pp node/^agent\d+\.redking\.com$/{ includestdlib includeepel class{'puppi':} class{'nrpe': require=>Class['epel'], allowed_hosts=>['127.0.0.1',$::ipaddress,'192.168.188.20'], template=>'nrpe/nrpe.cfg.erb', } } [root@master~]#vim/etc/puppet/manifests/site.pp import"nodes/agentgroup.pp"3.配置Nagios以添加agent.redking.com主机监控
修改/usr/local/Nagios/etc/objects/commands.CFG。
command_namecheck_nrpe-将命令名定义为check_nrpe,并且必须使用services.cfg。
命令行$USER1$/check_nrpe-h$hostaddress$-c$arg1$-将/usr/local/nagios/libexec替换为$user1$。
这是为了定义实际运行的插件程序。这个命令行应该完全按照check_nrpe命令的用法来编写。如果不知道用法,用check_nrpe–h查一下;$ARG1$参数后跟-c是发送给nrpe守护程序执行的检测命令。它必须是nrpe.cfg中定义的五个命令之一
[root@master~]#vim/usr/local/nagios/etc/objects/commands.cfg #'check_nrpe'commanddefinition definecommand{ command_namecheck_nrpe command_line$USER1$/check_nrpe-H$HOSTADDRESS$-c$ARG1$ }修改/usr/local/Nagios/etc/Nagios.CFG。
[root@master~]#vim/usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/agent1.redking.com.cfg cfg_file=/usr/local/nagios/etc/objects/agnet2.redking.com.cfg cfg_file=/usr/local/nagios/etc/objects/agent3.redking.com.cfg添加agent1~3.redking.com.cfg配置文件
#vim/usr/local/nagios/etc/objects/agent1.redking.com.cfg definehost{ uselinux-server host_nameagent1.redking.com aliasagent1.redking.com address192.168.188.31 } defineservice{ usegeneric-service host_nameagent1.redking.com service_descriptionPING check_commandcheck_ping!100.0,20%!500.0,60% } defineservice{ usegeneric-service host_nameagent1.redking.com service_descriptionCurrentUsers check_commandcheck_nrpe!check_users!10!5 } defineservice{ usegeneric-service host_nameagent1.redking.com service_descriptionCurrentLoad check_commandcheck_nrpe!check_load!15,10,5!30,25,20 } defineservice{ usegeneric-service host_nameagent1.redking.com service_descriptionSwapUsage check_commandcheck_nrpe!check_swap!20!40 }检测Nagios服务并重启以使配置生效。
[root@master~]#/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg [root@master~]#servicenagiosrestart [root@master~]#servicepuppetmasterrestart客户端测试
[root@agent1~]#puppetagent--test客户端自动部署nrpe。
让我们看一下nagios监控接口,它在客户端自动部署nrpe后收集信息。
NRPE模块中定义的NRPE.cfg包含了大量的脚本,我们可以直接使用,也可以自己修改nrpe.cfg.erb的模板内容。批量部署时,我们可以分别使用自己编写的模块或者现有的模块。系统管理的日常任务,几乎90%可以利用现有模块实现,剩下10%可以根据生产业务自己定制。
================================================
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)