zabbix4.0已经推出有一段时间了,针对之前版本做了很多优化配置,易用性得到提高,特别lts(long team support)长技术支持版本,官方说提供5年的稳定技术支持,在商业化运用上,是比较稳定的。目前zabbix的安装和部署已经是比较简单的了。

详细参考https://www.zabbix.com/cn/download和https://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650636023&idx=1&sn=950bbe4c22dd94d5e8538bb258240ace&chksm=bef90071898e8967d7d13d4466353e3a57202a62457a60551da8209b3ea48343563821d33c0c&mpshare=1&scene=23&srcid=1019obdkaT3YOrKZvAxU1g9A#rd

更加详细的部署可以参见官方手册。

整体部署采用centos7+php+apache+mariadb


一、初始化安装环境

systemctl disable firewalld                                 #禁止防火墙服务启动
systemctl stop firewalld                                    #关闭防火墙服务
vi /etc/sysconfig/selinux                                   #修改将“SELINUX=enforcing”更改为“SELINUX=disabled”,关闭SELINUX
cd /etc/yum.repos.d/                                        #修改yum源 更改为阿里云
mv CentOS-Base.repo CentOS-Base.repo.bak                    #备份文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo            #下载阿里云镜像仓库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo     #下载epel仓库
yum clean all                                                #清理缓存
yum makecache                                                #重新生成缓存
iptables -F                                                  #清理iptables规则
iptables -I INPUTE -j ACCEPT  &&iptables-save                #配置iptables
yum install tree net-tool net-snmp vim ntpdate               #安装部分基础软件包

为了满足基本配置,需要提前准备以下软件包,并安装完成

yum install httpd php php-mysql php-gd php-bcmath php-common php-xml php-mbstring  php-cli

Zabbix 需要的 PHP 扩展库:

- php-mysql:使用MySQL作为Zabbix后端数据库所需要的组件;

- php-gd:PHP GD扩展库必须支持 PNG 图像(--with-png-dir)、JPEG 图像 (--with-jpeg-dir)和FreeType2(--with-freetype-dir);

- php-bcmath:包含所需的bcmath;

- php-common:包含所需的ctype和php-session扩展;

- php-xml:包含所需的libXML、xmlreader和xmlwriter扩展。

- php-mbstring:包含所需的mbstring扩展

安装zabbix需要的依赖包

yum install pcre glibc gcc livevent zlib libcurl-devel curl-devel OpenIPMI-devel libssh2 fping net-snmp-devel perl-DBI openssl-devel iksemel libxml2 ntp

- pcre:为强制安装的包。用来支持Perl Compatible Regular Expression(PCRE);

- gcc:为强制安装的包。即编译器,

- glibc:为强制安装的包。即libc运行库,其中包含了所需的Libpthread

- libevent:为强制安装的包,用来支持 IPMI;

- zlib:为强制安装的包。用来支持压缩;

- libcurl-devel、curl-devel:为可选安装包,但建议安装。用来支持 Web 监控;

- OpenIPMI-devel:为可选安装包,按需安装。用来支持IPMI监控;

- libssh2:为可选安装包。用来支持SSH功能;

- fping: 为可选安装包,但建议安装。用来支持ICMP Ping监控;

- net-snmp-devel:为可选安装包,按需安装。用来支持SNMP监控;

- iksemel:为可选安装包,按需安装。用来支持 Zabbix 报警媒介 Jabber;

- libxml2:为可选安装包,按需安装。用来支持 VMware 监控;

- ntp:为可选安装包,但强烈建议安装。用来保持 Zabbix 精准的时间。

zabbix对时间要求比较高,可以配置外网访问同步ntp服务器,并开启计划任务

ntpdate -u asia.pool.ntp.org                      #同步NTP服务器    
systemctl enable ntpd                             #开机启动
echo '* /30 * * * * /usr/sbin/ntpdate -u asia.pool.ntp.org > /dev/null 2>&1' >>/var/spool/cron/root  #半个小时同步一次时间

配置rm命令为MV

为了防止误操作,配置rm命令别名,同时可以进行恢复删除文件

  1.  在/tmp目录下新建两个目录,命名为:.trash,tools

cd /tmp/
mkdir .trash 
mkdir tools

2. 在/tmp/tools/目录下,新建一个shell文件,命名为: remove.sh

PARA_CNT=$#
TRASH_DIR="/tmp/.trash"
 
for i in $*; do
    STAMP=`date +%Y%m%d%H%M%S`
    fileName=`basename $i`
    mv $i $TRASH_DIR/$fileName.$STAMP
done

chmod u+x remove.sh

 
3. 修改~/.bashrc, 增加一行

vim ./bashrc
alias rm="sh /tmp/tools/remove.sh"


用我们自建的remove.sh替代rm命令
  
4. source ~/.bashrc 使替换立即生效
经过上面的步骤后,执行rm删除的文件,会被放入垃圾箱/tmp/.trash/中,如果误删除,可以从中恢复。
 
 二、数据库的配置

    采用mariadb的数据库,直接使用yum安装即可。但是为了要求,将数据库的数据存储路径配置到指定路径,同时开放可以远程登陆数据库进行登陆

yum -y install mariadb mariadb-server        #安装mariadb数据库
mkdir -p /home/data/lib/mysql                #创建指定目录路径
chown -R mysql:mysql /home/data/lib/mysql    #配置数据库文件归属

编辑/etc/my.cnf配置文件

#修改datadir=/var/lib/mysql 
datadir=/home/data/lib/mysql
#在[mysqld]下添加

centos7上zabbix4.0LTS搭建_第1张图片

编辑/etc/my.cnf.d/server.cnf ,在[mysqld]下添加

datadir=/home/data/lib/mysql
socket=/var/lib/mysql/mysql.sock
character_set_server=utf8
slow_query_log=on
slow_query_log_file=home/data/lib/mysql/slow_query_log.log
long_query_time=2

centos7上zabbix4.0LTS搭建_第2张图片

编辑完成后,开启数据库慢查询

touch /home/data/lib/mysql/slow_query_log.log
chown mysql:mysql /home/data/lib/mysql/slow_query_log.log

完成配置后启动数据库

systemctl enable mariadb
systemctl start mariadb

初始化数据库

mysql_secure_installation  #初始化

配置完成root密码后,一路按Y即可

centos7上zabbix4.0LTS搭建_第3张图片


三、安装配置zabbix

安装zabbix4.0的rpm包

# rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
安装Zabbix server,Web前端,agent
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

创建初始数据库

 mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password'; #根据实际情况设定密码
mysql> quit;

导入初始架构和数据,系统将提示您输入新创建的密码。

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

我们需要对zabbix用户进行调整,让他可以进行远程登陆数据库,控制权限,不能删库

create user 'zabbix-test'@'%';         #创建zabbix-test用户
grant all privileges on zabbix.* to 'zabbix-test'@'%' identified by 'password'; #让zabbix-test用户可用从任何位置访问zabbix数据库
revoke drop on *.* from 'zabbix-test'@'%';        #收回zabbix-test用户删除库的权限

测试,可以使用zabbix-test用户远程登陆数据库

centos7上zabbix4.0LTS搭建_第4张图片

为zabbix-server配置数据库

编辑配置文件 /etc/zabbix/zabbix_server.conf

#修改125行
DBPassword=password

配置前端PHP

#修改20行
php_value date.timezone Asia/Shanghai

centos7上zabbix4.0LTS搭建_第5张图片

启动zabbix

systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd

配置前端

登陆连接到新安装的Zabbix前端: http://server_ip_or_name/zabbix,按照提示配置即可

centos7上zabbix4.0LTS搭建_第6张图片

默认账户密码

Admin

zabbix


centos7上zabbix4.0LTS搭建_第7张图片

完成后,修改字体文件

在windows主机里面找到mysh文件,上传到zabbix目录 /usr/share/zabbix/fonts下 然后重命名为graphfont.ttf

centos7上zabbix4.0LTS搭建_第8张图片