系统环境: Centos 6.4
一直觉得 zabbix 很简单,但是还是有好多人看了好多文档都搞不明白怎么用,我从2013年使用到现在也小有心得,如果时间允许,很高兴与大家一起分享我在使用过程中的一些小技巧和小经验。好了至于什么是zabbix之类的废话就不多说了,有兴趣可以看看别人写的,我只想说zabbix网上的文档真是好多好多好多....
咱们这次部署全程使用 yum ,我会简单说一下 yum 的配置。很多小伙伴都会问,不都是下载源码包装吗?或者下载 rpm 包装吗?我的 yum 里为什么没有 zabbix ?其实类似这种第三方软件,基本的 yum 软件源是不提供的,不过你可以增加 epel 源来安装,这里就不介绍 epel 啦,想详细了解的就自己去epel 官网看吧。
安装一套LAMP环境
yum -y install zlib-devel mysql-devel glibc-devel curl-devel gcc automake mysql libidn-devel openssl-devel net-snmp-devel rpm-devel OpenIPMI-devel httpd mysql-server php-gd php-mysql php-bcmath php-mbstring php-xml perl-DBI php
提示:以上相关软件直接可以通过centos自带的yum源安装,这个过程依据各自带宽而定。很慢~! 虽然版本偏低,但是对于部署来说足够了。
安装EPEL源
我们可以直接访问 http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html 找到epel的安装包,右键复制地址,直接装就可以了。
rpm -ivh http://mirrors.zju.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm
提示:这里对epel里的zbx资源简单介绍一下,epel里zbx资源分为三个版本,1.8、2.0、2.2。官网目前最新版本是2.4,1.8建议你不要考虑了,我曾经在别人的机器上用过一下,trigger还不能手动编写,反正我是用不惯,2.0目前是我正在使用的版本,2.2让我感觉比较high的亮点功能就是对虚拟机的监控。在我眼里2.0、2.2 、2.4这三个版本其实在使用上没啥太大的区别,安装方式也是一样的。
安装ZABBIX
这里先为大家显示一下,一个Zabbix Server所需要的安装包
$yum search zabbix22 | awk -F":" '/zabbix22/&&!/pgsql|Matched|sqlite|proxy/{print $1}'
zabbix22.x86_64
zabbix22-agent.x86_64
zabbix22-dbfiles-mysql.noarch
zabbix22-server.noarch
zabbix22-server-mysql.x86_64
zabbix22-web.noarch
zabbix22-web-mysql.noarch
很多文档直接就装了,也不说这玩意都是什么东西,所以今天就说点废话,主要是针对新手向,老手可以绕行。以下只是简单的介绍,具体包里都包含什么文件,有兴趣的话,可以自己rpm -ql翻看,反正偶是没兴趣。
zabbix22.x86_64 #zabbix主程序
zabbix22-agent.x86_64 #zabbix客户端程序
zabbix22-dbfiles-mysql.noarch #zabbix22 mysql数据库文件
zabbix22-server.noarch #Server服务端程序
zabbix22-server-mysql.x86_64 #Server连接mysql程序
zabbix22-web.noarch #web前端php程序
zabbix22-web-mysql.noarch #web前端php连接mysql数据库
复制粘贴回车你懂的
yum -y install $(yum search zabbix22 | awk -F":" '/zabbix22/&&!/pgsql|Matched|sqlite|proxy/{print $1}')
这里说一下我理解的 zabbix 的结构,zabbix 分为 Server 端和 Agent 端(大家都知道的,不用你废话。-_-!!),Agent 负责采集监控数据传送到 Server 端,Server 端负责将采集的数据保存到数据库中,还有一个很多时候大家都忽略的部分,就是 zabbix 通过前端 WEB 页面调用 php,将监控数据值从数据库中提取出来并进行前端展示。所以有时候排查故障的一定要先确定故障点是在前端,还是在后端。学会缩小范围按步骤排查故障。
以上安装我过滤掉了 zabbix 使用pgsql数据库的程序, sqlite 数据库程序和 proxy 程序。帮朋友排查 zabbix 问题的时候,发现好多都是装的 mysql 数据库,zabbix 装的是 pgsql 数据库连接程序,导致 zabbix 数据库怎么也连不上。所以在这里给大家提个醒,注意自己装的程序是否符合自己的环境。
以上步骤完后所有需要创建的系统账号比如 mysql,zabbix服务的启动脚本,包括 httpd 关于 zabbix 访问的配置文件,都已经为你配置好了。你可以通过查看/etc/httpd/conf.d/zabbix.conf 文件找到前端页面访问的具体位置。(这就是偶稀饭yum的原因!!)
启动数据库
service mysqld start
创建数据库
mysql << EOF
create database zabbix character set utf8;
grant all on zabbix.* to zabbix@localhost identified by '123456';
quit
EOF
提示:这里数据库一定要指定字符集,要不在前端历史操作是乱码,因为历史操作是保存在数据库里的。
导入数据库
mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/schema.sql
mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/images.sql
mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/data.sql
提示:以上数据库一定要按照顺序导入
配置zabbix_server访问数据库的账号和密码
sed -i '/^DBName/s/=.*$/=zabbix/' /etc/zabbix_server.conf
sed -i '/^# DBPassword/s/.*$/DBPassword=123456/' /etc/zabbix_server.conf
修改php.ini
sed -i 's/post_max_size = 8M/post_max_size = 32M/g' /etc/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /etc/php.ini
sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/' /etc/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 600/g' /etc/php.ini
sed -i 's/max_input_time = 60/max_input_time = 600/g' /etc/php.ini
sed -i 's/memory_limit = 128M/memory_limit = 256M/g' /etc/php.ini
提示:我这里只是修改了 zabbix 初始化php配置时需要检测默认配置参数,大家可以根据自己实际情况调整 php.ini 参数
简单的配置服务
chkconfig --level 345 zabbix-server on
chkconfig --level 345 zabbix-agent on
setenforce 0
service zabbix-server start
service zabbix-agent start
提示:不稀饭 selinux,所以我都关掉。
登录
现在可以通过http://ip/zabbix 来访问了,第一次会初始化一些配置,主要还是配置 php.ini 的参数和php访问数据库的账号和密码。基本上一路Next就ok了。