系统环境: 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. [Linux] 013 其他文件搜索命令

    1. 文件搜索命令:locate 命令名称:locate 命令所在路径:/bin/locate 执行权限:所有用户 语法:locate 文件名 功能描述:在文件资料库中查找文件 范例: $ locat ...

  2. jvm(4) 对象创建

    1.对象的创建过程: 1.new 类名 2.根据new的参数在常量池中定位一个类的符号的引用. 3.如果没找到这个符号的引用,说明类还没有被加载.则进行类的加载,解析和初始化 4.虚拟机为对象分配内存 ...

  3. [Bzoj1008][HNOI2008]越狱(组合计数)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1008 组合计数的简单题,可能越狱的方案数等于总方案数-不可能越狱的方案数,则: 总方案数 ...

  4. 全文搜索引擎 elasticsearch.net

    原文:https://www.cnblogs.com/lonelyxmas/p/10767436.html

  5. NGUI的Lebal需注意问题

    1,为什么调节字体大小时,字体大小没变化,我们需要调节两个地方,如下图框柱显示 调节font size和size才可以同时控制字体的大小 2,label有时是不支持输入中文,但是支持复制进去,则这时我 ...

  6. 完善Hikari连接池扩展项目HikariApi(ORM)

    以前介绍类自定义的Hikari项目,定位于数据库连接池:后扩展了,根据文件名称,以数据库配置文件为基础,支持按照名称多数据操作. 在使用中,发现扩展了SQL语句参数化操作,在管理类中,以扩展方法存在. ...

  7. postman 上一个接口的返回值作为下一个接口的入参

    在使用postman做接口测试的时候,在多个接口的测试中,如果需要上一个接口的返回值作为下一个接口的入参,其基本思路是: 1.获取上一个接口的返回值 2.将返回值设置成环境变量或者全局变量 3.设置下 ...

  8. Linux知识-不断更新

    找到使用cpu最高的进程之使用cpu最高的线程的16进制号 shell命令行: ps -eo %cpu,pid | sort -n -k1 -r |head -n 1|awk '{print$2}'| ...

  9. qt opencv 视频分析

    脱岗 越线 qimage qpixmap opencv  回调视频采集

  10. mysql小知识

    char(10): 换行符 char(13): 回车符 UPDATE tablename SET field = REPLACE(REPLACE(field, CHAR(10), ”), CHAR(1 ...