zabbix操做錯誤彙總

1####################################################################################php

2019-05-03T00:56:36.941840Z mysqld_safe mysqld from pid file /data/mysqld.pid endedmysql

[root@zabbix-server bin]# mysqld_safe --defaults-file=/etc/my.cnfweb

2019-05-03T00:59:06.392254Z mysqld_safe Logging to '/data/mysqld.log'.sql

2019-05-03T00:59:06.395674Z mysqld_safe Logging to '/data/mysqld.log'.數據庫

2019-05-03T00:59:06.424562Z mysqld_safe Starting mysqld daemon with databases from /datavim

 

^Zwindows

[1]+  Stopped                 mysqld_safe --defaults-file=/etc/my.cnfsocket

[root@zabbix-server bin]# bg 1測試

[1] + mysqld_safe --defaults-file=/etc/my.cnf &字體

 

若是仍是啓動不起來,那就是權限問題,賦予數據目錄相關權限:chown -R mysql:mysql ./

2###################################################################################

[root@dbserver-6 data]# mysql -uroot -p123 -s /usr/local/mysql/data/mysql.sock

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

[root@dbserver-6 data]# mysql -uroot -p123 -S /usr/local/mysql/data/mysql.sock

mysql>

三、####################################################################################

[root@dbserver-6 zabbix_agentd.conf.d]# zabbix_get -s 172.16.20.1 -k cpu_number

zabbix_get [11636]: Check access restrictions in Zabbix agent configuration

 

 被監控端的zabbix_agentd.conf配置文件裏的server_name沒有修改,應該修改爲被監控端的主機名Hostname=rh-mysql-1

真正緣由是要在server端運行該命令[root@zabbix-server etc]# zabbix_get -s 172.16.20.1 -p 10050 -k "cpu_number"

4

4####################################################################################

[root@rh-mysql-1 ~]# mysql -uroot -p123 -S /usr/local/mysql/data/mysql.sock --show-warnings=false -Ne "show variables like 'innodb_buffer_pool_size';" 2>/dev/null | awk '{print $2}'

134217728

[root@zabbix-server bin]# zabbix_get -s rh-mysql-1 -k buffer_pool_wait_free

           

agent端單獨測試執行命令沒問題,server端zabbix_get監控項鍵值時,返回值爲空,在zabbix監控網頁端配置自定義監控項,顯示不支持字符類型,

 

 

由於我設置的類型爲正整數類型,極可能上邊參數返回的是一個字符串報錯!!

所以我查看zabbix_agent的執行文件

     vim /usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/userparameter_mysql.conf

UserParameter=buffer_pool_wait_free,mysql -uroot -p123 -S /usr/local/mysql/data/mysql.sock --show-warnings=false -Ne "show global status like 'Innodb_buffer_pool_wait_free';" 2>/dev/null | awk '{print $2}'

將屏蔽錯誤和警告道null文件取消,進行測試,

[root@rh-mysql-1 ~]# mysql -uroot -p123 -S /usr/local/mysql/data/mysql.sock --show-warnings=false -Ne "show variables like 'innodb_buffer_pool_size';" | awk '{print $2}'

mysql: [Warning] Using a password on the command line interface can be insecure.

134217728

[root@zabbix-server bin]# zabbix_get -s rh-mysql-1 -k buffer_pool_wait_free

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/data/mysql.sock' (13)

server端出現出錯根源,鏈接不上sock套接字文件,但是我明明在agent端命令中指定sock文件,並且單獨執行沒有問題,這裏多是因爲server端執行命令調用agent端的mysql時,使用的sock文件路徑出錯;

修改以下:

agent端的mysql配置文件中vim /etc.my.cnf中,進行sock文件指定,添加內容以下:

[mysql]

socket=/usr/local/mysql/data/mysql.sock

修改zabbix_agent的執行文件

     vim /usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/userparameter_mysql.conf

UserParameter=buffer_pool_wait_free,mysql -uroot -p123 --show-warnings=false -Ne "show global status like 'Innodb_buffer_pool_wait_free';" 2>/dev/null | awk '{print $2}'

結果仍然出錯。

採用本地迴環方式登陸agent端的mysql

UserParameter=buffer_pool_wait_free,/usr/local/mysql/bin/mysql -uroot -p123 -h127.0.0.1 -P3306 --show-warnings=false -Ne "show global status like 'Innodb_buffer_pool_wait_free';" 2>/dev/null | awk '{print $2}'

[root@zabbix-server ~]# zabbix_get -s rh-mysql-1 -p 10050 -k "innodb_buffer_pool_size"

134217728

成功!!1

由於server端和agent端都存在一個MySQL數據庫,若是servermysql鏈接zabbix成功,就沒必要考慮,只考慮agent端便可,即在zabbix中可能存在默認socket文件的路徑必須在/tmp目錄下,若是不在致使agent端配置文件中的路徑出錯,所以會報錯。

五、###########################################################################

解決命令行輸入mysql密碼的Warning

因爲在命令行中輸入密碼形成的Warning經過通常的過濾手段可能沒法過濾掉這條警告,這樣就形成了在zabbix web界面顯示得到的監控項的值的類型和定義的不一致

如何解決:

1--show-warnings=false

mysql -uroot -p123 --show-warnings=false -Ne "show variables like 'innodb_buffer_pool_size';" 2>/dev/null

2、在mysql配置文件中添加以下內容

[client]

user=zabbix

password=123

host=localhost

socket=/usr/local/mysql/data/mysql.sock

 

[mysqladmin]

user=zabbix

password=123

host=localhost

socket=/usr/local/mysql/data/mysql.sock

專門在mysql中添加一個zabbix用戶,供zabbix獲取mysql的信息,不用給zabbix用戶很高的權限,實現zabbix用戶免密登陸mysql,這樣就避免了輸入密碼帶來的問題

3、本身在定義一個mysql配置文件,只存放用戶名和密碼等信息

執行mysql命令時在命令前面加上 HOME=/usr/local/zabbix-agent/etc/ 這個執行時就會讀取這個目錄     下的配置文件,例

HOME=/usr/local/zabbix-agent/etc/ mysql -e "show variables like 'innodb_buffer_pool_size';"|grep -v Value |awk '{print$2}'

上述的第2中方式須要重啓數據庫才能讀取配置文件,可能在真實的生產環境中不容許重啓,第3中方式就彌補了第2 中方式的不足

#####################################################################################################

六、解決zabbix 圖表中的中文亂碼問題

web端定義的各類中文表示,到了圖表中就顯示爲一個個方框的亂碼,這時由於由PHP編寫的zabbix web頁面時沒有加入中文字體包。

解決方式:

1、找一箇中文字體包(windows中的就能夠。在C:\Windows\Fonts中)

2、將中文字體包放入zabbix對應網頁的目錄中(/var/www/zabbix/php/fonts 字體包路徑)

     注意將文件名後綴改成 .ttf,不然不能識別

3、修改/var/www/zabbix/php/include/defines.inc.php 文件,

 

 

DejaVuSans修改成你上傳到fonts下的字體包名,不帶ttf

4、或者,不用修改配置文件,直接把fonts下,將新的字體包重命名成原來的那個名字,而且把原來的移走或刪除

相關文章
相關標籤/搜索