zabixx介绍与安装

  • 格式:docx
  • 大小:1.73 MB
  • 文档页数:16

2015年9月份第二周产出物总结

Zabbix主要功能

Zabbix是一个企业级的、开源的、分布式的监控套件。主要功能就是数据收集、图形化显示、历史数据储存、配置模板、实时告警等。如下图

对于zabbix主要功能学习的总结

Zabbix几乎针对于现市场上主流的操作系统都进行相关的兼容,且功能强大,一般使用的硬件配置要求也不需要非常大,基本上可以确保现有的绝大多数监控软件的使用需求,但是有一点需要注意,zabbix服务端在监控其被监控端的同时,自己也需要被监控,即一个大型运维环境当中至少应该存在两个zabbix_server,让两个监控平台起到互相监控的作用,这样才能确保所有的体系皆处于监控状态,使得生产环境可以得到全面的预警保障。

常用的监控软件

MRTG、Cacti、Rrdtool、Nagios、Zabbix

zabbix监控报警能力都很强大,但是也很复杂,脚本和策略设置需要能力。Nagios报警能力可以,监控一般需要配合cacti使用,部署较为简单。zabbix一般部署在大型分布式环境中,策略灵活。

其它几款只需了解有这么个东西,现在主要学习zabbix。 对比Nagios和Cacti

这一周我也研究过Nagios+Cacti和zabbix的主要区别,其实二者从功能上来说都差不多,只不过Cacti用的是一种rrd的我把它称作为“环形数据库”,Cacti将监控到的数据保存在这个数据库里面,再以图表方式表达出来,但是这个数据库在建立的时候,就必须规划好这个数据库的大小,比如设置一年需要监控哪几个变量,那么过了一年,它这个数据库就得覆盖一年前的数据了,而对比zabbix,zabbix就可以兼容几种现有的主流数据库,而现在的中型企业大多数使用的监控软件都以zabbix居多,于是便开始以zabbix的学习进行入手。

开始安装zabbix

硬件要求

一般主流服务器都可以达到,下图仅供参考

操作系统

归类基本上也就跑Unix,GNU linux,和Unix其它的衍生产品,HP-UX这种基本上用到的不多,主流支持以前的惠普产品,大多以红帽或者CentOS居多,但是切记windows平台只能跑agent,这一点一定要明确。

LinuxIBM AIXFreeBSDNetBSDOpenBSDHP-UXMac OS XSolaris

Windows: 2000, Server 2003, XP, Vista, Server 2008, 7, 8, Server 2012 (只能跑Zabbix agent) 数据库

MySQL:5.0.3或者以上,推荐使用InnoDB引擎(TTLSA推荐使用MySQL,开源免费资料多)

Oracle:10g或者以上

PostgreSQL:8.1或者以上 .

SQLite:3.3.5或者以上

IBM DB2:9.7或者以上

WEB应用

Apache:1.3.12或者以上

PHP:5.3.0或者以上,zabbix早期版本支持5.2,但是2.2版本只支持到5.3

PHP扩展这个没有试验,遂不详细说明

时间同步

结合crontab–l 命令运用/usr/sbin/ntpdate–u 时间服务器IP来进行,这个很重要

进程介绍

zabbix_agentd

客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等 zabbix_server

zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server

备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。

以上两个是最常用的

----------------------------------------------------------------------------------

zabbix_get

zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender

zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。

zabbix_proxy

zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。 zabbix_java_gateway

zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。

公司常用安装server端(极为重要)

搭建一个LNMP或者LAMP环境,分步源码安装或者集成式安装都可以,但是要配置要yum源,这个可以根据实际需要来进行,主要就是个配置文件的区别,现就以已经搭建好的LNMP环境举例:

#!/bin/bash

cd /usr/local/src #装在这个里面

wget-O zabbix-2.4.3.tar.gz -c

/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.4.3/zabbix-2.4.3.tar.gz/download #这个下载地址如果失效了可以找同样其它的地址

tar -zxvf zabbix-2.4.3.tar.gz

yum -y install net-snmp net-snmp-develperl-DBI php-gdphp-xml

php-bcmathfpingOpenIPMI-develphp-mbstringmysql-devel #源码安装环境

cd zabbix-2.4.3

./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl

--with-openipmi --enable-proxy --enable-agent

make install

#前提默认是你mysql管理员用户名密码默认,zabbix这个密码也是可以根据自己来设置的

mysql -uroot -proot -e "create database zabbix default character set utf8;"

mysql -uroot -proot -e "grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix2014';flush privileges;"

#开始导入zabbix数据库文件

cat database/mysql/schema.sql | mysql -uzabbix -pzabbix2014 zabbix

cat database/mysql/images.sql | mysql -uzabbix -pzabbix2014 zabbix

cat database/mysql/data.sql | mysql -uzabbix -pzabbix2014 zabbix

cpmisc/init.d/fedora/core/zabbix_server /etc/init.d/ cpmisc/init.d/fedora/core/zabbix_agentd /etc/init.d/

#接下来是修改zabbix服务端的参数,这里用sed命令替换

sed -i 's/^DBUser=.*$/DBUser=zabbix/g' /usr/local/zabbix/etc/zabbix_server.conf

sed -i 's/^.*DBPassword=.*$/DBPassword=zabbix2014/g'

/usr/local/zabbix/etc/zabbix_server.conf

sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server

sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd

cp -r frontends/php /home/wwwroot/default/zabbix

chown -R www:www /home/wwwroot/default/zabbix

#添加服务端口

cat>>/etc/services <

zabbix-agent 10050/tcp #Zabbix Agent

zabbix-agent 10050/udp #Zabbix Agent

zabbix-trapper 10051/tcp #Zabbix Trapper

zabbix-trapper 10051/udp #Zabbix Trapper

EOF

#建立用户,让服务自启(CentOS 7开始的内核用的sysctl启动,不在用传统chkconfig,这一点需要注意)

useraddzabbix

groupaddzabbix

servicezabbix_server start

servicezabbix_agentd start

chkconfigzabbix_server on

chkconfigzabbix_agentd on

#修改php参数

sed -i 's/^.*max_input_time:.*$/max_input_time:300' /usr/local/php/etc/php.ini

servicephp-fpm restart

sed -i '#DBSocket=/tmp/mysql.sock/DBSocket=/tmp/mysql.sock/g'

/usr/local/zabbix/etc/zabbix_server.conf

servicezabbix_server restart

#vi /home/wwwroot/default/zabbix/include/locales.inc.php编辑这个文件,至于为什么后面再说

#替换字体文件,所有替换删除操作都要备份,切记

mv /home/wwwroot/default/zabbix/fonts/DejaVuSans.ttf

/home/wwwroot/default/zabbix/fonts/DejaVuSans.ttf.bak cp /opt/zabbix/msyh.ttc /home/wwwroot/default/zabbix/fonts/DejaVuSans.ttf