nagios 布署配置笔记

运维 系统运维
nagios是一款非常好用的监控系统,经常用来监控系统运行和网络信息监控,本文具体讲下:如何部署nagios来监控网络!

部署nagios来监控网络信息,先配置下。

  花了几天的时间,完成了近500台服务器,多个节点的nagios监控布署.通过nagios可清晰地看到整个监控网络的拓扑,主机状态,服务状态等情况.但在这里我不会贴出真实网络的任何信息,因为这会产生很多不良影响.但会给出我在实际生产过程中使用的量产工具(也就是为了不多打键盘而弄的shell).

  系统环境: centos5.5 x86_64

  web: apache+php (yum 安装)

  nagios: nagios 3.2.1

  nagios-plugins: 1.4.15

  没有涉及远程主机监控,所以没弄nrpe模块.

  因为nagios的页面是要利用cgi生成的,得先让apache支持cgi才行,只要在httpd.conf后面添加下面的内容,不过你自定了nagios的安装路径,那就得以实际为准了

  先让apache支持cgi

  将下面这行前的#号去掉

  #AddHandler cgi-script .cgi

  添加目录

  scriptalias /nagios/cgi-bin /usr/local/nagios/sbin

  Options ExecCGI

  AllowOverride None

  Order allow,deny

  Allow from all

  AuthName "nagios access"

  AuthType Basic

  AuthUserFile /usr/local/nagios/etc/htpasswd

  Require valid-user

  alias /nagios /usr/local/nagios/share

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

  AuthName "nagios access"

  AuthType Basic

  AuthUserFile /usr/local/nagios/etc/htpasswd

  Require valid-user

#p#  

  下面就准备安装nagios了

  先为nagios添加一个运行帐号,并将apache的运行帐号添加到nagios组里面,要不然无法使用页面管理主机

  useradd -r -d /usr/local/nagios -s /sbin/nologin nagios

  usermod -G nagios apache

  解包编译安装

  # tar -xvf nagios-3.2.1.tar.gz

  # cd nagios-3.2.1

  # ./configure --with-nagios-user=nagios --with-nagios-group=nagios

  # make all

  # make install

  # make install-init

  # make install-commandmode

  # make install-config

  # chkconfig --add nagios

  到此,nagios已经安装到/usr/local/nagios/,但没有plugin,它什么也干不了,接下来还得编译plugin

  # tar -xvf nagios-plugins-1.4.15.tar.gz

  # cd nagios-plugins-1.4.15

  # ./confingure

  # make

  # make install

  plugins已经全部放到了/usr/local/nagios/libexec,安装过程已经结束了

  默认是可以直接启动nagios,它将监控本机,但这并不是我要的结果,所以要修改下配置文件

  首先修改nagios.cfg,在/usr/local/nagios/etc下面,只对修改的作一个说明

  注析掉下面一行,因为它是对本的监控,没必要.改成

  #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

  #主机组配置文件

  cfg_file=/usr/local/nagios/etc/objects/hostgroup.cfg

  如果要使用一个新的配置文件,在些文件中指定就行了.但它还提供了另一个功能:cfg_dir.指定这个参数后,程序会在目录下搜索所有以cfg结尾的文件.如何使用就看你的具体情况,我在实际中就是新那两个文件夹,一个是用来存放host信息,别一个是存放server信息,其它的是在nagios.cfg中指定.

  主机配置文件夹

  cfg_dir=/usr/local/nagios/etc/hosts

  服务配置文件夹

  cfg_dir=/usr/local/nagios/etc/servers

  修改cgi.cfg,这个应该是帐号授权了

  authorized_for_system_information=motu

  authorized_for_configuration_information=motu

  authorized_for_system_commands=motu

  authorized_for_all_services=motu

  authorized_for_all_hosts=motu

  authorized_for_all_service_commands=motu

  authorized_for_all_host_commands=motu

  修改etc/objects/contacts.cfg

  define contact{

  contact_name motu

  use generic-contact

  alias Nagios Admin

  email flyskyst@163.com

  }

  define contactgroup{

  contactgroup_name sagroup

  alias Nagios Administrators

  members motu

  }

  生成授权文件

  htpasswd -c /usr/local/nagios/etc/htpasswd motu

#p#

  下面就要批量生成监控主机的信息了.为此需要一些shell,还有一些配置文件的模板.还有一个非常重要的就是ip列表,而且是要做好分类的,具体是看你的实际情况,这个是前期一个准备工作,很重要也很乏味.我这里的是分两类:服务器的位置和节点.分好类后就可以利用shell批量生成配置文档了,这又需要模板,如下:

  host.temp

  define host{

  host_name

  alias

  address

  check_command check-host-alive

  max_check_attempts 5

  check_period 24x7

  contact_groups sagroup

  notification_interval 10

  notification_period 24x7

  notification_options d,u,r

  }

  services.temp

  define service{

  host_name

  service_description check_tcp 80

  check_command check_tcp!80

  max_check_attempts 5

  check_interval 5

  retry_interval 3

  check_period 24x7

  notification_interval 10

  notification_period 24x7

  notification_options w,u,c,r

  contact_groups sagroup

  }

  量产shell

  #!/bin/bash

  echo "input hostgroup name:"

  read hostgroup

  for address in $(cat ip.txt)

  do

  sed -e /host_name/{s/$/$address/} -e /alias/{s/$/$address/} -e /address/{s/$/$address/} host.temp > /usr/local/nagios/etc/hosts/$address.cfg

  sed -e /host_name/{s/$/$address/} services.temp > /usr/local/nagios/etc/servers/$address.cfg

  done

  members=$(sed ':a N;$!b a;s/\n/\,/g' ip.txt)

  echo "define hostgroup{" >> /usr/local/nagios/etc/objects/host.cfg

  echo " hostgroup_name $hostgroup" >> /usr/local/nagios/etc/objects/hostgroup.cfg

  echo " alias $hostgroup" >> /usr/local/nagios/etc/objects/hostgroup.cfg

  echo " members $members" >> /usr/local/nagios/etc/objects/hostgroup.cfg

  echo " }" >> /usr/local/nagios/etc/objects/hostgroup.cfg

  exit 0

  把上面三个文件放在同一目录下,然后将ip列表存入同一目录下的ip.txt文件里就可以了

  Tags: 监控 nagios shell 批量脚本

通过文章的介绍,我们清楚的知道了nagios 布署配置,希望对你们有用!

【编辑推荐】

  1. Nagios安装完后map不显示
  2. freebsd 上的nagios配置
  3. nagios分布式配置
  4. RHEL安装nagios
  5. Nagios :扩展提示信息发送方式(smtp, msn, fetion)
  6. nagios 安装过程
责任编辑:赵鹏 来源: 网络转载
相关推荐

2011-11-08 21:58:01

Nagios 配置 流

2010-05-31 10:22:31

Nagios pnp

2010-05-31 11:10:37

Nagios pnp

2010-05-31 12:22:13

Nagios pnp

2011-03-28 08:48:00

Nagios

2011-03-31 16:05:18

Redhat配置nagios

2011-08-22 12:25:02

nagios

2011-03-21 09:17:06

Nagios

2011-03-25 10:37:17

2011-03-25 16:49:33

nagios服务

2011-03-31 16:05:18

Redhat配置nagios

2011-03-23 14:43:10

Nagiosnagios.cfg

2013-06-08 16:55:22

Nagios

2011-03-22 10:10:21

Nagios配置

2011-03-28 11:03:09

配置Nagios

2011-03-24 09:15:54

Nagios飞信

2011-03-31 16:05:15

Redhat配置nagios

2011-03-28 13:57:57

2011-03-25 17:13:37

Nagios配置文件

2011-03-28 09:07:26

Nagios配置文件
点赞
收藏

51CTO技术栈公众号