该教程是以官网的安装教程为基础进行了的优化,所有提供内容均为笔者验证可用。
提供安装方式有两种分别为:二进制安装、Docker容器安装(推荐)
什么是ZABBIX
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
准备工作
系统准备(建议|可选)
可以根据自身系统的要求选择性的参照此章节,如果是新安装的CentOS7操作系统建议执行该章节内容。
-
备份镜像源
# 备份源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
-
替换镜像源
# 下载阿里云CentOS.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-
关闭防火墙
# 关闭防火墙 systemctl stop firewalld.service # 撤销开机启动 systemctl disable firewalld.service
-
关闭安全增强
# 设置SELinux的运行模式 setenforce 0 # 设置SELINUX=disabled sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
-
安装EPEL源
yum install -y epel-release
-
安装开发组件
# 常用开发组件 yum groups install -y "Development Tools"
-
重启系统
reboot
数据库安装(可选)
使用MYSQL或者MariaDB数据库,如果已有现成数据库则可以跳过该步骤。
注:Oracle公司收购了MySQL后,有将MySQL闭源的潜在风险。社区采用分支的方式来避开这个风险,因此诞生了MariaDB。部分大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。
如果打算Docker安装(推荐)也建议跳过此步骤,Docker有提供容器数据库安装。
-
安装MariaDB
yum install -y mariadb-server
-
启动MariaDB
# 启动MariaDB systemctl start mariadb.service # 设置为开启启动 systemctl enable mariadb.service
-
初始化数据库
mysql_secure_installation
数据库安装并初始化完成。
ZABBIX安装
系统环境——
- 发行版本:CentOS7.5 +
- 内核版本:3.10 +
二进制安装
-
安装zabbix5.0镜像源
# 安装Zabbix镜像源 rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all
-
安装zabbix-server-mysql与zabbix-agent
yum install -y zabbix-server-mysql zabbix-agent
-
安装zabbix-frontend
开启Red Hat软件集合
yum install -y centos-release-scl
编辑
/etc/yum.repos.d/zabbix.repo
文件[zabbix-frontend] ... enabled=1 ...
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
-
配置zabbix数据库
# 使用root用户登录(密码自行修改) mysql -uroot -proot # 新建zabbix用户与数据库 MariaDB> create database zabbix character set utf8 collate utf8_bin; MariaDB> create user `zabbix`@`%` identified by 'Zabbix@Password'; MariaDB> grant all privileges on zabbix.* to `zabbix`@`%`;
-
初始化数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pZabbix@Password zabbix
-
Zabbix server配置数据库
编辑配置文件
/etc/zabbix/zabbix_server.conf
DB开头的参数均为数据库参数,根据Mysql|MariaDB的配置修复即可。如下所示——
... DBHost=localhost ... DBPassword=Zabbix@Password ...
-
Zabbix前端配置PHP
编辑配置文件
/etc/opt/rh/rh-php72/php.ini
... max_execution_time = 300 ... post_max_size = 16M ... date.timezone = Asia/Shanghai ...
编辑配置文件
/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
... listen.acl_users = apache,nginx ... ; php_value[date.timezone] = Asia/Shanghai ...
编辑配置文件
/etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
# port listen 80; # server_ip_or_name server_name 192.168.1.100;
-
启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启。
# 启动 systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm # 开机自启 systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
-
进入UI安装界面
输入nginx配置的host跟port,例如http://192.168.1.100进入后需要安装。
点击下一步。
这里是验证是否满足安装条件,我们之前修复改配置因此全部OK,直接下一步。
输入数据库信息,之前笔者配置的密码是
Zabbix@Password
。这里要注意
Zabbix server
需要与配置保持一致。确认无误之后直接下一步。
完成安装。
-
登录zabbix
账号/密码为Admin/zabbix
成功登录后进入zabbix监控页面。
docker安装
推荐使用容器化安装zabbix。
-
安装mysql
docker run -it --rm \ --privileged=true \ --name mysql-server \ -p 3306:3306 \ -v /opt/docker/zabbix/zabbix-mysql/log:/var/log/mysql \ -v /opt/docker/zabbix/zabbix-mysql/data:/var/lib/mysql \ -v /opt/docker/zabbix/zabbix-mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD="root" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="Zabbix@Password" \ -e TZ="Asia/Shanghai" \ -d mysql:5.7 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_bin \ --lower_case_table_names=1
-
安装zabbix-java-gateway
docker run -it --rm \ --privileged=true \ --name zabbix-java-gateway \ -d zabbix/zabbix-java-gateway:latest
-
安装zabbix-server
docker run -it --rm \ --privileged=true \ --name zabbix-server-mysql \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="Zabbix@Password" \ -e MYSQL_ROOT_PASSWORD="root" \ -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \ --link mysql-server:mysql \ --link zabbix-java-gateway:zabbix-java-gateway \ -p 10051:10051 \ -d zabbix/zabbix-server-mysql:latest
-
安装zabbix-web
docker run -it --rm \ --privileged=true \ --name zabbix-web-nginx-mysql \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="Zabbix@Password" \ -e MYSQL_ROOT_PASSWORD="root" \ -e ZBX_SERVER_HOST="zabbix-server-mysql" \ -e ZBX_SERVER_PORT=10051 \ -e ZBX_POSTMAXSIZE=1024M \ -e PHP_TZ="Asia/Shanghai" \ --link mysql-server:mysql \ --link zabbix-server-mysql:zabbix-server \ -p 18080:8080 \ -p 18443:8443 \ -p 10080:80 \ -d zabbix/zabbix-web-nginx-mysql:latest
-
安装zabbix-agent
docker run -it --rm \ --privileged=true \ --name zabbix-agent \ -e ZBX_HOSTNAME="Zabbix server" \ -e ZBX_SERVER_HOST="zabbix-server-mysql" \ -p 10050:10050 \ --link zabbix-server-mysql:zabbix-server \ -d zabbix/zabbix-agent:latest
-
修改host地址
注意因为agent是使用容器,因此这里需要配置容器IP。
# 获取zabbix-agent的IP地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' zabbix-agent
尾声
以上就是ZABBIX5.0的安装流程,后续笔者会介绍ZABBIX的功能模块与实践。