Zabbix(一)
Zabbix(一)
1.Zabbix介绍
首先是对zabbix进行了解,监控的本质是当某些指标不符合我们的要求和设置的条件时,我们能够第一时间发现异常的问题,所以需要一个监控感觉能够定期的对监控主机进行检查、信息收集等操作,被监控主机出现异常时,能够及时报警、通知管理员,并且需要记录这些异常。
为了使得监控设备具有一定的通用性,zabbix提供了一些通讯方式方便管理:
方式 | 功能 |
---|---|
agent | 通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent |
ssh/telnet | 通过远程控制协议进行通讯,比如ssh或者telnet |
SNMP | 通过SNMP协议与被监控对象进行通讯,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件往往都支持SNMP协议,大部分网络设备都支持这种协议,其实SNMP协议的工作方式也可以理解为master/agent的工作方式 |
IPMI | 通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压,温度,风扇状态,电源状态等 |
JMX | 通过JMX进行监控,JMX(Java Management Extensions,即Java管理扩展) |
一般情况下,我们将zabbix agent部署到被监控主机上,由agent采集数据,报告给负责监控的中心主机,中心主机也就是master/agent模型中的master,负责监控的中心主机被称为zabbix server,zabbix server将从agent端接收到的信息存储于zabbix的数据库中,我们把zabbix的数据库端称为zabbix database
2.Zabbix安装
这里使用的是3.0.32版本的编译安装,首先下载安装zabbix的YUM源
1 |
|
安装Zabbix
1 |
|
安装之后进入MySQL数据库,创建Zabbix数据库
1 |
|
导入Zabbix到数据库
1 |
|
1 |
|
1 |
|
最后就是在浏览器中测试Zabbix,这里出现了问题,就是在访问zabbix/setup.php网址的时候,访问不了,一直反馈的是空白的状态,使用curl抓取也是没有任何反馈,这里一开始以为是php-fpm的问题,重启服务后没有作用
后面进行排查和尝试,表示有一些常见错误,使用一下命令
1 |
|
我怀着试一试的办法,也是最终成功了,但是没法理解是因为什么,最终是成功了进入到了setup的界面,这是因为一开始访问的界面不在对应的那个文件中,所以我们赋权的时候没赋权到,所以给web界面进行了赋权,至于为什么要分开放,我也不知道(sad)
3.Zabbix配置
进入界面后进行了报错,zabbix自动检查了环境,显示php的部分内容是不满足要求的,需要进行修改,这里进入到php.ini文件进行相关的修改即可
1 |
|
这里使用vim编辑器,并使用/ 查找单词的模式进行了相关查找
修改后就剩下是最后就是jpeg的支持问题,尝试先安装jpeg
1 |
|
接下来需要cd到php源码的 gd 目录,否则会报 cannot find config.m4 之类的错误
1 |
|
然后再这个目录中执行命令 /usr/local/php/bin/phpize。当我们需要再加些模块,又不想重新编译php,这时我们就可以用phpize了
1 |
|
现在可以进行单独编译安装了
1 |
|
这个报错意味着编译器无法找到php-config文件
使用find命令查找一番,明显就是有的啊,这不睁眼说瞎话吗,很奇怪,没理解这是为什么。,总感觉是我哪里理解出了问题,导致没有办法让他找到config的文件,后面发现是我的拼写出了问题,应该是config,不是configrue,重新运行
显示添加成功了,接下来进行make操作
1 |
|
重启 Nginx 之后再看看是否安装成功了。再执行z/usr/local/php/bin/php -m 查看gd模块是否加载成功。
1 |
|
重启php-fpm服务和zabbix-server服务。还是失败了
这个报错比较特殊,,我首先是尝试了单独的安装jped库的安装包,尝试使用单独配置的办法,类比与openssl的解决思路进行尝试,结果是失败了,这让我有些走入了死胡同的感觉,参照了网络上查询的解决办法,大体上也是我这样子的思路,所以我一直也在追求如何不重新编译php的情况下,进行二次编译扩展的使用,但遗憾的是没有成功,我似乎根本找不到对应的so文件,这使得我卡主了很久,后来找了导师,导师和我说我这安装的gd库有些特殊,需要先make clean后才能重新编译make成功,总之最终还是选择了重新编译php的操作,最后就是解决最后的报错提示
1 |
|
这个问题的话,通过查询资料,大部分显示warning并不会影响最终的zabbix配置,直接下一步也是能够通过的,但是这里我觉得还是本着不对红字放过,不对报错马虎的态度进行了解决,这个报错的提示是php的ldap并不存在,我们需要安装对应的库即可,这里采用了二次编译扩展的方法进行尝试
1 |
|
1 |
|
执行过程中出现如下报错
configure: error: Cannot find ldap.h 解决办法:
1 |
|
configure: error: Cannot find ldap libraries in /usr/lib 解决办法 :
1 |
|
出现对应的so扩展文件,接下来就是编辑php.ini,5版本的php添加
1 |
|
退出重启服务:
1 |
|
4.Zabbix初始化
完成上述安装步骤后,访问 Zabbix_Web_IP/zabbix ,可以看到如下图的zabbix安装页面,点击下一步按钮
以看到,zabbix自动检查了安装环境是否满足要求,如果出现不满足要求的情况,需要进一步处理,这里已经全部处理完成没有问题了,点击下一步
此处zabbix需要配置数据库连接,此处配置数据库的类型,IP,端口,数据库名,用户密码等信息,端口填写0表示使用默认端口(3306端口),这里就使用默认端口,然后密码使用4399,这里使用命令查看3306端口使用情况
1 |
|
这里是之前配置myslq中zabbix账号和密码,我设置的是zabbix和zabbixpass(忘记了,还好前面有保存日报),吓得我以为又是数据库的问题
好咧,这里就明显通过了,没有报错,接下来,我们可以填写zabbix server的详细信息,包括IP地址,端口号,以及server名称等,填写完成后点击下一步
在配置之前,请确定概要信息无误,点击下一步。这里可能会有无法创建文件的问题,无所谓,直接手动下载迁移到其指定的位置即可
Zabbix将提示初始化完成,点击“Finish”即可进入登录界面
Zabbix Web默认管理员用户为Admin,密码为zabbix。输入用户名密码即可登录Zabbix Web
进入界面
这里出现了问题,就是服务器运行中显示为不,进行排错,首先查看zabbix日志
1 |
|
发现日志链接不上,可以知道是/var/lib/mysql/mysql.sock不存在,首先查找一下
1 |
|
发现是在/tmp/下,这里使用软连接进行尝试
1 |
|
再次重启zabbix-server服务
搞定!但是为了更加安全,我们不应该使用管理员的默认密码,所以先修改管理员密码
5.Zabbix菜单了解
zabbix的使用一般就围绕着web界面进行展开,首先了解下zabbix的菜单
一般用于管理zabbix自身以及zabbix相关的设置,用于管理Zabbix的用户、权限、日志、报告等等。可以在这里添加、编辑或删除用户、设置权限、查看日志、生成报告等等
一般用于配置监控相关设置,用于管理Zabbix的各种配置信息,包括主机、模板、动作、媒介类型等等。
为管理员生成一段时间内的监控统计信息,用于显示各种监控数据的概览信息,包括主机状态、网络流量、CPU使用率等等
管理员可以查看被管控的主机有哪些,以及相关的资产信息
一般用于查看被监控的相关数据