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等平台上。
实验环境
之前大家可能经常会基于apache去部署zabbix,但是这样会偶尔遇到一些问题,比如说:公司系统的框架是nginx的,然后搭建的zabbix却是基于apache的,这样就会出现不兼容的情况,那么今天小编就带大家操作一下基于nginx的zabbix5.0的部署。下面跟大家交代一下小编的实验环境框架:
操作系统:Centos7web应用:nginxphp:7.2数据库:mariadb
安装部署服务端
配置源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum repolist #查看zabbix 源文件 yum list zabbix* #查看当前源存在哪些zabbix应用包 #直接安装zabbix服务端跟客户端 yum -y install zabbix-server-mysql zabbix-agent #安装web前端服务的一个依赖包 yum -y install centos-release-scl #安装scl的依赖包,主要用于调取源这里安装完成之后,我们需要对之前下载的yum源文件进行修改,因为在5.0版本的zabbix的源中,web前端的源是被默认禁用的,我们需要启用
cd /etc/yum.repo.d/ vim zabbix.repo #找到[zabbix-frontend](前端) enabled=0 #将这里的关闭修改为1,即为开启 #修改完成之后在次使用 yum list zabbix 就会发现源文件中多了web相关的源 #安装web前端服务 yum -y install zabbix-web-mysql-scl zabbix-nginx-conf-scl到这里zabbix服务端的应用就全部部署完成了,下面就开始部署数据库了。
安装配置数据库(这里使用的是mariadb,感兴趣的同学可以使用编译或者别的方法安装mysql试试)
yum -y install mariadb-server数据库安装完成之后,可以先启动数据库看看
systemctl start mariadb.service #执行完毕之后可以使用以下命令进行查看数据库是否正常启动 netstat -ltunp | grep 3306mariadb安装完成之后,默认是没有登录密码的,我们可以直接使用mysql进行数据库的登录
登录之后,可以先进行一个业务库的创建(这里需要注意,数据库在创建的时候要注意字符集的设定,否则在后续的web端进行部署的时候会出现问题)
[root@localhost ~] mysql Mariadb [(none)] > Mariadb [(none)] >create database zabbix character set utf8 collate utf8_bin; #创建数据库时指定字符集为utf8 Mariadb [(none)] > Mariadb [(none)] >show databases; #查看数据库是否创建成功 #这里看到zabbix数据库已经成功创建之后就可以退出数据库了然后我们查看下zabbix在安装时都安装了些什么
rpm -ql zabbix-server-mysql这里能看到我们在安装的时候,zabbix 有提供一个用于初始化的gz的压缩包我们把这个压缩包里的sql语句都导出来,方便后续的使用
[root@localhost ~] zcat /usr/share/doc/zabbix-server-mysql-5.0.13/create.sql.gz > zabbix.sql [root@localhost ~] ls #就能查看到我们导出的sql 文件 [root@localhost ~] mysql < zabbix.sql ERROR 1046 (3D000) at line 1: No database selected #这里可以看到出现了一个报错,没有数据库可以用来查看 #那我们这里稍微修改下zabbix.sql 的文件 [root@localhost ~] vim zabbix.sql #在文件的最上端添加 use zabbix; [root@localhost ~] mysql < zabbix.sql #然后再次进行数据的导入导入完成之后,我们再次进入数据库进行查看下之前导入的数据表
[root@localhost ~] mysql Mariadb [(none)] > use zabbix Mariadb [(none)] > show tables; #因为zabbix需要进行数据库的链接,所以这里我们需要进行一步用户的授权操作 Mariadb [(none)] > grant all on zabbix.* to zabbix@localhost identified by 'zabbix'; #到这里数据库也算是部署完成并且配置完成了zabbix服务端的配置
[root@localhost ~] vim /etc/zabbix/zabbix_server.conf #zabbix服务端的配置文件 #进来之后我们查找一下DBName,会有一个DBName=zabbix的参数配置,这里默认就是zabbix #DBName=zabbix #这里因为我们创建的数据库的名字就是zabbix 所以不需要修改,但是如果有同学在创建数据库时,数据库名不是zabbix的,这里就需要进行修改了 DBUser=zabbix #连接数据库的用户 #DBPassword= #原来的配置文件默认是没有密码的,这里需要修改一下 DBPassword=zabbix #DBSocket= #socket 跟默认是一致的,这里不需要修改web端php的配置
[root@localhost ~] cd /etc/opt/rh/ [root@localhost rh] ls rh-nginx116 rh-php72 [root@localhost rh] cd rh-php72 #这里先修改php的配置文件 [root@localhost rh-php72] ls opt pear pear.conf php.d php-fpm.conf php-fpm.d php.ini pki pm skel sysconfig X11 xdg xinetd.d [root@localhost rh-php72] vim php-fpm.d/zabbix.conf 6 listen.acl_users=apache,nginx #监听的认证用户,这里默认是apache的,需要我们添加一个nginx 24 ;php_value[date.timezone] = Europe/Riga #这里默认的时区是欧洲的时区,需要修改 24 php_value[date.timezone] = Asia/Shanghai #这里php就这两处需要进行修改的web端的nginx的配置修改
[root@localhost rh-php72] cd .. [root@localhost rh] cd rh-nginx116 [root@localhost rh-nginx116] ls nginx opt pki pm skel sysconfig X11 xdg xinetd.d [root@localhost rh-nginx116] cd nginx [root@localhost nginx] cd conf.d [root@localhost conf.d] ls zabbix.conf [root@localhost conf.d] vim zabbix.conf server { # listen 80; # server_name example.com; 这里只需要针对性的修改上面这两条就可以了,修改为 listen 80; server_name localhost; #这里可以修改为业务对应的域名 ... ... }这里因为在配置文件中,我们配置的监听端口是80并且监听的域名是本地的,所以在主配置文件中,我们需要将这两条进行注释。
[root@localhost conf.d] cd .. [root@localhost nginx] vim nginx.conf server { # listen 80 default_server # listen [::]:80 default_server } #这里将server 中所有的配置全部都注释掉,以保证两个配置文件不会发生冲突到这里 我们的zabbix-server,php,nginx,mysql 这些就都已经部署配置完成了
然后接下来我们检查一下我们本地的一些基本的安全策略
[root@localhost nginx] systemctl status firewalld [root@localhost nginx] systemctl disable firewalld [root@localhost nginx] getenforce Enforcing #表示开启状态,需要关闭 [root@localhost nginx] setenforce 0 [root@localhost nginx] vim /etc/selinux/config SELINUX = disable #将这里修改为关闭现在就部署的差不多了,我们来把相应的服务启动一下,看一下效果
[root@localhost nginx] systemctl start zabbix-server.service [root@localhost nginx] systemctl start rh-php72-php-fpm.service [root@localhost nginx] systemctl start rh-nginx116-nginx.service [root@localhost nginx] netstat -lutnp 这其中 9000 是php的端口 3306是mysql的端口 80是nginx端口 10051是zabbix-server的端口 #检查以上的端口是否都存在,如端口存在则说明对应的应用已经启动完成了都启动完成之后,我们可以通过浏览器访问来进行查看
只要在浏览器中输入我们服务器对应的IP地址进行访问就可以了
这里主要检查小编标注的的那部分是不是都是ok的,如果存在不是ok状态的,就需要针对单项进行修复。
这里就是数据库的实例名,用户,密码,安装我们安装数据库时的情况填写就可以了
这边是zabbix的用户名
这里就是zabbix在web页面上需要配置的全部的参数内容了
这里就可以看到,恭喜你,您已经成功的安装好了zabbix服务
zabbix默认的用户名是Admin密码是zabbix
在zabbix5.0中是有配置可以修改为中文字符显示的。
这里我们就可以看到页面已经转换成中文。
至此zabbix5.0基于nginx的部署就完成了,谢谢各位看官的学习观看,后续小编还会继续更新相关的技术文章的,请各位看官多多支持。