2020-11-11记录piwik相关问题

背景

Piwik是一套基于Php+MySQL技术构建,能够与Google Analytics相媲美的开源网站访问统计系统,前身是phpMyVisites。Piwik可以给你详细的统计信息,比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等等,并且采用了大量的AJAX/Flash技术,使得在操作上更加便易。此外,它还采用了插件扩展及开放API架构,可以让开发人员根据自已的实际需求创建更多的功能。

项目中使用的是内部封装好的安装过程。直接傻瓜式安装后一直使用至今,偶尔服务器重启可能会使服务不可用外,并无其他问题。

问题

系统中使用piwik一直都是正常情况,忽然前端说js访问测试环境的piwik请求500,领导要求我去排查解决,没搞过也得硬上,没办法,就只能先试试了。首先排查是否是程序自身问题,分别验证测试环境和生产环境,生产环境一切正常。测试环境访问如下:
在这里插入图片描述

排查

确实是服务问题,登录piwik所在服务器,因为piwik是依赖mysql和php,需要启动mysql与apache服务,首先检查下服务情况:
在这里插入图片描述
emmmm看样子是被人停了服务,不过也说明问题应该很好解决,长舒一口气,准备手动启动服务,可是真正执行却发现。。。
在这里插入图片描述
后来想起了项目中piwik是采用脚本去部署的,那么服务应该也是可以使用脚本进行启停,找到服务安装路径,果然有几个脚本文件在这里插入图片描述
查看这个脚本文件,里面介绍了服务启停相关命令使用,在使用了启动命令后,检查服务启动情况:
在这里插入图片描述
在这里插入图片描述

完美,服务启动成功,可以通知前端去验证问题了,可是…

在这里插入图片描述
这么看的话,apache服务是没有问题了,所以排查是mysql还有其他问题,翻看以前聊天记录,在后台服务中,有调用piwik内部mysql的服务,去查看系统日志,果然存在猫腻。。。
在这里插入图片描述
在这里插入图片描述
看来piwik的mysql还是有问题,导致piwik内部和外部系统,都无法连接,导致出错,之前都是单个重启,更改一下启停脚本,让mysql和Apache服务顺序启停,mysql在前,Apache在后启动:
在这里插入图片描述
检查服务情况:
在这里插入图片描述
服务启动成功,登录控制台,可以看到piwik页面内部已经有数据了。
在这里插入图片描述
再去检查测试环境的页面请求,发现也由原来的500,变成200了。大功告成~

在这里插入图片描述

问题记录下,虽然内部原理还不太懂,先存下来后续有问题沿用此思路解决~