0

我们可以通过哪些方式监控 OpenGrok,包括使用情况和特定搜索?是否有任何内置系统或可以作为扩展添加的系统?

我们在 Intranet 上运行 OpenGrok,但我们无法了解它的使用方式和使用量。

安装

目前 OpenGrok 正在通过 puppet 管道安装。

class opengrok {
  package {[
    'opengrok-tomcat',
    'ctags',
  ]

...

file { '/usr/share/tomcat8/webapps/opengrok-1.0':
  ensure  => directory,
  owner   => 'root',
  group   => 'root',
  mode    => '0755',
}

有哪些方法可以监控 OpenGrok,包括使用情况和特定搜索和/或更多?

初步想法:

1)在opengrok前面添加一个代理转发端点来记录“命中”并将其发送到一些数据库存储。这不会跟踪 opengrok 的低级别使用(即搜索查询),只是命中。

2)以某种方式启用tomcat日志并解析日志?我不确定我会从日志中获得多少信息,并且可能会涉及解析。然后将此信息发送到某个数据库存储。

4

2 回答 2

1

我们将 Nginx 用作 OpenGrok 的代理服务器,因此我们将所有 OpenGrok 搜索记录在 /var/log/nginx/access.log* 文件中,您可以在其中获得很多信息,例如,以下内容:

COMPUTER-IP - USER [27/Sep/2018:10:17:30 -0300] "GET /xxxxx/search?project=sandbox_helloworld%28master%29&q=This+is+a+test&defs=&refs=&path=&hist=&type=sh HTTP/1.1" 200 3345 "https://OPENGROK-SERVER/xxxxx/search?project=sandbox_helloworld%28master%29&q=This+is+a+test&defs=&refs=&path=&hist=&type=" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
于 2018-09-27T13:21:20.593 回答
0

最近的 OpenGrok 版本具有监控功能,可以提供高级别的(即不是每个用户或项目)概览。具体来说,您可以通过对 /metrics/prometheus 的 HTTP GET 请求获取 Prometheus 格式的指标。例如,如果您的 Web 应用程序位于http://example.com/source/上,那么您可以使用 eg 查看指标curl http://example.com/source/metrics/prometheus。未授权访问此端点。然后可以将这些指标输入 Grafana 等。requests_*仪表标有请求的类别(例如, search, api, history...),因此您可以获得很好的细分,如下所示:

Grafana 中显示的 OpenGrok 请求率

有关更多信息,请参阅https://github.com/oracle/opengrok/wiki/Monitoring#web-application

于 2021-05-13T16:05:29.460 回答