系统环境: 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了。

zabbix真的很简单 (安装篇)的更多相关文章

  1. HTTP真的很简单

    原文:HTTP Made Really Easy因为我本身网络基础就很差,所以看到这篇文章一方面是学习网络知识,另一方面为了锻炼我蹩脚的英语水平,文中如有错误,欢迎浏览指正! 前言 在看这篇文章的时候 ...

  2. HTTP真的很简单(转)

    原文:HTTP Made Really Easy因为我本身网络基础就很差,所以看到这篇文章一方面是学习网络知识,另一方面为了锻炼我蹩脚的英语水平,文中如有错误,欢迎浏览指正! 前言 在看这篇文章的时候 ...

  3. shell编程其实真的很简单(一)

    如今,不会Linux的程序员都不意思说自己是程序员,而不会shell编程就不能说自己会Linux.说起来似乎shell编程很屌啊,然而不用担心,其实shell编程真的很简单. 背景 什么是shell编 ...

  4. shell编程其实真的很简单(四)

    上篇我们学习了shell中条件选择语句的用法.接下来本篇就来学习循环语句.在shell中,循环是通过for, while, until命令来实现的.下面就分别来看看吧. for for循环有两种形式: ...

  5. 写你的shell,其实很简单[架构篇]

    引语:我本人以前并没有写过shell脚本,也许是因为懒,也许是没有被逼到要去写shell的地步.但是,前段时间,工作需求,要求重新跑几个月的脚本,这些脚本是每天定时进行跑的,而且每天是好几个脚本一起关 ...

  6. shell编程其实真的很简单(二)

    上篇我们学会了如何使用及定义变量.按照尿性,一般接下来就该学基本数据类型的运算了. 没错,本篇就仍是这么俗套的来讲讲这无聊但又必学的基本数据类型的运算了. 基本数据类型运算 操作符 符号 语义 描述 ...

  7. shell编程其实真的很简单(五)

    通过前几篇文章的学习,我们学会了shell的基本语法.在linux的实际操作中,我们经常看到命令会有很多参数,例如:ls -al 等等,那么这个参数是怎么处理的呢? 接下来我们就来看看shell脚本对 ...

  8. shell编程其实真的很简单(三)

    通过前两篇文章,我们掌握了shell的一些基本写法和变量的使用,以及基本数据类型的运算.那么,本次就将要学习shell的结构化命令了,也就是我们其它编程语言中的条件选择语句及循环语句. 不过,在学习s ...

  9. 如果你这么去理解HashMap就会发现它真的很简单

    Java中的HashMap相信大家都不陌生,也是大家编程时最常用的数据结构之一,各种面试题更是恨不得掘地三尺的去问HashMap.HashTable.ConcurrentHashMap,无论面试题多么 ...

随机推荐

  1. 洛谷P2865 [USACO06NOV]路障Roadblocks——次短路

    给一手链接 https://www.luogu.com.cn/problem/P2865 这道题其实就是在维护最短路的时候维护一下次短路就okay了 #include<cstdio> #i ...

  2. angularJS拦截路由

    $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams)

  3. maven 配置阿里云中央仓库

    一.修改maven根目录下的conf文件夹中的setting.xml文件 <mirror> <id>alimaven</id> <name>aliyun ...

  4. 断路器,AOP实现断路器模式 ------------Hystrix

    断路器:https://martinfowler.com/bliki/CircutiBreaker.html 核心思想: 在断路器对象中封装受保护的方法调用. 该断路器监控调用和断路情况 调用失败触发 ...

  5. [BZOJ 2653] middle(可持久化线段树+二分答案)

    [BZOJ 2653] middle(可持久化线段树+二分答案) 题面 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整. 给你一个长度为n的序 ...

  6. var、let、const的区别

    var.let.const的区别 var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问. let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问. const用来定义常量,使 ...

  7. [转]ORACLE优化器RBO与CBO的区别

    RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer).它是SQL分析和执行的优化工具,它负责生成.制定SQL的执行计划.Oracle的优化器有两种,基 ...

  8. 【JAVA】 05-String类和JDK5

    链接: 笔记目录:毕向东Java基础视频教程-笔记 GitHub库:JavaBXD33 目录: <> <> 内容待整理: API-String 特点 String类: 1.St ...

  9. 使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?

    使用typeof首先要明白 typeof 可以检测什么. typeof 主要用于检测基本数据类型.typeof尽量不要用来检测复杂数据类型. typeof 检测null 和 数组 的时候 结果也是ob ...

  10. Django中的APP

    3. Django中的APP: 什么是APP?以及为什么要用APP? project --> 项目 (老男孩教育大学校) APP --> 应用 (Linux学院/Python学院/大数据学 ...