web server服务器:172.28.0.187
mysql服务器:172.28.0.237
zabbix官方提供了基于packages和编译安装方式的安装文档
这里server我使用package方式安装,agent使用源码编译的方式安装,因为server只有一台,而agent有很多台,需要对安装好的agent修改配置并重新打包,以方便后期批量部署。
zabbix的package中有release包,因为zabbix server需要mysql,apache,php,而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
root@demo:~# dpkg -i zabbix-release_3.0-1+jessie_all.deb
root@demo:~# aptitude update
安装过程中请确保连接互联网,仓库的源建议用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服务器中用到
进入mysql服务器172.28.0.237,这里需要提前安装好Mysql,如果是在web server上使用数据库则配置web server的数据库
这里因为我们公司的mysql数据库服务器是用的专门的mysql用户,所以需要先切换用户
root@demo:~# su - mysql root@demo:~# mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
授权范围为全网,用户为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';
mysql> flush privileges;
用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 [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
如果机子配置低,则导入时间很长,请耐心等待
root@demo:~# vi /etc/zabbix/zabbix_server.conf #修改一下几项 DBHOST=172.28.0.237 #mysql服务器地址 DBName=zabbix #表名 DBUser=zabbix #用户名 DBPassword=123321qQ #密码
root@demo:~# vim /etc/apache2/conf-enabled/zabbix.conf #找到以下行注释取消,改为如下,因为我这里是重庆,所以写的是重庆,如果是其他地方可以用别的 php_value date.timezone Asia/Chongqing
root@demo:~# vim /usr/share/zabbix/include/locales.inc.ph #修改如下行 'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],
在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');
root@demo:~# service zabbix-server start root@demo:~# service apache2 restart
打开http://172.28.0.187/zabbix,默认的用户名为Admin,密码为zabbix,【注意大小写】
zabbix官网给出的源码包将server、agent、proxy都放在了一个包中,所以安装的时候得注意
在download中找到sources,选择3.0的源码包进行下载
这里我要编译安装并打包agent,所以要做一些准备工作,因为是第一台编译安装,所以最好选择没有使用过的debian8主机
root@demo:~/zabbix-3.0.2# apt-get install gcc
root@demo:~/zabbix-3.0.2# apt-get install make
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
root@demo:~# tar -xzvf zabbix-3.0.2.tar.gz
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
#创建临时目录 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
root@demo:~#cd /root/zabbix-3.0.2 root@demo:~/zabbix-3.0.2# make install DESTDIR=/tmp/installdir/
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
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卸载包之前运行的脚本
#安装 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监控起来了
可以看到刚才创建的模版已经成功应用了。