文章目录
可以看看这些博客,写得很好。
http://www.zsythink.net/archives/447/
http://www.zsythink.net/archives/500
zabbix简介
什么是zabbix
- Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持。
- Zabbix 是一个企业级的分布式开源监控方案
- Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。
- Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保从任何方面评估网络状态和服务器的健康性。适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此。
- Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的,可供公众任意使用。
zabbix结构
Zabbix由几个主要的软件组件构成,这些组件的功能如下。
- 服务器:
Zabbix服务器是代理程序报告系统可用性,系统完整性和统计数据的核心组件,是所有配置信息,统计信息和操作数据的核心存储器。 - 数据库存储 :
所有配置信息和的zabbix收集到的数据都被存储在数据库中。 - 网络界面:
为了从任何地方和任何平台都可以轻松的访问Zabbix,我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。 - 代理服务器 :
Zabbix proxy可以替Zabbix Server收集性能和可用性数据.Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。 - 代理监控代理:
Zabbix代理监控代理部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix服务器。 - 数据流:
了解的zabbix内部的数据流同样很重要。监控方面,为了创建一个监控项(项)用于采集数据,必须先创建一个主机(主机)。告警方面,在监控项里创建触发器(扳机) ,因此,如果你想收到Server X CPU负载过高的告警,你必须:1.为Server X创建一个主机并关联一个用于对CPU进行监控的监控项(Item)。2.创建一个Trigger,设置成当CPU负载过高时会触发3.触发被触发,发送告警邮件虽然看起来有很多步骤,但是使用模板的话操作起来其实很简单, ZABBIX这样的设计使得配置机制非常灵活易用。
zabbix架构
- Zabbix Server:负责接收Agent发送的报告信息,组织所有配置、数据和操作。
- Database Storage:存储配置信息以及收集到的数据。
- Web Interface:Zabbix的GUI 接口,通常与Server运行在同一台机器上。
- Proxy:可选组件,常用于分布式监控环境中。
- Agent:部署在被监控主机上,负责收集数据发送给Server。
zabbix的工作流程
- Agent获取被监控端数据,发送给Server。
- Server记录所接收到的数据,存储在Database中并按照策略进行相应操作。
- Web Interface将收集到的数据和操作信息显示给用户。
实验环境
主机名(IP) | 服务 |
---|---|
server1(172.25.11.1) | zabbix-server,zabbix-agent,mariadb-server |
server2(172.25.11.2) | zabbix-agent |
server3(172.25.11.3) | zabbix-agent |
zabbix的部署(server1)
- 获取zabbix的安装包,4.0这个目录在~用户家目录下,搭建一个zabbix的yum源。
- 安装包介绍:
zabbix-agent.:zabbix客户端,用来收集客户端各种参数
zabbix-get:zabbix的一个工具,用来检查是否可以获取服务器信息(一般服务端要安装)
zabbix-java-gateway:用于监控JMX应用的程序,它把收集到的信息发送个(这个看需求安装,我暂时没装)
zabbix-proxy:zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力。zabbix proxy可以非常简便的实现了集中式、分布式监控。
zabbix-release:会生成一个zabbix的yum源,可以直接下载相关软件包。
zabbix-sender:用于发送数据给server或者proxy。
zabbix-web:zabbix要使用web界面,这个包是用来处理Apache和PHP,mysql等之间的依赖关系。
zabbix-web-mysql:这个是zabbix前段支持mysql的
zabbix-web-japanese:支持日语
- 为zabbix搭一个yum源。
cd /etc/yum.repos.d/
vim zabbix.repo
[zabbix]
name=zabbix
gpgcheck=0
baseurl=file:///root/4.0
- 下载mariadb-server,开启服务,设置开机自启动。
[root@server1 4.0]# yum install mariadb-server -y
[root@server1 4.0]# systemctl start mariadb
[root@server1 4.0]# systemctl enable mariadb
[root@server1 4.0]# mysql_secure_installation #进行初始化
- 安装这两个安装包。
yum install zabbix-server-mysql -y
yum install zabbix-web-mysql-4.0.5-1.el7.noarch.rpm -y
- 登陆数据库,创建用户并授权。
create database zabbix character set utf8 collate utf8_bin; 字符 校验字符
grant all privileges on zabbix.* to zabbix@localhost identified by 'westos';
- 导入zabbix数据库并且查看
cd /usr/share/doc/zabbix-server-mysql-4.0.5/
zcat create.sql.gz | mysql -p zabbix
zcat=gzip + cat 把这个数据库导入zabbix这个数据库中
导入后登陆查看有没有zabbix这个数据库,以及其中的表。
- 编辑zabbix的配置文件,修改zabbix数据库密码(此密码是在数据库对zabbix用户进行授权时候的密码)以及时区,修改后开启服务,并设置开机自启。
cd /etc/zabbix/
vim zabbix_server.conf
124 DBPassword=westos 修改密码 124行
systemctl start zabbix-server
systemctl enable zabbix-server
ps ax 如果有与数据库zabbix-server有关的选项 则成功。
或者查看日志,vim /var/log/zabbix/zabbix_server.log
cd /etc/httpd/conf.d/
vim zabbix.conf
修改: 20 行的时区 php_value date.timezone Asia/Shanghai
[root@server1 conf.d]# systemctl start httpd
[root@server1 conf.d]# systemctl enable httpd
- 在浏览器页面输入
http://172.25.11.1/zabbix/setup.php
,进行对zabbix监控配置的建立。
- 登陆后,修改语言。
zabbix主机的添加(server1)
server1
- 修改完语言后,回到主界面,我们可以看到此时的server1是如下状态。
- 在server1安装,并查看server与agent的端口。
yum install zabbix-agent -y
systemctl start zabbix-agent
systemctl enable zabbix-agent
netstat -ntlp 查看端口 agent是10050 server是10051
- 设置完成后,server1已启用且可用 :
server2和server3(agent)
下载并配置服务
- 做好本地解析,server2的设置与server1大同小异。
server1发给server2
[root@server1 html]# scp /etc/yum.repos.d/zabbix.repo server2:/etc/yum.repos.d/
[root@server2 ~]# lftp 172.25.24.24
lftp 172.25.24.24:~> cd pub/
lftp 172.25.24.24:/pub> mirror 4.0/
cd /etc/zabbix/
vim zabbix_agentd.conf
修改三个地方:
98 Server=172.25.11.1 #server1
139 ServerActive=172.25.11.1 #主动让server1发现
150 Hostname=server2 #自己的主机名,一定做好解析
- 开启服务,查看端口。
systemctl start zabbix-agent
systemctl enable zabbix-agent
netstat -antlupe 查看端口10050有没有agent
在zabbix web界面添加监控主机(共4种方式)
手动创建主机
- 以下为手动创建主机并添加模板的方式,设置完成选择创建主机下的“添加“。
- 手动添加完成后,server2的ZBX还为灰色,得过30s才能变为绿色,我们可以重启zabbix-agent服务,目的是让server1主动发现。(server2的配置文件里的serveractive项)
systemctl restart zabbix-agent #为了让server1主动发现
自动发现
-
先删除之前手动添加的server2
-
在web界面创建自动发现,以及自动发现的规则。重启服务,可以加快发现的速度
systemctl restart zabbix-agent
自动注册
- 首先禁用server2刚才的动作和自动发现
- 给server3安装zabbix-agent,修改配置文件,开启服务,查看端口(同server2,做好本地解析)
[root@server1 html]# scp /etc/yum.repos.d/zabbix.repo server3:/etc/yum.repos.d/
[root@server3 ~]# yum install zabbix-agent -y
[root@server3 ~]# vim /etc/zabbix/zabbix_agentd.conf
98 Server=172.25.24.1
139 ServerActive=172.25.24.1
150 Hostname=server3
[root@server3 ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@server3 ~]# systemctl enable zabbix-agent
[root@server3 ~]# systemctl start zabbix-agent
[root@server3 ~]# netstat -ntlp
- 自动注册,创建动作,以及为动作添加操作。
[root@server3 ~]# systemctl restart zabbix-agent
自动发现和自动注册的区别:
自动发现是server主动,自动注册是agent主动。
自动发现是server端根据自动发现规则主动的去监控agent端。
自动注册是server端自定义操作,符合条件的agent端主动将自己的监控数据发给server端。