Я из компании Luxoft.
В этой статье будет рассматриваться проект nginx-log-collector, который будет читать логи nginx, отправлять их в кластер Clickhouse. Обычно для логов используют ElasticSearch. Для Clickhouse требуется меньше ресурсов (дисковое пространство, ОЗУ, ЦПУ). Clickhouse быстрее записывает данные. Clickhouse сжимает данные, что делает данные на диске еще компактнее. Преимущества Clickhouse видны по 2 слайдам с доклада Как VK вставляет данные в ClickHouse с десятков тысяч серверов.   При этом за счёт сжатия данных «Кликхаус» использует в 11 раз меньше на жёстком диске и делает примерно в 30 раз меньше дисковых операций (из поста https://habr.com/ru/company/ua-hosting/blog/486540/):  Для просмотра аналитики по логам создадим дашборд для Grafana. Кому интересно, добро пожаловать под кат. Устанавливаем nginx, grafana стандартным способом. Устанавливаем кластер clickhouse с помощью ansible-playbook от Дениса Проскурина. В этом файле описаны SQL запросы для создания бд и таблиц для nginx-log-collector в Clickhouse. Каждый запрос делаем поочередно на каждом сервере кластера Clickhouse. Важное замечание. В этой строке logs_cluster нужно заменить на ваше название кластера из файла clickhouse_remote_servers.xml между "remote_servers" and "shard". Cкачайте table_schema.sql, проверьте что в конце каждого запроса стоит точка с запятой (;)
Выполните. Nginx-log-collector не имеет rpm. Здесь https://github.com/patsevanton/nginx-log-collector-rpm создаем ему rpm. Собираться rpm будет с помощью Fedora Copr  Устанавливаем rpm пакет nginx-log-collector-rpm Правим конфиг /etc/nginx-log-collector/config.yaml: rsyslog из CentOS 6 не заработал. Поэтому нужна CentOS 7 или другие современные ОС.
Обычно rsyslog уже установлен.
Необходимо добавить файл 01-nginx-tcp.conf
и поправить в нем  на ваш сервер с nginx-log-collector
После необходимо перезагрузить rsyslog Требования к nginx. Хоть и написано в релизе Релиз HTTP-сервера nginx 1.12.0  но при использовании nginx версии 1.12.0-1.el6.ngx выдается ошибка: Общий конфиг nginx: Виртуальный хост один: vhost1.conf: Добавляем в файл /etc/hosts виртуальные хосты: В качестве эмулятора HTTP сервера будем использовать nodejs-stub-server от Maxim Ignatenko Nodejs-stub-server не имеет rpm. Здесь https://github.com/patsevanton/nodejs-stub-server создаем ему rpm. Собираться rpm будет с помощью Fedora Copr  Устанавливаем на upstream nginx rpm пакет nodejs-stub-server Тестирование проводим с помощью Apache benchmark. Устанавливаем его: Запускаем тестирование с помощью Apache benchmark c 5 разных серверов: Установим vertamedia-clickhouse-datasource в Grafana При создании datasource для clickhouse, назовите datasource: "clickhouse-nginx-log-collector" На официальном сайте Grafana вы не найдете дашборд.  Поэтому будем делать его вручую. Мой сохраненный дашборд вы можете найти тут. Так же вам нужно создать переменную table с содержимым nginx.access_log.
 Singlestat Total Requests:  Singlestat Failed Requests:  Singlestat Failing Percent:  Singlestat Avg Response Time:  Singlestat Max Response Time:  Count Status:  Для вывода данных как пирог, нужно установить плагин и перезагрузить grafana. Pie TOP 5 Status:  Дальше буду приводить запросы без скриншотов: Count http_user_agent: GoodRate/BadRate: Response Timing: Upstream response time (время ответа 1-го upstream): Table Count Status for all vhost:     avg()

quantile()
 Надеюсь, сообщество подключится к разработке/тестированию и использованию nginx-log-collector.
И кто-нибудь когда внедрит nginx-log-collector расскажет сколько сэкономил диска, ОЗУ, ЦПУ. Telegram каналы: Кому важны миллисекунды, напишите или проголосуйте, пожалуйста, в этом issue. P.S. Сделал dashboard для обзора метрик из логов nginx c использованием nginx-log-collector и хранением в Clickhouse: https://grafana.com/grafana/dashboards/12137 DevOps-инженер