zabbix MySQL占用磁盘过多,报错ERROR 2002 (HY000): through socket '/var/lib/mysq/mysql.sock' (111)
如题啊:
一、解决步骤
1、在进入zabbix 的web页面的时候报错
1-1、RROR 2002 (HY000): =cannot connect to mysql ,through socket '/var/lib/mysq/mysql.sock' (111)
2、对zabbix问题分析得出,是因为监控时间过长把mysql数据库撑大了,导致Linux磁盘占用100%。
3、定为mysql大文件,找到/var/lin/mysql/ibadate1文件28G
4、怒删之。。。。哼╭(╯^╰)╮
5、重装MySQL(在被甲骨文收购后改名mariadb,性质一样)
5-1、rpm -qa | grep -i mariadb 得出mariadb的相关组件
5-2、mv /var/lib/mysql ~ 将这个目录移除,不先移除会很费心思。下面有我的蛋疼过程。
5-2、yum remove mariadb 相关组件
5-3、yum install 回来mariadb组件
6、初始化zabbix和mysql
6-1、看我师傅的笔记
【http://016ec091.wiz03.com/share/s/01rI2h30kQQj2U5JPA2bSqPA3_7FGv191Jrz0utTJq2Uz6K5】
6-2、去zabbix web页面中配置主机和监控项
7、OK
二、蛋疼过程。。。。。。
一、在linux下输入mysql报错
二、并且附带的疑难杂症为
1、/etc/init.d/mysqld start 提示找不到mysqld 但是 rpm -qa | grep -i mariadb下又能看到有 mariadb-server
1-1、-i为不区分大小写
1-2、是mariadb,而不是mysql,是因为被甲骨文收购后改名了
1-3、
2、find / -name mysql.server 提示找不到这个文件。。。。。
3、systemctl status mariadb 报错
3-1、错误提示为
3-2、针对这个错误,采取过的措施有:
3-2-1、把/var/lib/mysql文件清空
3-2-2、为/var/lib/mysql提升权限
3-2-3、结果是都没用
4、查看日志信息
三、尝试过的网上方法
1、把 /tmp/mysql.sock 软连接到 /var/lib/mysql/mysql.sock 。。。。。未果
2、修改/etc/my.cnf 中的 socketdir=/var/lin/mysql/mysql.sock。。。。。未果
3、yum remove mariadb相关组件,再 yum install 回来 。。。。。。。。。未果
四、 我的解决思路
1、根据 systemctl status mariadb中的报错信息,得出/var/lib/mysql 不为空。
2、为什么启动的时候需要这个目录为空?因为再启动mysql(systemctl start mariadb)的时候,系统会自动的创建一个/var/lib/mysql的目录和目录下需要的文件。
3、思路来了。。。是不是因为我在卸载(yun remove mariadb-server)之后,/var/lib/mysql文件残留?
五、解决方法
1、【mv /var/lib/mysql ~ 】将这个目录先移除掉
2、【yum remove mariadb-server】将mariadb-server移除
3、【yum install mariadb-server】重新安装回来
4、【systemctl start mariadb】重启mysql
5、成功解决 【ERROR 2002 (HY000): through socket '/var/lib/mysq/mysql.sock' (111)】问题
六、师傅笔记贴一贴,膜拜下。。。
########################################################################################
1. CentOS7.x中,直接 yum install zabbix22-server zabbix22-agent,server是统一控制端,agent用于部署到需要监控的机器上做信息采集
2. 初始化:
a) 安装依赖数据库:
yum install zabbix-server-mysql zabbix-web-mysql
b) 创建数据库:
# mysql -uroot mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; mysql> exit
c) 初始化schema:
# cd /usr/share/doc/zabbix-server-mysql-2.2.0/create # mysql -uroot zabbix < schema.sql # mysql -uroot zabbix < images.sql # mysql -uroot zabbix < data.sql
d) 修改配置:
# vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix
# vi /etc/zabbix/web/zabbix.conf.php <?php // Zabbix GUI configuration file global $DB; $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = 'localhost'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'root'; $DB['PASSWORD'] = ''; // SCHEMA is relevant only for IBM_DB2 database $DB['SCHEMA'] = ''; $ZBX_SERVER = 'localhost'; $ZBX_SERVER_PORT = '10051'; $ZBX_SERVER_NAME = ''; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; ?>
e) 启动服务进程:
# systemctl start zabbix-server # systemctl restart httpd
f) 访问 localhost:8080/zabbix即可,默认用户名密码Admin/zabbix
添加监控主机
- 在监控对象上安装zabbix-agent,配置agent的Server参数:
- 在Web UI上添加Host
添加自定义监控项
zabbix的通用设计使得添加自定义的监控项十分方便,比如针对mongodb进行监控的步骤:
-
编写数据采集脚本,shell/python等均可;
-
注册到agent中, 往 /etc/zabbix_agentd.conf中添加UserParameter=<key-name>[*],<shell command>,意思是添加名为<key-name>的监控项,其值由对应的shell命令获取;[*]表示可传递参数,会将前端的配置通过参数的形式传递给shell脚本。示例:
UserParameter=mongodb[*], /path/to/script/mongo-stat.sh $1 $2
则当前端item的key配置为mongdob[a,b]时,将会以a b为参数调用mongo-stat.sh脚本获取结果
-
在Web UI上添加item
-
注意事项:
- 自定义的脚本需要放在zabbix用户可访问的路径下,否则会执行失败且很难debug
- 在自定义item时,把错误输出重定向到标准输出,方便debug:如 sh /path/to/script.sh 2>&1,这样在发生错误的时候,不至于连一点错误信息都没有
完成以上3步即可完成添加自定义监控项。
监控预警
开放API
zabbix中提供开放api接口供二次开发,文档详见:https://www.zabbix.com/documentation/2.2/manual/api
########################################################################################
七、重新配置zabbix web页面
1-1、在configuration中创建host groups
1-2、将监控的机器加入刚刚创建的group中
1-3、将一开始导出来的监控模板xml文件import进来
1-4、为主机关联模板
1-5、OK
八、结束语
这个过程是一个新手的蛋疼过程,大家有不同的看法可以评论或者私信我,一起学习,快乐成长。。。。。。
更多推荐
所有评论(0)