• 【思考】由安装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日

  • 相关阅读:
    1.Netty 实战前言
    8.Netty发送对象
    7.Netty中 handler 的执行顺序
    6.高性能NIO框架netty
    5.NIO_ Selector选择器
    4.NIO_Channel 通道
    3.NIO_Buffer缓冲区
    2.Java NIO 简介
    那些堪称神器的 Chrome 插件
    获取当前操作的IFrame 对象的方法
  • 原文地址:https://www.cnblogs.com/tielemao/p/6264209.html
Copyright © 2020-2023  润新知