Zabbix分布式监控(一)——Zabbix监控平台搭建及添加被监控主机

一、Zabbix概述

1、Zabbix简介

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

zabbix由zabbix server与可选组件zabbix agent两部门组成。

  • zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
  • zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

2、为什么需要对各类系统运行进行监控?

加粗样式当系统构建时的正常流程中,通常是不允许未被监控的系统或应用上线的因为未被监控的系统存在不可预知性,故障未知等不确定因素,且无法及时被发现并排除的,这时整个架构或系统来说都是非常大的风险因患,所以我们在原则上是要对整个的架构或系统进行监控,随时监控各个方面的指标是否正常,以提高系统的稳定性。

3、工作原理

一个监控系统运行的大概流程是这样的:

Zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web 根据数据在前端进行展现和绘图。

这里agent收集数据分为主动和被动两种模式:

  • 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

  • 被动:server向agent请求获取监控项的数据,agent返回数据。

4、Zabbix的常用组件

  • Zabbix Web Gui: 提供Web界面
  • Zabbix Databases:提供数据库存储功能并用于存储配置信息。以及采集到的数据。
  • Zabbix Server : 接收来自Agent采集数据的核心组件
  • Zabbix Agent :部署在被监控的主机上,用于采集本地的数据。
  • Zabbix Proxy: 当监控节点较多时,用于减轻Server压力组件,也可用于分布式监控系统,由Proxy接收数据后统一发送给Server.

5、Zabbix支持的数据采集协议

  • SNMP(Simple Network Managerment Protocol),这是一个非常古老的且通用的监控协议,几乎任何设备都支持用此方式进行系统的监控。

  • Agent:在监控端安装专门的监控程序,将数据采集后通过Agent发送至Server

  • IPMI:智能平台管理接口,可在常用的服务器上看到类似的以太网口的接口。

  • JMX: Java Managerment Exlensions

在这里插入图片描述

6、常见进程

zabbix­_agentd:客户端守护进程,负责收集客户端数据,例如cpu负载、内存、硬盘使用情况等。

zabbix_get:zabbix工具,单独使用的命令,通常在Server或者Proxy端执行获取远端客户信息的命令。通常客户排错。例如在Server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender:zabbix工具,用于发送数据给Server或者Proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。

zabbix­­_proxy:zabbix代理守护进程。功能类似Server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到Server里。

zabbix­_java­_gateway:Java网关,类似agentd,但是只用于Java方面。它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到Server或者proxy。

二、搭建Zabbix监控平台

基于rhel7.3操作系统

主机名 服务名称(角色)
server1 172.25.2.1 zabbix-server,zabbix-web,mariadb-server监控方
server2 172.25.2.2 zabbix-agent(1)被监控方
server3 172.25.2.3 zabbix-agent(2)被监控方

具体步骤如下:

1、配置网络yum源

我已经在真机下载好了所有需要的安装包
在这里插入图片描述

编写配置文件,共享真机上的zabbix安装包
在这里插入图片描述在这里插入图片描述

2、安装zabbix-server服务、zabbix-web服务、数据库服务在同一台服务器server1

[root@server1 ~]# yum install -y zabbix-server-mysql
[root@server1 ~]# yum install zabbix-web-mysql
[root@server1 ~]# yum install -y mariadb-server

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
3、开启数据库并安全初始化

[root@server1 ~]# systemctl start mariadb
[root@server1 ~]# systemctl enable mariadb
[root@server1 ~]# mysql_secure_installation  ##安全初始化

在这里插入图片描述

4、登陆数据库,创建zabbix数据库并且授权

[root@server1 ~]# mysql -uroot -predhat
MariaDB [(none)]> show databases;
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
	## 使用utf-8编码并对用户授权
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';

在这里插入图片描述

5、导入数据库,时间较长,不可中断。

[root@server1 zabbix-server-mysql-4.0.5]# pwd
/usr/share/doc/zabbix-server-mysql-4.0.5
[root@server1 zabbix-server-mysql-4.0.5]# zcat create.sql.gz | mysql -p zabbix
	##zcat=gzip + cat 把这个数据库导入zabbix这个数据库中

在这里插入图片描述

6、再次登录数据库,可以看到zabbix数据库里面有很多表格以及数据

[root@server1 zabbix-server-mysql-4.0.5]# mysql -uroot -predhat
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;

在这里插入图片描述

7、编辑zabbix

[root@server1 ~]# cd /etc/zabbix/
[root@server1 zabbix]# ls
[root@server1 zabbix]# vim zabbix_server.conf 
124 DBPassword=redhat     #修改数据库密码
[root@server1 zabbix]# systemctl start zabbix-server
[root@server1 zabbix]# systemctl enable zabbix-server

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
服务开启成功后,可以ps ax或在/var/log/zabbix/zabbix_server.log日志文件确认。

在这里插入图片描述

zabbix的日志文件:

在这里插入图片描述

在这里插入图片描述

8、修改php时区:

[root@server1 zabbix]# cd /etc/httpd/
[root@server1 httpd]# cd conf.d/
[root@server1 conf.d]# vim zabbix.conf 
[root@server1 conf.d]# systemctl start httpd
[root@server1 conf.d]# systemctl enable httpd

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
9、查看zabbix-server的端口:是10051
在这里插入图片描述
10、在浏览器172.25.27.1/zabbix/,进行zabbix的web界面配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述【Language】中选择Chinese,点击【Update】

在这里插入图片描述
点击【配置】–>【主机】,查看server的状态,可以看到zabbix监控的名称zabbix-server是自己,但是还没有安装zabbix-agent,因此安装了之后才会变绿,才可以对自己进行相关监控
可用性ZBX表示对自己的监控还没有开启,要监控自己,首先要安装被监控的服务zabbix-agent

三、添加agent主机进行监控

1、监控本机

[root@server1 conf.d]# yum install -y zabbix-agent      # (因为我之前全部安装了,显示已安装)     
[root@server1 conf.d]# systemctl start zabbix-agent     #用来监控本机
[root@server1 conf.d]# systemctl enable zabbix-agent
[root@server1 conf.d]# netstat -antlp | grep 10050      #10050是zabbix_agentd的

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2、进浏览器查看:在这里插入图片描述

  • ZBX:代表zabbix监控状态
  • SNMP:通过简单网络协议对监控对象(一般是网络设备)进行监控
  • JMX:JMX是java管理扩展,可以监控JVM虚拟机与JAVA模块
  • IPMI:利用IPMI硬件接口对电压,电源状态,温度等进行监控

可以看到已经可以监控自身了。

3、对server2和server3进行监控,对server2和server3进行相同的操作:

[root@server3 ~]# yum install -y zabbix-agent-4.0.5-1.el7.x86_64.rpm
[root@server3 ~]#  cd /etc/zabbix/
[root@server3 zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@server3 zabbix]# vim zabbix_agentd.conf 
	98 Server=172.25.27.1
	139 ServerActive=172.25.27.1
	150 Hostname=server3  #自己的主机名,一定做好解析
[root@server3 zabbix]# systemctl start zabbix-agent.service 
[root@server3 zabbix]# systemctl enable zabbix-agent.service 
[root@server3 zabbix]# systemctl status zabbix-agent.service 
[root@server3 zabbix]# netstat -antlp

server2:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

server3:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

4、在浏览器zabbix的web界面中(server1)添加被监控的主机server2和server3(agent)

手动添加

【配置】->【主机】->【创建主机】在这里插入图片描述
如下图填写:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述此时发现对server2的zabbix监控ZBX依旧是灰色的,在server2上面重新启动服务(目的是让server2去主动发现server1),在浏览器刷新一下,可以看到对server2的监控了。

自动发现

先删除之前手动添加的server2,然后我们再让监控平台去自动发现server2

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
注释:自动发现通常是server端主动去探测某个ip范围内的被监控端,适用于大批量的监控,而且监控模板都一样

自动注册

自动注册是被监控端主动去找server端,看自己想要被监控什么,去匹配什么样的模板,适合于单台主机

首先禁用server2刚才的动作和自动发现
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

发布了125 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ranrancc_/article/details/104355124