debian8下安装配置部署zabbix3.0

一、安装配置zabbix server

    web server服务器:172.28.0.187

    mysql服务器:172.28.0.237

    1、安装web server(172.28.0.187)

        A、官方文档

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

    blob.png

    blob.png

    blob.png

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

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

        B、release包下载

blob.png

    blob.png

    blob.png

    blob.png

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和images.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 root@172.28.0.237:/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

    blob.png

    blob.png

    不需要重命名

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

    blob.png

#查看字体配置
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,【注意大小写】

    blob.png

    

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

    一、下载源码包

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

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

blob.png

    二、安装前准备

        这里我要编译安装并打包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。

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

    一、创建主机

blob.png

blob.pngblob.png

二、创建主机组

blob.png

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

blob.png

blob.png

三、创建模版

blob.png

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

blob.png

    四、创建应用集

blob.png

blob.png

blob.png

blob.png

    五、创建监控项

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

    六、创建触发器

blob.png

blob.png

blob.png

blob.png

blob.png

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

blob.png

blob.png

blob.png

    七、创建图形

blob.png

blob.png

blob.png

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

blob.png

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

blob.png

blob.png

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

原创文章,作者:N17_信风,如若转载,请注明出处:http://www.178linux.com/16052

(4)
上一篇 2016-05-06 13:08
下一篇 2016-05-08 18:04

相关推荐

  • Linux基础之文件管理和bash特性

    部分文件管理命令,bash的一些基础特性,部分glob文件匹配示例

    Linux干货 2018-01-16
  • LVS模型练习

    本次涉及到的练习:nat练习、dr练习、FWM机制练习、mysql集群练习、httpd的集群练习、httpd和mysql结合调度的练习 yum install ipvsadm nat练习     设置:     (1)centos7.2作为lvs调度,有两块网卡,(公网地址)其中…

    Linux干货 2016-10-30
  • Linux文件类型及颜色标示

    在Linux系统中,有多种文件类型,不同的文件类型有不同的颜色。 ls -l 目录,这个命令可以在显示的类容中的第一个位置查看目录里面文件的类型。 Linux下用字符表示的文件类型 -:普通文件 d:目录文件 l:链接文件 b:块设备文件 c:字符设备文件 p:管道文件 同时 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝…

    Linux干货 2016-10-17
  • 随笔—git的基本命令

    git是一个非常优秀的版本控制系统,可以对各类大小的项目进行源代码管理,  #git的常用功能如下: 1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。 2、在本地仓库上根据不同的开发目的,创建分支,修改代码。 3、在本机上向自己创建的分支上提交代码。 4、在本机上合并分支。 5、将本地仓库代码和分支推送到服务器上的远程仓库 在官网…

    Linux干货 2016-07-04
  • 文件搜索之find的使用

    一.find介绍:   find是Linxu中一个十分常用的文件查找工具,其工作原理是通过遍历启起始路径下文件层级结构完成的,其特点是查找速度慢,能做到实时查找和精确查找。 二.使用方法: find  start_path search_conditions  action 1.statr_path:所要查找的文件的起始位置,默…

    Linux干货 2016-11-01
  • 脚本

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;     #!/bin/bash     #     sum=0 &n…

    Linux干货 2016-12-23