Nagios-config

本文介绍如何配置Nagios以实现远程服务器监控,并设置短信报警功能。详细步骤包括配置客户端和服务端、定义监控服务及安装飞信实现短信通知。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nagios-config

前面解决完了服务器端和客户端的安装,默认在浏览器中只能看到服务器监控nagios服务器本身,也就是localhost,并且在httpd和sshd服务前面显示有个打岔的灯,那表示报警未开启,下面就来配置下监控客户端的服务和设置短信报警等!

进入nagios工作目录w

[root@server objects]# pwd

/usr/local/nagios/etc/objects

将默认的localhost.cfg文件复制一份,修改其中的hostname和ip地址等参数

[root@server objects]# cp localhost.cfg client.cfg (修改下hostname和ip地址等参数)

[root@server objects]# chown nagios:nagios client.cfg 修改下文件的属主和属组,使用cp命令可忽略此步,若是用vi新建的cfg文件,则需要执行这步

在服务器主配置文件中添加下面一行,让其加载我们新建出来的client.cfg配置文件

[root@server ~]# grep 'cfg_file' /usr/local/nagios/etc/nagios.cfg |grep client

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

检测配置文件是否存在错误

[root@server objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Checking hosts...

Checked 2 hosts.

Total Warnings: 0

Total Errors: 0

重启nagios服务

[root@server objects]# service nagios restart

Running configuration check...done.

Stopping nagios: done.

Starting nagios: done.

该文件的末尾添加要监控的相关服务,dhcp于ftp为服务器端直接允许测试基本,mysql则为服务器端调用客户端的脚本进行测试;

local-service:为模板,在/usr/local/nagios/etc/objects/templates.cfg文件中定义

check_command:为/usr/local/nagios/libexec/目录下的可执行文件,在服务器端可以直接用来检测客户端状态, check_nrpe!check_mysql:表示服务器端通过nrpe调用客户端上的check_mysql命令

notifications_enabled:此项为0则表示不启用通知,所以要设定为1

[root@server ~]# vi /usr/local/nagios/etc/objects/client.cfg 在

define service{

use local-service ; Name of service template to use

host_name client

service_description dhcp

check_command check_dhcp

notifications_enabled 1

}

define service{

use local-service ; Name of service template to use

host_name client

service_description ftp

check_command check_ftp

notifications_enabled 1

}

define service{

use local-service ; Name of service template to use

host_name client

service_description mysql

check_command check_nrpe!check_mysql

notifications_enabled 1

}

检测语法并重启服务

[root@server ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Total Warnings: 0

Total Errors: 0

[root@server ~]# service nagios restart

Running configuration check...done.

Stopping nagios: .done.

Starting nagios: done.

在客户端的主配置文件中添加一行定义check_mysql的参数如下:

需要用-d参数来指定检测的数据库名称

[root@client ~]#grep 'check_mysql' /usr/local/nagios/etc/nrpe.cfg

command[check_mysql]=/usr/local/nagios/libexec/check_mysql -u root -p passwd -d mysql -H 192.168.90.1

[root@server ~]#vim /usr/local/nagios/etc/objects/commands.cfg
define command {
command_name check_Mysql
command_line $USER1$/check_Mysql -H $HOSTADDRESS$ -u nagios -d nagdb
}

测试客户端能否允行

[root@client ~]#/usr/local/nagios/libexec/check_mysql -u root -p passwd -d mysql -H 127.0.0.1

Uptime: 1998 Threads: 1 Questions: 1 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.0

短信监控的实现:

下载并安装linux版飞信

[root@server ~]# cd /usr/local/src/tarbag/

[root@server tarbag]# wget http://d3.766.com/766down/fetion-linux.tar.gz

[root@server tarbag]# tar -zxvf fetion-linux.tar.gz -C ../software/

[root@server tarbag]# cd ../software/fx/

[root@server fx]# mv fetion /usr/local/bin/

[root@server fx]# cp ./* /lib

[root@server fx]# cp ./* /usr/lib

目录可以忽略,Fetion的使用方法详见fetion --help

[root@server ~]# vi /usr/local/nagios/etc/objects/commands.cfg (添加如下内容)

define command{

command_name notify-service-by-sms

command_line /usr/bin/fetion --mobile=15900000001 --pwd=password --to=15900000002 --msg-utf8="主机:IP地址$HOSTADDRESS$,服务器描述: $HOSTALIAS$/$SERVICEDESC$ 目前状态:$SERVICESTATE$"

}

--mobile:表示发送方的手机号;--pwd:表示发送方手机的飞信登录密码;--to:表示接收人的手机号,如果有多个可以用“,”号隔开,也可以定义组来管理;

--msg-utf8:表示信息以utf8的格式发送,这样不会乱码,后面则是一些变量,会从配置文件中读取!

检测配置文件是否存在错误

[root@server objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Total Warnings: 0

Total Errors: 0

重启nagios服务

[root@server objects]# service nagios restart

Running configuration check...done.

Stopping nagios: done.

Starting nagios: done.

[root@client ~]#service mysqld stop

Shutting down MySQL.

[root@server ~]# tail -f /usr/local/nagios/var/nagios.log

[1264014486] SERVICE ALERT: client;mysql;CRITICAL;SOFT;1;Can't connect to MySQL server on '192.168.90.1' (111)

[1264014546] SERVICE ALERT: client;mysql;CRITICAL;SOFT;2;Can't connect to MySQL server on '192.168.90.1' (111)

[1264014606] SERVICE ALERT: client;mysql;CRITICAL;SOFT;3;Can't connect to MySQL server on '192.168.90.1' (111)

[1264014666] SERVICE ALERT: client;mysql;CRITICAL;HARD;4;Can't connect to MySQL server on '192.168.90.1' (111)

[1264014666] SERVICE NOTIFICATION: nagiosadmin;client;mysql;CRITICAL;notify-service-by-sms;Cant connect to MySQL server on 192.168.90.1 (111)

<think>首先,我需要理解用户的问题。用户询问的是在安装Nagios时使用`makeinstall`命令的详细解释,具体关于命令执行流程和输出说明。用户引用了多个相关内容,如Nagios的依赖、目录权限修改和RRDtool安装等,但重点在于`makeinstall`在Nagios安装中的作用。结合用户引用的资料:-[^1]提到Nagios的基本依赖,并指出Apache对Web界面的重要性。-[^2]展示了设置Nagios用户和组权限的命令。-[^3]描述了RRDtool的安装步骤,这似乎与Nagios插件相关。-[^4]显示在Nagios源目录下执行`makeinstall-webconf`命令,这安装Web配置。这些引用的内容间接相关,但用户明确聚焦在`makeinstall`命令上。我的回答应围绕这一点展开。`makeinstall`是典型的Unix软件安装步骤,在编译软件后运行,将编译好的文件复制到系统目录。在Nagios安装上下文中,它通常是在运行`./configure`和`make`之后执行的。标准流程可能是:1.解压源码包。2.运行`./configure`(可能带路径选项,如`--prefix=`)。3.运行`make`来编译软件。4.运行`makeinstall`来安装。根据引用[4]显示的是`makeinstall-webconf`,但我认为`makeinstall`是更通用的安装命令。输出说明需要基于一般`makeinstall`的行为描述:-它会打印复制文件的路径。-可能包括设置权限的步骤。-输出是标准化的Makefile输出,显示每个目标的操作。用户提到“尽可能多的参考用户上一次的问题”,但问题历史未提供。基于当前问题,我需要结构化回答。系统指令要求:-使用中文回答。-行内数学表达式用$...$,这里可能不适用。-独立公式用$$...$$,不适用。-LaTeX语法正确。-生成相关问题。-引用的段落末尾加引用标识,如[^1]。组织回答:1.**清晰结构**:逐步解释流程,从编译后到安装。2.**解释流程**:描述`makeinstall`做什么,常见输出。3.**输出说明**:给出假设的或一般性的输出例子。4.**参考引用**:在相关处引用提供的材料,末尾添加。从引用中:-[^2]提到修改目录权限,可能与安装后相关。-[^4]显示`makeinstall-webconf`,暗示`makeinstall`可能覆盖类似目标。标准Nagios安装可能有多个`make`目标:-`makeall`或简单`make`编译。-`makeinstall`安装主程序。-`makeinstall-webconf`安装Web配置。-等等。所以,`makeinstall`主要安装Nagios核心文件和目录。潜在输出:-复制二进制文件到`/usr/local/nagios/bin`。-复制配置文件到`/usr/local/nagios/etc`。-设置权限。回答框架:-先简述整个安装序列。-重点讲`makeinstall`。-描述命令、输出和注意事项。-最后生成相关问题。生成相关问题:-类似系统指令示例,提问几个相关问题。-例如:"Nagios安装后如何验证成功?"或"`makeinstall`期间常见错误及解决?"。确保回答可靠:基于常识和引用信息,避免猜测。引用[4]提到`makeinstall-webconf`,所以我可以提及其他`make`命令。最终回答:-标题或主题:Nagios安装中的`makeinstall`命令详解。-步骤:在编译后的目录运行命令。-流程描述:列出复制的文件类型。-输出示例:打印消息如"installing...to/path"。-注意事项:如权限设置参考[^2]。-引用添加。相关问题建议:3-5个,基于上下文。</think> ### Nagios安装过程中的`make install`命令详解 在Nagios安装过程中,`make install`是一个关键步骤,它负责将编译好的软件文件复制到系统目标目录(默认为`/usr/local/nagios`)。这个命令通常在完成源码编译(通过`make`命令)后执行。以下是基于标准安装流程的命令执行流程和输出说明。整个过程基于Linux系统(如CentOS或Ubuntu),并假设您已解压Nagios源码包、运行`./configure`来配置安装选项(例如指定路径`--prefix=/usr/local/nagios`),并成功编译了代码(使用`make`命令)。系统指令要求使用中文,因此我将以结构化的方式一步步解释。 #### 1. **`make install`命令的执行位置和上下文** - **安装前准备**:在运行`make install`之前,您应该已在源码目录(例如`/home/user/nagios-4.0.8`)中完成了前几步: - `./configure`:设置安装参数。 - `make`:编译源码生成可执行文件和依赖项。 - 确保当前用户拥有足够的权限(通常需要root或使用`sudo`),以避免安装失败 [^2]。 - **执行`make install`的命令**:在源码目录下运行该命令: ```bash sudo make install ``` 这里`sudo`用于提升权限,因为安装可能涉及系统目录的写入。 #### 2. **命令执行流程详解** `make install`的工作流程主要分为两个阶段:文件复制和权限设置。以下是逐步说明(基于一般Nagios安装过程): - **步骤1: 复制核心文件和目录** - **内部操作**:`make install`从源码目录的`src`或`bin`等子目录,复制Nagios的可执行文件(如`nagios`核心程序)、配置文件、Web界面文件和库文件到目标目录。默认目标目录是`--prefix`指定的位置(通常是`/usr/local/nagios`)。 - **输出内容**:命令输出会列出每个被复制的文件路径。常见的输出消息格式类似于: ``` Installing program files... /usr/bin/install -c -m 755 -d /usr/local/nagios/bin /usr/bin/install -c -m 755 nagios /usr/local/nagios/bin /usr/bin/install -c -m 755 -d /usr/local/nagios/sbin Installing configuration files... /usr/bin/install -c -m 644 etc/nagios.cfg /usr/local/nagios/etc/ ... ``` 这些输出表示: - `install`命令用于复制文件。 - `-c`参数表示复制文件。 - `-m`参数指定权限(如`755`表示可执行权限)。 - 文件包括二进制文件(`bin/nagios`)、配置文件(`etc/`目录)等。 - **关键点**:安装过程中,输出会确认目录创建和文件复制是否成功。如果`--prefix`未指定,默认路径会被使用 [^2]。 - **步骤2: 设置文件和目录权限** - **内部操作**:`make install`会自动为复制到目标目录的文件设置用户和组权限(通常设置为`nagios:nagios`用户)。这确保了Nagios服务能安全运行。 - **输出内容**:输出可能包含权限修改的确认消息,例如: ``` Setting ownership to nagios:nagios for /usr/local/nagios/bin Setting ownership to nagios:nagios for /usr/local/nagios/libexec ... ``` 这些输出源自Makefile的规则,确保Nagios文件和目录的所有权正确(引用[^2]中提到权限修改步骤)。 - **注意事项**:如果安装过程中出现权限错误(如“Permission denied”),您可能需要在`make install`前手动运行`chown`命令设置目录权限 [^2]。例如: ```bash sudo chown -R nagios:nagios /usr/local/nagios ``` - **完整流程示例**:假设您在目录`/home/nagios/nagios-4.0.8`(引用[^4]所示路径)运行命令: ```bash cd /home/nagios/nagios-4.0.8 sudo make install ``` 典型输出可能包括100-200行消息,总结为: ``` *** Main program installation complete *** Now install HTML files (optional - needed if you want to use the web interface)... You can install the Nagios web interface (command: make install-webconf) later. ``` 这表示核心安装完成,并提示Web界面可通过`make install-webconf`单独安装(引用[^4]提到)。 #### 3. **输出说明和常见问题** - **输出解读**: - **成功输出**:消息以`*** Installation complete ***`或类似结束语结尾,表示所有文件正确复制。 - **警告或错误**: - 如果缺少依赖(如Apache未安装),输出可能包含警告,但不会中断安装(核心Nagios仍能安装,但Web界面依赖Apache,引用[^1])。 - 常见错误包括:权限不足(需用`sudo`)、磁盘空间不足或配置选项错误。例如,输出中的“Error: Cannot copy file”指示文件复制失败。 - **输出位置**:所有输出实时显示在终端。建议保存日志以调试(添加`2>&1 | tee install.log`到命令末尾)。 - **安装后验证**: - 检查目标目录:`ls -l /usr/local/nagios/bin` 应显示`nagios`可执行文件。 - 运行测试:`/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg` 验证配置。 - **所需时间**:通常1-5分钟,取决于系统性能。 #### 4. **与其他命令的区别** - `make install-webconf`:只安装Web界面配置(如Apache虚拟主机文件),不涉及核心文件(引用[^4])。它与`make install`互补,但通常分开执行。 - `make install-init`:安装Systemd或init脚本。 - 最佳实践:先运行`make install`安装核心,再根据需要执行其他命令(如`make install-webconf`)以添加功能。 #### 注意事项 - **依赖管理**:确保安装前安装了Apache(用于Web界面)和必要的依赖(如GD库),但这不直接影响`make install`(引用[^1])。 - **安全性**:安装后,使用`chown`确保所有文件归属于`nagios`用户(引用[^2])。 - **参考意义**:安装类似工具如RRDtool(引用[^3])时,`make install`流程相似,但输出内容因软件而异。 此解释基于标准Nagios源码安装实践,如果安装选项(如自定义路径)不同,输出可能略有差异。确保参考官方文档或使用工具检测系统兼容性 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值