Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题

zabbix的优点:

开源,无软件成本投入

  • Server 对设备性能要求低
  • 支持设备多,自带多种监控模板
  • 支持分布式集中管理,有自动发现功能,可以实现自动化监控
  • 开放式接口,扩展性强,插件编写容易
  • 当监控的 item 比较多服务器队列比较大时可以采用被动状态,被监控客户端主动 从server 端去下载需要监控的 item 然后取数据上传到 server 端。 这种方式对服务器的负载比较小。
  • Api 的支持,方便与其他系统结合

缺点:

需在被监控主机上安装 agent,所有数据都存在数据库里, 产生的数据很大,瓶颈主要在数据库。

监控对象:

  • 数据库: MySQL,MariaDB,Oracle,SQL Server agent
  • 应用软件:Nginx,Apache,PHP,Tomcat agent
    -------------------------------------------------------------------------------------------------------------------------------
  • 集群: LVS,Keepalived,HAproxy,RHCS,F5 agent
  • 虚拟化: VMware,KVM,XEN ,docker,k8s agent
  • 操作系统:Linux,Unix,Windows性能参数 agent
    -------------------------------------------------------------------------------------------------------------------------------
  • 硬件: 服务器,存储,网络设备 IPMI
  • 网络: 网络环境(内网环境,外网环境) SNMP
    -------------------------------------------------------------------------------------------------------------------------------

环境准备:

一台zabbix-server
三台zabbix-agent(包括server端自身也是一个agent)
操作系统:centos7.6

关闭防火墙

systemctl stop firewalld.service
systemctl stop iptables firewalld

关闭selinux
临时:

setenforing 0

永久:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

主机名修改,并设置hosts本地解析:

hostnamectl --static set-hostname zabbix-server
hostnamectl --static set-hostname zabbix-agent1
hostnamectl --static set-hostname zabbix-agent2

vim /etc/hosts
..............

开始搭建:

开启邮件服务,设为自启:

systemctl start postfix
systemctl enable postfix

安装yum仓库:(server和agent端都要安装)

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

更新yum仓库:(server和agent端都需配置)

yum repolist

先下个epel源:

yum -y install epel-release.noarch

然后安装 Zabbix server和agent:(agent端只需安装agent)

yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql

安装zabbix前端:

yum -y install centos-release-scl

开启前端安装源仓库配置

vim /etc/yum.repos.d/zabbix.repo

[zabbix-frontend]
...
enabled=1 //设置启用就OK
...

安装zabbix前端:

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl

安装设置数据库

创建mariadb.repo:

vim /etc/yum.repos.d/mariadb.repo

[mariadb]
name = MariaDB 
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.5/centos7-amd64 
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB 
gpgcheck=1

使用yum安装最新版本mariadb:

yum install -y MariaDB-server MariaDB-clien

修改配置文件:

vim /etc/my.cnf.d/server.cnf


```sql
   [mysqld]
    skip_name_resolve = ON          # 跳过主机名解析
    innodb_file_per_table = ON      # 开启独立表空间
    innodb_buffer_pool_size = 256M  # 缓存池大小
    max_connections = 2000          # 最大连接数
    log-bin = master-log            # 开启二进制日志

启动数据库服务:

systemctl restart mariadb
mysql_secure_installation  # 初始化mariadb

进入数据库,创建授权账号:

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

导入zabbix服务表:

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-5.0.2
/usr/share/doc/zabbix-server-mysql-5.0.2/AUTHORS
/usr/share/doc/zabbix-server-mysql-5.0.2/COPYING
/usr/share/doc/zabbix-server-mysql-5.0.2/ChangeLog
/usr/share/doc/zabbix-server-mysql-5.0.2/NEWS
/usr/share/doc/zabbix-server-mysql-5.0.2/README
/usr/share/doc/zabbix-server-mysql-5.0.2/create.sql.gz   // 生成表的各种脚本
/usr/share/doc/zabbix-server-mysql-5.0.2/double.sql
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix

使用 create.sql.gz 生成所需要的表:

gzip -d /usr/share/doc/zabbix-server-mysql-5.0.2/create.sql.gz

head /usr/share/doc/zabbix-server-mysql-5.0.2/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(60)     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,

查看表头发现没有创建数据库的命令,这正是手动创建数据库的原因。把所需表导入数据库就ok:

mysql -uzabbix -h192.168.37.111 -p'123.sehn' zabbix < /usr/share/doc/zabbix-server-mysql-5.0.2/create.sql

导入以后查看数据库:

mysql -uzabbix -h192.168.37.111 -p'123.sehn'

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| zabbix             |
+--------------------+
MariaDB [(none)]> use zabbix;
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
……
| users_groups               |
| usrgrp                     |
| valuemaps                  |
| widget                     |
| widget_field               |
+----------------------------+
166 rows in set (0.001 sec)

数据已经导入成功

修改 zabbix的配置文件(server端和agent端)

先备份一下:

cp /etc/zabbix/zabbix_server.conf{,.bak}

配置文件内要修改的内容:

[root@zabbix-server zabbix]# cat zabbix_agentd.conf | grep -v "^[[:space:]].*#" | grep -v "^#" | grep -v "^$"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DebugLevel=3
SourceIP=192.168.37.112  //agent
EnableRemoteCommands=1
Server=192.168.37.111   //server
ListenPort=10050
ListenIP=192.168.37.112  //agent
ServerActive=192.168.37.111  //server
Hostname=zabbix-server
Include=/etc/zabbix/zabbix_agentd.d/*.conf

//server端数据库相关配置
	DBHost=192.168.37.111       #数据库对外的主机
    DBName=zabbix               #数据库名称
    DBUser=zabbix              #数据库用户
    DBPassword=123.sehn             #数据库密码
    DBPort=3306                 #数据库启动端口

修改后就可以启动了:

systemctl start zabbix-server.service

查看端口验证一下:

ss -nutl |grep 10051

tcp    LISTEN     0      128       *:10051                 *:*                  
tcp    LISTEN     0      128      :::10051                :::*

配置 web GUI

php 监听用户增加nginx,设置时区:

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

php_value[date.timezone] = Asia/Shanghai //最后为一条设置时区,我这里设置为上海

启动 httpd 服务:

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
//建议设置为自启
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

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

浏览器访问http://192.168.37.111/zabbix,第一次访问时需要进行一些初始化的设置,按照提示操作:

zabbix配置里添加键值_centos


全部为ok,执行下一步

zabbix配置里添加键值_zabbix配置里添加键值_02


下一步:

zabbix配置里添加键值_zabbix配置里添加键值_03


下一步:

zabbix配置里添加键值_zabbix配置里添加键值_04


完事!

zabbix配置里添加键值_云计算_05


最后会跳转到登录页面,使用账号密码登录即可:

默认用户名为:Admin ,密码为:zabbix ,登录后进入仪表盘然后就可以看到zabbix5.0漂亮的web页面啦

zabbix配置里添加键值_centos_06