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命令别名,同时可以进行恢复删除文件
在/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]下添加
编辑/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
编辑完成后,开启数据库慢查询
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即可
三、安装配置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用户远程登陆数据库
为zabbix-server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf
#修改125行 DBPassword=password
配置前端PHP
#修改20行 php_value date.timezone Asia/Shanghai
启动zabbix
systemctl restart zabbix-server zabbix-agent httpd systemctl enable zabbix-server zabbix-agent httpd
配置前端
登陆连接到新安装的Zabbix前端: http://server_ip_or_name/zabbix,按照提示配置即可
默认账户密码
Admin
zabbix
完成后,修改字体文件
在windows主机里面找到mysh文件,上传到zabbix目录 /usr/share/zabbix/fonts下 然后重命名为graphfont.ttf