zoukankan      html  css  js  c++  java
  • zabbix操作错误汇总

    1####################################################################################

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

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

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

    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 /data

    ^Z

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

    [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>

    3、####################################################################################

    [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端配置文件中的路径出错,因此会报错。

    5、###########################################################################

    解决命令行输入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 中方式的不足

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

    6、解决zabbix 图表中的中文乱码问题

    web端定义的各种中文表示,到了图表中就显示为一个个方框的乱码,这时因为由PHP编写的zabbix web页面时没有加入中文字体包。

    解决方式:

    1、找一个中文字体包(windows中的就可以。在C:WindowsFonts中)

    2、将中文字体包放入zabbix对应网页的目录中(/var/www/zabbix/php/fonts 字体包路径)

         注意将文件名后缀改为 .ttf,否则不能识别

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

     

    DejaVuSans修改为你上传到fonts下的字体包名,不带ttf

    4、或者,不用修改配置文件,直接把fonts下,将新的字体包重命名成原来的那个名字,并且把原来的移走或删除

  • 相关阅读:
    IOS、java支持DES加密
    多线程——@synchronized(object)
    LSM树存储模型
    System.setProperty()
    Filter及FilterChain的使用具体解释
    Java有用经验总结--Swing篇
    POJ3342——Party at Hali-Bula
    Hadoop-2.4.1学习之Writable及事实上现
    OpenCV 编程简单介绍(矩阵/图像/视频的基本读写操作)
    Android中Context具体解释 ---- 你所不知道的Context
  • 原文地址:https://www.cnblogs.com/5945yang/p/11061613.html
Copyright © 2011-2022 走看看