数据中心机房zabbix实施1.背景概述监控系统,是运维工程师和研发工程师的研究,它帮助工程师在第一时间发现问题。服务器的整个生命周期都要和监控系统打交道。怎样才能保障系统工作的高效性、稳定性、可靠性?怎样才能动态地了解用户的需求和分配资源给到用户?怎样才能应对潜在的各种风险?这些都需要能够及时发现并采取有效措施及时解决,所以系统监控工作无疑占据了日常IT运维中非常重要的地位。2.zabbix介绍2.1zabbix概念zabbix系统是一种企业级开源分布式监控解决方案。它所具有的丰富的数据采集方法使它几乎可以采集和处理所有类型的监控数据;它所具有的灵活的报警机制,使它可以实现智能、灵活的报警策略;其web组建不但方便我们日常管理和维护,而且可以输出近乎完美的数据图、拓扑图和各种报告;而它所特有的网络自动发现和低级自动发现功能,不仅能大大提高我们的工作效率,减少认为出错可能,而且使zabbix系统相比其他开源监控系统具有更高的智能。除了web前端组件以外,zabbix系统的其他组件均适用C/C++语言编写,这使得zabbix系统具有非常高的运行效率;其分布式的架构设计,不仅可以使它支持非常庞大的网络监控,而且由此可以轻易实现跨地区、跨平台的分布式监控解决方案。Zabbix系统数据的集中存储不仅方便我们日常的配置管理,而且使对监控数据的进一步挖掘和分析成为可能。2.2zabbix系统组建及框架ZabbixServer:负责接受agent(代理)发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其组织进行。Databasestorage(数据仓库):专用于存储所有配置信息,以及由zabbix收集的数据Webinterface(web端口):zabbix的gui(用户界面)接口,通常与Server运行在同一台主机上。ZabbixProxy(Zabbix代理):可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端。ZabbixAgent:部署在被监控主机上,负责收集本地数据并发往Server端或proxy端。SNMP:也是agent的一种,指支持SNMP协议的设备(也可以是服务器),通过设定SNMP的参数将相关监控数据传送至服务器端(大部份的交换机、防火墙等网络设备都支持SNMP协议)。IPMI:Agent的另一种方式,主要应用于设备的物理性能监控,例如设备的温度、风扇的转速等。Zabbix系统中各组件的关系如下图所示:3.安装环境和基础配置说明平台Centos6.5+Apache+Mysql+PHPZabbix版本:zabbix-2.4.6Hostname:zabbix_serverIp:192.168.134.2283.1Zabbix服务配置文件Zabbix安装后服务端默认的配置文件存在安装文件夹中的/etc中,假设编译的参数是“—prefix=/usr/local/zabbix”,那么服务端的配置文件则在“vi/usr/loca/zabbix/etc/”。主要的配置文件两个:“zabbix_server.conf”负责服务器端的设定;“zabbix_agent.conf”用来设置客户端代理参数;“zabbix_proxy.conf”用来设定分布式的部署。3.1zabbix_server.conf说明Zabbix_server.conf中的参数比较多,设定值的跨度也很大,这里仅列出常用的一些参数。如图三所示。Zabbix_server.conf参数除了保证服务正常运行外还涉及该服务器的性能,如果参数设定不合理可能会导致zabbix添加主机不正常、代理端数据无法正常收集或是zabbix服务器性能严重下降,经常报告CPU占用过高或是IO占用过高等问题。DBName=zabbix#zabbix所属数据库名称DBUser=zabbix#zabbix所属数据库用户DBPassword=zabbix#zabbix数据库密码3.2zabbix_agent.conf说明Zabbix_agent.conf用来配置代理的参数,该文件中需要更改的地方比较少,仅更改几个常用的参数就行了(linux的agent和windows的都差不多,大同小异,以下的说明以windows为例)。如图五所示。LogFile=c:\zabbix\zabbix_agentd.log#日志文件的存放位置Server=192.168.134.228#zabbix服务器的IPHostname=192.168.134.228#被监控机的IP需要注意的是代理端的设定参数“Hostname=192.168.134.228”要和配置时填入的主机名称一致,不然日志中将会报“host{主机名}notfound”的错误。4.安装zabbix4.1环境配置vim/etc/sysconfig/selinux#配置SElinux把SELINUX=enforcing改成SELINUX=disabled#关闭SElinux注销SELINUXTYPE=targeted前面加上#如果不想重启系统,使用命令setenforce0输入getenforce查看selinux状态关闭防火墙serviceiptablesstop#关闭防火墙,重启后失效chkconfigiptablesoff#重启后关闭防火墙4.2创建zabbix服务运行所需要的用户和组groupaddzabbix#创建用户组zabbixuseraddzabbix-gzabbix-s/bin/false#创建用户zabbix,并且把用户zabbix加入到用户组zabbix中4.3安装Apachemysql和基础组件yuminstallmakemysql-serverphpmysql-develgccnet-snmp-develcurl-develperl-DBIphp-gdphp-mysqlphp-bcmathphp-mbstringphp-xmlhttpd–y#准备Apachemysql环境servicehttpdstart#启动Apache服务在浏览器中输入ip地址查看是否能打开Apache主页4.4启动mysqlservicemysqldstart#启动mysqlmysqladmin-urootpasswordzabbix#添加mysql管理员用户名和密码,mysql-uroot–pzabbix#登录mysql4.5创建zabbix数据库Mysqlcreatedatabasezabbixcharactersetutf8collateutf8_bin;Mysqlgrantallonzabbix.*TOzabbix@'localhost'identifiedby'zabbix';Mysqlflushprivileges;4.6开始安装配置zabbix先把zabbix-2.4.6.tar.gz复制到系统内,复制到/opt下进行解压缩导入表结构root@localhostzabbix-2.4.6]#cddatabase/mysql/[root@localhostmysql]#lsdata.sqlimages.sqlschema.sql[root@localhostmysql]#mysql-uroot-pzabbixzabbixschema.sql[root@localhostmysql]#mysql-uroot-pzabbixzabbiximages.sql[root@localhostmysql]#mysql-uroot-pzabbixzabbixdata.sql./configure-prefix=/usr/local/zabbix/-enable-server-enable-proxy-enable-agent-with-mysql-with-net-snmp-with-libcurl成功之后能看到如下图.make&&makeinstall4.7修改配置文件修改配置文件vim/etc/services最后面添加,按G直接跳到最后一行。把以下四个添加到配置文件里。zabbix-agent10050/tcp#ZabbixAgentzabbix-agent10050/udp#ZabbixAgentzabbix-trapper10051/tcp#ZabbixTrapperzabbix-trapper10051/udp#ZabbixTrapper修改zabbixServer的配置文件,修改数据库的Userpasswordcd/usr/local/zabbix/etc#进入该目录ls#查看该目录下的文件,能看到zabbix_server.confvizabbix_server.conf#找到DBPassword、DBUser修改为DBUser=zabbixDBPassword=zabbix4.7.1修改php.ini文件处理zabbixweb中的时区错误问题vi/etc/php.ini修改三个参数分别改为post_max_size=16Mmax_execution_time=300max_input_time=300date.timezone=Asia/Shanghaipost_max_size=32M4.8配置启动脚本,并且给执行权限;配置启动脚本,并且给执行权限;[root@Zabbix-Serverzabbix-2.0.8]#cpmisc/init.d/Fedora/core/zabbix_*/etc/init.d/[root@Zabbix-Serverzabbix-2.0.8]#sed-i's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/'/etc/init.d/zabbix_server[root@Zabbix-Serverzabbix-2.0.8]#sed-i's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/'/etc/init.d/zabbix_agentd[root@Zabbix-Serverzabbix-2.0.8]#chmod+x/etc/init.d/zabbix_server[root@Zabbix-Serverzabbix-2.0.8]#chmod+x/etc/init.d/zabbix_agentdcd/opt/zabbix-2.4.6/misc/init.d/fedora/core#进入到该目录下cpzabbix_*/etc/rc.d/init.d/#把zabbix的启动文件拷贝到etc/init.d/目录下chmod+x/etc/rc.d/init.d/zabbix_server#添加脚本执行权限chmod+x/etc/rc.d/init.d/zabbix_agentd#添加脚本执行权限4.9启动zabbix服务器和客户端/etc/rc.d/init.d/zabbix_serverstart将zabbix的页面文件copy到指定目录(跟apache配置的相同即可)mkdir/var/*/var/配置开机启动/etc/init.d/zabbix_serverstart/etc/init.d/zabbix_agentdstartchkconfigzabbix_serveronchkconfigzabbix_agentdonchkconfighttpdonchkconfigmysqldon解决zabbixweb界面图形下字体显示方格解决办法:方法:#进入zabbix的front路径在:/var/先备份原先的字体:cd/var/