阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何用 Nagios 监控通用服务

157次阅读
没有评论

共计 5508 个字符,预计需要花费 14 分钟才能阅读完成。

Nagios 内置了很多脚本来监控服务。本篇会使用其中一些来检查通用服务如 MySql、Apache、DNS 等等。

为了保证本篇集中在系统监控,我们不会在这里配置主机组或者模板,它们已经在 前面的教程中覆盖了,它们可以满足需要了。

如何用 Nagios 监控通用服务

 

在命令行中运行 Nagios

通常建议在添加到 Nagios 前,先在命令行中运行 Nagios 服务检测脚本。它会给出执行是否成功以及脚本的输出将会看上去的样子。

这些脚本存储在 /etc/nagios-plugins/config/,可执行文件在 /usr/lib/nagios/plugins/。

下面就是该怎么做

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

提供的脚本包含了语法帮助。示例包含了部分输出。

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

  1. # 'check_tcp' command definition
  2. define command{
  3. command_name check_tcp
  4. command_line /usr/lib/nagios/plugins/check_tcp -H '$HOSTADDRESS$'-p '$ARG1$'

了解了语法,TCP 80 端口可以用下面的方法检查。

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

  1. TCP OK -0.000 second response time on port 80|time=0.000222s;;;0.000000;10.000000

 

示例拓扑

本片中使用下面三台服务器。每台服务器运行多个通用服务。Nagios 服务器现在运行的是 Ubuntu。

  • Server 1 (10.10.10.1) : MySQL, Apache2
  • Server 2 (10.10.10.2) : Postfix, Apache2
  • Server 3 (10.10.10.3) : DNS

首先,这些服务器被定义在了 Nagios 中。

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

  1. define host{
  2. usegeneric-host
  3. host_name test-server-1
  4. alias test-server-1
  5. address 10.10.10.1
  6. }
  7. define host{
  8. usegeneric-host
  9. host_name test-server-2
  10. alias test-server-2
  11. address 10.10.10.2
  12. }
  13. define host{
  14. usegeneric-host
  15. host_name test-server-3
  16. alias test-server-3
  17. address 10.10.10.3
  18. }

 

监控 MySQL 服务

 

MySQL 监控需要

  • 通过检查 3306 端口来检测 MySQL 是否运行中。
  • 检测特定的数据库 ’testDB’ 是否可用。

 

MySQL 服务器设置

开始检测 MySQL 时,需要记住 MySQL 默认只监听回环接口 127.0.0.1。这增加了数据库的安全。手动调节需要告诉 MySQL 该监听什么其他接口。下面是该怎么做。

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

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

下面这行被注释掉以监听所有网络接口。

  1. #bind-address = 127.0.0.1

同样,MySQL 也不会让任意主机来连接它。需要为 localhost 和“任意”主机创建 MySQL 用户‘nagios’,接着在所有的数据库中为这个用户授予 ALL 权限,会这将在会用在监控中。

下面的设置对所有的 MySQL 服务器都已经设置。

  1. root@nagios:~# mysql -u root p
  2. ## MySQL root 密码 ##

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

  1. mysql> CREATE USER 'nagios'@'localhost' IDENTIFIED BY 'nagios-pass';
  2. mysql> GRANT ALL PRIVILEGES ON *.* TO 'nagios'@'localhost';

创建 ’nagios@任意主机 ’ 用户。(LCTT 译注:实际上这两个是同一个用户,只是分别授权给 localhost 和任意主机的访问;因为它们所用的密码的同一个,修改任何一个,另外一个也相应变化。)

  1. mysql> CREATE USER 'nagios'@'%' IDENTIFIED BY 'nagios-pass';
  2. mysql> GRANT ALL PRIVILEGES ON *.* TO 'nagios'@'%';
  3. mysql> FLUSH PRIVILEGES;

这使 MySQL 监听所有的网络接口,同样接受来自用户 ’nagios’ 的进入连接。

请注意,这种修改可能有安全隐患,所以需要提示几点:

  • 这个设置将会暴露 MySQL 给所有的接口,包括外网。确保只有合法的网络访问是非常重要的。应该使用防火墙和 TCP wrapper 等过滤器。
  • MySQL 用户‘nagios’的密码应该非常强。如果只有几台 Nagios 服务器,那么应该创建 ’nagios@服务器名 ’ 用户而不是任意用户的 ’nagios@%’。

 

对 MySQL 的 Nagios 配置

按如下配置来做一些调整。

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

  1. define service{
  2. usegeneric-service
  3. host_name test-server-1
  4. ;hostgroup can be used instead as well
  5. service_description Check MYSQL via TCP port
  6. check_command check_tcp!3306
  7. }
  8. define service{
  9. usegeneric-service
  10. host_name test-server-1
  11. ;hostgroup can be used instead as well
  12. service_description Check availability of database 'testDB'
  13. check_command check_mysql_database!nagios!nagios-pass!testDB
  14. ;check_mysql!userName!userPassword!databaseName
  15. }

这样,Nagios 就可以同时监控 MySQL 服务器及其数据库的可用性。

 

监控 Apache 服务器

Nagios 同样也可以监控 Apache 服务。

 

Apache 监控需要

  • 监控 apache 服务是否可用

这个任务非常简单因为 Nagios 有一个内置命令。

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

  1. define service{
  2. usegeneric-service
  3. host_name test-server-1, test-server-2
  4. service_description CheckApacheWebServer
  5. check_command check_http
  6. }

现在就非常简单了。

 

监控 DNS 服务

Nagios 通过向 DNS 服务器查询一个完全限定域名(FQDN),或者使用 dig 工具来查询。默认用于查询的 FQDN 的是 www.google.com,但是这个可以按需改变。按照下面的文件修改来完成这个任务。

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

  1. ## The -H portion can be modified to replace Google ##
  2. define command{
  3. command_name check_dns
  4. command_line /usr/lib/nagios/plugins/check_dns -H www.google.com -s '$HOSTADDRESS$'
  5. }

编辑下面的行。

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

  1. ## Nagios asks server-3 to resolve the IP for google.com ##
  2. define service{
  3. usegeneric-service
  4. host_name test-server-3
  5. service_description Check DNS
  6. check_command check_dns
  7. }
  8. ## Nagios asks server-3 to dig google.com ##
  9. define service{
  10. usegeneric-service
  11. host_name test-server-3
  12. service_description Check DNS via dig
  13. check_command check_dig!www.google.com
  14. }

 

监控邮件服务器

Nagios 可以监控不同的邮件服务组件如 SMTP、POP、IMAP 和 mailq。之前提过,server- 2 设置了 Postfix 邮件服务。Nagios 将被配置来监控 SMTP 和邮件队列。

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

  1. define service{
  2. usegeneric-service
  3. host_name test-server-2
  4. service_description Check SMTP
  5. check_command check_smtp
  6. }
  7. define service{
  8. usegeneric-service
  9. host_name test-server-2
  10. service_description CheckMailQueue
  11. check_command check_mailq_postfix!50!100
  12. ;warning at 50, critical at 100
  13. }

下面的截屏显示了目前配置监控服务的概览。

如何用 Nagios 监控通用服务

 

基于端口自定义监控程序

让我们假设如下定制程序同样运行在网络中,监听着一个特定的端口。

  • 测试 1 号服务器:定制程序(TCP 端口 12345)

做一些小的调整,Nagios 也可以帮助我们监控这个程序。

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

  1. define service{
  2. usegeneric-service
  3. host_name test-server-1
  4. service_description Check server 1 custom application
  5. check_command check_tcp!12345
  6. }

在结束之前的提示,Nagios 可以监控网络很多其他的方面。存储在 /etc/nagios-plugins/config/ 中的脚本为 Nagios 提供了很棒的能力。

一些 Nagios 提供的脚本被仅限于本地服务器,比如,服务器负载、进程并发数量、登录用户数量等。这些检查可以提供 Nagios 服务器内有用的信息。

希望这篇文章对你有用。

————————————– 分割线 ————————————–

在 Ubuntu 下配置 Mrtg 监控 Nginx 和服务器系统资源 http://www.linuxidc.com/Linux/2013-08/88417.htm

使用 snmp+Mrtg 监控 Linux 系统 http://www.linuxidc.com/Linux/2012-11/73561.htm

Mrtg 服务器搭建(监控网络流量)http://www.linuxidc.com/Linux/2012-07/64315.htm

网络监控器 Nagios 全攻略 http://www.linuxidc.com/Linux/2013-07/87067.htm

Nagios 搭建与配置详解 http://www.linuxidc.com/Linux/2013-05/84848.htm

Nginx 环境下构建 Nagios 监控平台 http://www.linuxidc.com/Linux/2011-07/38112.htm

在 RHEL5.3 上配置基本的 Nagios 系统 (使用 Nagios-3.1.2) http://www.linuxidc.com/Linux/2011-07/38129.htm

CentOS 5.5+Nginx+Nagios 监控端和被控端安装配置指南 http://www.linuxidc.com/Linux/2011-09/44018.htm

Ubuntu 13.10 Server 安装 Nagios Core 网络监控运用 http://www.linuxidc.com/Linux/2013-11/93047.htm

————————————– 分割线 ————————————–

Nagios 的详细介绍 :请点这里
Nagios 的下载地址 :请点这里


via: http://xmodulo.com/monitor-common-services-nagios.html

作者:Sarmed Rahman 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译��Linux 中国 荣誉推出

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-07/119457.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计5508字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中