Nagios开发自定义插件check_netstat

前言

这几天学习了Nagios的plugin写法,先写了个简单的例子: 相似主机netstat命令的监控,能够监控连接的数量.
ios

学习笔记,以备查阅git

@Author  duangrshell

@Website http://my.oschina.net/duangr/blog/185080app

1. plugin机制

nagios的插件都部署在 ${nagios_home}/libexec 路径下面,能够发现下面有不少的可执行脚本
ide

也能够开发本身的脚本文件,只要返回码符合以下要求便可:学习

# declare return code
RTN_OK=0
RTN_WARNING=1
RTN_CRITICAL=2
RTN_UNKNOWN=3

因为我对shell还算是了解一些,所以准备用shell来编写netstat的扩展插件.ui

2. 代码获取

http://git.oschina.net/duangr/duangr-nagios-plugin
this

代码放在 Git@OSC 上面了,以前对git不太了解,又先学习了半天.
spa

3. 功能介绍

check_netstat

简要思路:.net

netstat 命令能够监控主机的连接状况,所以对netstat的结果列表 增长 端口、状态 的过滤, 并将过滤后的数量统计出来.

命令中对结果数量能够定制WARNING和CRITICAL的报警阈值,而且参考了check_procs的范围阈值定义的思路.


check_netstat 1.0 @duangr

Checks all network connects and generates WARNING or CRITICAL states if the specified
metric is outside the required threshold ranges. The metric defaults to number
of connects.  Search filters can be applied to limit the connects to check.

Usage: check_netstat -w limit -c limit [-p Port] [-s State]

Options:
 -h, --help
    Print detailed help screen
 -V, --version
    Print version information
 -w
    Generate warning state if metric is outside this range
 -c
    Generate critical state if metric is outside this range
 -p
    Port Num for filtering
 -s
    State for filtering (e.g. ESTABLISHED LISTEN TIME_WAIT)

Examples:
 check_netstat -w 2 -c 4 -p 22 -s ESTABLISHED
   Critical if > 4 ESTABLISHED connects with port 22
   Warning  if > 2 ESTABLISHED connects with port 22

 check_netstat -w 2:10 -c :20 -p 80 -s ESTABLISHED
   Critical if > 20 ESTABLISHED connects with port 80
   Warning  if < 2 or > 10 ESTABLISHED connects with port 80

 check_netstat -c 1:1 -p 80 -s LISTEN
   Critical if not one LISTEN connects with port 80

4.相关连接

相关文章
相关标签/搜索