Solr配置:系统信息处理器API详解与监控指南

Solr配置:系统信息处理器API详解与监控指南

系统信息处理器API提供了与管理界面Dashboard相同的信息,是监控Solr系统状态的重要工具。

API访问地址

系统信息可通过两个不同的URL获取:

全局系统信息

1
http://localhost:8983/solr/admin/system

特定集合系统信息

1
http://localhost:8983/solr/<collection-name>/admin/system

两者的区别在于是否在结果中填充core键的信息。

响应字段详解

核心响应字段

mode

  • 类型:字符串
  • 值:solrcloudstd
  • 说明:指示Solr运行模式

lucene

  • 类型:对象
  • 说明:包含Solr和Lucene版本信息

jvm

  • 类型:对象
  • 说明:包含JVM相关信息

system

  • 类型:对象
  • 说明:系统信息

solr_home

  • 类型:字符串
  • 说明:Solr基础目录,仅在/solr/admin/system下可用

zkHost

  • 类型:字符串
  • 说明:Zookeeper主机地址(云模式下)

node

  • 类型:字符串
  • 说明:节点名称(云模式下)

core

  • 类型:对象
  • 说明:核心基础信息,仅在提供核心/集合名称时出现

Lucene和Solr信息对象

lucene键包含以下子字段:

lucene-spec-version

  • 说明:Lucene包的规范版本

lucene-impl-version

  • 说明:Lucene包的实现版本

solr-spec-version

  • 说明:Solr包的规范版本

solr-impl-version

  • 说明:Solr包的实现版本

JVM信息对象

jvm键包含以下重要字段:

version

  • 说明:JVM规范版本

name

  • 说明:JVM名称

memory

  • 类型:对象
  • 说明:内存使用信息
  • 包含字段:
    • free:可用内存
    • total:总内存
    • max:最大内存
    • used:已用内存及百分比

processors

  • 说明:处理器数量

jmx

  • 类型:对象
  • 说明:JMX相关信息
  • 包含字段:
    • classpath:类路径
    • commandLineArgs:命令行参数数组
    • startTime:启动时间
    • upTimeMS:运行时间(毫秒)

系统信息对象

system键包含以下字段:

name

  • 说明:操作系统名称

arch

  • 说明:系统架构

version

  • 说明:操作系统版本

availableProcessors

  • 说明:可用处理器数量

systemLoadAverage

  • 说明:系统负载平均值

内存相关字段

  • freePhysicalMemorySize:空闲物理内存
  • totalPhysicalMemorySize:总物理内存
  • freeSwapSpaceSize:空闲交换空间
  • totalSwapSpaceSize:总交换空间

CPU相关字段

  • processCpuLoad:进程CPU负载
  • systemCpuLoad:系统CPU负载
  • processCpuTime:进程CPU时间

文件描述符

  • maxFileDescriptorCount:最大文件描述符数
  • openFileDescriptorCount:打开的文件描述符数

uname

  • 说明:uname -a命令结果(Windows不可用)

uptime

  • 说明:uptime命令结果(Windows不可用)

Core信息对象

当提供核心/集合名称时,响应包含core对象:

schema

  • 说明:模式名称

host

  • 说明:主机名(如不可用则为null)

start

  • 说明:核心启动时间

now

  • 说明:核心主机当前时间

directory

  • 类型:对象
  • 说明:与核心相关的目录信息
  • 包含字段:
    • cwd:当前工作目录
    • instance:实例目录
    • data:数据目录
    • index:索引目录
    • dirimpl:目录实现类

API使用示例

云模式系统信息查询

1
curl http://localhost:8983/solr/admin/info/system

响应示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
"responseHeader": {
"status": 0,
"QTime": 13
},
"mode": "solrcloud",
"zkHost": "192.168.32.3:2181",
"solr_home": "/var/solr/data",
"lucene": {
"solr-spec-version": "9.9.0",
"solr-impl-version": "9.9.0 fcbe46c28cef11bc058779afba09521de1b19bef - ab - 2024-05-22 15:20:01",
"lucene-spec-version": "9.9.0",
"lucene-impl-version": "9.9.0 fcbe46c28cef11bc058779afba09521de1b19bef - ab - 2024-05-22 15:15:24"
},
"jvm": {
"version": "17.0.8 17.0.8+7",
"name": "Eclipse Adoptium OpenJDK 64-Bit Server VM",
"memory": {
"free": "396 MB",
"total": "512 MB",
"max": "512 MB",
"used": "116 MB (%22.7)"
},
"processors": 4
},
"system": {
"name": "Linux",
"arch": "amd64",
"availableProcessors": 4,
"systemLoadAverage": 0.92,
"totalPhysicalMemorySize": 4005376000,
"freePhysicalMemorySize": 117563392
},
"node": "172.17.0.4:8983_solr"
}

单机模式核心信息查询

1
curl http://localhost:8983/solr/gettingstarted/admin/system

响应示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{
"responseHeader": {
"status": 0,
"QTime": 23
},
"core": {
"schema": "default-config",
"host": "fd7fbdff8b3e",
"now": "2025-02-17T11:56:51.472Z",
"start": "2025-02-17T11:54:52.509Z",
"directory": {
"cwd": "/opt/solr/server",
"instance": "/var/solr/data/gettingstarted",
"data": "/var/solr/data/gettingstarted/data",
"index": "/var/solr/data/gettingstarted/data/index"
}
},
"mode": "std",
"lucene": {
"solr-spec-version": "9.9.0",
"solr-impl-version": "9.9.0 fcbe46c28cef11bc058779afba09521de1b19bef"
},
"jvm": {
"version": "17.0.8 17.0.8+7",
"memory": {
"free": "394.9 MB",
"total": "512 MB",
"max": "512 MB",
"used": "117.1 MB (%22.9)"
}
}
}

监控最佳实践

1. 内存监控

1
2
3
# 监控JVM内存使用率
curl -s http://localhost:8983/solr/admin/info/system | \
jq '.jvm.memory.raw."used%"'

2. 系统负载监控

1
2
3
# 检查系统负载
curl -s http://localhost:8983/solr/admin/info/system | \
jq '.system.systemLoadAverage'

3. 文件描述符监控

1
2
3
# 监控文件描述符使用情况
curl -s http://localhost:8983/solr/admin/info/system | \
jq '.system | {open: .openFileDescriptorCount, max: .maxFileDescriptorCount}'

4. 集群状态监控

1
2
3
# 检查集群模式和节点状态
curl -s http://localhost:8983/solr/admin/info/system | \
jq '{mode: .mode, node: .node, zkHost: .zkHost}'

监控告警建议

内存告警阈值

  • 内存使用率 > 80%:警告
  • 内存使用率 > 90%:严重

系统负载告警

  • 负载 > CPU核数:警告
  • 负载 > CPU核数 * 2:严重

文件描述符告警

  • 使用率 > 80%:警告
  • 使用率 > 90%:严重

与其他监控工具集成

Prometheus监控

1
2
3
4
5
6
7
# prometheus配置示例
scrape_configs:
- job_name: 'solr'
static_configs:
- targets: ['localhost:8983']
metrics_path: '/solr/admin/info/system'
scrape_interval: 30s

日志监控

结合系统信息API和日志分析,建立完整的监控体系。

故障排查应用

1. 性能问题诊断

通过JVM内存信息和系统负载,快速定位性能瓶颈。

2. 集群状态检查

在集群环境中,通过节点信息和ZooKeeper连接状态判断集群健康度。

3. 版本兼容性检查

通过Lucene和Solr版本信息,确保组件兼容性。

系统信息处理器API是Solr运维监控的重要工具,合理使用可以大大提升系统可观测性和运维效率。

© 2025 Solr Community of China All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero