nagios监控linux主机、web等各种服务,并实现飞信自动报警

作为系统运维工程师,最担心的不是系统出现什么故障,而是不能在第一时间获知系统出现故障或宕机了,尤其是遇到节假日,系统管理员就很紧张。要改变 这种被动的局面,这里我以网络监控软件Nagios为例来介绍一下软件的的配置及使用,并将飞信融合进来以实现服务器故障时即时通知管理员。

虽然Nagios十分受用,但配置起来确是麻烦,基于这样的原因,我将尽可能详细地向大家讲述我用Nagios的过程以及心得,希望对初学者有所帮助。
下面以Redhat为例来部署

安装所需软件

一、 解决安装Nagios的依赖关系:

Nagios基本组件的运行依赖于httpd、gcc和gd。可以通过以下命令来检查nagios所依赖的rpm包是否已经完全安装:
# yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-server
此外,要想完整的安装关运行本文中所描述的环境,您得准备一个功能完备的LAMP运行环境。
说明:以上软件包您也可以通过编译源代码的方式安装,只是后面许多要用到的相关文件的路径等需要按照您的源代码安装时的配置逐一修改。此外,您还得按需启动必要的服务,如httpd,mysqld等。

二、 添加nagios运行所需要的用户和组:

# groupadd nagcmd
# useradd -m nagios
# usermod -a -G nagcmd nagios
把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:
# usermod -a -G nagcmd apache

三、编译安装nagios:

# tar zxf nagios-3.1.2.tar.gz –C /usr/local
# cd nagios-3.1.2
# ./configure –with-command-group=nagcmd –enable-event-broker
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
说明: 第一步执行make install安装主要的程序、CGI及HTML文件,第二步执行make install-init的步骤,它的作用是把nagios做成一个运行脚本,使nagios随系统开机启动,这是一个很方便的措施。第三步执行 make install-config 把配置文件的例子复制到nagios的安装目录。第四步执行 make install-commandmode 给外部命令访问nagios配置文件的权限。
安装完后 查看一下在/usr/local/nagios下是否存在etc、bin、 sbin、 share、 var这五个目录,如果存在则可以表明程序被正确的安装到系统了。这5个目录的作用是:
bin
Nagios执行程序所在目录,这个目录只有一个文件nagios
etc
Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件
sbin
Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share
Nagios网页文件所在的目录
Var
Nagios日志文件、spid 等文件所在的目录
为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户:
# vi /usr/local/nagios/etc/objects/contacts.cfg
email        nagios@localhost       #这个是默认设置
在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件:
# make install-webconf
创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users admin
以上过程配置结束以后需要重新启动httpd:
# service httpd restart

四、编译、安装nagios-plugins

nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。
# tar zxf nagios-plugins-1.4.13.tar.gz
# cd nagios-plugins-1.4.13
# ./configure –with-nagios-user=nagios –with-nagios-group=nagios
# make
# make install

五、配置并启动Nagios

(1)把nagios添加为系统服务并将之加入到自动启动服务队列:
# chkconfig –add nagios
# chkconfig nagios on
(2)检查其主配置文件的语法是否正确:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:
# service nagios start
(4)配置selinux
如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux:
#getenforce
如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
#setenforce 0
如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。
(5)通过web界面查看nagios:

六、 安装飞信软件

下载软件
安装飞信:
tar zxvf fetion20091117-linux.tar.gz -C /usr/local
将下载的主程序fetion覆盖掉/usr/local/fx/下的fetion
在windows中解压linuxso_20101113.rar并将里面的库文件上传至 /usr/local/fx/
cd /usr/local/fx
cp lib* /usr/lib
vim /etc/ld.so.conf
增加以下内容
/usr/local/fx/fetion
然后执行命令  ldconfig
cp fetion /usr/bin
至此,所有软件已安装完毕
下面来详细介绍一下 nagios的配置:
 
第一修改配置文件
Nagios的主配置文件是nagios.cfg
# vim /usr/local/nagios/etc/nagios.cfg
注释掉#cfg_file=/usr/local/nagios/etc/localhost.cfg
然后把下面几行的注释去掉:
cfg_file=/usr/local/nagios/etc/contactgroups.cfg //联系组配置文件路径
cfg_file=/usr/local/nagios/etc/hostgroups.cfg //主机组配置文件路径
cfg_file=/usr/local/nagios/etc/hosts.cfg //主机配置文件路径
cfg_file=/usr/local/nagios/etc/services.cfg //服务配置文件路径
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //联系人配置文件路径
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //监视时段配置文件路径
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
 
改 check_external_commands=0为check_external_commands=1 这行的作用是允许执行在web界面下重启nagios、停止主机/服务检查等操作。把command_check_interval的值从默认的1改成 command_check_interval=10s(根据自己的情况定这个命令检查时间间隔,不要太长也不要太短)。主配置文件要改的基本上就是这 些,通过上面的修改,发现/usr/local/nagios/etc并没有文件hosts.cfg等一干文件,怎么办?稍后手动创建它们。

第二个要修改的配置文件是cgi.cfg,它的作用是控制相关cgi脚本。
先确保use_authentication=1。接下来修改default_user_name=sery ,再后面的修改在下表列出:
authorized_for_system_information=admin
authorized_for_configuration_information=admin
authorized_for_system_commands=admin //多个用户之间用逗号隔开
authorized_for_all_services=admin
authorized_for_all_hosts=admin
authorized_for_all_service_commands=admin
authorized_for_all_host_commands=admin
上述用户名是从那里来的呢?是执行命令# htpasswd -c /usr/local/nagios/etc/htpasswd.users admin
所生成的
 
第三个是修改配置文件commands.cfg 这个文件是用来发送报警飞信的
# vim/usr/local/nagios/etc/objects/commands.cfg
增加以下内容:
define command {
command_name    notify-service-by-fetion
command_line    /usr/local/fx/fetion –mobile=1589******* –pwd=********** –to=1589******** –msg-utf8=”$HOSTADDRESS$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ on $LONGDATETIME$” –hide
}
这里说明一下fetion的格式:
–mobile=飞信机器人号码
–pwd=密码
–to=目标手机号码      //该号码必须是飞信机器人的飞信好友
–msg-utf8=”信息内容”
–[hide|debug]隐藏/显示发送信息的过程
 
 
然后定义监控时间:配置文件是timeperiods.cfg
vim/usr/local/nagios/etc/objects/ timeperiods.cfg
 
可根据自己的需要配置,以下是本人的配置,
define timeperiod{
timeperiod_name 24×7
alias           24 Hours A Day, 7 Days A Week
sunday          00:00-24:00
monday          00:00-24:00
tuesday         00:00-24:00
wednesday       00:00-24:00
thursday        00:00-24:00
friday          00:00-24:00
saturday        00:00-24:00
}
 
 
 
第四个是手动创建的配置文件contacts.cfg,其格式如下:
#vim /usr/local/nagios/etc/objects/contacts.cfg
define contact {
contact_name                    webserver               ; Short name of user
alias                           admin           ; Full name of user
service_notification_period    24×7
host_notification_period       24×7
service_notification_options   w,u,c,r
host_notification_options       d,u,r
service_notification_commands notify-service-by-fetion
host_notification_commands     notify-service-by-fetion
}
 
 
第五个是手动创建的配置文件contactgroups.cfg,其格式如下:
#vim /usr/local/nagios/etc/contactgroups.cfg
define contactgroup {
contactgroup_name       group
alias   system administrator group
members webserver
}
 
 
 
关键的角色终于登场,这就是配置文件hosts.cfg。下面是本人定义的基本样式
# vim /usr/local/nagios/etc/hosts.cfg
define host {
host_name                  webserver        //所监控的主机的主机名
alias                      nagios server
address                    192.168.175.129   //所监控的主机的ip地址
contact_groups             group
check_command              check-host-alive //宕机就发报警通知
max_check_attempts         5
notification_interval      10
notification_period        24×7
notification_options        d,u,r
}
 
 
再一个重量级的配置文件是services.cfg,没有这个文件,什么监控也没用。下面给出一个样式文件:
# vim /usr/local/nagios/etc/services.cfg
 
define service {
host_name      webserver
service_description   check_tcp 80
check_period          24×7
max_check_attempts    4
normal_check_interval 3
retry_check_interval 2
contact_groups        group
notification_interval   10
notification_period     24×7
notification_options    w,u,c,r
check_command
 

来自浩渊兄的博客:

别样的天空
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值