文章目录

  • 简介
  • 一、版本选择及服务器配置
  • 1、版本选择
  • 2、基本配置
  • 二、安装 Zabbix
  • 1、获取 Zabbix
  • 2、配置数据库
  • 3、启动 Zabbix
  • 4、安装 Zabbix-web
  • 三、修改为中文语言


简介

Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。

在 IT 企业生产中,对公司各种 IT 资源的监控是非常重要且必须的,规范而有效的监控可以在造成事故是对我们提前预警,避免损失。Zabbix 就是一套比较简单易上手、功能强大的监控系统,下面来看看怎么快速搭建吧。

  • 系统环境:CentOS 7.4

一、版本选择及服务器配置

1、版本选择

下图是 Zabbix 现存版本及官方对 Zabbix 版本的维护计划。可以看出,Zabbix 大约每半年会发布一个标准版本,主要是用来修复最近一个版本周期的 bug 以及各种小优化,就目前而言最值得安装的版本应该是 Zabbix 4.0 LTS(4.0 长期支持版本)

sentry 监控系统搭建 网络监控系统搭建过程_服务器

2、基本配置

先看看 Zabbix 官方提供的参考配置吧:

规模

平台

CPU/内存

数据库

受监控的主机数量

小型

CentOS

Virtual Appliance

MySQL InnoDB

100

中型

CentOS

2 CPU cores/2GB

MySQL InnoDB

500

大型

RedHat Enterprise Linux

4 CPU cores/8GB

RAID10 MySQL InnoDB 或 PostgreSQL

>1000

极大型

RedHat Enterprise Linux

8 CPU cores/16GB

Fast RAID10 MySQL InnoDB 或 PostgreSQL

>10000

上面表格只做参考,实际使用中建议分配资源要比上面表格更多。
这里是学习使用,使用的是本地的虚拟机(2C2G),CentOS 7.4

下面先看看 Zabbix 架构:

sentry 监控系统搭建 网络监控系统搭建过程_sentry 监控系统搭建_02


从架构图里很清晰的可以看到,Zabbix 服务需要用到数据库组件,Zabbix 是支持多种数据库的,例如:MySQL、MariaDB、PostgreSQL 等,这里我们选择使用 MySQL。

所以这里我们需要在服务器上安装好 MySQL(如果已经安装可以跳过这步),安装 MySQL 的方法之前写过:CentOS 7 安装 MySQL,其实你如果用 MariaDB 的话操作基本完全一致。

二、安装 Zabbix

1、获取 Zabbix

由于某些原因直接使用 Zabbix 官方的仓库可能会有网络超时的问题,我们可以使用清华镜像仓源的。
清华镜像仓库链接:https://mirrors.tuna.tsinghua.edu.cn/

  • 安装 zabbix 仓库
[root@benarchen ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
  • 修改 repo 指向源
    这里有个问题,虽然我们是从清华镜像源安装的 repo,但是这个 repo 在配置上还是指向了 Zabbix 官方,我们需要手动修改一下:
[root@benarchen ~]# vim /etc/yum.repos.d/zabbix.repo 
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/     #需要把文中三处 baseurl 修改指向清华源
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
 
#在末行模式输入下面的命令回车即可,保存后退出
:%s#repo.zabbix.com#mirrors.tuna.tsinghua.edu.cn/zabbix#g

安装 Zabbix server 并使用 MySQL 数据库:

[root@benarchen ~]# yum install zabbix-server-mysql -y

安装 Zabbix 前端并使用 MySQL 数据库:

[root@benarchen ~]# yum install zabbix-web-mysql -y

到这里主程序就安装好了,下面需要配置数据库。

2、配置数据库

登入本机已经安装好的 MySQL,创建 zabbix 数据库

mysql> create databases zabbix charset utf8;     # MariaDB 用这条命令
mysql> create database zabbix character set utf8 collate utf8_bin;		# MySQL 用这条
mysql> grant all on zabbix.* to zabbix@localhost identified by 'Zabbix@123456';  # 这个密码要记住,需要写入配置文件的

导入初始化数据

[root@idreamsky_study ~]# rpm -ql zabbix-server-mysql		# 这里会找到官方提供的初始化 SQL 
......
/usr/share/doc/zabbix-server-mysql-4.0.20/create.sql.gz
# 把初始化数据导入 zabbix 库,这里也可以把 sql.gz 文件解压后导入,效果都是一样的
[root@benarchen ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.20/create.sql.gz |mysql -uzabbix -p zabbix
Enter password: 这里输入前面设置的密码

3、启动 Zabbix

数据以及导入好了,现在需要修改 Zabbix-server 的配置文件,因为我们需要指定它去连接我们刚刚创建好的数据库

[root@benarchen ~]# vim /etc/zabbix/zabbix_server.conf 
#进入修改四个地方就行了,其实基本不用动的,把前面设置的数据库密码加上就好了
#也就是核对一下下面四个参数
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix@123456

下面就可以启动 Zabbix-server 服务了:

[root@benarchen ~]# systemctl start zabbix-server.service			# 启动服务
[root@benarchen ~]# systemctl enable zabbix-server.service			# 设置开机自启

我这里启动服务后使用 netstat 命令查看端口是否被监听发现监听列表里并未出现 10051(默认端口)

[root@benarchen zabbix]# netstat -tupln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      16334/master        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1167/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      16334/master        
tcp6       0      0 :::3306                 :::*                    LISTEN      16401/mysqld        
tcp6       0      0 :::22                   :::*                    LISTEN      1167/sshd           
udp        0      0 0.0.0.0:68              0.0.0.0:*                           11746/dhclient      
udp        0      0 127.0.0.1:323           0.0.0.0:*                           813/chronyd         
udp6       0      0 ::1:323                 :::*                                813/chronyd

然后去查看启动日志

[root@benarchen zabbix]# vim /var/log/zabbix/zabbix_server.log 
......
 18429:20200514:151652.616 cannot start preprocessing service: Cannot bind socket to "/var/run/zabbix/zabbix_server_preprocessing.sock": [13] Permission denied.
 18425:20200514:151652.619 server #26 started [alert manager #1]
 18425:20200514:151652.619 cannot start alert manager service: Cannot bind socket to "/var/run/zabbix/zabbix_server_alerter.sock": [13] Permission denied.

在日志里查看到两条比较 “不同寻常” 的,看到 Permission denied 提示,但是我明明是使用 root 权限启动的,这个时候我想到了 SElinux 这个小东西,可能是我没有关闭这个功能从而导致了它对 zabbix 服务拦截,查看后果不其然就是因为它导致 Zabbix-server 无法正常启动,下面是关闭步骤:

#获取当前 selinux 运行模式
[root@CentOS7-dns-master ~]# getenforce
Enforcing
#临时关闭,不需要重启机器
[root@CentOS7-dns-master ~]# setenforce 0
[root@CentOS7-dns-master ~]# getenforce  
Permissive

上面是临时关闭的步骤,永久关闭需要修改配置文件,详情见 永久关闭 SELinux,这篇文章第一步就是介绍永久关闭 SELinux 的,这里就不展开了。临时关闭 SELinux 后 Zabbix -server 服务就正常启动了。

4、安装 Zabbix-web

Zabbix-server 已经成功安装并启动了,接下来就是启动 Zabbix-web 了,启动 httpd 服务并设置开机自启。

[root@benarchen zabbix]# systemctl start httpd.service
[root@benarchen zabbix]# systemctl enable httpd.service

启动 httpd 服务后就可以通过浏览器配置 Zabbix-web 了,在本地浏览器输入 :你的服务器 ip/zabbix 会出现如下页面:

sentry 监控系统搭建 网络监控系统搭建过程_zabbix_03


sentry 监控系统搭建 网络监控系统搭建过程_运维_04


这个报错需要在配置文件中指定一下时区:

# php_value date.timezone Europe/Riga
修改为上海世界
php_value date.timezone Asia/Shanghai
# 随后重启 httpd 服务
[root@benarchen ~]# systemctl restart httpd.service

浏览器刷新后正常:

sentry 监控系统搭建 网络监控系统搭建过程_zabbix_05


下一步设置 Zabbix-web 服务的 db 连接,这里使用和 Zabbix-server 相同的就可以:

sentry 监控系统搭建 网络监控系统搭建过程_运维_06


下一步是设置 Zabbix 系统的名字,可以根据自己喜好设定:

sentry 监控系统搭建 网络监控系统搭建过程_服务器_07


然后一直下一步就可以了,Finish 后进入 Zabbix 系统的登录页面,用户名默认为 Admin ,密码为 zabbix

sentry 监控系统搭建 网络监控系统搭建过程_sentry 监控系统搭建_08

三、修改为中文语言

输入默认的账号密码登录系统后默认是英文的,不方便我们学习和上手。

点击右上角个人信息小图标进入设置:

sentry 监控系统搭建 网络监控系统搭建过程_sentry 监控系统搭建_09


选择中文后点击 update:

sentry 监控系统搭建 网络监控系统搭建过程_zabbix_10


至此 Zabbix 的基本安装和设置就完成了,并且可以看到我这里已经有一条告警信息,说明 Zabbix 系统已经在起作用了,因为我这里没有安装 Zabbix-proxy 和 Zabbix-agent ,所以只有自己的 Zabbix-server 服务器信息,基本框架已经部署好了,其他的大家可以自己去尝试。

sentry 监控系统搭建 网络监控系统搭建过程_sentry 监控系统搭建_11