安装

  • 首先从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. HtmlHelper—DropDownList:SelectList、SelectListItem

    前言 在项目中经常使用到DropDownList来显示数据库中的数据,典型的例子为为某书籍选择所属类型. 使用SelectList来实现: 实现一: Controller 代码 SelectList ...

  2. 在 Ubuntu 上配置高性能的 HHVM 环境

    HHVM全称为 HipHop Virtual Machine,它是一个开源虚拟机,用来运行由 Hack(一种编程语言)和 PHP 开发应用.HHVM 在保证了 PHP 程序员最关注的高灵活性的要求下, ...

  3. Linux 下一个很棒的命令行工具

    导读 Taskwarrior 是 Ubuntu/Linux 下一个简单而直接的基于命令行的 TODO 工具.这个开源软件是我曾用过的最简单的基于命令行的工具之一.Taskwarrior 可以帮助你更好 ...

  4. static方法,属性,代码块初始化顺序和执行顺序

    http://greateryang.blog.163.com/blog/static/81953375201232621031508/

  5. WCF中常见的几种Host,承载WCF服务的方法

    1:写在前面 我们都知道WCF在运行的时候必须自己提供宿主来承载服务.WCF 本身没有附带宿主,而是提供了一个 ServiceHost 的类,该类允许您在自己的应用程序中host WCF 服务.然后调 ...

  6. EF Code-First数据迁移的尝试

    Code-First的方式虽然省去了大量的sql代码,但增加了迁移的操作.尝试如下: 1.首先要在“扩展管理器”里搜索并安装NuGet“库程序包管理器”,否则所有命令都不能识别,会报CommandNo ...

  7. numpy 总结

    1.array.sum() from numpy import * import operator group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) ...

  8. HDU 3966 基础树链剖分

    题意:给一棵树,并给定各个点权的值,然后有3种操作:I C1 C2 K: 把C1与C2的路径上的所有点权值加上KD C1 C2 K:把C1与C2的路径上的所有点权值减去KQ C:查询节点编号为C的权值 ...

  9. Enumeration 接口

    Enumeration是遍历集合元素的一种方法. Enumeration中只有两个方法: 1.hasMoreElements()  测试此枚举是否包含更多的元素. 2.nextElement()  如 ...

  10. Cisco IOS basic system management command reference

    absolute : to specify an absolute time for a time-range (in time-range configuration mode) no absolu ...