zabbix整个移植过程下来比较顺利,因为官方就支持r系的dockerfile,虽然官方的r系系统是c7,有一些依赖库的小差异,这个也很容易排查,就是手动执行一下zabibx的二进制文件,缺啥装啥即可,这样的话节省了一半的时间,而且跟x86对比起来就更加方便了。
唯一花时间的是,所有的镜像完成之后,运行起来有报错,就是zabbix-server一直连接不上mysql数据库,把防火墙关闭了也无用,然后就是查容器之间是否可以正常访问,查hosts文件,没啥异常,下面就是两天的排查,边查mysql的资料边调吧,顺便学习一下mysql的用法啥的,zabbix个人觉得镜像没有啥问题。
2021.12.23 排查记录
先把数据run起来,看看基本功能正常吗,在mysql容器中,使用mysql命令都进不去数据库,这个肯定有问题,经过调试,msyql镜像的配置文件要用系统带的即可,而官方推荐的conf文件不行,可能是我们仓库的mysql安装包有些差异吧。起一个zabbix容器,可以正常访问到数据库,按理说这样应该就可以了,事实还是报连接不上导致mysql数据库中没有导入create.sql.gz这个zabbix数据库文件,我从zabbix-server容器中手动进入mysql数据库中,使用source手动导入这个数据库文件(参考资料:MySQL 导入数据 | 菜鸟教程),也是可以正常导入的,这个~~~~~~
数据库暂且先这样
如何访问一个数据库:mysql -h mysql -u root -p123=abc
2121.12.24排查记录
进入zabbix-server容器执行
/bin/bash /usr/bin/docker-entrypoint.sh /usr/sbin/zabbix_server --foreground /etc/zabbix/zabbix_server.conf
报错
原因是zabbix_server连接不上数据库,在docker-entrypoint.sh就是这里过不去check_db_connect_mysql。。。
发现在/usr/bin/docker-entrypoint.sh里面有个debug模式可以打开,这可帮了大忙,以后shell脚本可以这样套用,太实用了,如下:
然后手动执行刚开始那个命令
/bin/bash /usr/bin/docker-entrypoint.sh /usr/sbin/zabbix_server --foreground /etc/zabbix/zabbix_server.conf
就会有详细的打印
进入mysql容器中执行,发现19网段可以返回正确的
[root@localhost centos]# docker exec -it zabbix-mysql bash
bash-5.0# mysqladmin ping -h 172.18.0.1 -P 3307 -u root --password=123=abc --silent --connect_timeout=10mysqladmin: [Warning] Using a password on the command line interface can be insecure.
bash-5.0#
bash-5.0# mysqladmin ping -h 172.19.0.1 -P 3307 -u root --password=123=abc --silent --connect_timeout=10
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqld is alive
bash-5.0#
bash-5.0# ping 172.18.0.1
PING 172.18.0.1 (172.18.0.1) 56(84) bytes of data.
^C
--- 172.18.0.1 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4167ms
bash-5.0#
这是x86的结果
root@d1a6c0ef40e4:/# mysqladmin ping -h 172.18.0.1 -P 3307 -u root --password=123=abc --silent --connect_timeout=10
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqld is alive
最终,申威只有19网段的网桥,而没有18的,可能是之前测试搞混淆了吧,也好,就当学习了
所以leechm/zabbix-web-nginx-mysql:5.0.0这个容器的DB_SERVER_HOST改成19网段就行了
zabbix简单测试
收获总结
1. mysql的基本用法
2. 那个shell脚本调试方法
关于shell脚本调试,专门做了一个学习笔记文档