Zabbix监控配置详解


一、Zabbix简介

1、Zabbix架构

1.1、server-client架构

server-client架构也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。
server-client架构

1.2、server-proxy-client架构

server-proxy-client架构其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。一般适用于跨机房、跨网络的中型网络架构的监控master-node-client。
server-proxy-client架构

2、Zabbix的优缺点

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

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

Zabbix可以监控的对象
在这里插入图片描述
IPMI:智能平台管理接口(Intelligent Platform Management Interface)IPMI 能够横跨不同的操作系统、固件和硬件平台,可以智能的监视、控制和自动回报大量服务器的运作状况,以降低服务器系统成本。

SNMP:网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机等)的一种标准协议,它是一种应用层协议。

3、Zabbix组件

zabbix的监控方式可分为两种模式
被动模式主动模式

Server

  • Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。

数据库存储

  • 所有配置信息和Zabbix收集到的数据都被存储在数据库中。

Web界面

  • 为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常跟Zabbix Server运行在同一台物理机器上。

Proxy 代理服务器

  • Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Zabbix Proxy是一个可以从一个或多个受监控设备收集监控数据,并将信息发送到Zabbix sever,基本上是代server工作的。所有收集的数据都在本地进行缓存,然后传送到proxy所属的Zabbix sever。部署Proxy是可选的,但是可能非常有益于分散单个Zabbix sever的负载。如果只有proxy收集数据,sever上的进程就会减少CPU消耗和磁盘I / O负载。Zabbix proxy是完成远程区域、分支机构、没有本地管理员的网络的集中监控的理想解决方案。Zabbix proxy需要使用独立的数据库。

Agent监控代理

  • Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。

数据流

  • 监控方面,为了创建一个监控项(item)用于采集数据,必须先创建一个主机(host)。告警方面,在监控项里创建触发器(trigger),通过触发器(trigger)来触发告警动作(action)。 因此,如果你想收到Server XCPU负载过高的告警,你需要:1、为Server 创建一个host并关联一个用于对CPU进行监控的监控项(Item)。2、创建一个触发器Trigger,设置成当CPU负载过高时会触发。3、Trigger被触发,发送告警邮件 。

4、Zabbix常用语

1、主机 (host)

  • 一台你想监控的网络设备,用IP或域名表示

2、主机组 (host group)

  • 主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。

3、监控项 (item)

  • 你想要接收的主机的特定数据,一个度量数据。

4、触发器 (trigger)

  • 一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式
    当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。

5、动作 (action)

  • 一个对事件做出反应的预定义的操作。 一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成 。

6、媒介 (media)

  • 发送告警通知的手段;告警通知的途径

7、远程命令 (remote command)

  • 一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令

8、模版 (template)

  • 一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,应用,Web场景等)的集合。模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。

9、web 场景 (web scenario)

  • 利用一个或多个HTTP请求来检查网站的可用性

10、前端 (frontend)

  • Zabbix提供的web界面

11、Zabbix server

  • Zabbix软件实现监控的核心程序,主要功能是与Zabbix server和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等

12、Zabbix agent

  • Zabbix agent部署在监控的目标上,主动监测本地的资源和应用(硬件,内存,处理器统计等)。 Zabbix agent收集本地的操作信息并将数据报告给Zabbix server用于进一步处理。一旦出现异常 (比如硬盘空间已满或者有崩溃的服务进程), Zabbix server会主动警告管理员指定机器上的异常。

二、Centos7部署Zabbix4.0

1、Zabbix部署

1.1、基础环境

IP主机名
192.168.226.128zabbix-server
192.168.226.129zabbix-agent1
192.168.226.130zabbix-agent2

使用的是zabbix4.0版本,以下是yum源配置

#三台机器配置zabbix源,zabbix官网速度太慢
[xiaobai@zabbix-server] vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=0

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgcheck=0

1.2、Zabbix监控server端搭建

#在server机器上操作
[xiaobai@zabbix-server] yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get
[xiaobai@zabbix-server] yum install -y mariadb mariadb-server
[xiaobai@zabbix-server] systemctl start mariadb
[xiaobai@zabbix-server] systemctl enable mariadb
[xiaobai@zabbix-server] mysqladmin -u root password 'xiaobai'   #设置root密码

下面来配置zabbix库的数据

[xiaobai@zabbix-server] mysql -uroot -p'xiaobai'

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;   #创建zabbix数据库
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all on zabbix.* to zabbix@'%' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> \q
Bye

[xiaobai@zabbix-server] zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:    #输入刚刚授权的zabbix用户的密码

[xiaobai@zabbix-server] mysql -uzabbix -p'zabbix'
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zabbix             |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
|...                         |
| valuemaps                  |
| widget                     |
| widget_field               |
+----------------------------+
144 rows in set (0.00 sec)

#数据已经导入到了数据库中了

MariaDB [zabbix]> \q
Bye

配置zabbix-server的配置文件并启动

[xiaobai@zabbix-server] cd /etc/zabbix/
[xiaobai@zabbix-server zabbix] ls
 web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf
[xiaobai@zabbix-server zabbix] cp zabbix_server.conf zabbix_server.conf.bak
[xiaobai@zabbix-server zabbix] vim zabbix_server.conf
 DBHost=localhost   #数据库对外的主机
 DBName=zabbix   #数据库名称
 DBUser=zabbix   #数据库用户
 DBPassword=zabbix   #数据库密码
 #将以上四条配置好,打开注释
[xiaobai@zabbix-server zabbix] systemctl start zabbix-server 
[xiaobai@zabbix-server zabbix] systemctl enable zabbix-server
[xiaobai@zabbix-server zabbix] yum -y install net-tools
[xiaobai@zabbix-server zabbix] netstat -lntp | grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      10306/zabbix_server 
tcp6       0      0 :::10051                :::*                    LISTEN      10306/zabbix_server 
#如果10051端口没有被占用就要检查一下配置文件是不是写错了

[xiaobai@zabbix-server zabbix] vim /etc/httpd/conf.d/zabbix.conf
#在IfModule标签里面添加一行内容
php_value date.timezone Asia/Shanghai

[xiaobai@zabbix-server zabbix] systemctl start httpd
[xiaobai@zabbix-server zabbix] systemctl enable httpd

1.3、测试浏览器访问server端并进行初始化

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
确定没有问题了,我们来执行下一步,配置被监控端

1.4、Zabbix监控agent端配置

#agent两台机器都要做
[xiaobai@zabbix-agent1] yum -y install zabbix-agent zabbix-sender
[xiaobai@zabbix-agent1] cd /etc/zabbix/
[xiaobai@zabbix-agent1 zabbix] ls
zabbix_agentd.conf  zabbix_agentd.d
[xiaobai@zabbix-agent1 zabbix] cp zabbix_agentd.conf zabbix_agentd.bak
[xiaobai@zabbix-agent1 zabbix] vim zabbix_agentd.conf
Server=192.168.226.128   #zabbix服务器的地址 
ServerActive=192.168.226.128   #主动模式zabbix-server的ip 
Hostname=zabbix-agent1   #本机主机名
UnsafeUserParameters=1   #是否限制用户自定义keys使用特殊字符。1是可以启用特殊字符,0是不可以启用特殊字符
EnableRemoteCommands=0   #是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.

[xiaobai@zabbix-agent1 zabbix] systemctl start zabbix-agent
[xiaobai@zabbix-agent1 zabbix] systemctl enable zabbix-agent
[xiaobai@zabbix-agent1 zabbix] netstat -lntp | grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      9790/zabbix_agentd  
tcp6       0      0 :::10050                :::*                    LISTEN      9790/zabbix_agentd  

被监控端配置好启动后,我们就开始我们的重中之重,启动监控我们的服务器

2、Zabbix页面配置

2.1、设置语言

英语不好的可以到配置里修改为中文
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

2.2、创建主机及主机群组

在这里插入图片描述
输入要添加的主机组名,点下面的添加,之后就可以去添加主机了


在这里插入图片描述


在这里插入图片描述

确定填写正确后下面的已启用勾上,点添加


在这里插入图片描述
同样的操作方法,我们把agent2节点也添加进来


2.3、监控项

2.3.1、没有参数的监控项

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
点上面的主机


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述




2.3.2、zabbix图形界面乱码问题解决(拓展)



2.3.3、有参数的监控项

刚刚我们定义的监控项是很简单的,指定一个key即可,但是有些监控项是带有参数的,这样一来,我们的监控项就有更多的灵活性。
在这里插入图片描述
应用集只是类似于我们说的群组,可以不创建应用集


在这里插入图片描述


在这里插入图片描述

[xiaobai@zabbix-server] zabbix_get -s zabbix-agent1 -p 10050 -k "net.if.in[ens33,packets]"
16077
#我在/etc/hosts文件中做过了解析,没做解析的需要在-s后面输入被监控端的ip

在这里插入图片描述


在这里插入图片描述

2.3.4、快速定义监控项

我们发现,一下一下点着创建监控项还是很麻烦,这里可以直接克隆一个监控项
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


如果要修改单位
在这里插入图片描述


在这里插入图片描述

2.3.5、删除监控项

看到监控项有的没用了,我们就可以删掉它,但是如果你直接删除的话,默认数据是会留下的,所以我们要先清除数据,然后再删除,具体操作步骤如下
在这里插入图片描述


在这里插入图片描述

三、Centos8部署Zabbix4.4(拓展)

我们现在服务器上已经部署了mysql和nginx,也就意味着,我们按照常规的安装mariadb是行不通的了,这里有人会说可以用docker,这的确是个好办法,但是我们这里还是用传统的部署本地的方式部署

1、部署Zabbix4.4

#安装插件
[xiaobai@zabbix] dnf -y install httpd mysql-server php php-mysqlnd php-mbstring php-pdo php-gd   #在centos8中你依旧可以使用yum命令

#配置http插件,由于我们部署了nginx,所以80端口已经被占用了
[xiaobai@zabbix] vim /etc/httpd/conf/httpd.conf
Listen #这里改成你要用的端口,默认80
ServerName #这里改成你机器的IP+上面监听的端口
#记得出去要配置防火墙或安全组

[xiaobai@zabbix] vim /etc/php.ini
date.timezone = Asia/Shanghai


#配置mysql-server插件以及mysql数据库
[xiaobai@zabbix] mv /etc/my.cnf.d/ /etc/my.cnf.d.bak/   #这里是mysql-server的配置文件,我们已经有了mysql就不需要了
[xiaobai@zabbix] mysql -uroot -p'XiaoBai@123!'
#创建zabbix数据库
mysql> create database zabbix character set UTF8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified by 'XiaoBai@123!';
mysql> grant all on zabbix.* to 'zabbix'@'localhost';
mysql> flush privileges;
mysql> \q


#安装zabbix源,安装zabbix服务端和客户端
[xiaobai@zabbix] wget https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
[xiaobai@zabbix] dnf -y install zabbix-release-4.4-1.el8.noarch.rpm 
[xiaobai@zabbix] dnf makecache
[xiaobai@zabbix] dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent zabbix-sender
[xiaobai@zabbix] zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz |mysql -uzabbix -D zabbix -p'XiaoBai@123!'

#配置zabbix-server端
[xiaobai@zabbix] vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=XiaoBai@123!
DBSocket=/tmp/mysql.sock   #这个文件一般都在/tmp下,不知道的可以出去搜一下
#DBSocker配置是mysql和zabbix在同一台机器上,如果mysql和zabbix不在同一台机器上,就用DBHost加DBPort。DBPort和DBSocker只能开启一个,只生效一个

[xiaobai@zabbix] find / -name mysql.sock   #查找mysql.sock文件的位置
/tmp/mysql.sock

#配置zabbix-agent端
[xiaobai@zabbix] vim /etc/zabbix/zabbix_agentd.conf
Server=xxx.xxx.xx.xxx   #zabbix-server端的IP,被动模式
ServerActive=xxx.xxx.xx.xxx   #zabbix-server端的IP,主动模式
Hostname=xxxxx   #被监控端的主机名
UnsafeUserParameters=1   #是否限制用户自定义keys使用特殊字符。1是可以启用特殊字符,0是不可以启用特殊字符
EnableRemoteCommands=1   #远程执行操作,1为开启

#开启zabbix以及插件
[xiaobai@zabbix] systemctl start --now httpd.service   #83端口
[xiaobai@zabbix] systemctl enable --now httpd.service 
[xiaobai@zabbix] systemctl start --now zabbix-server   #10051端口
[xiaobai@zabbix] systemctl enable --now zabbix-server
[xiaobai@zabbix] systemctl start --now zabbix-agent   #10050端口
[xiaobai@zabbix] systemctl enable --now zabbix-agent

2、访问测试并初始化

访问zabbix-server端的IP加端口后跟/zabbix/
在这里插入图片描述
正常操作就好了


这里要注意
在这里插入图片描述


这就是zabbix4.4的界面了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值