热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

监控三剑客之Nagios监控服务器

博文目录一、Nagios1、Nagios介绍2、Nagios主要功能3、Nagios的作用4、Nagios常见的监控状态5、Nagios的原理二、安装LAMP环境三、安装Nagio

博文目录

一、Nagios

1、Nagios介绍

2、Nagios主要功能

3、Nagios的作用

4、Nagios常见的监控状态

5、Nagios的原理

二、安装LAMP环境

三、安装Nagios

1、安装Nagios组件

2、配置Apache支持Nagios

3、配置SendMail邮件

四、Nagios监控Linux客户端

1、安装依赖程序

2、安装Nagios-plugins插件

3、安装NRPE插件



一、Nagios

1、Nagios介绍

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。


2、Nagios主要功能


网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH);

主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin);

可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……);

可以通过配置Nagios远程执行插件远程执行脚本;

远程监控支持SSH或SSL加通道方式进行监控;

简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等);

包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等);

可并行服务检查;

能够定义网络主机的层次, 允许逐级检查, 就是从父主机开始向下检查;

当服务或主机出现问题时发出通告,可通过email, pager, sms 或任意用户自定义的plugin>
进行通知;

能够自定义事件处理机制重新激活出问题的服务或主机;

自动日志循环;

支持冗余监控;

包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等。



3、Nagios的作用

监控计算机硬件;监控网络;支持邮件或者短信发送警报。


4、Nagios常见的监控状态


OK状态:运行正常状态显示颜色为绿色,监控级别0;

WARNING:警告状态,监控状态颜色为黄色,监控级别1;

CRITICL:出现故障或者严重问题,监控状态颜色为红色,监控级别2;

UNKNOWN:未知错误,监控状态颜色为深黄色,监控级别3;



5、Nagios的原理


1)Nagiosz依赖的组件

LAMP环境;
nrpe组件远程管理使用;


2)Nagios原理

Nagios执行check_nrpe插件通知或者检测计算机的服务或者进程;
将采集的进程状态保存到消息队列中;
通过Nagios图形化管理界面展示给用户;


二、安装LAMP环境

此环境用到的软件包及镜像请访问:https://pan.baidu.com/s/1Q0WoV7bBUYUB8F_JMtDaOw
提取码:b0ah

[root@centos01 ~]# yum -y install httpd php mariadb mariadb-server php-mysql openssl-devel
[root@centos01 ~]# vim /var/www/html/index.php
phpinfo();
?>
[root@centos01 ~]# systemctl start httpd
[root@centos01 ~]# systemctl enable httpd
[root@centos01 ~]# systemctl start mariadb
[root@centos01 ~]# systemctl enable mariadb
[root@centos01 ~]# useradd -M -s /sbin/nologin nagios
[root@centos01 ~]# tar zxvf /mnt/nagios-4.0.1.tar.gz -C /usr/src/
[root@centos01 ~]# cd /usr/src/nagios-4.0.1/
[root@centos01 nagios-4.0.1]# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
[root@centos01 nagios-4.0.1]# make all && make install && make install-init

[root@centos01 nagios-4.0.1]# make install-commandmode && make install-config

[root@centos01 ~]# chown -R nagios:nagios /usr/local/nagios
[root@centos01 ~]# chkconfig --add nagios
[root@centos01 ~]# chkconfig --level 35 nagios on

客户端访问php页面
技术图片


三、安装Nagios

1、安装Nagios组件

[root@centos01 ~]# tar zxvf /mnt/nagios-plugins-1.5.tar.gz -C /usr/src/

[root@centos01 ~]# cd /usr/src/nagios-plugins-1.5/
[root@centos01 nagios-plugins-1.5]# ./configure --prefix=/usr/local/nagios

[root@centos01 nagios-plugins-1.5]# make && make install
[root@centos01 ~]# tar zxvf /mnt/nrpe-2.15.tar.gz -C /usr/src/
[root@centos01 ~]# cd /usr/src/nrpe-2.15/
[root@centos01 nrpe-2.15]# ./configure && make all && make install-plugin

2、配置Apache支持Nagios

[root@centos01 ~]# vim /etc/httpd/conf/httpd.conf
354 ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
355
356
357 Options ExecCGI
358 AllowOverride None
359 Order allow,deny
360 Allow from all
361 AuthName "Nagios Access"
362 AuthType Basic
363 AuthUserFile "/usr/local/nagios/etc/htpasswd.users"
364 Require valid-user
365

366
367 Alias /nagios "/usr/local/nagios/share"
368
369
370 Options None
371 AllowOverride None
372 Order allow,deny
373 Allow from all
374 AuthName "Nagios Access"
375 AuthType Basic
376 AuthUserFile "/usr/local/nagios/etc/htpasswd.users"
377 Require valid-user
378

[root@centos01 ~]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

[root@centos01 ~]# systemctl restart httpd

3、配置SendMail邮件

[root@centos01 ~]# tar zxvf /mnt/sendEmail-v1.55.tar.gz
[root@centos01 ~]# mv sendEmail-v1.55/sendEmail /usr/local/bin/

[root@centos01 ~]# vim /usr/local/nagios/etc/nagios.cfg
36 cfg_dir=/usr/local/nagios/etc/conf
[root@centos01 ~]# mkdir /usr/local/nagios/etc/conf/
[root@centos01 ~]# vim /usr/local/nagios/etc/objects/commands.cfg
239 define command{
240 command_name notify-host-by-sendEmail
241 command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState : $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/local/bin/sendEmail -o fqdn=FQND -f 2807489749@qq.com -t $CONTACTEMAIL$ -s smtp.qq.com -u "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" -xu 8214 09986 -xp hehe
242
243 }
244 define command{
245 command_name notify-service-by-sendEmail
246 command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC $\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOU TPUT$\n" | /usr/local/bin/sendEmail -o fqdn=FQDN -f 821409986@qq.com -t $CONTACTEMAIL$ -s smtp.qq.com -u "** $NOTIFICATIONTYPE$ Se rvice Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -xu 2807489749 -xp hehe
247 }
248 define command{
249 command_name check_nrpe
250 command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
251 }
[root@centos01 ~]# vim /usr/local/nagios/etc/objects/contacts.cfg
55 define contact{
56 contact_name 821409986
57 alias 821409986
58 service_notification_period 24x7
59 host_notification_period 24x7
60 service_notification_options w,u,c,r
61 host_notification_options d,u,r
62 service_notification_commands notify-service-by-sendEmail
63 host_notification_commands notify-host-by-sendEmail
64 email 821409986@qq.com
65 }
66 define contactgroup{
67 contactgroup_name 821409986
68 alias Nagios admin
69 members 821409986
70 }
[root@centos01 ~]# vim /usr/local/nagios/etc/conf/hostgroups.cfg
define hostgroup{
hostgroup_name web-server
alias web-server
members 192.168.100.20
}
[root@centos01 ~]# vim /usr/local/nagios/etc/conf/192.168.100.20.cfg
define host{
host_name 192.168.100.20
alias web-server
address 192.168.100.20
check_command check-host-alive
max_check_attempts 5
check_period 24x7
notification_period 24x7
notification_options d,u,r
contact_groups 821409986
}
define service{
host_name 192.168.100.20
service_description check-host-alive
check_command check-host-alive
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
check_period 24x7
# notification web-server_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups 821409986
}
define service{
host_name 192.168.100.20
service_description check-procs
check_command check_nrpe!check_total_procs
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups 821409986
}
define service{
host_name 192.168.100.20
service_description check-load
check_command check_nrpe!check_load
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups 821409986
}
[root@centos01 ~]# systemctl restart httpd
[root@centos01 ~]# systemctl restart nagios

客户端访问nagios的WEB界面
技术图片


四、Nagios监控Linux客户端

1、安装依赖程序

[root@centos02 ~]# yum -y install openssl-devel openssl
[root@centos02 ~]# useradd -M -s /sbin/nologin nagios

2、安装Nagios-plugins插件

[root@centos02 ~]# scp root@192.168.100.10:/mnt/nagios-plugins-1.5.tar.gz /root/

[root@centos02 ~]# tar zxvf nagios-plugins-1.5.tar.gz -C /usr/src/
[root@centos02 ~]# cd /usr/src/nagios-plugins-1.5/
[root@centos02 nagios-plugins-1.5]# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
[root@centos02 nagios-plugins-1.5]# make && make install

3、安装NRPE插件

[root@centos02 ~]# scp root@192.168.100.10:/mnt/nrpe-2.15.tar.gz /root
[root@centos02 ~]# tar zxvf nrpe-2.15.tar.gz -C /usr/src/
[root@centos02 ~]# cd /usr/src/nrpe-2.15/
[root@centos02 nrpe-2.15]# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
[root@centos02 nrpe-2.15]# make all && make install-plugin && make install-daemon && make install-daemon-config
[root@centos02 ~]# vim /usr/local/nagios/etc/nrpe.cfg
81 allowed_hosts=127.0.0.1,192.168.100.10
[root@centos02 ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

客户端访问nagios的WEB界面
技术图片

技术图片

技术图片

———————— 本文至此结束,感谢阅读 ————————

监控三剑客之Nagios监控服务器



推荐阅读
  • 本指南详细介绍了如何在CentOS 6.6 64位系统上以root用户身份部署Tomcat 8服务器。系统环境为CentOS 6.6 64位,采用源码安装方式。所需软件为apache-tomcat-8.0.23.tar.gz,建议将软件下载至/root/opt目录。具体下载地址请参见官方资源。本指南涵盖了从环境准备到服务启动的完整步骤,适用于需要在该系统环境下搭建高性能Web应用服务器的技术人员。 ... [详细]
  • Docker入门指南:初探容器化技术
    Docker入门指南:初探容器化技术摘要:Docker 是一个使用 Go 语言开发的开源容器平台,旨在实现应用程序的构建、分发和运行的标准化。通过将应用及其依赖打包成轻量级的容器,Docker 能够确保应用在任何环境中都能一致地运行,从而提高开发和部署的效率。本文将详细介绍 Docker 的基本概念、核心功能以及如何快速上手使用这一强大的容器化工具。 ... [详细]
  • 如何在Mac上构建高效的本地服务器环境
    在Mac上构建高效的本地服务器环境,首先需要了解基本步骤:1. 配置目录基础;2. 启动Apache服务;3. 添加自定义文档至本地服务器;4. 查看自定义效果。此外,还可以通过手机或其他电脑访问本机服务器,以确保跨设备的兼容性和调试效果。Mac系统自带的Apache服务为本地开发提供了便捷的工具,本文将详细介绍每个步骤的具体操作方法。 ... [详细]
  • 本文详细解析了逻辑运算符“与”(&&)和“或”(||)在编程中的应用。通过具体示例,如 `[dehua@teacher~]$[$(id -u) -eq 0] && echo "You are root" || echo "You must be root"`,展示了如何利用这些运算符进行条件判断和命令执行。此外,文章还探讨了这些运算符在不同编程语言中的实现和最佳实践,帮助读者更好地理解和运用逻辑运算符。 ... [详细]
  • 二分查找算法详解与应用分析:本文深入探讨了二分查找算法的实现细节及其在实际问题中的应用。通过定义 `binary_search` 函数,详细介绍了算法的逻辑流程,包括初始化上下界、循环条件以及中间值的计算方法。此外,还讨论了该算法的时间复杂度和空间复杂度,并提供了多个应用场景示例,帮助读者更好地理解和掌握这一高效查找技术。 ... [详细]
  • 在 Android 开发中,`android:exported` 属性用于控制组件(如 Activity、Service、BroadcastReceiver 和 ContentProvider)是否可以被其他应用组件访问或与其交互。若将此属性设为 `true`,则允许外部应用调用或与之交互;反之,若设为 `false`,则仅限于同一应用内的组件进行访问。这一属性对于确保应用的安全性和隐私保护至关重要。 ... [详细]
  • 蚂蚁课堂:性能测试工具深度解析——JMeter应用与实践
    蚂蚁课堂:性能测试工具深度解析——JMeter应用与实践 ... [详细]
  • 在 iOS 开发中,经常会遇到 `@(YES)`、`@[firstViewController]` 以及 `@{@a:@b}` 这样的语法糖。这些简化的写法分别用于初始化布尔值、数组和字典对象,能够显著提高代码的可读性和编写效率。例如,`@(YES)` 可以快速创建一个布尔值对象,`@[firstViewController]` 则用于创建包含单个元素的数组,而 `@{@a:@b}` 则用于创建键值对字典。理解这些语法糖的使用方法,有助于开发者更加高效地进行编码。 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • 这是一道涉及数学计算的问题。假设步行速度为 \(a\),车速为 \(b\),总距离为 \(c\)。Teddy 的步行时间为 \(T_1\),WhereIsHeroFrom 的步行时间为 \(T_2\),总时间为 \(T\)。通过分析不同时间段内的速度变化,可以得出最优的车辆使用策略,以最小化总的旅行时间。具体来说,需要计算在不同情况下步行和乘车的时间分配,以确保整体效率最大化。 ... [详细]
  • NOIP2000的单词接龙问题与常见的成语接龙游戏有异曲同工之妙。题目要求在给定的一组单词中,从指定的起始字母开始,构建最长的“单词链”。每个单词在链中最多可出现两次。本文将详细解析该题目的解法,并分享学习过程中的心得体会。 ... [详细]
  • ### 摘要`mkdir` 命令用于在指定位置创建新的目录。其基本格式为 `mkdir [选项] 目录名称`。通过该命令,用户可以在文件系统中创建一个或多个以指定名称命名的文件夹。执行此操作的用户需要具备相应的权限。此外,`mkdir` 还支持多种选项,如 `-p` 用于递归创建多级目录,确保路径中的所有层级都存在。掌握这些基本用法和选项,有助于提高在 Linux 系统中的文件管理效率。 ... [详细]
  • 在Android平台上,视频监控系统的优化与应用具有重要意义。尽管已有相关示例(如http:www.open-open.comlibviewopen1346400423609.html)展示了基本的监控功能实现,但若要提升系统的稳定性和性能,仍需进行深入研究和优化。本文探讨了如何通过改进算法、优化网络传输和增强用户界面来提高Android视频监控系统的整体效能,以满足更复杂的应用需求。 ... [详细]
  • 将解压缩版Tomcat集成至系统服务
    将解压缩版Tomcat集成至系统服务的方法如下:首先,在命令行中导航至Tomcat的`bin`目录,运行`service.bat install`命令以安装服务。需要注意的是,服务名称和显示名称已在`service.bat`脚本中预设,默认情况下会随不同版本有所变化。此外,建议检查并配置相关参数,确保服务能够稳定运行。 ... [详细]
  • 题目探讨了在无向图中求解点连通数的问题,具体涉及UVA1660和POJ1966两个经典问题。通过最小割算法的应用,分析了如何高效地确定网络中的关键节点和路径,为电缆电视网络的优化设计提供了理论支持。该研究不仅验证了最小割算法的有效性,还为进一步探索复杂网络的连通性和鲁棒性奠定了基础。 ... [详细]
author-avatar
慕容盼烟迎曼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有