如何介入 Connection Pool?
參考連結 Hikari Connection Pooling with Spring Boot AWS RDS Proxy Hikrai-Source Code AWS推出能提升關聯式資料庫應用可擴展性的代理服務 Hikrari配置設定 注入是用於監控的Druid dataSource 如何指定自己extends Hirkari的DataSource 如何构建实用的RDS Proxy? (一):有稍微提到怎麼使用Golang實作一個RDS Proxy kingshard:一個開源的Mysql Proxy但是已經沒在維護了,是用GO寫的 MySQL官网连接过程介绍:官方連線協議說明 mysql握手协议抓包: 有大概說明mysql的協議抓包內容 30-25之資料庫層的擴展 - 讀寫分離架構:資料庫的讀寫分離說明 前言 可以參考我的論文方向,是如何在資料庫中滿足零信任要求,零信任機制其實核心說白了就是存取控制機制,在Authentication驗證這個人是誰之時,取得所有相關的上下文,甚至是風險,經過多方考量後,最後做Authorization授權。那既然我們的目的在於,如何在資料...
淺入淺出 JDBC, Connection Pool
參考資料 JDBC是什麼? (14) 深入 JDBC、Connection Pool,並導入 H2 DB Design Pattern - Object Pool 深入瞭解資料庫連線池的實現及原理 為什麼hikari這麼快的原因 spring-boot-starter-jdbc 和 spring-boot-starter-data-jdbc 的区别 Spring Boot- Data properties 前言 JDBC的全名是Java DataBase Connectivity,主要適用於Java程式語言 和 資料庫 之間連接的API標準,你也可以說他是Library,這裡的API到底指哪些事情呢? 連接到資料庫 創建, 執行 SQL JDBC 架構 JDBC API提供以下接口和類: Driver Manager: 管理資料庫驅動程式的列表,可以將Java Application的連接請求,與資料庫驅動程式進行配對,以建立資料庫的連接。 Driver: 處理與資料庫的通信,很少會直接與Driver溝通,而是會透過Driver Manager來管理這個對象。 Co...
Wazuh Agent 透過 Wazuh API 來註冊於 Wazuh Server
參考連結 Enrollment via manager API 前言 會想要做這一篇的需求是因為,當有受接管的裝置時,我們為了讓服務得知請求從哪一個裝置發送的,所以我們會在每一個裝置上安裝 Wazuh Agent和自己的用來做裝置綁定的Agent。裝置綁定的Agent負責在請求內放裝置資訊,並透過數位簽章進行認證,這個裝置綁定的Agent是透過ASP.net去撰寫,而Wazuh Agent則是可以協助我們對裝置的狀態進行監控。 我們希望自己製作的Agent自動化的方式來安裝 Wazuh Agent,這時候我們需要透過 Wazuh API 來達成這個需求。然後可以滿足以下要求: 可以自動註冊 並且取得agent id Wazuh API Enrollment The Wazuh manager API allows users to make an agent enrollment request to the Wazuh manager. This request returns a unique key for the agent, which must be man...
Proxmox - 開 windows vm
參考連結 在 Proxmox VE 中安裝 Windows10 與相關驅動: 這篇寫得挺清楚,只是有些我不太確定為什麼要選那個設定,因此有多做一些研究。 前言 在執行 wazuh的警告系統實作時,因為想要下載 Fiddler 來攔截 Alert 發送的訊息,查看是否有 Post 成功。 又或是想要安裝一台 windows 來當 wazuh 下載iso檔案 需要先下載兩個iso 一個 windows 10 iso 一個 驅動程式 iso vm 規格 設定 OS 要選擇 GuestOS: Windows,Version: 10/2016/2019 設定 System 要特別勾選 Qemu Agent 設定 Disk 選用 SCSI 設定 CPU, Memory,這邊可以自己按需求設定(我是設定4顆CPU跟16G RAM因為沒有要跑大服務) Network 選擇 VirtIO 設定 驅動程式 iso 新增 CD/DVD Drive 指定為下載iso檔案裡面的驅動程式 iso,匯流排選擇 IDE 即可,並選擇 virtio IS...
Wazuh的告警系統實作 - ElastAlert 的 POST & EMAIL 警報觸發 教學
參考連結 elastAlert - HTTP POST 沒有mail server怎麼測試寄送email?快放過你的gmail來看看有那些可以測試用的smtp mail server 在elastAlert透過mail發送訊息 前言 我們在上一篇說明完如何透過 slack 來發送告警通知,本篇的目的這次著重在。 [x] 怎麼透過 email 發送訊息 [x] 成功觸發發送 email 功能 [x] 把 Labeling Service 部署到 機器上 [x] 成功觸發發送 發api進行 labeling 功能 透過 post 來發送訊息 參考根據官方網站說明:https://elastalert.readthedocs.io/en/latest/ruletypes.html#http-post 如果你想要設定 Rule 是可以發送 HTTP POST 的,可以參考以下的設定方式。 HTTP POST的設定Key意思: http_post_url:設定要發送請求的URL地址。 http_post_payload(可選):以键值對形式配置的POST请求的内容。 例如...
Wazuh的告警系統實作 - ElastAlert 的 Slack 警報觸發 教學
參考連結 ElastAlert - Writing Filters For Rules 寫了蠻多範例撰寫Rule elastAlert-Writing Filter 前言 根據前一篇的內容,我們接下來打算做的事情如下 [x] 了解 elastAlert 的 Rule types 撰寫方式 [x] 成功觸發 slack ,並發送訊息 關於 Filters 參考:https://elastalert2.readthedocs.io/en/latest/recipes/writing_filters.html Filters 是什麼? 可以想像是 elasticsearch 的查詢條件,如果滿足的話,就觸發 rule 並執行告警動作。 在建立 rule 時可以設定 filters,filters 是作為 elasticsearch query DSL(Domain Specific Language) 的部分,DSL 提供基於 json 來定義查詢, DSL 大概就長這樣(可以透過點擊Filter/Edit Filter/Edit as Query DSL來查看) ...
Wazuh的告警系統實作 - ElastAlert Docker 安裝 elastAlert
參考的網站 elastic相關yml設定挺詳細,裡面有談到如何啟用watcher的設定 elasticAlert:https://github.com/Yelp/elastalert.git Slack webhook 前言 因為計畫需求,我們本有做一套基於風險的存取控制模型,但是該模型要滿足一個要求,需要能夠監控裝置,當裝置發現異常時,要能夠告警並通知一個貼標籤的服務,那存取控制模型就可以基於標籤和存取策略,適當的拒絕不滿足存取策略的請求。 本文章的前提 對wazuh已經有一定的了解 並且已經安裝好wazuh, elasticSearch的工具,安裝可以參考:Wazuh, elastic, kibana 的無腦串接與安裝教學 因此本篇文章的目的如下: [ ] 了解wazuh這套工具是如何做告警? [ ] 如果wazuh告警,發送請求該怎麼做? 關於可以作為告警的工具 我想要的功能是:如果滿足特定規則 (e.g. level5以上的alert) 可以做到發送 mail 和 call api 目前我找到的工具: 工具1 Watcher : elasticsearch...
Wazuh, elastic, kibana 的無腦串接與安裝教學
參考連結 參考wauzh官方安裝教學: https://documentation.wazuh.com/current/deployment-options/elastic-stack/all-in-one-deployment/index.html#installing-elasticsearch 參考filebeat安裝: https://www.elastic.co/guide/en/beats/filebeat/7.17/setup-repositories.html 前言 請注意,我的安裝教學不是用正式環境,因為certs都是使用相同的,僅供教學快速安裝使用。 注意:目前教學內所使用的wazuh-manager版本是4.4.4,所以如果你的wazuh-manager是其他版本像是4.5,請務必修改以下所有含有4.4的script內容為4.5 12345# 原本為4.4 curl -so /etc/elasticsearch/elasticsearch.yml https://packages.wazuh.com/4.4/tpl/elastic-basic/el...
簡單介紹Istio
What is Istio? 1. Is a service mesh, implement network mechanism service mesh 基本上是透過在 Pod 上面做 Sidecar 把網路相關的工作剝離出來,讓工程師可以專注在開發上 而網路的控管像是 Gatewway,經過 pod 的 request 都是經由 Sidecar 轉發給 pod。 2. Integrate with many observability tools 不只可以做網路,還可以整合各種第三方的觀察工具 (e.g. Prometheus, Kiali, Grafana, etc.)。 3. Handle microservice challenges 在 microservice 架構下當 service/pod 一多,要去管控各個 service 間的網路連線是非常頭痛的 但是透過Istio可以負責解決網路的事情,並由control plane統一管理和設定。 可以從上方看到,每個Pod裡面有兩個container,一個是Service另一個是Proxy,而Ist...
一次搞懂Java中的equals()和hashCode()
前言 如果你想要自定義物件判斷是否相等的邏輯,就改equals吧! 如果你想要修改HashMap或是HashSet中,不重複物件的邏輯,那就修改hashCode吧! 在物件導向的世界裡面,勢必逃不了自己建立的物件(你可能把某些功能包起來,放在某個class裡面)又或是想要建立一個Employee.class這樣的類別,方便你建立員工的資料存入資料庫中。 而這些xxxx.class都其實繼承Object,可以說是Object是所有Java類別的超類(Abstract Class),而我會想寫這篇的原因是因為,剛好碰到需要自定義HashSet的需求,修改放入Set的自定義物件時,判斷物件是否相等的邏輯。 什麼意思呢?簡單來說,在程式語言中,我希望不要採用Object本身的hashCode和equals方法,我希望只要某些屬性的值一樣,我就視這個物件已經存在於Set裡面。而不是比較記憶體中的位置、所有屬性的value都要一樣等,我希望自定義物件相等的邏輯判斷。 如果你好奇… 我複寫equals的方法為什麼還要管hashCode? equals跟hashCode的關係是什麼? 那你...