您的位置:首页 > 理论基础 > 计算机网络

nagios自带插件check_http详解及用法实例

2012-12-06 15:13 633 查看

作用:

检测指定主机上的http服务,可以是http或者https,可以重定向,查找字符串,正则表达式,检测链接次数,证书过期时间。

用法:

check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>]
[-w <warn time>] [-c <critical time>] [-t <timeout>] [-L] [-a auth]
[-b proxy_auth] [-f <ok|warning|critcal|follow|sticky|stickyport>]
[-e <expect>] [-s string] [-l] [-r <regex> | -R <case-insensitive regex>]
[-P string] [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>]
[-A string] [-k string] [-S] [--sni] [-C <age>] [-T <content-type>]
[-j method]

选项:

-H 和-I 必须指定一个或者两个都写
-h, --help
显示帮助信息
-V, --version
打印版本信息
-H, --hostname=ADDRESS
主机名,支持虚拟主机,也可以添加端口。
-I, --IP-address=ADDRESS
使用IP地址或者名字(直接使用数字的IP可以不适用dns解析)

-p, --port=INTEGER
Port number (default: 80)
检测端口,默认是80

-4, --use-ipv4
-6, --use-ipv6
使用ipv4或者ipv6连接
-S, --ssl
通过ssl链接
--sni
启用SSL/TLS支持主机名扩展
-C, --certificate=INTEGER
证书有效地时间

-e, --expect=STRING
用“,”分割的字符串列表,预期至少有一个出现在服务响应的第一列。
服务器响应的第一行:是状态行,由协议版本,数字状态码,和相关的原因文本短语组成。

-s, --string=STRING
在返回的页面中出现的字符串

-u, --url=PATH
访问资源的路径,默认是/

-P, --post=STRING
URL encoded http POST data
URL编码的http post 数据

-j, --method=STRING (for example: HEAD, OPTIONS, TRACE, PUT, DELETE)
设置http方法,例如:OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT.

-N, --no-body
只读取文件头部

-M, --max-age=SECONDS
文档过期时间

-T, --content-type=STRING
指定POST数据的内容类型的头部媒体类型
Content-Type指定了下层数据的媒体类型
-l, --linespan
允许正则表达式跨行 必须在-R或者-r前面

-r, --regex, --ereg=STRING
对正则表达式字符串搜索页面

-R, --eregi=STRING
对于不区分大小写的搜索页面的正则表达式的字符串

--invert-regex
如果搜索到就返回critical,如果没有就返回OK,和-r/-R结合。不可以和-s结合使用。
-a, --authorization=AUTH_PAIR
用户名密码 基于网站的基本认证

-b, --proxy-authorization=AUTH_PAIR
代理服务器的用户名密码

-A, --useragent=STRING
在http头部发送的字符串,“用户代理”

-k, --header=STRING
Any other tags to be sent in http header. Use multiple times for additional headers
任何其他标记中被发送http头
-L, --link
包装输出html连接

-f, --onredirect=<ok|warning|critical|follow|sticky|stickyport>
如何处理重定向页面

-m, --pagesize=INTEGER<:INTEGER>
页面大小需要 最小:最大(单位:bytes)

-w, --warning=DOUBLE
告警响应时间

-c, --critical=DOUBLE
发送危险警告的响应时间

-t, --timeout=INTEGER
连接超时时间
-v, --verbose
显示命令行调试的细节,默认被nagios截断。
注意:
这个插件将试图打开一个HTTP连接的主机,成功连接则返回state_ok;拒绝或者连接超时,则返回STATE_CRITICAL,其他错误则返回STATE_UNKNOWN.成功连接,但是返回信息不正确则发送STATE_WARNING.如果访问一个虚拟主机服务,则需要在主机头使用全域名作为【host_name】。

实例:

1、-u测试页面 是否可以到开 可以用相对路径和绝对路径

-H -I 有一个就可以
相对路径
#./check_http -H www.****.com -u /url1/url2/index.html
绝对路径
#./check_http -H www.****.com -u http://www.****.com/url1/url2/index.html 端口,默认就是80
#./check_http -H www.****.com -p 80 -u http://www.****.com/url1/url2/index.html 使用数字IP
#./check_http -I xxx.xxx.xxx -u /url1/url2/index.html

2、加密传输 -S

# ./check_http -H "log.gw.com.cn" -S
Connection refused
HTTP CRITICAL - Unable to open TCP socket

3、测试服务器的http版本协议或者状态返回码 -e

# ./check_http -I 114.80.136.138 -k "HOST:log.gw.com.cn" -e "HTTP/1.1"
HTTP OK: Status line output matched "HTTP/1.1" - 3088 bytes in 0.206 second response time |time=0.205964s;;;0.000000 size=3088B;;;0
# ./check_http -I 114.80.136.138 -k "HOST:log.gw.com.cn" -e "HTTP/1.0"
HTTP CRITICAL - Invalid HTTP response received from host: HTTP/1.1 200 OK

4、搜索返回的页面中的内容 -s

# ./check_http -I 114.80.136.138 -k "HOST:log.gw.com.cn" -s "Piwik"
HTTP OK: HTTP/1.1 200 OK - 3088 bytes in 0.196 second response time |time=0.196134s;;;0.000000 size=3088B;;;0
$ curl 114.80.136.138 -H "host:log.gw.com.cn" 显示的页面中出现的“Piwik”

5、以用户名密码访问一个需认证的页面 -a;

# ./check_http -I 10.15.62.38 -u /nagios/
HTTP WARNING: HTTP/1.1 401 Authorization Required - 726 bytes in 0.019 second response time |time=0.019393s;;;0.000000 size=726B;;;0
# ./check_http -I 10.15.62.38 -u /nagios/ -a nagiosadmin:nagios
HTTP OK: HTTP/1.1 200 OK - 917 bytes in 0.066 second response time |time=0.066009s;;;0.000000 size=917B;;;0

6、连接超时的时间 -t;

# ./check_http -I 10.15.62.38 -t 1
HTTP OK: HTTP/1.1 200 OK - 38056 bytes in 0.017 second response time |time=0.017460s;;;0.000000 size=38056B;;;0

7、定义warning和critical的告警阀值:-w和-c;

8、检测返回的页面大小 -m ;

# ./check_http -H "log.gw.com.cn" -I 114.80.136.151 -m 10:400
HTTP WARNING: HTTP/1.1 200 OK - page size 3128 too large - 3128 bytes in 0.223 second response time |time=0.223207s;;;0.000000 size=3128B;10;0;0
返回的页面是3128 bytes,超过了最大限制400,发出了报警。

9、检测证书是否过期 -C

#check_http -H www.verisign.com -C 14
证书过期时间大于14天 返回OK状态;证书还有0-14天过期,返回警告信息;证书已经过期,返回紧急状态。

10、设置返回的http的头部信息 -A

# ./check_http -H "log.gw.com.cn" -v
GET / HTTP/1.1
User-Agent: check_http/v1.4.16 (nagios-plugins 1.4.16)
Connection: close
Host: log.gw.com.cn
# ./check_http -H "log.gw.com.cn" -v -A "check_http"
GET / HTTP/1.1
User-Agent: check_http
Connection: close
Host: log.gw.com.cn

11、只显示头部信息,不显示页面信息。 -N

# ./check_http -H "log.gw.com.cn" -I 114.80.136.151 -N
HTTP OK: HTTP/1.1 200 OK - 1460 bytes in 0.219 second response time |time=0.218590s;;;0.000000 size=1460B;;;0
# ./check_http -H "log.gw.com.cn" -I 114.80.136.151
HTTP OK: HTTP/1.1 200 OK - 3128 bytes in 0.220 second response time |time=0.220288s;;;0.000000 size=3128B;;;0

12、检测文档修改时间 -M

# ./check_http -I 114.80.136.138 -k "HOST:log.gw.com.cn" -M 1
HTTP CRITICAL: HTTP/1.1 200 OK - Document modification date unknown - 3088 bytes in 0.197 second response time |time=0.196606s;;;0.000000 size=3088B;;;0 文档修改时间未知
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  check_http nagios