ClickHouse 网络端口
2024-03-20 11:36 abce 阅读(1148) 评论(0) 编辑 收藏 举报查看clickhouse默认都启用了哪些端口
# netstat -tulpn |grep LISTEN|grep click tcp 0 0 0.0.0.0:9004 0.0.0.0:* LISTEN 578/clickhouse-serv tcp 0 0 0.0.0.0:9005 0.0.0.0:* LISTEN 578/clickhouse-serv tcp 0 0 0.0.0.0:9009 0.0.0.0:* LISTEN 578/clickhouse-serv tcp 0 0 0.0.0.0:8123 0.0.0.0:* LISTEN 578/clickhouse-serv tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 578/clickhouse-serv
从输出结果可以看到,有五个端口。接下来看看这些端口的分别是用来干什么的。这可以通过从clickhouse的配置文件中查看:
# cat /etc/clickhouse-server/config.xml | grep 9004 | head -1 <mysql_port>9004</mysql_port> mysql仿真端口,用于mysql客户端访问clickouse # cat /etc/clickhouse-server/config.xml | grep 9005 | head -1 <postgresql_port>9005</postgresql_port> postgresql仿真端口,用于psql客户端访问clickouse # cat /etc/clickhouse-server/config.xml | grep 9009 | head -1 <interserver_http_port>9009</interserver_http_port> 低级别数据访问,用于数据交换、复制和服务器间通用的通信 # cat /etc/clickhouse-server/config.xml | grep 8123 | head -1 <http_port>8123</http_port> http协议端口,用于web交互、jdbc、odbc # cat /etc/clickhouse-server/config.xml | grep 9000 | head -1 <tcp_port>9000</tcp_port> 9000是本地协议端口,即clickhouse的tcp协议端口。由 ClickHouse 应用程序和进程(如 Clickhouse-服务器、Clickhouse-客户端和本地 ClickHouse 工具)使用。用于分布式查询的服务器间通信。
clickhouse还支持很多其它接口,因此除了上面这些端口之外,还会用到其它很多端口。以下所有端口列表:
端口 |
描述 |
2181 |
zookeeper默认服务端口 |
8123 |
http api接口,用于jdbc、odbc和web接口的http请求 |
8443 |
https默认端口 |
9000 |
本地协议端口,即clickhouse的tcp协议端口。由 ClickHouse 应用程序和进程(如 Clickhouse-服务器、Clickhouse-客户端和本地 ClickHouse 工具)使用。用于分布式查询的服务器间通信。 |
9004 |
mysql仿真端口,用于mysql客户端访问clickouse |
9005 |
postgresql仿真端口,用于psql客户端访问clickouse |
9009 |
低级别数据访问,用于数据交换、复制和服务器间通用的通信 |
9010 |
服务器间通用的通信的ssl/tls 端口 |
9011 |
PROXYv1协议端口 |
9019 |
jdbc桥 |
9100 |
gRPC端口 |
9181 |
建议的ClickHouse Keeper端口 |
9234 |
建议的ClickHouse Keeper Raft端口 |
9363 |
Prometheus端口 |
9281 |
推荐的SSL ClickHouse Keeper |
9440 |
原生SSL/TLS协议端口 |
42000 |
Graphite default port |
客户化 clickhouse 网络配置
可以在/etc/clickhouse-server/config.d/目录下创建新增一个文件,用于客户化网络配置,当然也可以在 /etc/clickhouse-server/config.xml 中直接配置。例如:
# cat /etc/clickhouse-server/config.d/listen.xml <clickhouse> <!-- Listen wildcard address to allow accepting connections from other containers and host network. --> <listen_host>::</listen_host> <listen_host>0.0.0.0</listen_host> ... </clickhouse>
这里,<listen_host>的设置非常重要,除了开放端口,还可以锁定指定的ip地址。 示例中有两天配置,一个用于ipv6,一个用于ipv4
移除开放的端口
比如是在容器中运行,想关闭mysql和pg的仿真端口。
mkdir config.d cat << EOF > ./config.d/disable_mysql_and_postresql_ports.xml <clickhouse> <!-- Disable MySQL and PostreSQL emulation ports --> <mysql_port remove="true"/> <postgresql_port remove="true"/> </clickhouse> EOF
这里用到的remove属性。可以把该文件放在config.d中,也可以将该文件放在/etc/clickhouse-server/conf.d中。
修改端口号
跟移除端口类似,可以使用replace属性、或者增加一个更新条目来重载对应的配置条目。比如,想把http协议端口8123改成8823。
cat << EOF > ./config.d/http_port.xml <clickhouse> <!-- Change HTTP client port --> <http_port>8823</http_port> </clickhouse> EOF
增加端口
cat << EOF > ./config.d/prometheus.xml <clickhouse> <prometheus> <endpoint>/metrics</endpoint> <port>9363</port> <metrics>true</metrics> <events>true</events> <asynchronous_metrics>true</asynchronous_metrics> <status_info>true</status_info> </prometheus> </clickhouse> EOF