【思考】由安装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引用在函数传参时的体现以及可变与不可变对象的对比
今天偶然看到 vamei 老师的博客 http://www.cnblogs.com/vamei/archive/2012/07/10/2582795.html 讲的是python动态类型以及引用的事儿 ...
- 【原创】lua的module的一些点
lua的module好像是5.1开始有的 在xx.lua的开头写上 module('my_module') 这行等价于如下几行 local name = 'my_module' local M = { ...
- leetcode@ [87] Scramble String (Dynamic Programming)
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrin ...
- [iOS基础控件 - 6.5] UITableView的数据刷新
A.需求 1.以LOL英雄列表为蓝本,给其加上实时修改英雄名称的功能 2.使用UIAlertView 3.全局刷新reloadData 4.局部刷新 B.实现 1.使用UIAlertView ...
- 笔记-动画篇-layout动画初体验
约束动画的文章要比预计的迟迟来临,最大的原因是没有找到我认为的足够好的动画来讲解约束动画 —— 当然了,这并不是因为约束动画太难.相反,因为约束动画实在太简单了,反而没有足够多的简单动画素材让我选用. ...
- C#实现异步编程的两个简单机制(异步委托&定时器)及Thread实现多线程
创建线程的常用方法:异步委托.定时器.Thread类 理解程序.进程.线程三者之间的区别:简而言之,一个程序至少有一个进程,一个进程至少有一个线程进程就是在内存中运行的程序(即运行着的程序):一个进程 ...
- HDU 3635 并查集+路径压缩+记录每个点移动次数
题意: 给定n个点 oper个操作 每个点有1个龙珠 下面2种操作: T u v 把u点所有龙珠搬到v Q u 问u点当前所在城市 u点所在城市有几个龙珠 u点被移动几次 思路: 并查集可以求出 u ...
- CGAffineTransform相关函数
CoreGraphics.h CGAffineTransform rotation = CGAffineTransformMakeRotation(M_PI_2); [xxx setTransform ...
- C++ 外部调用private方法
1.思考,对于C++,能不能在外部调用私有方法? 2.在Java中,子类继承不能缩小父类成员的访问权限.因为在Java中,继承只是表示Is-A关系,因此,父类提供的接口,子类必须承诺仍然提供,不能缩小 ...
- cdoj 383 japan 树状数组
Japan Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/383 Descrip ...