2009/02/15

Cacti 0.8.7b 出現 Passwords do not match, please retype. 錯誤訊息?

幫新伺服器設定 Cacti 監控系統效能時,不管怎麼輸入都會出現 Passwords do not match, please retype. 的錯誤訊息?


一開始以為是 SNMP Community 的設定錯誤:

但用 snmpwalk 測試,確實能取得新伺服器的資訊,因此可以確定新伺服器的 snmp 設定沒有問題。
既然如此,就直接看 Cacti 的程式碼,看看問題是出在哪裡。
新增 Devices 是由 host.php 這隻程式處理,第 147 行就是產生 Passwords do not match, please retype. 的地方:

就是 form 裡的 snmp_password 和 snmp_password_confirm 不一致,才會出現這個錯誤訊息。
可是哪來的 snmp_password 和 snmp_password_confirm 輸入欄位呢?
從網頁原始碼中,終於找到這兩個欄位:

原來是在 SNMP Version 選 Version 3 才會出現:

從這畫面就可以明顯發現,SNMP Password(v3) 有兩個密碼欄位,只有上面一個有值,下方的欄位沒有值,因此產生錯誤訊息。

接下來的問題就是,SNMP Version 明明就是選 Version 1,也沒刻意去選 Version 3,為什麼 Version 3 的 SNMP Username(v3) 和 SNMP Password(v3) 欄位會有值?
從這組帳號、密碼可以推測是之前有使用了瀏覽器的[自動記憶密碼]功能,導致瀏覽器自動把帳號、密碼填入這兩個欄位。

知道原因之後,這問題就好處理了:
方法一: 新增 Devices 時,SNMP Version 先選 Version 3,確認 SNMP Username(v3) 和 SNMP Password(v3) 這兩個欄位是空的(如果有值,就手動 delete 掉)。然後再切回 Version 1 或想要設定的版本。
方法二: 把瀏覽器中 Cacti 執行網址下的已存密碼清掉,或是換個沒有存密碼的瀏覽器或電腦來進行設定。
方法三: 找 patch 或更新 Cacti 版本到 0.8.7c 以上(Cacti 0.8.7c 已修正此問題)。

沒有留言:

張貼留言