1. 程式人生 > >zabbix_get 獲取agnet端mysql數據失敗

zabbix_get 獲取agnet端mysql數據失敗

方式 沒有 lec 由於 目錄 可能 實踐 erro user

問題

在使用zabbix_get獲取agent端的mysql數據時,總是報錯,ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/usr/local/mysql/data/mysql.sock‘ (13)。

技術分享圖片

通過親身實踐,我認為是zabbix_get 遠程控制 agent端,通過zabbix用戶執行命令或者腳本。我將Linux用戶從root切換到 zabbix,登錄mysql時發現指定sock文件的位置也登陸不了mysql,而且報錯也是和zabbix_get的一樣。

這說明可能是 zabbix用戶權限不足導致的問題。

為了驗證是因為權限不足引起的這個問題,我將mysql相關的文件和目錄權限改成了 777,結果在zabbix下登錄成功,而且zabbix_get 也能正確的返回結果了。由於時間原因,沒有具體驗證到低是哪個文件的權限問題造成的失敗。

據我推測,可能是 zabbix用戶在 sock文件上的權限不足造成的。

解決方式:

1、增加zabbix用戶的權限,讓zabbix能夠使用 sock等mysql相關文件

2、不通過sock文件(localhost)登錄mysql,而是通過本地回環的方式,指定 -h 127.0.0.1 登錄mysql,也是可以的。

另外,在網上還看到有說是mysql 設置的安全插件(plugin)問題。

技術分享圖片

select user,host,plugin from mysql.user;

可能是plugin設置的有問題,將原來的 值 auto_sock 改成 mysql_native_password,本人沒有試過,不知道是不是有這個原因。

zabbix_get 獲取agnet端mysql數據失敗