1、安装硬件传感器监控软件sensors

yum install -y lm_sensors*





2、运行sensors-detect进行传感器检测

##一路回车即可





Do you want to overwrite /etc/sysconfig/lm_sensors? (YES/no): 

Starting lm_sensors: loading module coretemp               [  OK  ]

Unloading i2c-dev... OK





3、运行sensors看是否能读取数据,如下像下面这样表示正常

# sensors

coretemp-isa-0000

Adapter: ISA adapter

ERROR: Can't get value of subfeature temp1_input: Can't read

Physical id 0:  +0.0°C  (high = +100.0°C, crit = +100.0°C)  

ERROR: Can't get value of subfeature temp2_input: Can't read

Core 0:         +0.0°C  (high = +100.0°C, crit = +100.0°C)  

ERROR: Can't get value of subfeature temp3_input: Can't read

Core 1:         +0.0°C  (high = +100.0°C, crit = +100.0°C)  





coretemp-isa-0002

Adapter: ISA adapter

ERROR: Can't get value of subfeature temp1_input: Can't read

Physical id 1:  +0.0°C  (high = +100.0°C, crit = +100.0°C)  

ERROR: Can't get value of subfeature temp2_input: Can't read

Core 0:         +0.0°C  (high = +100.0°C, crit = +100.0°C)  

ERROR: Can't get value of subfeature temp3_input: Can't read

Core 1:         +0.0°C  (high = +100.0°C, crit = +100.0°C)  





4、添加监控脚本vim /usr/local/nagios/libexec/check_cputemp





#!/bin/sh

#########check_cputemp###########

#date : May 2013

#Licence GPLv2

#by Barlow

#/usr/local/nagios/libexec/check_cputemp

#you can use NRPE to define service in nagios

#check_nrpe!check_cputemp

# Plugin return statements

STATE_OK=0

STATE_WARNING=1

STATE_CRITICAL=2

STATE_UNKNOWN=3

print_help_msg(){

$Echo "Usage: $0 -h to get help."

}

print_full_help_msg(){

$Echo "Usage:"

$Echo "$0 [ -v ] -m sensors -w cpuT -c cpuT"

$Echo "Sepicify the method to use the temperature data sensors."

$Echo "And the corresponding Critical value must greater than Warning value."

$Echo "Example:"

$Echo "${0} -m sensors -w 40 -c 50"

}

print_err_msg(){

$Echo "Error."

print_full_help_msg

}

to_debug(){

if [ "$Debug" = "true" ]; then

$Echo "$*" >> /var/log/check_sys_temperature.log.$$ 2>&1

fi

}

unset LANG

Echo="echo -e"

if [ $# -lt 1 ]; then

print_help_msg

exit 3

else

while getopts :vhm:w:c: OPTION

do

case $OPTION

in

v)

#$Echo "Verbose mode."

Debug=true

;;

m)

method=$OPTARG

;;

w)

WARNING=$OPTARG

;;

c)

CRITICAL=$OPTARG ;;

h)

print_full_help_msg

exit 3

;;

?)

$Echo "Error: Illegal Option."

print_help_msg

exit 3

;;

esac

done

if [ "$method" = "sensors" ]; then

use_sensors="true"

to_debug use_sensors

else

$Echo "Error. Must to sepcify the method to use sensors."

print_full_help_msg

exit 3

fi

to_debug All Values  are \" Warning: "$WARNING" and Critical: "$CRITICAL" \".

fi

#########lm_sensors##################

if [ "$use_sensors" = "true" ]; then

sensorsCheckOut=`which sensors 2>&1`

if [ $? -ne 0 ];then

echo $sensorsCheckOut

echo Maybe you need to check your sensors.

exit 3

fi

to_debug Use $sensorsCheckOut to check system temperature

TEMP1=`sensors | head -3 | tail -1 | gawk '{print $3}' | grep -o [0-9][0-9]`

TEMP2=`sensors | head -4 | tail -1 | gawk '{print $3}' | grep -o [0-9][0-9]`

TEMP3=`sensors | head -5 | tail -1 | gawk '{print $3}' | grep -o [0-9][0-9]`

TEMP4=`sensors | head -6 | tail -1 | gawk '{print $3}' | grep -o [0-9][0-9]`

##温度的取数根据你cpu的核数确定,我的是四核,所以取TEMP1-4个CPU温度数并计算平均值

SUM=$(( $TEMP1 + $TEMP2 + $TEMP3 + $TEMP4 ))

TEMP=$(($SUM/4))

if [ -z "$TEMP" ] ; then

$Echo "No Data been get here. Please confirm your ARGS and re-check it with Verbose mode, then to check the log."

exit 3

fi

to_debug temperature data is $TEMP

else

$Echo "Error. Must to sepcify the method to use sensors"

print_full_help_msg

exit 3

fi

######### Comparaison with the warnings and criticals thresholds given by user############

CPU_TEMP=$TEMP

#if [ "$WARNING" != "0" ] || [ "$CRITICAL" != "0" ]; then

if [ "$CPU_TEMP" -gt "$CRITICAL" ]  && [ "$CRITICAL" != "0" ]; then

STATE="$STATE_CRITICAL"

STATE_MESSAGE="CRITICAL"

to_debug $STATE , Message is $STATE_MESSAGE

elif [ "$CPU_TEMP" -gt "$WARNING" ] && [ "$WARNING" != "0" ]; then

STATE="$STATE_WARNING"

STATE_MESSAGE="WARNING"

to_debug $STATE , Message is $STATE_MESSAGE

else

STATE="$STATE_OK"

STATE_MESSAGE="OK"

to_debug $STATE , Message is $STATE_MESSAGE

fi

##返回值中注意要包含性能数据,即采用|分隔的后半部数据,且数据单位不能包含中文,否则使用PNP等绘图软件无法正常绘图。

echo "The TEMPERATURE "$STATE_MESSAGE" "-" The CPU's Temperature is "$CPU_TEMP" ℃ ! | 温度=`echo $CPU_TEMP`Celsius;$WARNING;$CRITICAL"

exit $STATE





5、赋予脚本执行权限:

chmod +x /usr/local/nagios/libexec/check_cputemp





6、配置vim /usr/local/nagios/etc/nrpe.cfg,添加如下一行:

echo "command[check_cputemp]=/usr/local/nagios/libexec/check_cputemp -m sensors -w 38 -c 45" >>/usr/local/nagios/etc/nrpe.cfg





重新启动客户端nrpe服务

-w 表示警告值,-c表示关键(紧急)值,自行根据实际情况调整

注意:以上六步均在被监控机上完成。





在客户端测试是否ok,虚拟机测试不成功,需要在物理机上实现

# /usr/local/nagios/libexec/check_cputemp -m sensors -w 38 -c 45

The TEMPERATURE OK - The CPU's Temperature is 14 ℃ ! | 温度=14Celsius;38;45

服务端执行测试:

/usr/local/nagios/libexec/check_nrpe -H 192.168.8.93 -c check_cputemp



7、在Nagios服务端配置服务:

define service{

use             generic-service

host_name
需要被监控的hostname

service_description CPU Temperature

check_command check_nrpe!check_cputemp

}

保存后重启nagios服务

nagios系列(六)之nagios实现对服务器cpu温度的监控的更多相关文章

  1. nagios系列(四)之nagios主动方式监控tcp常用的80/3306等端口监控web/syncd/mysql及url服务

    nagios主动方式监控tcp服务web/syncd/mysql及url cd /usr/local/nagios/libexec/ [root@node4 libexec]# ./check_tcp ...

  2. nagios系列(五)之nagios图形显示的配置及自定义插件检测密码是否修改详解

    nagios图形显示的配置 在服务端安装相关软件 #1.图形显示管理的依赖库 yum install cairo pango zlib zlib-devel freetype freetype-dev ...

  3. nagios系列(三)之nagios被动监控模式之添加系统负载load、swap、磁盘iostat及memory内存监控详解

    环境: nagios server:192.168.8.42 host_name:node4.chinasoft.com nagios client:192.168.8.41 host_name:no ...

  4. nagios系列(八)之nagios通过nsclient监控windows主机

    nagios通过nsclient监控windows主机 1.下载NSClient -0.3.8-Win32.rar安装在需要被监控的windows主机中 可以设置密码,此处密码留空 2.通过在nagi ...

  5. nagios系列(二)之nagios客户端的安装及配置

    1.添加nagios用户 echo "------ step 1: add nagios user------" #create user group /usr/sbin/user ...

  6. Nagios系列1,选择

    Zabbix和Nagios哪个更好 zabbix: 1.分布式监控,适合于构建分布式监控系统,具有node,proxy 2种分布式模式 2.自动化功能,自动发现,自动注册主机,自动添加模板,自动添加分 ...

  7. Nagios学习笔记二:Nagios概述

    1.简介 Nagios是插件式的结构,它本身没有任何监控功能,所有的监控都是通过插件进行的,因此其是高度模块化和富于弹性的.Nagios监控的对象可分为两类:主机和服务.主机通常指的是物理主机,如服务 ...

  8. Nagios详解(基础、安装、配置文件解析及监控实例)

    一.Nagios基础 1.简介Nagios是一款开源网络监视工具.可监控网络服务(SMTP.POP3.HTTP.NNTP.ICMP.SNMP.FTP.SSH.PING---).监控主机资源.根据需求设 ...

  9. Netty4.x中文教程系列(六) 从头开始Bootstrap

    Netty4.x中文教程系列(六) 从头开始Bootstrap 其实自从中文教程系列(五)一直不知道自己到底想些什么.加上忙着工作上出现了一些问题.本来想就这么放弃维护了.没想到有朋友和我说百度搜索推 ...

随机推荐

  1. 解决centos6.5不能识别NTFS格式的移动硬盘或U盘问题

    0.说明 从windows8拷了一些东西到移动硬盘,然后转到新安装的centos6.5系统上,但是插上移动硬盘的时候发现不能识别,无法正常挂载移动硬盘.到网上一搜,发现原来centos系统默认不识别N ...

  2. 百度地图infoWindow圆角处理

    最近的一个项目用到了百度地图API里边的infoWindow弹框,但是百度自带的infoWindow弹框是个直角的矩形框,显示过于难看,于是有了将该框改为圆角的想法,但是API本身不支持样式的设置,所 ...

  3. ~/.ssh/config 配置格式

    Host server1 HostName server1.cyberciti.biz User nixcraft Port 4242 IdentityFile /nfs/shared/users/n ...

  4. C#面向对象设计的七大原则

    本文我们要谈的七大原则,即:单一职责,里氏替换,迪米特法则,依赖倒转,接口隔离,合成/聚合原则,开放-封闭 . 1.   开闭原则(Open-Closed Principle, OCP) 定义:软件实 ...

  5. 决策树--信息增益,信息增益比,Geni指数的理解

    决策树 是表示基于特征对实例进行分类的树形结构       从给定的训练数据集中,依据特征选择的准则,递归的选择最优划分特征,并根据此特征将训练数据进行分割,使得各子数据集有一个最好的分类的过程.   ...

  6. generator详解

    generator函数 yield可以返回值,也可以传入值 形式: 注意!generator不能写成arrow function的形式!!! function *函数(){ 代码1... let a ...

  7. excel自动化翻译2

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  8. CF786B Legacy && 线段树优化连边

    线段树优化连边 要求点 \(x\) 向区间 \([L, R]\) 连边, 一次的复杂度上限为 \(O(n)\) 然后弄成线段树的结构 先父子连边边权为 \(0\) 这样连边就只需要连父亲就可以等效于连 ...

  9. 学习windows编程 day4 之 盯裆猫

    写着写着就困了.... 看这些测量数据就算了,是对各种函数的练习 #include <windows.h> LRESULT CALLBACK WndProc(HWND hwnd, UINT ...

  10. Html-Css 从入门到放弃(一)基础知识

    注意要点: 1.ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用. 2.class 选择器用于描述一组元素的样式,class 选择器有别于id选择器,clas ...