DevOps
- InfluxDB使用問題與優化紀錄
一個運轉一年多的 NodeJS 專案,每分鐘向 InfluxDB 寫入 40~50 個 point,某天發現不時出現
ETIMEOUT
以及No host available
連接問題,導致部分資料無法儲存。 - 用cronjob解決puppeteer_dev_profile殘留問題
puppeteer_dev_profile是透過puppeteer操作Headless Chrome時會在 /tmp 自動產生的資料夾。倘若程序沒有正確關閉chrome進程﹐/tmp/puppeteer_dev_profile-* 將無法自動回收並殘留在檔案系統上,佔用不必要的硬盤空間。
- 暫停MySQL索引更新和參照檢查
在MySQL數據庫處理資料時,InnoDB會為每行資料逐一檢查其外鍵(Foreign Key Check),而MyISAM則更新表格索引(Indexing),對於大量的資料滙入或更新會帶來更長的執行時間。這時我們更希望是在所有資料寫入以後才一次性地進行檢查和索引更新。
- 利用binlog修復MySQL數據
最近因為一次手殘剷除了production主機上的MySQL數據庫,需要從最近時間點的備份中還原,並且從binlog中提取該時間點後的部分重要query重新執行,以盡可能回復原狀。
- 記一下CentOS 7上安裝FTP server步驟
工作上很少機會需要親自安裝FTP server,怕日後忘記了然後又再花不必要的功夫,這邊記一下在CentOS 7上的安裝步驟。
- 如何讓GitLab Runner也可以git clone私有Repositories
在私有GitLab上架設GitLab Runner去處理CI/CD的確是非常方便,然而當你開始把可重用的library拆分出來成為獨立project,項目之間就會出現依賴關係,這時你的build script可能會在遇上permission denied問題。
- 使用Fail2ban阻擋惡意網絡爬蟲
Nginx的error.log裡面看到很多錯誤request, 不斷請求一些不存在的頁面,例如
/wp-admin.php
、/lucky.php
、/aa.php
等等。 若果你有架設維護過網頁伺服器的經驗,想必也遇過這種情況,即使未遇上,也只是時間的問題。 - CentOS 7安裝MySQL 5.7
由於現在整個官網都是MySQL 8.x,這裡記一下安裝MySQL 5.7的方法。
- CentOS 7系統時間設定與NTP同步
設定系統時間基本上是我每次登陸新VM上的首要任務。如果系統時間不好好設定的話,以後server運行和數據庫紀錄就會變得一團糟,所有依賴該主機的開發測試工作都變難,很容易誤以為是程式的bug……