ZABBIX分布式监控系统搭建(一)

Zabbix 企业监控系统搭建

1、实验准备

centos7.5 系统服务器3台、 一台作为监控服务器, 两台台作为被监控节点, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信。

主机名 ip 服务
zabbix-master 172.16.147.153 zabbix-server
zabbix-slave1 172.16.147.154 zabbix-agent
zabbix-slave2 172.16.147.155 zabbix-agent

1)所有机器关闭防火墙和selinux

[root@zabbix-master ~]# systemctl stop firewalld && setenforce 0(修改配置文件关闭)
[root@zabbix-slave ~]# systemctl stop firewalld && setenforce 0
# 必要时可永久关闭或开启相应的端口

2、Zabbix的安装

下载地址

1)更新yum仓库

我们去官网下载一个包zabbix-release-4.4-1.el7.noarch.rpm,本地安装至我们的虚拟机,这样,我们本地就有了新的yum源,可以直接安装zabbix服务:

下载安装官方yum源
[root@zabbix-master ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
[root@zabbix-master ~]# yum clean all
[root@zabbix-master ~]# yum makecache fast
已加载插件:fastestmirror
正在清理软件源: base extras updates zabbix zabbix-non-supported

下载安装:

rpm -ivh zabbix-release-4.4-1.el7.noarch.rpm

而后更新我们的yum仓库:

[root@zabbix-master ~]# yum repolist 
Loaded plugins: fastestmirror, langpacks  
Loading mirror speeds from cached hostfile
zabbix-non-supported                                                      4/4
repo id                     repo name                                   status
base                        base                                         9,363
epel                        epel                                        11,349
zabbix/x86_64               Zabbix Official Repository - x86_64             80
zabbix-non-supported/x86_64 Zabbix Official Repository non-supported -       4
repolist: 20,796

安装:

[root@zabbix-master ~]# yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql

或者(官方)
[root@zabbix-master ~]# yum-config-manager --enable rhel-7-server-optional-rpms

2)安装设置数据库:

1、创建 mariadb.repo

vim /etc/yum.repos.d/mariadb.repo
写入以下内容:
[mariadb]
name = MariaDB 
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64 
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB 
gpgcheck=1

2、yum 安装最新版本 mariadb

[root@zabbix-master ~]# yum install MariaDB-server MariaDB-client

首先,我们修改一下配置文件——/etc/my.cnf.d/server.cnf

[root@zabbix-master ~]# vim /etc/my.cnf.d/server.cnf
    [mysqld]
    skip_name_resolve = ON          #跳过主机名解析
    innodb_file_per_table = ON      #
    innodb_buffer_pool_size = 256M  #缓存池大小
    max_connections = 2000          #最大连接数

    log-bin = master-log            #开启二进制日志

2、重启我们的数据库服务:

[root@zabbix-master ~]# systemctl restart mariadb
[root@zabbix-master ~]# mysql_secure_installation  #初始化mariadb

3、创建数据库并授权账号

MariaDB [(none)]> create database zabbix character set 'utf8';  # 创建zabbix数据库
MariaDB [(none)]> grant all on zabbix.* to 'zbxuser'@'192.168.19.%' identified by 'keer';										# 注意授权网段
MariaDB [(none)]> flush privileges;           # 刷新授权

4、导入表
  首先,我们来查看一下,zabbix-server-mysql这个包提供了什么:

[root@zabbix-master ~]# rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-4.4.4
/usr/share/doc/zabbix-server-mysql-4.4.4/AUTHORS
/usr/share/doc/zabbix-server-mysql-4.4.4/COPYING
/usr/share/doc/zabbix-server-mysql-4.4.4/ChangeLog
/usr/share/doc/zabbix-server-mysql-4.4.4/NEWS
/usr/share/doc/zabbix-server-mysql-4.4.4/README
/usr/share/doc/zabbix-server-mysql-4.4.4/create.sql.gz #生成表的sql文件
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix

我们来使用这个文件生成我们所需要的表:

[root@zabbix-master ~]# cd /usr/share/doc/zabbix-server-mysql-4.4.4/
[root@zabbix-master zabbix-server-mysql-4.4.4]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@zabbix-master zabbix-server-mysql-4.4.4]# gzip -d create.sql.gz 
[root@zabbix-master zabbix-server-mysql-4.4.4]# head create.sql 
CREATE TABLE `users` (
        `userid`                 bigint unsigned                           NOT NULL,
        `alias`                  varchar(100)    DEFAULT ''                NOT NULL,
        `name`                   varchar(100)    DEFAULT ''                NOT NULL,
        `surname`                varchar(100)    DEFAULT ''                NOT NULL,
        `passwd`                 varchar(32)     DEFAULT ''                NOT NULL,
        `url`                    varchar(255)    DEFAULT ''                NOT NULL,
        `autologin`              integer         DEFAULT '0'               NOT NULL,
        `autologout`             varchar(32)     DEFAULT '15m'             NOT NULL,
        `lang`                   varchar(5)      DEFAULT 'en_GB'           NOT NULL,

我们查看表头发现没有创建数据库的命令,这也正是我们刚刚手动创建数据库的原因。
然后,我们直接把这个表导入至我们的数据库即可:

[root@zabbix-master zabbix-server-mysql-4.4.4]# mysql -uzabbix -h172.16.147.153 -p zabbix < create.sql

Enter password:

导入以后,我们进去数据库查看一下:

[root@zabbix-master ~]# mysql -uzbxuser -h172.16.147.153 -p
Enter password:
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| zabbix             |
+--------------------+
MariaDB [(none)]> use zabbix;
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
……
| usrgrp                     |
| valuemaps                  |
+----------------------------+
127 rows in set (0.00 sec)

可以看出来,我们的数据已经导入成功了。

3、配置 server 端

我们的数据库准备好了以后,我们要去修改server端的配置文件。

[root@zabbix-master ~]# cd /etc/zabbix/
[root@zabbix-master zabbix]# ls
[root@zabbix-master zabbix]# ls
web                 zabbix_java_gateway.conf         zabbix_server.conf
zabbix_agentd.conf  zabbix_java_gateway_logback.xml
zabbix_agentd.d     zabbix_proxy.conf
#为了方便我们以后恢复,我们把配置文件备份一下
[root@zabbix-master zabbix]# cp zabbix_server.conf{,.bak}
[root@zabbix-master zabbix]# vim zabbix_server.conf
ListenPort=10051            #默认监听端口
SourceIP=172.16.147.153     #发采样数据请求的IP

为什么要设置SourceIP,由于我们的客户端可能一个主机多个IP,我们又不能允许任意的IP都能从我们这里读取数据,就会有一个验证方式,而该方式是基于识别SourceIP来实现的。ZABBIX分布式监控系统搭建(一)_第1张图片

日志,默认用文件记录,也可以发送给我们的rsyslog日志记录系统,如果我们选择默认,则日志存放在LogFile=/var/log/zabbix/zabbix_server.log中,也可以自己设置。
ZABBIX分布式监控系统搭建(一)_第2张图片
  日志的滚动。默认值为1,表示滚动。我们设为0则表示不滚动。当数据特别多的时候,我们也可以设置成为1,然后在Maximum size of log file in MB设置当数据文件最大到多少时会自动滚动。
ZABBIX分布式监控系统搭建(一)_第3张图片
  日志的级别。一共有6个级别。我们可以根据自己的需要来设置级别。其中0表示输出最少的信息,5表示输出最详细的信息,默认值为3,设置为3的话就表示,0、1、2、3四个级别都显示。考虑到生产系统中的压力时,这里的信息,如果没有必要的话,越简单越好,只要在出错的时候,我们可以依据其进行排错即可。

    DBHost=172.16.147.153       #数据库对外的主机
    DBName=zabbix               #数据库名称
    DBUser=zbxuser              #数据库用户
    DBPassword=keer             #数据库密码
    DBPort=3306                 #数据库启动端口

数据库相关的设置。

补充:我们可以使用grep -i "^####" zabbix_server.conf来查看配置文件中有哪些大段,也可以使用grep -i "^###" zabbix_server.conf来查看配置文件中每一段中的配置项有哪些

以上,我们的基本配置已经完成,可以开启服务了:

[root@zabbix-master zabbix]# systemctl start zabbix-server.service

开启服务以后,我们一定要去确认一下我们的端口有没有开启:

[root@zabbix-master zabbix]# ss -nutl |grep 10051
tcp    LISTEN     0      128       *:10051                 *:*                  
tcp    LISTEN     0      128      :::10051                :::*    

如果查到的端口没有开启,我们就要去检查一下配置文件有没有出问题了。
  至此,我们server端的进程启动已经ok了,接下来就可以使用web GUI来打开接口进行设定了

4、配置 web GUI

我们先来查看一下,我们web GUI的配置文件在哪里:

[root@zabbix-master ~]# rpm -ql zabbix-web | less
/etc/httpd/conf.d/zabbix.conf
/etc/zabbix/web
/etc/zabbix/web/maintenance.inc.php
/etc/zabbix/web/zabbix.conf.php
/usr/share/doc/zabbix-web-4.4.4
/usr/share/doc/zabbix-web-4.4.4/AUTHORS
/usr/share/doc/zabbix-web-4.4.4/COPYING
/usr/share/doc/zabbix-web-4.4.4/ChangeLog
/usr/share/doc/zabbix-web-4.4.4/NEWS
/usr/share/doc/zabbix-web-4.4.4/README
/usr/share/zabbix
/usr/share/zabbix/actionconf.php
/usr/share/zabbix/adm.gui.php
/usr/share/zabbix/adm.housekeeper.php
/usr/share/zabbix/adm.iconmapping.php
/usr/share/zabbix/adm.images.php
/usr/share/zabbix/adm.macros.php
……

可以看出,有一个/etc/httpd/conf.d/zabbix.conf文件,这个配置文件就是帮我们做映射的文件,我们可以去看一看这个文件:

Alias /zabbix /usr/share/zabbix     #我们访问的时候要在主机后加上/zabbix来访问我们这个服务

ZABBIX分布式监控系统搭建(一)_第4张图片
  时区是一定要设置的,这里被注释掉是因为,我们也可以在php的配置文件中设置时区,如果我们在php配置文件中设置时区,则对所有的php服务均有效,如果我们在zabbix.conf中设置时区,则仅对zabbix服务有效。所以,我们去php配置文件中设置我们的时区:

vim /etc/php.ini
    [Date]
    ; Defines the default timezone used by the date functions
    ; http://php.net/date.timezone
    date.timezone = Asia/Shanghai

接下来,我们就可以启动我们的httpd服务了:
ZABBIX分布式监控系统搭建(一)_第5张图片
  我们的服务已经开启,接着我们就可以用浏览器来访问了。

5、浏览器访问并进行初始化设置

我们使用浏览器访问172.16.147.153/zabbix,第一次访问时需要进行一些初始化的设置,我们按照提示操作即可:
ZABBIX分布式监控系统搭建(一)_第6张图片
ZABBIX分布式监控系统搭建(一)_第7张图片
ZABBIX分布式监控系统搭建(一)_第8张图片
ZABBIX分布式监控系统搭建(一)_第9张图片
ZABBIX分布式监控系统搭建(一)_第10张图片
ZABBIX分布式监控系统搭建(一)_第11张图片
点击Finish以后,我们就会跳转到登录页面,使用我们的账号密码登录即可:
ZABBIX分布式监控系统搭建(一)_第12张图片

默认用户名为:admin ,密码为:zabbix 。
  登陆进来就可以看到我们的仪表盘了:
ZABBIX分布式监控系统搭建(一)_第13张图片

你可能感兴趣的:(ZABBIX分布式监控系统)