logitech media server 搭配 docker 實現雙機分離

前言 雖然官方 releases 頁面似乎還沒發布,不過前一陣子把 piCorePlayer 升級到 8.1.0,看起來似乎還是 unstable,懶得倒版回去 8.0.0,趁這個機會把一直想玩的雙機留兜起來。 雙機顧名思義為 client 與 server 分開在兩台機器上,piCorePlayer 的 client 為 Squeezelite,server 則為 Logitech Media Server,事實上在 windows 上也有 client Squeezelite-X可以玩,預期中的最終成品將會是「三機流」吧 XD LMS 解決方案 採用 lms community 的 docker image lmscommunity/logitechmediaserver 作為這次 server 端的 service。 安裝流程 此篇文章使用 portainer 作為 GUI 方便演示,若熟悉 docker 與 k8s 的可以自行下指令安裝。 首先我把我的音樂都存放在 NAS 上,先將 music 資料夾給共享出來 接著到 portainer 中建立三個 volume a. lms-music 輸入在 NAS 分享出來的目錄與使用者、密碼,建立一個 cifs mounted volume b. lms-config c. lms-playlist 接著到 stack 中,複製貼上官方的 docker-compose,若 portainer 已經佔用了 port 9000,則需要更改暴露的 port port:port/tcp 並追加環境變數 HTTP_PORT=port,我最終的 stack 設定為: lms: image: lmscommunity/logitechmediaserver volumes: - lms-config:/config:rw - lms-music:/music:ro - lms-playlist:/playlist:rw - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro ports: - 9002:9002/tcp - 9090:9090/tcp - 3483:3483/tcp - 3483:3483/udp environment: - HTTP_PORT=9002 restart: always 點下 Deploy the stack 後就完成了 可以到 container 下看是否已經啟動完成了,並稍微記一下 container 的 hash,在稍後 windows 的設定中會出現。 piCorePlayer 設定 進入到 piCorePlayer web 中的 Squeezelite Settings 設定頁面,並在 LMS IP 中輸入 portainer 的 ip 位置後點擊 Save,大功告成。 ...

Prometheus 學習筆記 - 基本架構與資料結構

Prometheus Overview 架構 Exporter: 要被採集的目標 job 中曝露 metrics 的組件,負責轉換資訊成 prometheus 可解讀的格式。由於某些早於 prometheus 的 service 因為某些原因,不想主動在服務中曝露 metrics,故可以用一些額外的 exporter 將這些 service 中的 metrics 轉成 prometheus 格式,並曝露埠。 node exporter mysql exporter Push Gateway: 由於有些任務時間太短,可能不到 prometheus pull 的週期,可讓這些 jobs 主動把 metrics push 到這個 push gateway,好讓 premetheus server 可以 pull。 Prometheus Server Retrieval(retrieval system): 主要負責 pull 指定的 target # /etc/prometheus/prometheus.yml scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "node_exporter" static_configs: - targets: ["localhost:9100"] TSDB: 時間序列資料庫,存放 pull 到的 metrics HTTP Server: 為 PromeQL 查詢提供接口 Service Discovery: kubernetes: 自動發現 k8s 中 pod 增加減少以及 probe 異動等等 file_sd: 通過 config 實現服務的自動發現 Alert Manager: 當 prometheus server 發現某某某 job 已經達到設定好的通知閾值進行通知的 service。 PromeQL: 無論是自帶 web UI 或是串接 Grafana,都是通過 http 進行 PromeQL 查詢後做視覺化處理 TSDB 中的時間序列資料。 資料結構 下面範例中會有更詳細說明 ...

Raspberry pi 4 + piCorePlayer 7.0.0 折騰筆記

前言 鑒於想要剛好逛到 Raspberry pi 4 出了(2019),剛好手邊又有兩顆閒置的喇叭,於是產生了做一套網路串流音樂撥放器。用到的硬體如下: Raspberry pi 4b 4G ver 1.2 樹莓派的部分選用 4G 版本,由於 4G 跟 8G 版本差價有點大,僅作為多媒體撥放器,應該不需要那麼大量的記憶體,故降梯成本僅選用 4G 版本。 至於 1.2 版本差在哪裡可以參考這篇文章,主要修正了 type-C 供電問題。 Argon ONE m.2 由於 pi 4b 的 cpu 較 3b+ 升級很多,同時發熱量也提升了,故得選用一個同時具有散熱、美觀、擴充的外殼,剛好手邊有汰換下來的 m.2 SATA SSD,於是選擇了 Argon ONE m.2。 直流電源供應器 儘管線性電源如 Keces P3 或便宜一點 ifi iPower X 或是老虎魚都是很好的穩定 5V 直流電源供應器,但由於使用樹莓派就是不想花大錢,用比系統本身還高價如此多的周邊,似乎有點本末倒置,魚是只用了手機的 type-C 5V/3A 變壓器作為電源供應器。 硬體安裝 硬體安裝部分不在這次探討範圍,由於每個人使用的外殼均不相同,文章中就假設是裸機設定。 系統選擇 由於是第一次接觸 Raspberry pi as audio player,一開始是看到 Volumio 與 Moode 等等,也實際安裝了一次 Volumio,但由於慧根不夠(X),或是不知道撞到了什麼,只要不小心設定錯音訊,便會導致系統無法撥音樂,也懶得 debug 了,於是想說乾脆來挑戰看看 piCorePlayer。 ...