debian8下安装配置部署zabbix3.0

| 分类 linux  | 标签 debian8  zabbix  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和编译安装方式的安装文档

1 2 3

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

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

4 5 6 7

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

8 9

不需要重命名

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

10

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

11

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

1、下载源码包

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

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

12

2、安装前准备

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

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

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

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

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

5、使用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卸载包之前运行的脚本

6、将打包好的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。

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

1、创建主机

13 14 15

2、创建主机组

16

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

17 18

3、创建模版

19

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

20

4、创建应用集

21 22 23 24

5、创建监控项

25 26 27 28 29 30 31 32 33

6、创建触发器

34 35 36 37 38

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

39 40 41

7、创建图形

42 43 44

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

45

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

46 47

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


上一篇     下一篇