Как отследить использование сервиса OpenGrok

Какими способами мы могли бы контролировать OpenGrok, как по использованию, так и по конкретным поискам? Есть ли какие-либо системы, встроенные или которые могут быть добавлены как расширения?

Мы запускаем OpenGrok в интрасети, но у нас нет представления о том, как он используется и как много он получает.

устанавливать

В настоящее время OpenGrok устанавливается через марионеточный конвейер.

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 и разобрать логи? Я не уверен, сколько информации я получу из журналов и анализа может быть вовлечен. Затем отправьте эту информацию в какой-нибудь магазин БД.

2 ответа

Решение

Мы используем 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"

В последних версиях OpenGrok есть возможности мониторинга, которые могут обеспечить общий обзор (т.е. не для каждого пользователя или проекта). В частности, вы можете получить метрики в формате Prometheus через HTTP-запрос GET на / metrics / prometheus. Например, если ваше веб-приложение находится на http://example.com/source/, вы можете просмотреть показатели, например, curl http://example.com/source/metrics/prometheus. Доступ к этой конечной точке не авторизован. Затем эти показатели можно передать в Grafana или что-то подобное. В requests_* метры помечаются категорией запроса (например, search, api, history, ...), так что вы можете получить хорошую разбивку, примерно так:

Для получения дополнительной информации см. Https://github.com/oracle/opengrok/wiki/Monitoring#web-application.

Другие вопросы по тегам