岁月博客

  • 首页
  • 跨境电商
  • 技术文档
  • 软路由虚拟化
  • 服务器技术
  • VPS
  • 羊毛
    • 羊毛
    • 自助薅京豆系统
岁月博客
致力于关注网络安全与黑客文化,专注网络技术的分享与交流。
  1. 首页
  2. 技术文档
  3. 正文

Nagios的安装与配置(nagios安装文档)

2022年3月8日 438点热度 0人点赞 0条评论

此篇文章发表于老博客2015-10-18,现摘录新博客

Nagios的配置文档

首先需要准备的软件都有cgilib-0.5.tar.gz   fetion20091117-linux.tar.gz httpd-2.2.22.tar.gz  libgd2-2.0.33-2_11.0.el5.i386.rpm    libmcrypt-2.5.7.tar.gz   nagios-3.2.0.tar.gz   nagios-cn-3.2.0.tar.bz2    nagios-plugins-1.4.14.tar.gz    nrpe-2.12.tar.gz  pnp4nagios-0.6.19.tar.gz                         pnp-0.4.13.tar.gz

rrdtool-1.4.5.tar.gz                         rrdtool-1.4.7.tar.gz

这些软件包不是最新的,如果需要可以下载最新版。

在安装nagios之前需要先安装apache/nginx和php

建议把nagios安装在/usr/local/nagios这个目录下面

对于php需要选择下如果用php3.x以上的版本就可能需要改php的文件的代码,不过在里面我将使用php-5.4.8.tar.gz,然后改他的php代码

至于为什么要改,因为php3.0以上版本的语法问题

或者用php3.x一下的版本都可以解决这个问题

首先安装apache

apr-1.4.6.tar.gz

apr-util-1.4.1.tar.gz

httpd-2.4.3.tar.gz

pcre-8.31.tar.gz

首先解压上面三个软件

tar zxvf httpd-2.4.3.tar.gz

tar zxvf apr-1.4.6.tar.gz

tar zxvf apr-util-1.4.1.tar.gz

tar zxvf pcre-8.31.tar.gz

然后

mv apr-1.4.6 httpd-2.4.3/srclib/apr

mv apr-util-1.4.1 httpd-2.4.3/srclib/apr-util

安装pcre

./configure

make && make install

安装apache

./configure --prefix=/usr/local/apache2 --enable-so--enable-so --enable-cgi

make && make install

完成后启动apache 如果出现it work 表示安装成功

下面安装php

php-5.4.8.tar.gz

在安装php之前请确认您的服务器里面安装了

gd gd-devel zlib libjpeglibjpeg-devel

因为pnp绘图需要否则将无法绘图

下面安装

yum -y install gd gd-devel zlib libjpeg libjpeg-devel

解压

tar zxvf php-5.4.8.tar.gz

进入php目录

./configure --prefix=/usr/local/php --enable-mbstring--with-zlib --with-gd --with-jpeg-dir --with-apxs2=/usr/local/apache2/bin/apxs--enable-cgi --enable-sockets

make && make test && make install

cp php.ini-production  /etc/php.ini

安装完成后然后让apache支持php

编辑httpd.conf

如果有LoadModulephp5_module        modules/libphp5.so

说明php安装成功

User daemon

Group daemon

改为

User nagios

Group nagos

添加以下东西

AddType application/x-httpd-php .php

修改DirectoryIndex index.html为DirectoryIndex index.php index.html

重启apache 测试用phpinfo函数测试

创建Nagios用户和用户组

useradd  –s  /sbin/nologin nagios

mkdir  /usr/local/nagios

chown  -R  nagios.nagios /usr/local/nagios

正常输出安装nagios

nagios-3.4.1.tar.gz

解压

tar zxvf nagios-3.4.1.tar.gz

./configure --prefix=/usr/local/nagios

make all && make install && makeinstall-init && make install-commandmode && make install-config

安装nagios插件

nagios-plugins-1.4.16.tar.gz

解压

tar zxvf nagios-plugins-1.4.16.tar.gz

./configure –prefix=/usr/local/nagios

注意:安装路径是nagios的安装路径

make && make install

安装nagios汉化插件

tar  jxvf  nagios-cn-3.2.0.tar.bz2

cd nagios-cn-3.2.0

./configure

make

make install

安装完成后在回到httpd.conf文件添加以下内容

LoadModule cgid_module modules/mod_cgid.so

ScriptAlias /nagios/cgi-bin"/usr/local/nagios/sbin"

<Directory "/usr/local/nagios/sbin">

AuthType        Basic

Options         ExecCGI

Allowoverride   none

Order           allow,deny

Allow   from all

AuthName        "Nagios Access"

AuthUserFile    /usr/local/nagios/etc/htpasswd

Require         valid-user

</Directory>

Alias  /nagios        "/usr/local/nagios/share"

<Directory "/usr/local/nagios/share">

AuthType        Basic

Options         None

Allowoverride   None

order          allow,deny

Allow   from all

AuthName        "nagios Access"

AuthUserFile    /usr/local/nagios/etc/htpasswd

Require        valid-user

</Directory>

保存退出然后

创建Apache目录验证文件

/usr/local/apache2/bin/htpasswd –c  /usr/local/nagios/etc/htpasswd ixdba

New password:  输入密码

Re-type new passwd 再次输入密码

Adding password for user ixdba

在/usr/local/nagios/etc/目录下创建了一个htpasswd验证文件,对应的用户为ixdba。   Web访问时需要输入的用户名和密码。

启动apache

/usr/local/apache2/bin/apachectl start

注意:这里如果报错:/usr/local/apache/modules/libphps.so………cannot restoresegment prot after reloc:Permission denied

①php没有安装正确,重新装一次

②因为SELINUX的问题,需要关闭SELINX,执行 /usr/sbin/setenforce  0

登录

http://ip/nagios

登录后看的如下图

下面配置nagios

在nagios安装目录etc下有cgi.cfg nagios.cfg

resoruce.cnfg

分别是 cgi权限,nagios 主配置文件 和变量定义文件

objects 目录下有

commands.cfg       定义命令文件

contacts.cfg            定义联系人的

localhost.cfg          定义本机主机的配置文件

priter.cfg                定义监控打印机

swicth.cng               定义监控路由器

templates.cfg            定义主机和服务的一个模板配置文件

timeperiods.cfg        定义nagios监控时间段的文件

windows.cfg             定义监控windows主机的配置文件

首先看templates.cfg

找到

define    contact{

name    generic-contact  #联系人名称

service_notification_period    24x7    #当服务出现故障时发送通知的时间段

host_noetification_period        24x7 #当主机出现故障时发送通知的时间段

service_notification_options    w,u,c,r #当服务出现什么情况是发送通知,w警告状态,u,不明状态,c,表示紧急状态 r,表示恢复状态

host_notification_options       w,u,c,r    #当主机出现什么情况是发送通知,w警告状态,u,不明状态,c,表示紧急状态 r,表示恢复状态

service_notification_commands        notify-service-by-mail  #服务出现故障时候发送通知的方式 ,可以是短信,邮件,notify-service-by-mail 是在commands.cfg里定义的

host_notification_commands            notify-service-by-mail  #主机出现故障时候发送通知的方式 ,可以是短信,邮件,notify-service-by-mail 是在commands.cfg里定义的

register                     0

}

define   host{

name                generic-host

notifications_enabled            1 #是否开启提醒功能。1为开启,0为禁用

event_handler_enabled         1

flap_detection_enabled          1

process _perf_data                1

#其值可以为0或1,其作用为是否启用Nagios的数据输出功能,如果将此项赋值为1

#那么nagios就会将收集数据写入某个文件中以备提取

retain_status_information        1

retain_nonstatus_information   1

notification_period                24x7

#指定“发送通知的时间段”,也就说可以在什么时间发送通知

register                    0

}
define    host{

name        linux-server

#主机名

use           generic-host#use表示引用,也就将generic-host的所有属性引用进来

check_period        24x7 #check_period告诉nagios检查主机的时间段

check_interval        5        #nagios检查主机的时间间隔,这里是5分钟检查一次

retry_interval           1     #重试检查时间间隔单位是分钟

max_check_attempts  10   #最大检查次数是10次,也就说10次后报警

check_command            check_host_alive    #指定检查主机状态的命令,其中 check_host_alive  在commands.cfg里定义

netification_period            workhours #主机故障时候发送通知的时间范围 workhours在timeperiods.cfg中定义

notification_interval    120  #在主机出现故障后,故障一直没有解决,nagios再次发送通知的时间间隔,0位只发送一次

notification_options     d,u,r #定义了主机在什么状态下可以发送通知给使用者d 表示down u表示不可达r表示恢复

contact_groups        admins #指定联系人组

register                0

}

手动建立一个hosts.cfg文件在里面写入

define host {

use     linux-server

host_name       local_web    主机名

alias           web            主机别名

address         192.168.0.254 被监控主机的ip地址

}

define  host {

use     linux-server

host_name       remot-web

alias           web

address         122.0.67.6

}

define  hostgroup{

hostgroup_name  linux-group

alias           group

members         local_web,remot-web #加入的主机名,以“," 分割

}

在手动建立一个services.cfg文件写入

define service{

use                    local-service

host_name              local_web

service_description  http

check_command    check_http

}

define service{

use                    local-service

host_name              remot-web

service_description     http

check_command          check_http

}

define servicegroup{

servicegroup_name       server-group

alias                  server

members                local_web,http,remot-web,http #不同是的是主机+服务名

}

编辑cgi.cfg文件

修改内容如下

defaul_user_name=通过网页登陆nagios的用户

authorized_for_system_information=nagiosadmin,通过网页登陆nagios的用户

authorized_for_configuretion_information=nagiosadmin,通过网页登陆nagios的用户

authorized_for_system_commands=nagiosadmin,通过网页登陆nagios的用户

authorized_for_all_services=nagiosadmin,通过网页登陆nagios的用户

authorized_for_all_hosts=nagiosadmin,通过网页登陆nagios的用户

authorized_for_all_service=nagiosadmin,通过网页登陆nagios的用户

authorized_for_all_host=nagiosadmin,通过网页登陆nagios的用户

编辑nagios.cfg文件

添加

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

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

修改

status_updata_interval=10 #状态文件的更新时间

nagios_user=nagios

nagios_group

#指定用户名这组

check_external_commands=1 #是否允许在网页运行cgi命令 如关闭nagios

command_check_interval=2        #nagios对外部命令的监测时间间隔,

interval_length=60    指定nagios的时间单位

完成然后启动apache启动nagios 了

可以用/usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg来检查nagios配置文件是否有错误

启动nagios

/etc/init.d/nagios start

测试成功

下面安装pnp

需要的东西

rrdtool.tar.gz

pnp-0.4.14.tar.gz

解压

tar zxvf pnp-0.4.14.tar.gz

tar zxvf rrdtool.tar.gz

安装rrdtool

cd rrdtool-1.4.5

./configure –prefix=/usr/local/rrdtool

make

make install

这个错误的解决如下

yum –y install pango-devel cairo-devel

安装pnp

cd pnp-0.14.13

./configure --with-rrdtool=//usr/local/rrdtool/bin/rrdtool--with-nagios-user=nagios --with-nagios-group=nagios --with-perfdata=/usr/local/nagios/share/perfdata

make && make install && makeinstall-config && make install-init

解决方法

./configure --with-rrdtool=/usrlocal/rrdtool/bin/rrdtool--with-nagios-user=nagios --with-nagios-group=nagios --with-perfdata=/usr/local/nagios/share/perfdata--with-perl_lib_path=/data/rrdtool/lib/perl/5.8.8/x86_64-linux-thread-multi/

make && make install &&  makeinstall-config && make install-init\

解决方法2

cp/usr/local/rrdtool/lib/perl/5.8.8/x86_64-linux-thread-multi/RRDs.pm/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/

cp/usr/local/rrdtool/lib/perl/5.8.8/x86_64-linux-thread-multi/auto/RRDs/RRDs.so/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/

原因:缺少perl

配置PNP

cd  /usr/local/nagios/etc/pnp/

cp process_perfdata.cfg-sample  process_perfdata.cfg

cp  npcd.cfg-sample   npcd.cfg

cp  rra.cfg-sample  rra.cfg

chown  -R  nagios:nagios /usr/local/nagios/etc/pnp

修改process_perfdata.cfg

vim /usr/local/nagios/etc/pnp/process_perfdata.cfg

LOG_FILE = /usr/local/nagios/var/perfdata.log

# Loglevel 0=silent 1=normal 2=debug

LOG_LEVEL = 2

添加小太阳模版

编辑templates.cfg  /usr/local/nagios/etc/objects/templates.cfg

添加以下内容

define host{

name       hosts-pnp

register   0

action_url /nagios/pnp/index.php?host=$HOSTNAME$

process_perf_data               1

}

defineservice {

name       services-pnp

register   0

action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$

process_perf_data               1

}

修改nagios.cfg

process_performance_data=0

改为

process_performance_data=1

去掉前面的#号

host_perfdata_command=process-host-perfdata

service_perfdata_command=process-service-perfdata

修改 commands.cfg

修改成文下面内容

# 'process-host-perfdata' command definition

define command{

command_name    process-host-perfdata

command_line    /usr/local/nagios/libexec/process_perfdata.pl

}

# 'process-service-perfdata' command definition

define command{

command_name    process-service-perfdata

command_line    /usr/local/nagios/libexec/process_perfdata.pl

}

修改 hosts.cfg 和  services.cfg

use                    linux-server,host-pnp  添加host-pnp

use                    linux-server,host-pnp  添加server-pnp

出现下述问题需要改动php

改以下几行

这是因为pnp-0.4.14对PHP 5.3.0的支持还不是很好,其中有几个bug需要修改:

根据错误提示打开

vi/usr/local/nagios/share/pnp/include/function.inc.php

找到行1541附近修改为

if($level == 2&& $type == "complete" &&preg_match("/^NAGIOS_/",$tag)){

还会有两处错误需要修改,根据提示找到对应行进行修改:

line 556: 添加:date_default_timezone_set('UTC');

line 1033:修改为$pdf = new PDF('P', 'mm', 'A4'); 删除&

再重新重启nagios,应该就能看到图表了

利用插件扩展Nagios的监控功能—-构建监控远程主机

在client安装nrpe,

nrpe-2.12.tar.gz

nagios-plugins-1.4.16.tar.gz

建立nagios用户

useradd  -s /sbin/nologin nagios

tar zxvf nagios-plugins-1.4.16.tar.gz

./configure

make && make install

编译nrpe

tar zxvf nrpe-2.12.tar.gz

./configure

make all && make install-plugin &&make install-daemon && make install-daemon-config

chown -R nagios.nagios /usr/local/nagios

修改/usr/local/nagios/libexec

找到allowed_allowed_hosts=127.0.0.1,192.168.0.254#服务端ip

启动nrpe

/usr/local/nagios/bin/nrpe -c/usr/local/nagios/etc/nrpe.cfg -d

测试

/usr/local/nagios/libexec/check_nrpe  -H 127.0.0.1

NRPE v2.12

返回版本信息就算安装成功

定义监控服务内容

在/usr/local/nagios/etc/nrpe.cfg

command[check_users_1]=/usr/local/nagios/libexec/check_users-w 5 -c 10

command[check_load_1]=/usr/local/nagios/libexec/check_load-w 15,10,5 -c 30,25,20

command[check_sda_1]=/usr/local/nagios/libexec/check_disk-w 20% -c 10% -p /dev/sda1

command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs-w 5 -c 10 -s Z

command[check_total_procs]=/usr/local/nagios`/libexec/check_procs-w 150 -c 200

command[check_swap_1]=/usr/local/nagios/libexec/check_swap-w 20 -c 10

修改或者添加上面的东西

在服务端安装nrpe

tar zxvf nrpe-2.12.tar.gz

./configure --prefix=/usr/local/nagios

make all && make install-plugin

测试

/usr/local/nagios/libexec/check_nrpe  -H192.168.0.102

NRPE v2.12

返回版本信息就算安装成功

定义一个check_nrpe监控命令

修改/usr/local/nagios/etc/objects/commands.cfg文件

添加如下内容

define command{

command_name   check_nrpe

command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

在services.cfg文件添加如下内容

define service  {

use     local-service

host_name              remot-web

service_description     disk

check_command          check_nrpe!check_sda_1

}

define service  {

use     local-service

host_name              remot-web

service_description     load

check_command          check_nrpe!check_load_1

}

define service  {

use     local-service

host_name              remot-web

service_description     users

check_command          check_nrpe!check_users_1

}

define service  {

use     local-service

host_name              remot-web

service_description     swap

check_command          check_nrpe!check_swap_1

}

define servicegroup{

servicegroup_name       server-group

alias                  server

members                remot-web,disk,remot-web,load,remot-web,users,remot-web,swap

}

测试和重启nagios

/usr/local/nagios/bin/nagios  –v  /usr/loca/nagios/etc/nagios.cfg

利用飞信实现nagios短信报警功能。(由于飞信版本升级,移动禁止低版本的继续使用,所以这个实验至今没做出来)

假如飞信安装在/usr/local/fetion下

配置飞信所需的动态链接库

vi /etc/ld.so.conf

添加

/usr/local/fetion

运行ldconfig

测试

ldd /usr/local/fetion/fetion

/usr/local/fetioni/fetion

出现帮助信息表示安装成功

--mobile=[手机号]

--sid=[飞信号]

--pwd=[密码]

--config=[文件名]

--index=[索引号]

接收者

--to=[手机号/ 飞信号/URL]

--msg-utf8=[utf8编码信息]

--msg-gb[编码信息]

--msg-type=[0/1/2]0普通信息,1长信息,2,智能短信

--query-cmcc-no 查询移动手机手机段

可先参数

--debug  显示调试信息

--hide    隐身登陆飞信

--proxy-ip=http 以代理的方式登陆

--proxy-port=http 以代理端口的方式登陆

测试是否发消息成功

/usr/local/fetion/fetion --mobile=158xxxxxxxx --pwd=飞信密码 --to=135xxxxxxxx --msg-gb="this is test"--debug

sms ok

表示成功

配置/usr/local/nagios/etc/command.cfg

添加如下内容

define command {

command_name    notify-service-by-sms

command_line    /usr/local/fetion/fetion --mobile=15810765409--pwd=飞信密码 --to=$CONTACTPAGER$ --msg-utf8="$HOSTADDRESS$'$HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$"

}

define command{

command_name    notify-host-by-sms

command_line    /usr/local/fetion/fetion --mobile=15810765409--pwd=飞信密码 --to=$CONTACTPAGER$ --msg-utf8="host $HOSTSTATE$alaer to for $HOSTNAME$ ! ON $DATETIME$"

}

配置/usr/local/nagios/etc/ctemplates.cfg

define contact{

name                           generic-contact

service_notification_period    24x7

host_notification_period       24x7

service_notification_options   w,u,c,r,f,s

host_notification_options      d,u,r,f,s

service_notification_commands   notify-service-by-email,notify-service-by-sms

host_notification_commands      notify-host-by-email,notify-host-by-sms

register                       0

}

配置/usr/local/nagios/etc/cpmtacts.cfg

define contact{

contact_name                   nagiosadmin

use                            generic-contact

alias                          Nagios Admin

email                          xiaoxin@killdos.com

pager                          15810765409}

 

岁月博客(www.syddos.com),致力于网络优秀资源的分享和交流!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请及时联系我们qq邮箱:1107996578@qq.com,一经查实,本站将立刻删除。

标签: 暂无
最后更新:2022年3月8日

岁月

以梦为马,随处可栖

点赞
下一篇 >

文章评论

您需要 登录 之后才可以评论

岁月

以梦为马,随处可栖

最新 热点 随机
最新 热点 随机
抖音是什么平台,抖音平台基本属性介绍 抖加投放技巧以及注意事项,抖音dou+详细的投放攻略 抖音id怎么修改,抖音用户名修改教程 ipad抖音怎么设置横竖屏,平板横竖屏的设置教程 抖音浏览量突然猛涨怎么回事,抖音播放突然增多的原因 fiddler创建根证书不成功解决方案--岁月博客提供
青龙面板常见错误原因分析及解决方法 微软文字转语音怎么导出(文字转语音教程详解) Nagios的安装与配置(nagios安装文档) XP系统能上网不能上qq解决方案--岁月博客提供 flarum安装教程(在Debian上搭建Flarum论坛) vps评测方法
分类
  • VPS
  • 技术文档
  • 新闻
  • 服务器技术
  • 未分类
  • 羊毛
  • 跨境电商
  • 软路由虚拟化
最近评论
kkkki 发布于 9 个月前(07月05日) 100好像可以开韩国了把,我今天误打误撞开成功了
kiritoghy 发布于 10 个月前(05月26日) 想问一下如果azure for students开B1S+64G SSD就是免费的吗,不会扣100刀...

COPYRIGHT © 2022 岁月博客 ALL RIGHTS RESERVED.

豫ICP备2022005050号