подключения. Все было нормально до того как мне понадобилось снимать prometheus.
<prometheus>
<endpoint>/metrics</endpoint>
<port>8001</port>
<metrics>true</metrics>
<events>true</events>
<asynchronous_metrics>true</asynchronous_metrics>
</prometheus>
Порт открывается, но только на 0.0.0.0.
Можно как-то для него отдельно прописать listen_host чтобы не открывать весь CH всем пользователям?
ну вообще, вроде как бы prometheus метрики отдаются не пользователю а всем также как и /ping и также как custom http request и поэтому host определяется через общую директиву listen_host https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server_configuration_parameters-listen_host
Правильно я понимаю, что кроме как открыть порты для всех вариантов нет?
что значит "открыть порты для всех"? listen_host просто получается единый если сделать <listen_host>127.0.0.1</listen_host> то чтобы законектиться на 8123, 9000 и прометеусовский port извне придется какие то прокси рядом ставить
имеется ввиду не ставить 127. или 0.0. )
listen_host -- вообще не имеет отношения к пользователям. Какая-то несуразица в вопросе. listen_host -- это какой ip будет слушать КХ, прописывается в config.xml
Да, перепутал название. Я имел ввиду, что listen_host дефолтный, а разрешаю ходить на 8123 пользователю через его профиль <networks>. Но хочу разрешить ходить prometheus-скрапперу
так дефолтный listen_host = localhost но предположим что вы запускаете КХ с listen_host = 0.0.0.0 и КХ слушает 0.0.0.0 для всех трех протоколов 8123, 9000, prometheus и вы ограничиваете пользователю доступ через networks чтобы пользоваль ходит к 8123 только с определнных ip и что дальше? ломается скреппер потому что он ходит с сдругого ip ? или что?
да, telnet не идет на порт prometheus(8001) когда на 8123 идет. Ну и на самой машине могу подцепиться к 8001
у вас на сервере файерволом доступ закрыт, дело не в КХ запустите nc на 8002, и попорбуйте телнетом к 8002 подключится
хммм, ок, проверю. Спасибо
Обсуждают сегодня