安装

  • 首先从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. Java 面向对象编程——第一章 初识Java

      第一章    初识Java 1.  什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...

  2. Disaster Recovery, High Availability, and Continuous Availability - What's the Difference?

    Disaster Recovery, High Availability, and Continuous Availability - What's the Difference? Posted by ...

  3. html5+js实现刮刮卡效果

    通过Canvas实现的可刮涂层效果. 修改img.src时涂层也会自动适应新图片的尺寸. 修改layer函数可更改涂层样式. 涂层: 可刮效果: <!DOCTYPE html> <h ...

  4. BCP批量导入数据时候如何处理表中自动增加的字段

    大容量导入数据时保留标识值 (SQL Server) http://msdn.microsoft.com/zh-cn/library/ms186335(v=sql.120).aspx 使用格式化文件跳 ...

  5. Redhat6.x下如何进行远程安装虚拟机

    远程主机IP:192.168.122.1 远程主机名:server1.example.com 本地主机IP:192.168.122.2 本地主机名:server2.example.com 1.登录到远 ...

  6. FCKEditor文件上传提示信息的汉化

    FCKEditor文件上传提示信息的汉化在FCKeditor中,虽然可以自动监测客户端语言,但是仍有小部分信息未能得到汉化.例如上传图片.Flash时,上传成功和上传失败的对话框提示信息均为英文,只要 ...

  7. SVN Unable to connect to a repository at URL

    方法一:右键菜单的“TortoiseSVN”->“Settings”->“Save Data”对话框中,点击“Authentication data”旁的“Clear”按钮,清除登录凭证. ...

  8. linux下格式化硬盘与挂载硬盘

    格式化: mkfs -t ext4 /dev/sdb 自动挂载: 编辑/etc/fstab文件 sudo nano /etc/fstab,如下图将设备/dev/sdb硬盘挂载到/home/solr/s ...

  9. PowerShell并发控制-命令行参数之四问

    传教士问: win下如何 获取进程命令行,及命令行参数? 传教士答: 可以用这个powershell命令(实际上是wmi查询): (get-wmiobject -query "select ...

  10. Javascript使用总结

    Javascript(简称JS)简介 JavaScript是一门广泛用于浏览器客户端的脚本语言,由Netspace公司设计,当时跟Sun公司(已经被oracle收购)合作,所以名字起得像Java,业内 ...