原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://dgd2010.blog.51cto.com/1539422/1684266
-
human readable format 适合人阅读的格式
-
区分依赖模块和总体状态
-
每一个模块带有一个code(返回值)和一个msg(代表含义),这是便于Zabbix报警的核心设计,code用来作为触发器(Trigger)报警条件,msg作为触发器名称,也是短信报警的实际内容之一
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
{
"errcode"
:
"0"
,
"errmsg"
: {
"requirement1"
: {
"code"
:
"0"
,
"msg"
:
"requirement1 Ok"
},
"requirement2"
: {
"code"
:
"0"
,
"msg"
:
"requirement2 Ok"
},
"totalstatus"
: {
"code"
:
"0"
,
"msg"
:
"totalstatus Ok"
}
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
{
"errcode"
:
"1"
,
"errmsg"
: {
"requirement1"
: {
"code"
:
"0"
,
"msg"
:
"requirement1 Ok"
},
"requirement2"
: {
"code"
:
"1"
,
"msg"
:
"requirement2 Failed"
},
"totalstatus"
: {
"code"
:
"1"
,
"msg"
:
"totalstatus Failed"
}
}
}
|
-
通过POST方式提交数据(而不是使用GET),如果有多个参数,则用“&”连接起来,post提交的数据相当于一种口令,而避免搜索引擎或爬虫搜索到或被恶意利用
-
合理设置curl的超时时间,并启用silent模式,防止curl输出一些没用的信息,甚至可以与2>/dev/null连用,参见下面的例子
1
|
curl -m 10 --connect-timeout 10 -s -d
"getcode=secret"
http:
//servername/url/api
2>
/dev/null
|
1
2
|
cat
name.json | jq
'.errmsg.requirement1.code'
|
awk
'{print int($2)}'
cat
test
.json | jq
'.errmsg.requirement1.code'
|
awk
-F
'"'
'{print $2}'
|