下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

教您借助Nagios轻松监测服务

作者:课课家教育     来源: http://www.kokojia.com点击数:831发布时间: 2017-11-16 16:00:20

标签: Nagios系统监控

  欢迎各位阅读本篇文章,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。本篇文章讲述了教大家如何在Linux中计划任务。

教您借助Nagios轻松监测服务_Nagios_系统_监控_课课家教育

  NagiOS随带一大批的内置脚本用于监测服务。本教程将探讨使用其中一些脚本来检查常用服务的过程,比如MySQL、Apache web服务器和DNS等服务。

  为了让本文着重介绍服务监测这方面,我们不会配置主机组(hostgroup)或模板,不过,它们可以加以调整,以符合要求。

  在CLI中运行Nagios检查

  我们通常建议,先在命令行接口(CLI)中运行Nagios服务检查脚本,然后再将这些脚本添加到Nagios。这么做可以了解执行会不会成功,脚本输出结果会是什么样子。

  所有脚本都位于/etc/nagios-plugins/config/,可执行文件则存放在/usr/lib/nagios/plugins/。

  下面介绍实现方法。

  root@nagios:~# cd /etc/nagios-plugins/config/

  所提供的脚本含有语法方面的帮助。示例包含部分输出。

  root@nagios:~# cat /etc/nagios-plugins/config/tcp_udp.cfg

  # 'check_tcp'命令定义

  define command{

  command_name check_tcp

  command_line /usr/lib/nagios/plugins/check_tcp -H '$HOSTADDRESS$' -p '$ARG1$'

  鉴于语法可用,可按如下方式检查TCP端口。

  root@nagios:~# /usr/lib/nagios/plugins/check_tcp -H 10.10.10.1 -p 80

  TCP OK - 0.000 second response time on port 80|time

  =0.000222s;;;0.000000;10.000000

  示例拓扑结构

  在本教程中,用到了下列三台服务器。每台服务器运行一个或多个常用服务。Nagios服务器在Ubuntu上运行。

  服务器1(10.10.10.1):MySQL和Apache2

  服务器2(10.10.10.2):Postfix和Apache2

  服务器3(10.10.10.3):DNS

  首先,这些服务器在Nagios中加以定义。

  root@nagios:~# vim /etc/nagios3/conf.d/example.cfg

  define host{

  use generic-host

  host_name test-server-1

  alias test-server-1

  address 10.10.10.1

  }

  define host{

  use generic-host

  host_name test-server-2

  alias test-server-2

  address 10.10.10.2

  }

  define host{

  use generic-host

  host_name test-server-3

  alias test-server-3

  address 10.10.10.3

  }

  监测MySQL服务

  MySQL监测方面的要求

  1.通过检查端口3306,监测MySQL是否在运行。

  2.监测某个数据据'testDB'的可用性。

  MySQL服务器的设置

  说到检查MySQL,应当牢记一点:默认情况下,MySQL只侦听回送接口127.0.0.1。这增加了数据库的安全性。需要手动调整,才能让MySQL还可以侦听其他接口。下面介绍具体实现方法。

  这个设置在所有MySQL服务器上完成。

  root@nagios:~# vim /etc/mysql/my.cnf

  下面这一行被注释掉,以便让MySQL侦听所有接口。

  #bind-address = 127.0.0.1

  此外,MySQL不会允许随便任何一个主机连接到它。同时为本地主机和'any'主机创建了用户'nagios'。随后,该用户被赋予访问所有数据库的全部权限,该用户将被用于监测。

  完成所有MySQL服务器的下列设置。

  root@nagios:~# mysql -u root -p

  ## MySQL root password here ##

  在MySQL服务器中创建用户'nagios@localhost'。

  mysql> CREATE USER 'nagios'@'localhost' IDENTIFIED BY 'nagios-pass';

  mysql> GRANT ALL PRIVILEGES ON *.* TO 'nagios'@'localhost';

  用户'nagios@any-host'创建完毕。

  mysql> CREATE USER 'nagios'@'%' IDENTIFIED BY 'nagios-pass';

  mysql> GRANT ALL PRIVILEGES ON *.* TO 'nagios'@'%';

  mysql> FLUSH PRIVILEGES;

  这应该让MySQL能够侦听所有接口,此外还能接收来自用户'nagios'在任何主机的入站连接。

  注意:这个改变可能会在安全方面带来影响,所以值得再提几句:

  该设置会将MySQL暴露在所有的可用接口面前,包括广域网接口。确保只有合法网络才能访问该数据库,这点极其重要。应该使用防火墙和TCP封装器等过滤器。

  MySQL'nagios'用户密码应该是安全性很高的强密码。如果只有个别几台Nagios服务器,那么应该创建MySQL用户'nagios@servername',而不是'nagios@%'即任何主机。

  针对MySQL的Nagios配置

  下列调整应该可以达到目的。

  root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg

  define service{

  use generic-service

  host_name test-server-1

  ;hostgroup can be used instead as well

  service_description Check MYSQL via TCP port

  check_command check_tcp!3306

  }

  define service{

  use generic-service

  host_name test-server-1

  ;hostgroup can be used instead as well

  service_description Check availability of database 'testDB'

  check_command check_mysql_database!nagios!nagios-pass!testDB

  ;check_mysql!userName!userPassword!databaseName

  }

  这样一来,Nagios就有助于同时监测MySQL服务器的可访问性和存储在服务器里面的数据库的可访问性。

  监测Apache Web服务器

  Nagios还可以用来监测Apache web服务器。

  Apache监测方面的要求

  监测Apache服务器是不是可用。

  这项任务其实容易得很,因为Nagios有一个内置命令,可以完成这项任务。

  root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg define service{ use generic-service host_name test-server-1, test-server-2 service_description Check Apache Web Server check_command check_http }

  看来这确实很简单。

监测DNS服务

  监测DNS服务

  Nagios可以监测DNS服务,其方式有两种,一种是要求DNS服务器解决一个特定的完全合格域名(FQDN),另一种是要求服务器使用dig工具。用于测试的默认FQDN是www.google.com,但可以根据需要来更改这个FQDN。可以改动下面这个文件来完成任务。

  root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg

  define service{

  use generic-service

  host_name test-server-1, test-server-2

  service_description Check Apache Web Server

  check_command check_http

  }

  然后,编辑下面这个文件。

  root@nagios:~# vim /etc/nagios-plugins/config/dns.cfg

  ## -H部分可以改动,替换Google ##

  define command{

  command_name check_dns

  command_line /usr/lib/nagios/plugins/check_dns -H www.google.com -s '$HOSTADDRESS$'

  }

  监测邮件服务器

  Nagios可以监测不同的邮件服务器组件,比如SMTP、POP、IMAP和mailq。正如前面提到的那样,server-2上面已搭建了postfix邮件服务器。可以对Nagios进行配置,以便监测服务器的SMTP和邮件队列。

  root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg

  ## Nagios要求server-3为google.com解析IP ##

  define service{

  use generic-service

  host_name test-server-3

  service_description Check DNS

  check_command check_dns

  }

  ## Nagios要求server-3挖掘google.com ##

  define service{

  use generic-service

  host_name test-server-3

  service_description Check DNS via dig

  check_command check_dig!www.google.com

  }

  下面这个屏幕截图显示了到目前为止已完成配置的所有服务检查的完整概况。

  针对自定义应用程序的基于端口的监测

  不妨假设下面这个自定义应用程序也在网络中运行,侦听某个特定的端口。

  测试服务器1:自定义应用程序(TCP端口12345)

  稍加一番调整,Nagios还能有助于监测这个应用程序端口。

  root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg

  define service{

  use generic-service

  host_name test-server-1

  service_description Check server 1 custom application

  check_command check_tcp!12345

  }

  最后提一下,Nagios可以监测网络的其他许多部分。存储在/etc/nagios-plugins/config/里面的脚本从一个侧面体现了Nagios的出色功能。

  随Nagios提供的一些脚本仅限于本地服务器,比如包括服务器负载、并发进程的数量和已登录用户的数量。这些检查可以提供实用的宝贵信息,从而便于了解Nagios服务器里面出现的状况。

  但愿本文对大家有所帮助。

  知识分享:桌面环境

  介绍

  在图形计算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。但严格来说窗口管理器和桌面环境是有区别的。桌面环境就是桌面图形环境,它的主要目标是为Linux/Unix操作系统提供一个更加完备 的界面以及大量各类整合工具和使用 程序,其基本 易用性吸引着大量的新用户。桌面环境名称来自桌面比拟,对应于早期的文字命令行界面(CLI)。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。

在图形计算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。

  种类

  现今主流的桌面环境有KDE,gnome,Xfce,LXDE等,除此之外还有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE等。

  gnome

  即GNU网络对象模型环境 (The GNU Network Object Model Environment),GNU计划的一部分,开放源码运动的一个重要组成部分。是一种让使用者容易操作和设定电脑环境的工具。

  目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,他是GNU计划的正式桌面。

  Xfce

  即XForms Common Environment,创建于2007年7月,类似于商业图形环境CDE,是一个运行在各类Unix下的轻量级桌面环境。原作者Olivier Fourdan最先设计XFce是基于XForms三维图形库。Xfce设计目的是用来提高系统的效率,在节省系统资源的同时,能够快速加载和执行应用程序。

  Fluxbox

  是一个基于GNU/Linux的轻量级图形操作界面,它虽然没有GNOME和KDE那样精致 ,但由于它的运行对系统资源和配置要求极低,所以它被安装到很多较旧的或是对性能要求较高的机器上,其菜单和有关 配置被保存于用户根目录下的.fluxbox目录里,这样使得它的配置极为便利。

  Enlightenment

  是一个功能强大的窗口管理器,它的目标是运用 户轻而易举地配置所见即所得的桌面图形界面。现在Enlightenment的界面已经相当豪华,它拥有像AfterStep一样的可视化时钟以及其它浮华的界面效果,用户不仅可以任意选择边框和动感的声音效果,最有吸引力的是由于它开放的设计思想,每一个用户可以根据自己的爱好,任意地配置窗口的边框、菜单以及屏幕上其它各个部分,而不须要 接触源代码,也不须要 编译任何程序。

  小结:严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

赞(20)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程