【思考】由安装zabbix至排障php一系列引发的思考
【思考】由安装zabbix至排障php一系列引发的思考
linux的知识点林立众多,很有可能你在排查一个故障的时候就得用到另一门技术的知识;
由于linux本身的应用依赖的库和其它环境环环相扣,但又没有很好隔离应用,所以催生了Docker这种虚拟容器的技术,
虽然我现在还没有去掌握Docker,但我已经觉得迫在眉睫需要去学习并好好应用上了。
大概2016年8、9月份我知道了有Docker这种东西,到2017年1月份也只是大致上对它有一些了解和看了有关它技术的开篇的文档。
因为其它如mysql、nginx、zabbix等项目更迫切需要我先去掌握运用,所以我对Docker还一直只停留在感兴趣的层面。
使我深刻认识到有必要先去掌握Docker的这一点想法的是最近进行的安装zabbix的实验。
因为只是第一次参照大神们的文档和各种资料进行安装使用zabbix,所以整个实验环境我是为了省心方便而就在之前实验DZ论坛安装的虚拟机环境上。
系统和apache都没有问题,出现问题的是当时php的编译安装版本比较低,所以在安装完zabbix,通过浏览器访问的时候就出现了错误提示。
提示某行‘[’语法有问题,然后实际去检测是没有问题的,毕竟也是zabbix官方的安装包中的配置文件阿!
于是百度了一下,了解到了php的版本在5.4之下是会有识别[语法的问题,所以php版本得升级。
我马上又尝试了一下升级php的操作、编译安装5.6.3到yum换源安装5.6.3,高版本是安装成功了,但低版本在编译的时候和apache及库文件有千丝万缕关系,测试php info的时候还是显示5.2.7的信息。
看来得删除之前低版本时编译安装生成的各种文件甚或配置文件……我有点懵逼了,不想为了一个实验而去做那么复杂的事,而这个实验用的虚拟机一里面是早已被我实验过各种项目的,环境很乱,我也是有心到一定时候放弃它的。
所以我选择了在另一台虚拟机上再次做安装zabbix的实验,而这次选的虚拟机环境,是完全还没有安装php的,只有安装了Nginx,此前用来做反向代理实验的。
zabbix也适合装在LNMP的环境上,所以我也开始动手了,而这次动手我选择先装PHP,并且是yum换源安装,不用编译安装后卸载那么麻烦。
且PHP编译安装要指定的各项模块也很多和复杂,库文件也很多,依赖文件也N多,有必要的时候再去读官网和各路大神的资料文档去弄通透再进行编译安装吧,不然依样安装完还是不得要领。
当然无可否认依样多后还是能领悟出不少东西的,就好比这次我yum换源安装,在另一台虚拟机这测试时死活找不到php的包进行安装了。
我对比起两台虚拟机上的yum配置和仓库环境,再临急抱佛脚到网上细看了一下yum的文档和知识,发现了症结所在。
此前忘了我装什么东西,配置了sohu的源及貌似webtatic字样开头的yum源(查看/etc/yum.repos.d目录下),就这几个与另一台测试能成功yum安装php的虚拟机一上的repo不同,于是删除了这几个不同的repo配置文件,再测试就成功了。
也就是说本来我是做zabbix实验要点亮zabbix这个监控软件的技能树的,但是过程中我又变成了要去先将前置的小技能树php和yum都要进行加点了……
可见linux的不简单就在此,当然,我相信如果在干净的环境下再去做实验这事是少了很多排障发现,不过这种事多了,发现这个时间成本重了,而且排障解决了是有成就感,但也暴露了搭建实验的环境不成、杂乱这一弱点。
之前是想通过多建虚拟机或快照还原去解决的、只是建立在虚拟机VMware上的操作还不如试试Docker?这个想法决定在完成zabbix的安装后就去实现。
再说下去,yum安装php5.6.3是解决了,而且新的虚拟机内存配置比之前的那台要大,速度竟然真的快多了,似乎是昨天虚拟机一yum安装php是花了30分钟还不止,今天的15分钟左右就完成了?
完成归完成,建立了一个测试php信息的php文件后,在nginx上也配置好,然后测试用浏览器访问info.php这个文件又出现了另一个错误:php页面不像虚拟机一显示页面信息,而是提示下载。
最终通过百度又get到了两个知识点,一是更全面深刻认识到Nginx中对php支持的配置了,二是php-fpm这个解析器的作用。
此前由于我还在yum install 安装php-fpm的等待时间中就去做生成测试php这个步聚。那么还少了php-fpm的解析作用当然是不成功的,可见饭还是要一口口吃的。
当然,后来在查证资料前我就想到了有这个可能性,于是是在自行安装完php-fpm后重新启动fpm和nginx后再去相互印证查到的资料。
info.php这个文件成功显示出php的版本信息了,在那一刻还是满小激动的,有点侦探推理得出真相的小成就感。我想这就是linux的另一种迷人之处吧。
它无形中就是一种适合中二男人的不那么中二的游戏。不是有一句话说男人至死都是中二的么?
本篇由于只是归纳思考与总结,故当中的技术点并没有一一列出,在随后的zabbix安装实验文档中便会一一详尽揭示。
所谓思考远比技术本身重要。在linux运维这一途中,尽信书不如无书是真理,因为除非自己去重新编写,否则没有那一本书中的文档是会完全贴合你的,
特别是新人上路,想要不翻车,就得努力思考,结合站在众大神的肩膀上眺望,再从自身出发解决问题融汇知识。
文:食梦貘
2017年1月6日
【思考】由安装zabbix至排障php一系列引发的思考的更多相关文章
- 记一次KUBERNETES/DOCKER网络排障
https://coolshell.cn/articles/18654.html 总结在前面: 1.kill -9杀死docker进程,系统一定是要遍历所有的docker子进程来一个一个发退出信号的, ...
- [转帖]记一次KUBERNETES/DOCKER网络排障
记一次KUBERNETES/DOCKER网络排障 https://coolshell.cn/articles/18654.html 记得之前在一个公众号里面看过这个文章 讲的挺好的.. 物理机直接跑d ...
- 【排障】tomact未能看到网页
[排障]tomact未能看到网页 文:食梦貘 这是几个月前的事情了,那时候我在安装xwiki,需要用到tomcat,但是初次安装好时碰上过一个故障: 安装tomcat后,客户机用IE网址上输入:服务端 ...
- 【原】个人对win7开机黑屏只有鼠标排障总结
个人对win7开机黑屏只有鼠标排障总结 文:铁乐猫 第一种情况是explorer.exe进程丢失或损坏有关: 判断方法是按Ctrl+Alt+Del键能呼出任务管理器,结束explorer.exe进程, ...
- centos7如何安装zabbix
只需要按照第三次修改版本的内容安装就可以了(水平线内的内容),主要是执行两个脚本就可以完成自动化安装了,其他内容是以前写的,仅留下来作为参考 第三次修改:(此次为zabbix4.0版本的,进一步的自动 ...
- MongoDB系统CentOS 7.1 crash的排障过程
[作者] 王栋:携程技术保障中心数据库专家,对数据库疑难问题的排查和数据库自动化智能化运维工具的开发有强烈的兴趣. [问题描述] 最近我们有多台MongoDB的服务器CentOS 7.1系统发生了cr ...
- 记一次nginx -t非常慢的排障经历
在一次修改nginx配置时候,执行 case: #/usr/local/nginx/sbin/nginx -t 出现执行命令出现很久没返回结果,也没返回成功或是失败,就是一直卡住的状态,严重影响ngi ...
- TraceID在AspNETCore日志排障中的应用
前言 .NetCore日志,相信大家多少都接触过,博客园有关 ① AspNetCore依赖注入第三方日志组件 ②第三方日志组件Nlog,Serilog 应用方法的博文层出不穷. 结合程序的部署结构 ...
- Centos 源码安装zabbix 2.4.5
Zabbix简介 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统 的安全运营:并提供柔软的通知机制以让系统管 ...
随机推荐
- 【Python】一个python实例:给重要的文件创建备份.摘自crossin-python简明教程
问题:写一个可以为所有重要文件创建备份的程序 考虑:源路径和目标路径各是什么;所有重要文件-有哪些;备份文件格式是什么;定期备份的话,备份文件名称如何规定等等.(ps,我自己只想到一个路径和名称) 程 ...
- Linux Add a Swap File
http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/ Procedure To Add a Swap File Under Linux Y ...
- Unix 基础IO
内核通过文件描述符引用打开的文件,通常通过open函数或者create函数返回文件描述符. 基本函数: unix中基础的文件操作函数只有5个,分别是open,close,lseek,read,writ ...
- Ubuntu 小技巧
一.获得当前文件夹的路径: 在目标文件夹下,按Ctrl+l此文件的路径会被选中 之后Ctrl+c复制.要复制到终端(Terminal),选中终端按鼠标的滚轮就粘贴到了Terminal命令行中了. 二. ...
- 关于Aggregate 的一点用法
比如 我们要 将数组或者对象中的某列或某属性 的值取出,然后 用 逗号隔开. 1.通常我们可能会用for 或foreach 来循环,然后将取出的值并添加至StringBuilder 2.用Aggreg ...
- 【转载】gcc和g++的区别
[说明]本文转载自 静心 的文章 http://blog.163.com/lu_jun520/blog/static/5699613420116205148239/ 一般linux系统都自带了gcc编 ...
- 【现代程序设计】【homework-02】【11061027】
Q:描述在这么多相似的需求面前, 你怎么维护你的设计 (父类/子类/基类, UML, 设计模式, 或者其它方法) 让整个程序的架构不至于崩溃的? A:由于使用的是面向过程的C语言,所以维护设计这个问 ...
- ACCESS-字符函数
mid:等于delphi中的COPY举例str="123456"mid(str,2,1)的意思是在str字符串中从第2个字符开始取得一个字符,结果为2注意:下标是从1开始,而不是从 ...
- python 错误、调试和测试
在程序运行过程中,总会遇到各种各样的错误. 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的. 有的错误是用户输入造成的,比如让用 ...
- [iOS基础控件 - 3.3] 图片浏览器
需求: 1.显示当前图片序号/总图片数 2.显示图片 3.上一张图片.下一张图片转换 4.显示图片描述 A.数据的加载方式 1.逐个加载.处理 2.使用数组.字典分离数据和逻辑 3.延迟加载 ...