一键创建nagios监控主机脚本

声明

作者:昨夜星辰

博客:http://yestreenstars.blog.51cto.com/

本文由本人创作,如需转载,请注明出处,谢谢合作!

目的

一键创建nagios监控主机脚本。

环境

OS: CentOS 6.6 64

配置

#!/bin/bash

# 脚本名称:一键创建nagios监控主机脚本
# 脚本描述:该脚本是用来自动创建nagios监控主机的,目前只适用于创建系统类型为Linux的监控主机,并只支持少量常用服务。
# 创建时间:2015-04-07
# 修改时间:2015-04-07

echo ‘请选择目标监控主机的操作系统类型:‘
select OS in Linux Windows
do
	case $OS in
		Linux)
			host_template=‘linux-server‘
			break
		;;
		Windows)
			host_template=‘windows-server‘
			break
		;;
		*)
			echo ‘无此类型!请重新输入!‘
		;;
	esac
done

while read -p ‘请输入目标监控主机的主机名:‘ host_name
do
	if [ -n "$host_name" ]; then
		break
	fi
	echo ‘主机名不能为空!请重新输入!‘
done

read -p ‘请输入该主机的别名(为空则与主机名相同):‘ alias
if [ -z $alias ]; then
	alias=$host_name
fi

while read -p ‘请输入目标监控主机的IP地址:‘ address
do
	if [ -n "$address" ]; then
		break
	fi
	echo ‘IP地址不能为空!请重新输入!‘
done

echo "cfg_file=/usr/local/nagios/etc/objects/$address.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "define host{
	use			$host_template
	host_name		$host_name
	alias			$alias
	address			$address
}" > /usr/local/nagios/etc/objects/$address.cfg

head="
define service{
	use			generic-service
	host_name		$host_name"
tail="}"
services[1]="
	service_description	PING
	check_command		check_ping!100.0,20%!500.0,60%
"
services[2]="
	service_description	Root Partition
	check_command		check_local_disk!20%!10%!/
"
services[3]="
	service_description	Current Users
	check_command		check_local_users!20!50
"
services[4]="
	service_description	Total Processes
	check_command		check_local_procs!250!400!RSZDT
"
services[5]="
	service_description	Current Load
	check_command		check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
"
services[6]="
	service_description	Swap Usage
	check_command		check_local_swap!20!10
"
services[7]="
	service_description	SSH
	check_command		check_ssh
"
services[8]="
	service_description	HTTP
	check_command		check_http
"

echo ‘1)PING
2)Root Partition
3)Current Users
4)Total Processes
5)Current Load
6)Swap Usage
7)SSH
8)HTTP‘
echo ‘请根据实际需求选择一种方式输入:
一、如果你只需监控一种服务,那么你只需输入该服务对应的序号即可;
二、如果你需要监控的服务比较多,那么你可以用逗号将它们分隔(比如1,3,5);
三、如果你需要监控的服务比较多,并且它们的序号是连续的,那么你可以用破折号连接起始序号和终止序号(比如1-3);
四、如果你需要监控的服务比较多,并且有些服务的序号是连续的,有些是不连续的,那么你可以混合使用逗号和破折号(比如1,3,5-7,9)。‘
while read -p ‘请选择需要监控的服务:‘ choose
do
	if [ -n "$choose" ]; then
		choose=$(awk -F, ‘{for(i=0;i++<NF;){if($i~/-/){split($i,a,/-/);for(j=a[1];j<=a[2];j++)print j;continue}print $i}}‘ <<< $choose)
		for no in ${choose[@]}
		do
			echo "$head${services[$no]}$tail" >> /usr/local/nagios/etc/objects/$address.cfg
		done
		break
	fi
	echo ‘你没有输入服务的序号,请重新输入!‘
done
时间: 2024-10-27 16:46:13

一键创建nagios监控主机脚本的相关文章

编写shell脚本实现一键创建KVM虚拟机

shell脚本一键创建虚拟机 代码如下: #!/bin/bashname=$1 #把位置变量$1重新定义为name(创建虚拟机的名字)path1=/var/lib/libvirt/images/ #img存放路径path2=/etc/libvirt/qemu/ #xml文件存放路径function createkvm { #将创建虚拟机的命令定义为createkvm函数 qemu-img create -f qcow2 -b ${path1}jrjs.img ${path1}${name}.im

nagios监控主机显示down,监控的服务却正常

迁移nagios监控遇到这个问题:nagios监控主机显示down,监控的服务却正常. 查询很多资料都说是服务器禁用所有PING导致: 查看了下新服务器的防火墙配置情况下:端口5666正常:监控服务器check_nrpe脚本也可以正常使用 一直没找出问题就放了一段时间,后来 查看nagios的日志发现报错内容 干脆直接用check_ping去试,结果: 报错提示-bash: /usr/local/nagios/libexec/check_ping: /lib/ld-linux.so.2: bad

一键系统优化15项脚本,适用于Centos6.x

1 #!/bin/sh 2 ################################################ 3 #Author:nulige 4 # qqinfo:1034611705 5 # Date: 2015-6-8 6 #version:1.2 7 #实现功能:一键系统优化15项脚本,适用于Centos6.x 8 ################################################ 9 10 #Source function library.

自定义 nagios监控脚本

一. 自定义nagios监控脚本 1. 在客户端上创建脚本/usr/local/nagios/libexec/check_disk.sh   :就是监控脚本要在客户端vim  /usr/local/nagios/libexec/check_disk.sh 写入如下内容:(client上)#!/bin/bash#!/bin/bashrow=`df -h |wc -l`for i in `seq 2 $row`do        ava=`df -h |sed -n "$i"p|awk '

修改SNMP端口并利用snmpwalk测试,nagios监控,脚本读取后筛选出磁盘占用空间的值

############################################################插入一个信息Handy.sh里,Linux下如果要根据read到的nl序号筛选出目录名.需要用以下表达式:folder_name=ls -l "$DIR" | awk -F" " '{ print $9 }' | grep -v Handy.sh | nl | grep '\ '"$REPLY"$'\t' | a<br/&

通过collectd工具获取虚拟机的nagios监控脚本简单例子

在宿主机上安装collectd工具后,可以通过collectd工具来获取宿主机上的虚拟机的cpu,memery,if-traffic等数据.可以通过nagios监控脚本来实现对这些数据监控. 以下是一个简单的监控虚拟机内存脚本: #!/bin/bash #Desc:to check memory about vm instance STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 COLLECTD_HOME=/usr/loca

基于catalog 创建RMAN存储脚本

--============================== -- 基于catalog 创建RMAN存储脚本 --============================== 简言之,将rman的备份恢复命令写成脚本并保存在恢复目录内,恢复目录内的脚本可用性及通用性高于基于文件系统的脚本. 客户端只要能够登录到RMAN恢复目录,则这些脚本可用,尤其对于global脚本,可以被任意注册的数据库调度. 一.脚本的分类 local : 在rman连接的目标数据库下创建的脚本,此类脚本仅仅适用于当前

[工具开发] 把nagios监控脚本改成keepalived监控脚本

最近在做开发和办公环境的高可用,采用的是keepalived:keepalived基于Linux内核支持的LVS,既能实现高可用,又能实现负载均衡,非常实用. keepalived监控服务状态时可以用多种方式,如:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK(自定义脚本方式),为了精确的监控服务的状态,我们需要编写自定义监控脚本. 目前很多公司都会部署nagios作为服务的监控平台,nagios也需要监控脚本或者程序,如果keepalived监

使用 PHP + shell 生成 一键设置权限的脚本。

linux 系统 支持PHP脚本一键设置环境.shell脚本一键设置环境.那么 我今天 使用 PHP  + shell 生成 一键设置权限的脚本. 举例子:linux服务器 一键配置discuz网站环境权限 在linux服务器上 安装网站.最主要的是权限问题.(随话说 linux 系统较安全) 1. 第一次安装discuzX3.1论坛程序 2. 会出现以上的情况,那你是一个一个 chmod 777 文件/目录  还是使用脚本.一键搞定?3. linux 系统 支持PHP脚本一键设置环境.shel