在自架的 FreeNAS 設備上監控主機狀態運行的過程 FreeNAS 本身的監控畫面,並沒有太好的監控便利性,老實說並不是那麼好操控 所以打算架設一個主監控,來方便閱覽每個環節的變化、服務的運行是否穩定、異常的預警告知 版本 Server FreeNAS: v11.3-U3.2 Data visualization Grafana: v6.7.4 Collector Prometheus: v2.17.1 Node_Exporter: v0.18.1 Prometheus 簡單介紹,是一套使用 Go 開發的開源系統監控報警框架,通過 HTTP 協議週期性抓取被監控組件的狀態
Installation 首先登入至 FreeNAS , 可以透過 SSH 登入 或 圖形介面的 Shell 操作
然後從 Github - Prometheus 下載 Linux - amd64 版本
1 2 3 4 5 6 7 8 9 10 11 12 cd /tmp/ # Download and Decompress wget https://github.com/prometheus/prometheus/releases/download/v2.17.1/prometheus-2.17.1.freebsd-amd64.tar.gz tar xvf prometheus-2.17.1.freebsd-amd64.tar.gz # Move execture file and config file cd prometheus-2.
最近升級種花的 300M/100M,但是網速一直上不去,卡在 160M/100M 左右 後來發現 Fortigate 60D 的 CPU 使用率已經滿載了,導致網速被限制住了 原因 網路上跟我有相同問題的人不少,看到這一篇 fortinet fortwifi 60d的300M?
得知因為使用 FG-60D 做 PPPoE 導致 CPU 的使用率滿載,網速遭到效能限制
所以從網路上的另一篇文章 『請益:fortigate 80E機種是否跑滿300/100 pppoe』看到解決辦法是,透過 Router 進行 PPPoE 硬解,讓 Firewall 專心工作就好
架構 所以根據文章,購買了一台 EdgeRouter X (ER-X)設置在 FG-60D 前
Router 設定 EdgeRouter WAN Port 進行 PPPoE 硬解,設定好帳號密碼之後
並透過 CLI 開啟 HW Offload - EdgeRouter - Hardware Offloading
1 2 3 4 5 6 configure set system offload hwnat enable commit save exit # 儲存完後要記得離開設定模式 並透過以下指令確認是否有啟動硬體加速
今天跟學弟一同研究 UPS 設定,讓伺服器主機可以在 UPS 電源耗盡時 可以主動關機保護系統異常斷掉造成的各種損害,短短的幾分鐘關機換來大大的保障 規格 品牌: CyberPower 型號: CP1000AVRLCD
安裝 UPS 可以透過 CyberPower UPS 附帶的 USB 連接至伺服器上,又或者可以透過 RS232 進行訊號傳輸
便可以透過 USB 與 UPS 進行之後的設定和訊號接收
安裝官方軟體 到官方網站下載居家辦公的 POWERPANEL® LINUX 專用
選擇符合自己系統的管理工具,CyberPower 提供各個平台的工具 Windiws/Linux/Mac 都支援
所以不用擔心有任何問題系統不支援的問題,我這裡選擇 deb 檔,因為要安裝在 Ubuntu 系統上
Ubuntu 透過以下指令進行安裝,沒有系統或版本上的問題,應該是不會安裝失敗
1 dpkg -i PPL_Linux 64bit (deb)_v1.3.3.deb 設定 UPS 檢查 UPS 狀態 如果沒有異常,則可以接收到 UPS 資訊
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 pwrstat -status The UPS information shows as following: Properties: Model Name.
我個人是把 k8s 當作一個方便開發用的平台,有點當作是一個Esxi平台 不必吃工作機的效能直接使用 k8s 的效能,必要的時候透過 port-forward 來進行測試 我沒有太深入 k8s 相關的技巧,不過這對我來說已經十分方便 主要是參考這篇 開發 Ansible Playbooks 部署 Kubernetes v1.11.x HA 叢集 Kyle Bai大大的進行安裝
不過大大是使用 Ubuntu ,而我打算安裝在 CentOS 上面,所以遇到了一些狀況和一些智障的小細節
Hardware/Software cpu/ram master: 2C4G ↑ node: 1C2G ↑ OS: linux (CentOS7/RHEL7) kernel 3.10 ↑ docker version 1.9 ↑ Install CentOS Account account: k8s password: 12345678 Root account: root password: 12345678 VirtualBox: 6.0.14 r133895 (Qt5.6.3) Hostname IP RAM CPU OS k8s-m1 192.168.0.1 4G RAM 4 Core CentOS 7.
摸索學習並了解何謂 Serverless ,並對這個服務感到十分期待 從宣傳上來說,開發者不必擔心伺服器的問題,只需要專注於程式應用開發上 從以往自己架設簡單伺服器、簡單雲服務、最終通通交給服務商了 嘗試練習寫一個簡單的 API 服務,看看丟到 GCP 上面會是怎麼樣的效果
建立專案 首先進入 GCP 選取 Cloud Functions
透過 建立 按鈕,進行專案創建
按照需求輸入 專案名稱,並進行建立
由於 GCP 需要有信用卡才能進行使用,當然第一次使用的朋友
Google 很棒的有提供 300 美金為期 1 年的免費使用可以讓你嘗試是否要使用 GCP
然後開始輸入帳單帳戶,這邊可以選擇貨幣單位,那後面的信用卡資訊我在此就跳過
最後回到 Google Cloud Functions
使用 建立函式 開始建構自己的 functions
建立 Google Cloud Functions 函式 可以設定這一個 functions 的 名稱 記憶體 觸發條件
這邊 觸發條件 我選擇 HTTP ,用比較簡單的觸發方式,以後再研究其他的觸發方式
並且會有一個網址之後可以進行觸發,並且需要勾選 允許未經驗證的叫用 方便進行呼叫,但是不公開就不要勾選
這邊為了方便進演示,就使用內嵌編輯器方便展示
裡面預設的程式是一個很普遍的 Hello World!
也對選項 要執行的函式:HelloWorld
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 // Package p contains an HTTP Cloud Function.
繼上次嘗試 Zserge 的 Lorca 後,作者還有另一個專案 WebView 而且作者在 Lorca 有說,想要更好的控制視窗,推薦使用 WebView 或其他 API 就來使用 WebView 的操作和呈現是否會更好 安裝 WebView 未開啟 GO111MODULE = off
1 $ go get -u https://github.com/zserge/webview 有開啟 GO111MODULE = on
在專案目錄中初始化 Go模組管理環境
1 2 3 $ go mod init $ go get -u https://github.com/zserge/webview 入門 作者透過直接嵌入 Wiki 的頁面,而且非常迅速且簡單
就顯示網頁的呈現來說,感覺沒什麼問題,而且沒有 Google Chromium/Chrome Swipe 的問題
1 2 3 4 5 6 7 8 9 package main import "github.com/zserge/webview" func main() { // Open wikipedia in a 800x600 resizable window webview.
Golang 本身是沒有自帶官方 GUI 給使用者開發,有 Qt、TK、Electron 各種不同實現的GUI實現方式桌面應用程式 當然較為可靠的是 Flutter for Desktop 來進行建構,畢竟背後是富爸爸 Google 進行維護 但是這次先不提 Flutter,想透過 WebView 來進行桌面應用程式開發 最初想要 HTML 嵌入顯示畫面,通常想到的都是使用 Electron 來實現
後來在 Github 上面找到 Lorca 使用 HTML5 + Golang 就能實現,不必須要 Electron
Lorca 依賴於 Chrome/Chromium 實現 UI 層,並且不需要CGO
跟 Electron 相比肯定比原本來的更輕巧,所以一直想嘗試嘗試
限制 Chrome/Chromium >= 70 安裝 Lorca 未開啟 GO111MODULE = off
1 $ go get -u https://github.com/zserge/lorca 有開啟 GO111MODULE = on
在專案目錄中初始化 Go模組管理環境
1 2 3 $ go mod init $ go get -u https://github.
程式撰寫好的時候,總是會想測試一下執行時間 以望都是在程式中加入開始時間及結束時間來進行判斷 但是在閱覽文章的時,發現 time 這個方便的指令 time 指令可以計算程序需要運行多長的時間,用於測試指令的性能很方便
可以拿來比較版本、優化前後的差異,就能使用 time 指令來確認執行時間
1 $ time command Time 版本 bash 和 zsh 這兩個 Linux Shell 分別有自己的 time command 版本
可以使用 type 來確認 time 的版本
1 2 3 4 5 6 7 # bash $ type time > time is a shell keyword # zsh $ type time > time is a reserved word time 說明 bash 產生時間報告
real 指令執行到結束的時間,包含所有的程序佔用、阻塞時的時間 user 指令花費在使用者中的CPU時間,只有執行指令程序的時間 sys 指令花費在內核模式的CPU時間,內核執行指令程序的時間 zsh