nsqadmin 是一个 Web UI,用于实时查看聚合的集群统计信息并执行各种管理任务。
-acl-http-header string
用于检查已认证管理员用户的 HTTP 标头(默认为 "X-Forwarded-User")
-admin-user value
管理员用户(可多次指定;如果指定,则只有这些用户能够执行特权操作;acl-http-header 用于确定已认证用户)
-allow-config-from-cidr string
允许从该 CIDR 发送 HTTP 请求到 /config 端点的范围(默认为 "127.0.0.1/8")
-base-path string
URL 基础路径(默认为 "/")
-config string
配置文件路径
-graphite-url string
graphite HTTP 地址
-http-address string
监听 HTTP 客户端的 <addr>:<port>(默认为 "0.0.0.0:4171")
-http-client-connect-timeout duration
HTTP 连接超时(默认为 2s)
-http-client-request-timeout duration
HTTP 请求超时(默认为 5s)
-http-client-tls-cert string
HTTP 客户端的证书文件路径
-http-client-tls-insecure-skip-verify
配置 HTTP 客户端跳过 TLS 证书验证
-http-client-tls-key string
HTTP 客户端的密钥文件路径
-http-client-tls-root-ca-file string
HTTP 客户端的 CA 文件路径
-log-level value
设置日志详细程度:debug、info、warn、error 或 fatal(默认为 INFO)
-log-prefix string
日志消息前缀(默认为 "[nsqadmin] ")
-lookupd-http-address value
lookupd HTTP 地址(可多次指定)
-notification-http-endpoint string
发送管理员操作 POST 通知的 HTTP 端点(完全限定)
-nsqd-http-address value
nsqd HTTP 地址(可多次指定)
-proxy-graphite
代理到 graphite 的 HTTP 请求
-statsd-counter-format string
statsd 实现的计数器统计键格式。如果不需要格式化,请设置为空字符串。(默认为 "stats.counters.%s.count")
-statsd-gauge-format string
statsd 实现的仪表统计键格式。如果不需要格式化,请设置为空字符串。(默认为 "stats.gauges.%s")
-statsd-interval duration
nsqd 配置为推送到 statsd 的时间间隔(必须与 nsqd 匹配)(默认为 1m0s)
-statsd-prefix string
发送到 statsd 的键前缀(%s 用于主机替换,必须与 nsqd 匹配)(默认为 "nsq.%s")
-verbose
[已弃用] 无效果,请使用 --log-level
-version
打印版本字符串
在使用 nsqd --statsd-address=... 时,您可以指定 nsqadmin --graphite-url=https://graphite.yourdomain.com 来在 nsqadmin 中启用 graphite 图表。如果使用不添加键前缀的 statsd 克隆(如 statsdaemon),还需指定 --use-statsd-prefix=false。
如果设置了 --notification-http-endpoint 标志,nsqadmin 将在每次执行管理员操作(如暂停通道)时,向指定的(完全限定)端点发送 POST 请求。
请求主体包含有关操作的信息(某些字段在适当情况下将被省略),如下所示:
{
"action": "unpause_channel",
"channel": "mouth",
"topic": "beer",
"timestamp": 1357683731,
"user": "df",
"user_agent": "Mozilla/5.0 (Macintosh; Iphone 8)",
"remote_ip": "1.2.3.4:5678",
"url": "http://nsqadmin.local/api/topics/api_requests/nsq_to_file",
"via": "localhost"
}如果请求到 nsqadmin 中包含 HTTP Basic Authentication 用户名,则 user 字段将被填充,例如在使用 htpasswd 认证或位于 oauth2_proxy 后面时。
提示:您可以通过将 --notification-http-endpoint 设置为指向 nsqd HTTP Publish API 的地址,使用主题名称 admin_actions 创建 NSQ 管理员操作通知流。例如,如果在同一节点上运行 nsqd,您可以使用 --notification-http-endpoint="http://127.0.0.1:4151/put?topic=admin_actions"。
社区贡献的实用工具 nsqadmin2slack 和 nsqadmin2hipchat 可分别将消息中继到 HipChat 和 Slack。
捕获的操作包括:
create_channelcreate_topicdelete_channeldelete_topicempty_channelempty_topicpause_channelpause_topictombstone_topic_producerunpause_channelunpause_topic以下指标通过 nsqadmin 在主题、通道和客户端连接上暴露。
Depth:内存中 + 磁盘上的当前消息总和(即等待交付的消息“积压”)。In-Flight:已交付但尚未完成(FIN)、重新入队(REQ)或超时的当前消息计数。Deferred:已重新入队并明确延迟、尚未可交付的当前消息计数。Requeued:由于超时或明确重新入队而将消息添加回队列的总次数。Timed Out:在配置超时前未收到客户端响应的消息重新入队总次数。Messages:自节点启动以来接收的新消息总计数。Rate:前两个 statsd 间隔内新消息的每秒速率(仅在启用 graphite 集成时可用)。Connections:当前连接的客户端数量。Delivery:在每个拓扑类别(zoneLocal、regionLocal、global)中交付给消费者的消息,按主机生命周期的百分比(仅在 nsqd 中启用 topology-aware-consumption 实验且消息 > 0 时可用)Client Host:客户端 ID(主机名),悬停时显示连接远程地址。Protocol:NSQ 协议版本和客户端用户代理。Attributes:TLS 和 AUTH 连接状态,与 nsqd 主机相关的拓扑类别(zoneLocal、regionLocal、global)。NSQd Host:此客户端连接到的 nsqd 节点地址。In-flight:已交付给此客户端并等待响应的当前消息计数。Ready Count:此连接上可处于飞行中的最大消息数。这由客户端的 max_in_flight 设置控制。Finished:此客户端已完成(FIN)的消息总计数。Requeued:此客户端已重新入队(REQ)的消息总计数。Messages:交付给此客户端的消息总计数。如果为 nsqd 主机启用了拓扑感知消费实验,则与 nsqd 主机相同区域的客户端连接将以绿色显示。与 nsqd 主机相同区域但不同区域的客户端连接将以黄色显示。