一、安装配置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和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
不需要重命名
将文件上传到/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,配置后重新打包
1、下载源码包
zabbix官网给出的源码包将server、agent、proxy都放在了一个包中,所以安装的时候得注意
在download中找到sources,选择3.0的源码包进行下载
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、创建主机
2、创建主机组
主机组中放入了2台主机,一台是web server本身一台是mysql
3、创建模版
也可以将网上的模版导入修改,这里我手动创建一个
4、创建应用集
5、创建监控项
6、创建触发器
这个表达式的意思是iowait的值在30分钟内大于30%,就报警
7、创建图形
由于数量很多,我只创建了2个做事例
这样就把zabbix的web server和mysql的剩余磁盘和cpu iowait监控起来了
可以看到刚才创建的模版已经成功应用了。