前言
在剛建置完 Clickhouse 並開始上手使用後,我便開始享受這極其快速的資料庫。由於我照過往的經驗確定資料不會超過 20 GB,所以虛擬機設定 30 GB 給他。
我發現我的硬碟容量在 2 天內就爆開了,正當我毫無頭緒,不知道為什麼的時候,注意到了我的 /var/log/clickhouse-server
資料夾底下正發生災難。
哇靠,stderr.log
及他的快樂夥伴們直接在這開趴,在這個資料夾底下產出了 18 GB 的 Log。
產生 Log 不是不好,他可以用於除錯。但太多的 Log 也沒意義,因此這篇文章就是要來講如何限制這些 Log 的產生。
clickhouse-server.log
這個 clickhouse-server.log
應該就是最標準紀錄操作過程的 Log,他預設產生 Log 的方式無法無天,我們必須治治他。
在資料夾 /etc/clickhouse-server/config.d
底下,有一個 logger.xml
檔案,我們編輯他,依照你的需求更改。size
裡面放的就是允許單個檔案的大小,而 count
則是允許產生多少檔案。
<clickhouse>
<logger>
<log>/var/log/clickhouse-server/clickhouse-server.log</log>
<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>
<size>10M</size>
<count>5</count>
</logger>
</clickhouse>
完成後記得使用 clickhouse restart
來重啟 Clickhouse,再次探索這個資料夾,你會發現 clickhouse-server.log
照你預期的產生囉。
stderr.log
這個 stderr.log
就是紀錄發生錯誤的內容,但我不確定這個方法正不正確。應該說,在設定完上面的 clickhouse-server.log
後,他就不再肥大了。
不過我還是把我有操作過的方法記錄在這裡,以供參考。
進入 /etc/clickhouse-server/config.d
資料夾底下,新增一個名為 z_log_disable.xml
的檔案。
cd /etc/clickhouse-server/config.d && sudo vim z_log_disable.xml
貼上以下內容:
<?xml version="1.0"?>
<clickhouse>
<asynchronous_metric_log remove="1"/>
<metric_log remove="1"/>
<query_thread_log remove="1" />
<query_log remove="1" />
<query_views_log remove="1" />
<part_log remove="1"/>
<session_log remove="1"/>
<text_log remove="1" />
<trace_log remove="1"/>
<crash_log remove="1"/>
<opentelemetry_span_log remove="1"/>
<zookeeper_log remove="1"/>
</clickhouse>
完成後完成後使用 clickhouse restart
來重啟 Clickhouse,此舉會將大部分的 Log 關閉,所以你可以依照你的需求做一些改變。