ClickHouseKeeper配置listen_host后不生效
ClickHouseKeeper配置listen_host后不生效
3节点部署ClickHouse集群后,ClickHouse Server执行报错:
Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 25.7.4.11 (official build)), 192.168.0.106:9181
Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 25.7.4.11 (official build)), 192.168.0.107:9181
Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 25.7.4.11 (official build)), 192.168.0.105:9181
Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 25.7.4.11 (official build)), 192.168.0.106:9181
Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 25.7.4.11 (official build)), 192.168.0.107:9181
Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 25.7.4.11 (official build)), 192.168.0.105:9181
Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 25.7.4.11 (official build)), 192.168.0.106:9181
Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 25.7.4.11 (official build)), 192.168.0.107:9181
Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 25.7.4.11 (official build)), 192.168.0.105:9181

9181
端口是ClickHouseKeeper的连接端口,报错原因为ClickHouseServer连接不上ClickHouseKeeper
使用netstat -nap | grep 9181
查看9181
端口

发现只暴露127.0.0.1
本机地址,再使用curl -kv 本机ip:9181

再查看ClickHouseKeeper配置文件,默认配置路径为/etc/clickhouse-keeper/keeper_config.xml
xml
<clickhouse>
<logger>
<!--日志配置-->
</logger>
<max_connections>4096</max_connections>
<keeper_server>
<tcp_port>9181</tcp_port>
<listen_host>0.0.0.0</listen_host>
<!-- Must be unique among all keeper serves -->
<server_id>1</server_id>
<!--其他-->
</keeper_server>

难道是listen_host
配置问题?查找官网文档也没说的很详细

官网地址:https://clickhouse.com/docs/zh/guides/sre/keeper/clickhouse-keeper
翻阅代码,发现取的是clickhouse标签下的listen_host标签。
cpp
std::vector<std::string> listen_hosts = DB::getMultipleValuesFromConfig(config(), "", "listen_host"); // 此处第二个参数代表根节点,说明是直接在<Clickhouse>根节点下
bool listen_try = config().getBool("listen_try", false);
if (listen_hosts.empty())
{
listen_hosts.emplace_back("::1");
listen_hosts.emplace_back("127.0.0.1");
listen_try = true;
}

所以正常应该如下配置

之后systemctl restart clickhouse-keeper
重启ClickHouseKeeper
