开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

监控之--Nagios如何监控本地主机及本地服务

简介:
+关注继续查看

上一节内容介绍了Nagios监控服务在linux环境下的安装过程,本节内容将详细介绍如何使用已经安装的Nagios服务的一些配置文件的使用以及如何监控本地相关服务,如要完成对一台主机的监控Nagios作为主程序是必不可少的,但是仅仅只要nagios也是完成不了的,以下内容简单介绍下nagios的主配置文件和对本地主机的监控

Nagios监控看那个角色配置:

    监控端和被监控端的收据收集(C/S架构),监控端和用户(B/S架构)之间的数据呈现

    Nagios主程序,插件包,nrpe等相关插件

一、配置文件检查

1.1 查看nagios主目录相关功能

1
2
3
4
5
6
7
[root@XueGod63Nagios]# ll /usr/local/nagios/
bin             #Nagios执行程序所在目录
etc             #nagios配置文件坐在目录,初始安装只有几个*.cfg文件俺
libexec         #监控所用命令,需要安装了nagios-plugins插件了才会有,检测命令,不装是空的
sbin            #Nagios的Cgi文件所在目录,外部命令所需要的文件存放目录
share           #Nagios前端页面
var             #日志文件,pid文件等

1.2 检查配置文件是否存在错误

1
2
3
4
5
6
7
[root@node1 ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 
……………………
……………………
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors:   0

配置文件无异常,警告0,错误0

1.3 指定配置文件以守护进程的方式启动

1
[root@node1 ~]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

1.4 nagios.conf主要配置内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@node1 ~]# cat /usr/local/nagios/etc/nagios.cfg  | grep -E -v "^#|^$"
log_file=/usr/local/nagios/var/nagios.log                #日志位置
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     #定义模板(联系人主机模板)
cfg_file=/usr/local/nagios/etc/objects/linehost.cfg      #监控远程主机相关配置(监控远程主机添加的配置文件)
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg     #监控本机相关配置
object_cache_file=/usr/local/nagios/var/objects.cache    #
precached_object_file=/usr/local/nagios/var/objects.precache
resource_file=/usr/local/nagios/etc/resource.cfg         #资源变量配置文件,包括$USER1$变量(一个路径)
status_file=/usr/local/nagios/var/status.dat 
status_update_interval=10                                #状态更新时间,单位s
nagios_user=nagios                                       #指定守护进程运行用户
nagios_group=nagios                                      #指定进程运行用户组
check_external_commands=1                                #命令检查
command_check_interval=-1
command_file=/usr/local/nagios/var/rw/nagios.cmd
external_command_buffer_slots=4096
lock_file=/usr/local/nagios/var/nagios.lock
temp_file=/usr/local/nagios/var/nagios.tmp
temp_path=/tmp
event_broker_options=-1
log_rotation_method=d                                    #日志滚动,默认天
log_archive_path=/usr/local/nagios/var/archives          
sleep_time=0.25
service_check_timeout=60                                   #服务器检查超时时间
host_check_timeout=30
event_handler_timeout=30                                   
notification_timeout=30
ocsp_timeout=5
perfdata_timeout=5
1
2
3
4
5
6
7
8
9
10
11
12
[root@node1 ~]# ls /usr/local/nagios/etc/cgi.cfg                  #cgi配置文件,优先级高于nagios.cfg
[root@node1 ~]# cat /usr/local/nagios/etc/cgi.cfg | grep -E -v '^#|^$'
main_config_file=/usr/local/nagios/etc/nagios.cfg               #指定Nagios的配置文件位置 
physical_html_path=/usr/local/nagios/share                      #指定web访问的物理路径
url_html_path=/nagios                                           #在url后加nagios方能访问
show_context_help=0                                             #
use_pending_states=1
use_authentication=1                                            #使用认证功能
use_ssl_authentication=0
  
authorized_for_system_information=nagiosadmin,admin             #认证用户
…………

二、Nagios监控服务的健康状态

2.1 监控本地NFS服务状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@node1 ~]# cd /usr/local/nagios/etc/objects/
[root@node1 objects]# cp localhost.cfg localhost.cfg.bak
 
在文件末尾添加以下内容
define service{
        use                             local-service         ; Name of service template to use
        host_name                       localhost
        service_description             NFS
        check_command                   check_tcp!2049
        notifications_enabled           0
        }
 配置nagios.cfg主配置文件
 [root@node1 objects]# vim /usr/local/nagios/etc/nagios.cfg 
 cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

 安装和启动NFS服务器

1
2
3
4
5
6
7
8
[root@node1 objects]# mkdir /nfs
[root@node1 objects]# vim /etc/exports 
/nfs *(rw)
[root@node1 objects]# /etc/init.d/nfs restart
验证nfs
[root@node1 objects]# showmount -e 192.168.31.101
Export list for 192.168.31.101:
/nfs *

检查localhost是否已经正常启用,检查nagios配置文件,如无错误,则重启nagios服务

1
2
[root@node1 objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 
[root@node1 objects]# service nagios restart

验证

1
2
[root@node1 objects]# service nfs stop
[root@node1 objects]# service nfs restart


2.2 Nagios远程监控Mysql数据库状态

安装mysql服务器

[root@node1 ~]# yum -y install mysql mysql-server mysql-devel

[root@node1 ~]# service mysqld restart

[root@node1 ~]# chkconfig mysqld on

创建测试数据库

1
2
3
mysql> create database nagiostest;
mysql> grant select on nagiostest.* to nagiostest@"localhost";
mysql> flush privileges;

测试

1
2
3
[root@node1 objects]# /usr/local/nagios/libexec/check_mysql -H 127.0.0.1 -u nagiostest -d nagiostest
Uptime: 438  Threads: 2  Questions: 11  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.25|Connections=4c;;; Open_files=16;;; Open_tables=8;;; Qcache_free_memory=0;;; Qcache_hits=0c;;; Qcache_inserts=0c;;; Qcache_lowmem_prunes=0c;;; Qcache_not_cached=0c;;; Qcache_queries_in_cache=0;;; Queries=11c;;; Questions=11c;;; Table_locks_waited=0c;;; Threads_connected=2;;; Threads_running=1;;; Uptime=438c;;;
[root@node1 objects]#

命令添加(添加的command_name必须在/usr/local/nagios/libexec/该文件夹下存在)

1
2
3
4
5
6
[root@node1 objects]# vim commands.cfg     
define command{
        command_name    check_mysql
        command_line    $USER1$/check_mysql -H $HOSTADDRESS$ -u nagiostest -d nagiostest
}
[root@node1 objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

无报错和警告则重启nagios服务

测试:关闭msyqld服务

1
[root@node1 libexec]# service mysqld stop

2.3监控远程主机mysql服务及其他服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@node1 objects]# vim ../nagios.cfg 
新增配置监控配置文件及服务
cfg_file=/usr/local/nagios/etc/objects/remodehost.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
define host{
        use             linux-server
        host_name       node2.cn
        alias           MySQL-Serve
        address         192.168.31.102
        icon_image      server.gif
        statusmap_image server.gd2
        2d_coords       500,200
        3d_coords       500,200,100
}

添加监控的服务,可参考localhost.cfg配置文件相关服务配置方式进行配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@node1 objects]# vim services.cfg 
define service{
        use                     local-service
        host_name               node2.cn
        service_groups          MysqlGroup
        service_description     MySqlSev
        check_command           check_mysql
}
define service{
        use                             local-service         ; Name of service template to u
se
        host_name                       node2.cn
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }
define service{
        use                             local-service         ; Name of service template to u
se
        host_name                       node2.cn
        service_description             Root Partition
        check_command                   check_local_disk!20%!10%!/
        }
        …………
define servicegroup{
        servicegroup_name       MysqlGroup
        alias                   MySQLServer
        members                 node2.cn,MySqlSev
}

检查配置文件无错误和警告信息则重启服务

1
2
[root@node1 objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 
[root@node1 objects]# service nagios restart

通过浏览器查看web端监控主机情况



本文转自 CARYFLASH 51CTO博客,原文链接:http://blog.51cto.com/maoxiaoxiong/1980786


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
文章
问答
文章排行榜
最热
最新
相关电子书
更多
《Zabbix 监控常用手册》
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载