Как отследить использование сервиса 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.