一、安装配置zabbix server

    web server服务器:172.28.0.187

    mysql服务器:172.28.0.237

    1、安装web server(172.28.0.187)

        A、官方文档

    zabbix官方提供了基于packages和编译安装方式的安装文档

    

    

    

    这里server我使用package方式安装,agent使用源码编译的方式安装,因为server只有一台,而agent有很多台,需要对安装好的agent修改配置并重新打包,以方便后期批量部署。

    zabbix的package中有release包,因为zabbix server需要mysql,apache,php,而release包安装的方式会自动解决依赖关系。

        B、release包下载

    

    

    

root@demo:~# wget http://repo.zabbix.com/zabbix/3.0/debian/pool/main/z/zabbix-release/zabbix-release_3.0-1+jessie_all.deb

        C、安装release仓库

root@demo:~# dpkg -i zabbix-release_3.0-1+jessie_all.deb

        D、更新apt仓库

root@demo:~# aptitude update

        E、安装zabbix-server-mysql和zabbix-frontend-php

    安装过程中请确保连接互联网,仓库的源建议用debian官方源,这里server-mysql会自动解决mysql的依赖关系安装mysql,frontend-php会解决apache和php的依赖关系

root@demo:~#aptitude install zabbix-server-mysql 
root@demo:~#aptitude install zabbix-frontend-php

    安装zabbix-server-mysql后会产生一个/usr/share/doc/zabbix-server-mysql/create.sql.gz文件,这个文件后面在mysql服务器中用到

    

    2、配置mysql服务器(172.28.0.237)

    

    进入mysql服务器172.28.0.237,这里需要提前安装好Mysql,如果是在web server上使用数据库则配置web server的数据库

        A、进入mysql

    这里因为我们公司的mysql数据库服务器是用的专门的mysql用户,所以需要先切换用户

root@demo:~# su - mysql
root@demo:~# mysql

        B、创建zabbix表,编码为utf8

mysql> create database zabbix character set utf8 collate utf8_bin;

        C、创建一个zabbix用户并给zabbix用户授权zabbix表

    授权范围为全网,用户为zabbix密码为123321qQ

mysql> grant all privileges on zabbix.* to zabbix@'%' identified by '123321qQ';

    授权范围为本地,用户为zabbix密码为123321qQ

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '123321qQ';

        D、刷新mysql权限

mysql> flush privileges;

        E、将文件create.sql.gz导入zabbix表

    用release方式安装生成的zabbix表不是schema.sql和p_w_picpaths.sql和data.sql这三张表,而是集中在create.sql中,如果是这三张表的请把这三张表导入刚才创建的zabbix表中

    因为我这里的create.sq.gz是放在web server上的,所以需要复制过来

#将172.28.0.187下的/usr/share/doc/zabbix-server-mysql/create.sql.gz传给172.28.0.237
root@demo:~# scp /usr/share/doc/zabbix-server-mysql/create.sql.gz [email protected]:/root
root@demo:~# cp /root/create.sql.gz /home/mysql/create.sql.gz
#切换到mysql用户导入表格到zabbix
root@demo:~# su - mysql
mysql@demo:~$ zcat create.sql.gz | mysql -uzabbix -p"123321qQ"    zabbix

    如果机子配置低,则导入时间很长,请耐心等待

    

    3、修改web server配置文件(172.28.0.187)

        A、进入172.20.0.187修改/etc/zabbix/zabbix_server.conf

root@demo:~#  vi /etc/zabbix/zabbix_server.conf
#修改一下几项
DBHOST=172.28.0.237    #mysql服务器地址
DBName=zabbix    #表名
DBUser=zabbix    #用户名
DBPassword=123321qQ    #密码

        B、修改/etc/apache2/conf-enabled/zabbix中的时区

root@demo:~# vim /etc/apache2/conf-enabled/zabbix.conf
#找到以下行注释取消,改为如下,因为我这里是重庆,所以写的是重庆,如果是其他地方可以用别的
php_value date.timezone Asia/Chongqing

        C、设置语言为中文

root@demo:~# vim /usr/share/zabbix/include/locales.inc.ph
#修改如下行    
'zh_CN' => ['name' => _('Chinese (zh_CN)'),     'display' => true],

        D、解决中文乱码问题

    在Windows中打开运行,输入fonts

    

    

    不需要重命名

    将文件上传到/usr/share/zabbix/fonts/目录中

    

#查看字体配置
root@demo:~# grep FONT_NAME /usr/share/zabbix/include/defines.inc.php  -n
45:define('ZBX_GRAPH_FONT_NAME',        'graphfont'); // font file name
93:define('ZBX_FONT_NAME', 'graphfont');
#确认字体名称是否可以替换
root@demo:~# grep graphfont /usr/share/zabbix/include/defines.inc.php  -n
45:define('ZBX_GRAPH_FONT_NAME',        'graphfont'); // font file name
93:define('ZBX_FONT_NAME', 'graphfont');
#执行快捷替换
root@demo:~# sed -i "s/graphfont/msyh/g" /usr/share/zabbix/include/defines.inc.php
#确认是否替换成功
root@demo:~# grep FONT_NAME /usr/share/zabbix/include/defines.inc.php  -n
45:define('ZBX_GRAPH_FONT_NAME',        'msyh'); // font file name
93:define('ZBX_FONT_NAME', 'msyh');

        E、启动zabbix-server重启apache

root@demo:~# service zabbix-server start
root@demo:~# service apache2 restart

    

    4、进入web界面初始化设置

        打开http://172.28.0.187/zabbix,默认的用户名为Admin,密码为zabbix,【注意大小写】

    

    

二、编译安装agent,配置后重新打包


    一、下载源码包

        zabbix官网给出的源码包将server、agent、proxy都放在了一个包中,所以安装的时候得注意

        在download中找到sources,选择3.0的源码包进行下载

    二、安装前准备

        这里我要编译安装并打包agent,所以要做一些准备工作,因为是第一台编译安装,所以最好选择没有使用过的debian8主机

        A、安装gcc

root@demo:~/zabbix-3.0.2# apt-get install gcc

        B、安装make

root@demo:~/zabbix-3.0.2# apt-get install make

        C、更改ruby源安装fpm,这里安装fpm是为了后续制作deb包做准备

root@demo:~# apt-get install ruby-dev rubygems
root@demo:~# gem sources -a https://ruby.taobao.org/
root@demo:~# gem sources -r https://rubygems.org/
root@demo:~# gem sources -l
root@demo:~# gem install fpm

    三、解压并进行安装和打包前配置

        A、解压源码包

root@demo:~# tar -xzvf zabbix-3.0.2.tar.gz

        B、安装前配置

root@demo:~/zabbix-3.0.2# ./configure --prefix=/usr/local/zabbix  --sysconfdir=/usr/local/etc  --enable-agent --disable-server --disable-proxy
#--prefix=    安装目录
#--sysconfdir=    配置文件目录
#--enable-agent --disable-server --disable-proxy    安装agent不安装server和proxy

        C、打包前配置,这里因为公司的标准化要求,所以agent都安装到/tmp/installdir中

#创建临时目录
root@demo:~/zabbix-3.0.2# mkdir -p /tmp/installdir/etc/init.d/
root@demo:~/zabbix-3.0.2# mkdir -p /tmp/installdir/etc/profile.d/

#将编译后的源码包的zabbix-agent文件复制出来
root@demo:~/zabbix-3.0.2# cp -a /root/zabbix-3.0.2/misc/init.d/debian/zabbix-agent /tmp/installdir/etc/init.d/zabbix_agentd

#修改启动脚本
root@demo:~/zabbix-3.0.2# vim /tmp/installdir/etc/init.d/zabbix_agentd
NAME=zabbix_agentd
DAEMON=/usr/local/zabbix/sbin/${NAME}
DESC="Zabbix agentd"
PID=/tmp/$NAME.pid

#创建环境变量脚本
root@demo:~# vim /tmp/installdir/etc/profile.d/zabbix.sh
# zabbix init
export PATH=$PATH:/usr/local/zabbix/bin:/usr/local/zabbix/sbin

#创建安装后脚本,此脚本会在安装时自动添加zabbix用户,自动添加开机启动,前提是你得装了chkconfig
root@demo:~#vim /tmp/install_after.sh
#!/bin/bash
useradd -m -d /home/zabbix -s /bin/bash zabbix
echo 'zabbix  ALL=(ALL:ALL) NOPASSWD:ALL' >> /etc/sudoers
host=`hostname`
sed -i "s%^Hostname=.*$%Hostname=$host%g" /usr/local/etc/zabbix_agentd.conf
source /etc/profile.d/zabbix.sh
chkconfig --add zabbix_agentd
chkconfig --level 35 zabbix_agentd on
exit 0

#创建卸载前脚本,此脚本会在卸载时清楚残留的脚本,zabbix用户删除没有写进去,有需要的自己写
root@demo:~#vim /tmp/remove_after.sh
#!/bin/bash
rm -rf /etc/init.d/zabbix_agentd
rm -rf /etc/profile.d/zabbix.sh
rm -rf /var/lib/dpkg/info/zabbix-agentd*
source /etc/profile
exit 0

    四、编译安装和修改配置文件

        A、编译安装到指定目录

root@demo:~#cd /root/zabbix-3.0.2
root@demo:~/zabbix-3.0.2#  make install DESTDIR=/tmp/installdir/

        B、修改配置文件

root@demo:~/zabbix-3.0.2# vim /tmp/installdir/usr/local/etc/zabbix_agentd.conf
#修改一下几项
Server=172.28.0.187    #web server服务器地址
ServerActive=172.28.0.187    #这里再次填入web server服务器地址,为了以后主动上传
HostnameItem=system.hostname    #因为是要批量部署,所以这里一定要修改以获取主机名,
Include=/usr/local/etc/zabbix_agentd.conf.d/    #这里用于放置自定义的key
UnsafeUserParameters=1    #这里改成1才会启动自定义key

    五、使用fpm打包

root@demo:/tmp# fpm -s dir -t deb -n zabbix_agentd -v 3.0.2 --iteration 1+wheezy -C /tmp/installdir/ -p /root/ --description 'zabbix_agentd deb' --post-install /tmp/install_after.sh --post-uninstall /tmp/remove_after.sh
#-s指定源类型
#-C指定打包路径
#-p指定包输出路径
#--description包描述
#--post-install安装包完成后运行的脚本
#--post-uninstall卸载包之前运行的脚本

    六、将打包好的deb文件部署在需要监控的主机上

#安装
root@demo:~# dpkg -i zabbix-agentd_3.0.2-1+wheezy_amd64.deb
#启动agentd
root@demo:~# service zabbix_agentd start

    这里需要注意的是,你用来编译安装并打包的服务器如果agent没有启动,请先卸载再用你打包好的deb文件安装一遍,因为在编译的那台服务器上并没有运行刚才我们写的安装前脚本,所以没有zabbix用户,也没有设置开机启动,所以建议最好用deb包重装一遍。

    批量部署agent包,建议使用ansible。


三、创建模版并应用到主机

    一、创建主机



二、创建主机组



    主机组中放入了2台主机,一台是web server本身一台是mysql



三、创建模版



    也可以将网上的模版导入修改,这里我手动创建一个



    四、创建应用集



    五、创建监控项






    六、创建触发器



    这个表达式的意思是iowait的值在30分钟内大于30%,就报警




    七、创建图形



    由于数量很多,我只创建了2个做事例



    这样就把zabbix的web server和mysql的剩余磁盘和cpu iowait监控起来了


    可以看到刚才创建的模版已经成功应用了。