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)
N17_信风N17_信风
上一篇 2016-05-06
下一篇 2016-05-08

相关推荐

  • 重定向和管道

     重定向    程序:指令+数据    读入数据:Input    输出数据:Output  linux给程序提供三种I/O设备    标准输入(stdin)-0 默认接受来自键盘的输入    标准输出(stdinout)-1默认输出到终端…

    Linux干货 2016-08-10
  • 周期性计划任务Cron详解

    概述 cron 是Linux 或者类 Unix 系统的作业调度程序。利用它,我们可以配置某些命令或者脚本,让命令和脚本在某个设定的时间内周期性地运行。本文主要以描述了 CentOS 6的cron命令的详细知识。 了解cron组件 cron程序由程序包cronie提供,我们可以通过rpm -qi cronie查看cronie的信息。 cron 的组件包括: 1…

    Linux干货 2016-09-18
  • 自制linux和内核编译

    自制linux和内核编译 1、分区并创建文件系统 fdisk /dev/sdb分两个必要的分区/dev/sdb1对应/boot /dev/sdb2对应根/mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2 2、挂载boot mkdir/mnt/bootmount /dev/sdb1 /mnt/boot 3、安装grub grub-i…

    Linux干货 2016-09-16
  • cp复制软链接失效的原因

    在学习cp命令时我们会知道复制软链接时,如果要保留链接文件使用-d,但当我们实际操作时却常常出现如下情况 [root@localhost ~]# ls -l /etc/redhat-release     #此文件为链接文件 lrwxrwxrwx. …

    Linux干货 2016-10-25
  • 磁盘管理

    一、知识整理 1、每个扇区:512字节;每个柱面:256个磁头*63个扇区*512字节,大概为8M。centos6中分区使用起始结束柱面;centos7中分区使用起始结束扇区。EBR:扩展分区的第一个扇区。 2、MBR:master root record,1982年,使用32位表示扇区数,分区不超过2T。其中,一共512bytes字节,446bytes为b…

    Linux干货 2016-08-29
  • LB-lvs

    Linux Cluster: Cluster:计算机集合,为解决某个特定问题组合起来形成的单个系统; Linux Cluster类型: LB:Load Balancing,负载均衡; HA:High Availiablity,高可用; A=MTBF/(MTBF+MTTR) (0,1):90%, 95%, 99%, 99.5%, 99.9%, 99.99%, …

    Linux干货 2017-06-25