通過向elastic了解,他們目前開發的5.0版本支援更好的許可權定製,粒度達到字段級別。他們預計今年就可以上線,如果你不是有乙個舊版本的kibanba非要維護不可,那麼可以考慮這個新版本。kibanba5.0 被寄希望是乙個革命性的版本,同時logstash、elasticsearch 都將版本號公升級為5.0方便使用者在使用elk架構的時候,容易的選擇相容的版本。
好像在github上面有人開發了kibana外掛程式,可以支援登入、許可權控制等等,不過我自己對nodejs了解有限(其實就是不喜歡用)。所以我決定用**方式來控制許可權。
所以,你只需要讓kibana以為你的某個web server 是elasticsearch就行了,這個就是改改配置檔案搞定。
elasticsearch.url: ""
proxy_pass 192.168.1.12:5601;
這樣一來訪問kibana的時候,會帶上你的後台的cookie,也就可以使用後台的登入許可權了。
所以,你只需要判斷索引的名字是否是這個使用者可以檢視就行。獲取索引名字有點麻煩,kibana一般在請求體的json中的比如index,docs,_index 等字段放索引名字。
你得分析json,都取出來。有時候它會發多個json,每行乙個,你得處理這種情況。
拿到索引後,你可以自己決定,怎麼控制許可權了。
注意:.kibana 索引和一些外掛程式索引,不應該被許可權遮蔽。
架設多台kibana,分配不同埠就行了
你可能覺得這樣維護有點蛋疼那下面再說怎麼處理多使用者
當然,這個名字可以改,但是只能有乙個。
如果我能夠在kibana訪問.kibana的時候,將.kibana改為另乙個索引的名字,比如.kibana-1 那麼我就可以給所有分組為1的使用者,使用乙個獨立的kibana資料庫。
最簡單的辦法就是找到所有json中的.kibana資料 ,替換成你想要的索引名字,在返回資料的時候,記得再換回來。
由於elasticsearch的查詢方法非常豐富,所以這種許可權體現最多是保證登入安全,索引的許可權控制,可能還需要在使用中慢慢完善。
比如,當使用者查詢 apache-log-* 的時候,你可能可以發現,他沒有這個許可權,
但是如果他什麼索引都不傳,在elasticsearch中並不是搜不到任何東西,它會搜尋所有索引。
這種情況下,許可權就被繞過。然而kibana會發出許多不帶索引的請求,比如獲取伺服器全域性狀態等等。
要區分這些請求並不容易。
如果你使用php ,json_decode($json,第二個引數)
如果你要改造kibana的查詢請求,第二個引數特別重要,因為,如果你將它設定為true的時候,經過decode -> encode 兩次轉換後,空物件會變成空陣列。比如:
}
//變成
導致語句報錯。 mysql怎麼給許可權 mysql怎麼給使用者加許可權
mysql給使用者加許可權的方法 首先建立使用者,為 create user 使用者名稱 identified by 密碼 然後給使用者分配許可權,為 grant 許可權 on 資料庫.資料表 to 使用者 主機名 mysql給使用者加許可權的方法 一 mysql下建立新的使用者 語法 create...
給數字加上註解
注釋 命名清晰 簡單,單獨的變數使用,例如 變數定義 int a 1 判斷 if a 1 這些情況下通常會利用巨集定義來代替這些幻數 魔數,例如 定義 define max 1 使用 a max if a max 陣列使用,例如 gui程式設計需要定義5個按鍵,class,pop,定義 button...
給postmessage加上callback方法
postmessage雙向通訊中,是不能使用 函式的。window.postmessage 這樣是不行的,js會提示function不會被轉殖。我猜啊因為postmessage是通過dom通訊,js物件會被json化 也就是說不能傳遞方法。不過,話說回來,有什麼不能的呢,大不了,把function ...