安装

  • 首先从sourceforge下载最新的安装版本。

  • 解压编译

      $ tar -zxvf smartmontools-6.4.tar.gz
    $ cd smartmontools-6.4
    $ ./configure
  • 若出现checking for g++... no问题

原因是缺少C++编译器,在CentOS上使用yum install gc-c++安装编译器。问题解决参考了这篇博客。

  • make & make install

      $ make
    $ make install

常规用法

  • 使用-i参数查询硬盘信息,并且查看SMART support是否打开

      `# smartctl -i /dev/sdb
    smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-358.el6.x86_64] (local build)
    Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net === START OF INFORMATION SECTION ===
    Model Family: Seagate xxxxxxx
    Device Model: xxxxxxxx
    Serial Number: xxxxxxxxxx
    LU WWN Device Id: xxxxxxxxxx
    Firmware Version: SC13
    User Capacity: 500,107,862,016 bytes [500 GB]
    Sector Size: 512 bytes logical/physical
    Device is: In smartctl database [for details use: -P show]
    ATA Version is: 8
    ATA Standard is: ATA-8-ACS revision 4
    Local Time is: Wed Jan 20 09:04:20 2016 CST
    SMART support is: Available - device has SMART capability.
    SMART support is: Enabled
  • 使用-H查看健康状态

      `# smartctl -H /dev/sda
    smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-358.el6.x86_64] (local build)
    Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net === START OF READ SMART DATA SECTION ===
    SMART overall-health self-assessment test result: PASSED

简单的Nagios监控脚本

因为我使用的服务器采用RAID1,因此使用SMARTCTL来检查每个磁盘的状态,一旦有问题就可以提前对问题磁盘进行更换。

#! /bin/sh
SDA=`/usr/sbin/smartctl -H /dev/sda | grep 'test result'|cut -d':' -f 2`
SDB=`/usr/sbin/smartctl -H /dev/sdb | grep 'test result'|cut -d':' -f 2`
OUTPUT=''
if [ "$SDA" = " PASSED" ];then
if [ "$SDB" = " PASSED" ];then
OUTPUT+="OK: SDA is$SDA and SDB is$SDB"
fi
else
OUTPUT+="CRITICAL: SDA is$SDA and SDB is$SDB"
fi
echo $OUTPUT

将上面这段脚本保存为check_disk_health.sh,并保存到Nagios的脚本目录/usr/local/nagios/libexec

因为调用smartctl需要root权限,因此需要在/etc/sudoers文件中增加一行。

`nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_disk_health.sh`

同时注释掉Defaults requiretty这一行。

然后在nrpe.cfg文件中增加check_disk_health命令。

command[check_disk_health]=/usr/bin/sudo /usr/local/nagios/libexec/check_disk_health.sh

最后可以使用chek_nrpe对命令进行检测。

    $ ./check_nrpe -H localhost -c check_disk_health
OK: SDA is PASSED and SDB is PASSED

smartmontools的安装使用和实现对磁盘的Nagios监控的更多相关文章

  1. Windows无法安装到GPT分区形式磁盘的解决办法

    现在很多新买的硬盘都是GTP格式,这种格式需要使用UEFI BIOS模式安装系统,我们以前传统的windows系统安装都是“MBR+legacy BIOS”模式安装 Windows无法安装到GPT分区 ...

  2. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.5.安装Grid,创建ASM磁盘组空间不足

    因之前分区时,分区的Last cylinder的值选了“1”,导致创建磁盘组空间不足.解决办法是先删除分区,重新创建分区并删除ASM磁盘,然后重建ASM磁盘 1. 先删除分区,重新创建分区: 1)查询 ...

  3. Linux 虚拟机VMware安装失败,提示没有选择磁盘

    提示安装位置:没有选择磁盘 磁盘类型问题. 在新建虚拟机向导时会推荐选项 重新安装就有磁盘了

  4. zabbix实现对磁盘性能动态监控

    前言 zabbix一直是小规模互联网公司服务器性能监控首选,首先是免费,其次,有专门的公司和社区开发维护,使其稳定性和功能都在不断地增强和完善.zabbix拥有详细的UI界面和分组策略,在被监控的服务 ...

  5. CentOS 7.4 下安装部署Nagios监控系统详细攻略(三)

    Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户.它是基于GPLv2开发的开源软件,可免费获得及使用. nagios工作原理 nagios的功能是监控服务 ...

  6. 018 磁盘 IO 性能监控/压测工具(sar、iotop、fio、iostat)

    1 sar 命令查看当前磁盘 IO 读写 sar(System Activity Reporter 系统活动情况报告)是 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告 ...

  7. 磁盘IO性能监控(Linux 和 Windows)

    磁盘IO性能监控(Linux 和 Windows) 作者:终南   <li.zhongnan@hotmail.com> 磁盘的IO性能是衡量计算机总体性能的一个重要指标.Linux提供了i ...

  8. 自动安装脚本-------------基于LVMP搭建Nagios 监控

    Mysql初始化参数(mysql-5.6.31) /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local ...

  9. zabbix对数据盘磁盘容量进行监控

    示例将数据盘挂载到 /mnt目录 , 对 /mnt目录进程容量监控 item 添加对 /mnt 目录的监控项 tragger 添加触发项 这样完成对一个数据盘磁盘容量的监控

随机推荐

  1. Swift - 自动布局库SnapKit的使用详解4(样例1:实现一个登录页面)

    前面的几篇文章讲解了自动布局库SnapKit的使用方法.本文通过一个完整的样例(登录页面)来演示在实际项目中如何使用SnapKit来实现自动化布局的.1,效果图如下

  2. 铁人系列 (1) uva 10385

    uva  10385 列出n-1个一元方程,对应成单峰函数,所以用三分求解即可. #include <cstdio> #include <cstring> #include & ...

  3. ASP.NET的运行原理与运行机制

    在Asp.net4和4.5中,新增了WebPages Framework,编写页面代码使用了新的Razor语法,代码更加的简洁和符合Web标准,编写方式更接近于PHP和以前的Asp,和使用WebFor ...

  4. Rsync+sersync文件实时同步

    一.为什么要用Rsync+sersync架构1.sersync是基于Inotify开发的,类似于Inotify-tools的工具2.sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改 ...

  5. Android 之 JSON操作

    Android默认已经集成了操作JSON相关的API,如下所示: 也可以不使用JSON工具类,直接使用字符串拼接. 注意:可以使用字符串来构造JSONArray和JSONObject,这就是JSON解 ...

  6. switch… case 语句的用法(一)

    public class Test7 { public static void main(String[] args) { int i=5; switch(i) { case 1: System.ou ...

  7. Hibernate xml格式和anno格式 mappedby

    xml配置的时候多对一 一对多的外键可以配置一样,但是anno不太好弄,多这边配完了,一那边用个mappedby"“自己在对方的属性”就可以,不然要建一张中间表.xml的mappedby因为 ...

  8. 在Windows平台搭建PHP开发环境(四)

    一.概念 1.1 在Windows下搭建 wamp: apache(iis) + php + mysql +phpmyadmin 1.2 在Linux下搭建     lamp: linux + php ...

  9. IOS中nil/Nil/NULL的区别

    类与对象的概念 类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法). 对象是类的一个实例,是一个具体的事物. 类与对象是抽象与具体的关系. 类其实就是一种数据 ...

  10. FZU 2072 - Count

    题意:给一个数组,每次查询输出区间内数字x出现的次数. 每次查询数字x是与其它数字无关的,所以我们可以以每个数字为索引建立一个链表,里面存放它出现的下标,这里可以保证是递增的.每次查询数字x,就在x的 ...