创建您的Checkup配置
您可以使用一个简单的JSON文档完全配置Checkup。您应该配置存储和至少一个检查器。基本概要如下:

{
“ checkers”:[
//检查器配置转到此处
] ,

“ storage”:{
    //存储配置在此处
} ,

“ notifiers”:[
    //通知程序配置在这里
]

}
将检查配置文件另存为checkup.json您的工作目录中。

我们将在下面显示JSON示例,以帮助您入门。但是,请参阅godoc,以获取有关可配置的每种类型的检查程序,存储和通知程序的全面说明!

这是您可以使用的配置结构,在godoc中有完整的说明。仅显示必填字段,因此请查阅godoc以获取更多信息。

HTTP检查器
godoc:检查/ http

{
“ type”:“ http” ,
“ endpoint_name”:“示例HTTP” ,
“ endpoint_url”:“ http://www.example.com”
// //有关更多字段,请参见godoc
}
TCP检查器
godoc:检查/ tcp

{
“ type”:“ tcp” ,
“ endpoint_name”:“示例TCP” ,
“ endpoint_url”:“ example.com:80”
}
DNS检查器
godoc:检查/ dns

{
“ type”:“ dns” ,
“ endpoint_name”:“ endpoint_url查找host.example.com的示例” ,
“ endpoint_url”:“ ns.example.com:53” ,
“ hostname_fqdn”:“ host.example.com “
}
TLS检查器
godoc:检查/ tls

{
“ type”:“ tls” ,
“ endpoint_name”:“示例TLS协议检查” ,
“ endpoint_url”:“ www.example.com:443”
}
执行检查器
godoc:检查/执行

exec检查器可以运行任何命令,并在成功时期望零值退出代码。非零退出代码被视为错误。"raise":"warning"如果希望将失败的服务视为已降级,则可以配置检查。上面的godoc链接上提供了其他选项。

{
“ type”:“ exec” ,
“ name”:“ Example Exec Check” ,
“ command”:“ testdata / exec.sh”
}
Amazon S3存储
godoc:S3

{
“ type”:“ s3” ,
“ access_key_id”:“ ” ,
“ secret_access_key”:“ ” ,
“ bucket”:“ ” ,
“ region”:“ us-east-1”
}
提供文件从S3的状态页面,复制statuspage/config_s3.js了statuspage/config.js,并填写所需的公共,只读凭据。

文件系统存储
godoc:FS

{
“ type”:“ fs” ,
“ dir”:“ / path / to / your / check_files”
}
GitHub存储
godoc:GitHub

{
“ type”:“ github” ,
“ access_token”:“ some_api_access_token_with_repo_scope” ,
“ repository_owner”:“ owner” ,
“ repository_name”:“ repo” ,
“ committer_name”:“ Commiter Name” ,
“ committer_email”:“ you @ example .com” ,
“ branch”:“ gh-pages” ,
“ dir”:“ updates”
}
其中“ dir”是存储库中的子目录,用于推送所有检查文件。设置说明:

创建一个存储库,
statuspage/将此存储库中的内容复制到新存储库的根目录中,
将中的网址更新config.js为https://your-username.github.com/dir/,
创建updates/.gitkeep,
在设置中为所需分支启用GitHub Pages。
MySQL存储
godoc:存储/ mysql

可以将MySQL数据库配置为存储后端。

配置示例:

{
“ type”:“ mysql” ,
“ create”:true ,
“ dsn”:“ checkup:checkup @ tcp(mysql-checkup-db:3306)/ checkup”
}
如果create设置为true,则核对将发出CREATE TABLE存储所需的语句。

SQLite3存储(需要构建CGO,默认情况下不可用)
godoc:存储/ sqlite3

可以将SQLite3数据库配置为存储后端。

配置示例:

{
“ type”:“ sqlite3” ,
“ create”:true ,
“ dsn”:“ /path/to/your/sqlite.db”
}
如果create设置为true,则核对将发出CREATE TABLE存储所需的语句。

PostgreSQL存储
godoc:存储/ postgres

PostgreSQL数据库可以配置为存储后端。

配置示例:

{
“ type”:“ postgres” ,
“ dsn”:“主机= postgres-checkup-db用户= checkup密码= checkup dbname = checkup sslmode =禁用”
}
如果create设置为true,则核对将发出CREATE TABLE存储所需的语句。

Azure应用程序见解存储
godoc:appinsights

Azure Application Insights可用作存储后端,从而使Checkup可用作自定义可用性测试和指标的来源。这里记录了一个示例用例。

启用重试的示例存储配置:

{
“类型”:“appinsights” ,
“test_location” : “数据中心1” ,
“instrumentation_key” :“11111111-1111-1111-1111-111111111111” ,
“retry_interval的”:1 ,
“MAX_RETRIES” :3 ,
“标签”:{
“服务”:“前端” ,
“产品”:“主网络应用”
}
}
以下键是可选的:

test_location(默认为Checkup Monitor)
retry_interval (默认为0)
max_retries (默认为0)
timeout (如果省略则默认为2秒,或设置为0)
tags
如果禁用了重试,则插件将等待timeout数秒以提交遥测,然后再关闭。

将检查结果发送到Application Insights后,记录的遥测中将包含以下值:

success设置为1检查是否通过,0否则
message被设置为Up,Down,或Degraded
duration 设置为所有检查结果往返时间的平均值,并以毫秒为单位显示为字符串
customMeasurements 设置为JSON对象,包括以字符串形式显示的支票号和以纳秒为单位的支票往返时间
如果检查包括一个threshold_rtt设置,它将被添加到customDimensionsJSON对象作为键ThresholdRTT与一个持续时间字符串值(即:200ms)
如果存储配置中包含任何标签,它们将被添加到customDimensionsJSON对象
当前状态页不支持Application Insights存储。

通知者松弛
使用以下通告程序配置在Slack中启用通知:

{
“ type”:“ slack” ,
“ username”:“ username” ,
“ channel”:“#channel-name” ,
“ webhook”:“ webhook-url”
}
请按照以下说明创建一个Webhook。

邮件通知者
使用此通知程序配置启用电子邮件通知:

{
“ type”:“ mail” ,
“ from”:“ [email protected]” ,
“ to”:[ “ [email protected]” , “ [email protected]” ] ,
“主题”:“自定义主题行” ,
“ smtp”:{
“服务器”:“ smtp.example.com” ,
“端口”:25 ,
“用户名”:“用户名” ,
“密码”:“密码”
}
}
对于设置subject,smtp.port(默认为25),smtp.username并且smtp.password是可选的。

Mailgun通知程序
使用Mailgun将此通知程序配置启用通知:

{
“ type”:“ mailgun” ,
“ from”:“ [email protected]” ,
“ to”:[ “ [email protected]” , “ [email protected]” ] ,
“主题”:“自定义主题line“
” apikey“:” mailgun-api-key“ ,
” domain“:” mailgun-domain“ ,
}
推送通知器
使用带有此通知程序配置的Pushover启用通知:

{
“ type”:“ pushover” ,
“ token”:“ API_TOKEN” ,
“ recipient”:“ USER_KEY”
“ subject”:“自定义主题行”
}
在S3上设置存储
最简单的方法是为IAM用户赋予这两个特权(保留凭据秘密):

arn:aws:iam :: aws:policy / IAMFullAccess
arn:aws:iam :: aws:policy / AmazonS3FullAccess
隐式配置
如果您将这些权限授予与上述JSON配置中的凭据相同的用户,则可以简单地运行:

$体检规定
然后体检将读取配置文件并为您配置S3。如果用户不同,则可能要使用显式配置。

该命令创建一个对S3具有只读权限的新IAM用户,并且还为您的检查文件创建一个新存储桶。新用户的凭据将打印到您的屏幕上。记下公共访问密钥ID和公共访问密钥!您将无法再看到它们。

重要安全性注意:此新IAM用户将对您的AWS账户中的所有S3存储桶具有只读权限,并且其凭证将对您的状态页面的所有访问者可见。如果您不想授予访问状态页的访问者对所有S3存储桶的读取权限,则需要修改此IAM用户的权限,以限制其对Checkup存储桶的访问权限。如有疑问,请将访问权限页面限制为受信任的访问者。建议您不要在运行Checkup的计算机上包括任何敏感凭据。

显式置备
如果您不希望使用checkup.json文件进行隐式配置,请执行此操作。将信息导出到环境变量并运行配置命令:

$ export AWS_ACCESS_KEY_ID = …
$ export AWS_SECRET_ACCESS_KEY = …
$ export AWS_BUCKET_NAME = …
$体检规定s3
手动配置
如果您希望手动执行此操作,请参阅Wiki上的说明,但请记住该区域必须是US Standard。

体检状态页面
Checkup现在具有一个本地HTTP服务器,该服务器支持存储在以下位置的服务检查:

FS(本地文件系统存储),
的MySQL
PostgreSQL的
SQLite3(默认情况下未启用)
您可以checkup serve从包含checkup.json 和的statuspage/文件夹中运行。

设置GitHub的状态页面
您将需要编辑`

设置S3的状态页
在statuspage / js中,使用config_s3.js的内容来填写config.js,该文件将由状态页使用。在这里,您可以指定如何访问刚刚为检查文件配置的S3存储桶。

执行检查时,状态页面会经常更新并显示最新结果。仅存储的支票将显示在状态页面上。

执行检查
您可以通过多种方式运行检查:cron,AWS Lambda或您自己的Go程序中的time.Ticker,仅举几例。检查应定期进行。运行检查的频率取决于您的要求以及在状态页上呈现的时间。

例如,如果您每10分钟运行一次检查,则在状态页上显示最近24小时将要求在每次加载页面时下载144个检查文件。您可以分发检查以帮助避免本地化的网络问题,但这会将文件数乘以运行检查的节点数,因此请记住这一点。

使用checkup命令执行检查非常容易。

只需cd移至checkup.json先前的文件夹,体检将自动使用它:

$体检
vanilla checkup命令运行一次检查并将结果打印到屏幕上,但不会将其保存到状态页的存储中。

要存储结果,请使用--store:

$ checkup --store
如果要让Checkup永久循环并执行检查并定期存储检查,请使用以下命令:

$每10m进行检查
并根据自己的喜好替换持续时间。除了常规的time.ParseDuration()格式,你可以使用快捷键一样second,minute,hour,day,或week。

使用-h任何命令或子命令的选项,您还可以获得一些帮助。