监控系统基础 及 zabbix的工作原理 及 简易的zabbix的安装和部署

22 篇文章 0 订阅

监控系统基础

监控系统的工作:

传感器------->数据采集------>数据存储------>数据展示.
报警:采集到的数据超出阈值。

SNMP:Simple Network Management Protocol

SNMP三种工作模式:

1、监控端(NMS)向被监控端(agent)采集数据
2、被监控端主动报告数据给监控端
3、监控端向被监控请求改变设置

SNMP:

MIB:managemant information base,管理信息库(定义了双方可接受的监控组件及监控组件中数据存取格式)
SMI:MIB表示符号 
SNMP协议

NMS可发起的操作:

Get,GetNext,Set,Trap

agent:Response

基于SNMP的监控:想要监控某些被监控主机,只需在被监控主机上部署SNMP的agent,找一个主机将其部署为SNMP的NMS端,配置NMS端去监控某些节点。SNMP只在需要进行监控时才会发起监控请求。
SNMP本身无数据存储的设定。所以需人工实现判断。SNMP仅实现了数据采集,数据存储及报警功能它都无法实现。

早期Cacti+Nagios
cacti:按照SNMP协议完成时间序列收集并予以展示的工具
Nagios:强大的报警工具。去监控某项指标是否超出阈值。不关心数据值到底多大,只关心是否异常。

著名的开源监控工具:zabbix,zennos,opennms,cacti,nagios,ganglia

监控功能的实现:

专用agent
ssh
SNMP
IPMI

智慧平台管理接口(Intelligent Platform Management Interface):原本是一种Intel架构采用的企业系统的周边设备所采用的一种工业标准,IPMI亦是一个开放软件。

zabbix工作原理

zabbix架构中的组件:

这里写图片描述

负责收集并存储数据的是zabbix server
zbbix server监控web 页面(web pagas)时,直接访问web页面即可
                 监控各种设备通称采用SNMP,ICMP,IPMI等协议实现
                 监控OS时可以在对应的主机上安装zabbix agent实现监控
zabbix收集到数据后将数据存放于zabbix database中
监控端:
zabbix server:由C语言研发
被监控端:
OS:zabbix agent:C语言
zabbix-server和zabbix-agent之间通过zabbix协议来通信。

zabbix-database:Mysql,pgsql,oracle,DB2,sqlite。所以zabbix database不时zabbix的原生组件。
zabbix Web :GUI,用于实现设定展示等功能。使用PHP语言研发。
zabbix-proxy:分布式环境中专用组件。分布式监控时zabbix-proxy将收集到的数据发送给zabbix server,由zabbix server再将数据发送给zabbix database。
JMX:对java程序进行监控。
zabbix架构

这里写图片描述

zabbix server端:
    配置文件:zabbix_server.conf
    日志文件:zabbix_server.log
    zabbix_get:使用该组件去收集数据
    zabbix server主动收集数据的方式由两种:一、zabbix server直接去请求数据 二、zabbix_get去请求数据(多用于测试)
zabbix_agentd:运行于服务器端的一个守护进程,能接受zabbix_get和zabbix_server发来的请求。收到请求后,zabbix_agentd在本地收集数据,它能对application,database,Device等进行监控。
    zabbix_agentd.conf:zabbix_agentd的配置文件。
    zabbix_agentd.log:保存abbix_agentd的日志文件。
    zabbix_sender:当zabbix serevr工作于被动模式,可一通过该组件将信息发送给zabbix server。
zabbix常用术语

主机(host):要监控的网络设备,可由IP或DNS名称指定
主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组内主机和模板不能互相链接,主机组通常用于在给用户或用户组指派监控权限时使用。
监控项(item):一个指定监控指标的相关数据,这些数据来自于被监控对象;对于item时zabbix进行数据收集的核心,没有item就没有数据,相对于某监控项来说,某item都由“key“进行标识。
触发器(tigger):一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理的范围内,即阈值;接收到的数据量大于阈值时,触发器状态将由“OK“转为Problem,当数据量再次回到合理范围时,其状态将由”Problem”转为“OK“。
事件(event):即发生的一个值得关注的事情,例如触发器的状态转变,新的agent或重新上线的agent的自动注册等;
动作(action):指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)或条件(何时执行操作);
报警升级(escalation):发送报警或执行远程命令的自定义方案,如每隔5分钟发送一个报警,共发送5次等。
媒介(media):发送通知的手段或渠道,如Email,Tobber,SMS等
通知(notification):通过选定的媒介向用户发送的有关某事件的信息;
远程命令:预定义的命令,可在被监控主机出于某种特定条件下自动执行;
模板(template):用于快速定义被监控主机的预设条目集合,通常包含里item,trigger,graph(图),screen(屏幕)。
应用(application):一组item的集合
web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求。
前端(frontend): Zabbix的web接口。

Zabbix的逻辑架构


要监控一个对象,需定义主机(Host),将主机加入主机组(HostGroup),
可以给主机套上模板(Template)来实现快速监控一个主句,也可以不套用模板,自己去定义item,trigger等。一旦一个Triiger被激活,会产生一个事件(Events),事件会进行某些actions。这个actions执行的动作有可能时发送Email。Maintenance用来定义维护区间,在此维护时间内,就算收集的数据触发里Trigger,也不会报警。item的首句来自于客户端的一些收集数据的组件,协议等。

zabbix Server Processes
poller:向azbbix plooer去获取数据
httppoler:基于web请求的数据采集
housekeeper:清理数据
pinger:探测节点是否在线
nodewatcher:监控各节点。
alerter:报警器
escalator:报警升级
discovery:自动发现
db_config_syncer:配置同步
db_data_syncer:数据同步(和proxy相关)
timer:计时器
watchdog:看门狗程序,监控上述的进程是否正常;

zabbix产生的数据主要由四部分组成:

1、配置数据
2、历史数据
3、历史趋势数据
4、事件数据
Zabbix的安装和部署:

zabbix对软件的要求:
Apache:1.3.12 or later
PHP:5.1.6 or later
server7(rhel7.3):zabbix server,zabbix agent(自己还需监控自己),zabbix database,zabbix web

1、对数据库进行设定
这里写图片描述
这里写图片描述

2、安装zabbix server ,fronted ,agent ,get,sender

 rpm -i https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm 
 yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-sender zabbix-get -y

3、启动zabbix
安装zabbix相关组件后会再/etc/httpd/conf.d下生成zabbix.conf文件,需载httpd服务,使文件生效
这里写图片描述
在启动zabbix web之前,需先导入数据。
这里写图片描述
这里写图片描述
修改配置文件/etc/zabbix/zabbix_server.conf

DBHost=172.25.44.7
DBUser=zbuser
DBPassword=zbpass
DBSocket=/var/lib/mysql/mysql.sock

开启zabbix_server服务,在开服务之前关闭selinux及firewalld,否则会报错。

[root@server7 zabbix]# systemctl restart zabbix-server

可以看到zabbix启动了一大堆子进程
这里写图片描述

修改php的时区。

[root@server7 zabbix]# vim /etc/php.ini 
date.timezone = Asia/Shanghai
[root@server7 zabbix]# systemctl start httpd
[

在浏览器中访问zabbix的安装配置界面,直接Next step
这里写图片描述
如果状态信息为OK,则直接Next step
这里写图片描述
使用帐号密码登录
这里写图片描述
这里写图片描述
然后可以看到我们刚才填入的zabbix的信息,确定没问题后继续
这里写图片描述
安装完成
这里写图片描述

接下来就可以登录了,使用默认的管理员帐号和密码(Username: admin Password
:zabbix)
这里写图片描述

登录后就进入了zabbix web GUI控制界面
这里写图片描述

在Monitoring/Dashboard/Dashboard下可以看到zabbix status
这里写图片描述

一级菜单:
这里写图片描述
Monitoring:监控信息
Inventory:资产清单
Reports:用来生成监控报告
Configuration:配置信息
Administration:管理整个web接口的各种工作特性。

配置zabbix监控自己。

[root@server7 zabbix]# vim zabbix_agentd.conf 
Server=127.0.01,172.25.44.7   #zabbix server是谁  ,因为本机是zabbix server,所以这个127.0.01不能去掉
ServerActive=127.0.0.1,172.25.44.7 #agent可以主动发送监控信息给server,这个server是谁。
Hostname=server7 #agent主动发数据时自己的名字,必须全局唯一

开启zabbix-agent服务

[root@server7 zabbix]# systemctl start zabbix-agent

这里写图片描述

在Configuration/Hosts下,zabbix server已经被加进来了,状态为Disable,点击Disable就可以启用它,这个节点是在导入数据时用模板自动添加的
这里写图片描述
接下来我们自己添加一个节点。
在server8(rhel7.3)上安装

[root@serevr8 mnt]# yum install zabbix-agent zabbix-sender -y
[root@serevr8 zabbix]# vim zabbix_agentd.conf 
Server=172.25.44.7
ServerActive=172.25.44.7
Hostname=server8
[root@serevr8 zabbix]# systemctl start  zabbix-agent

接下来就可以在web界面添加主机了
点击Configuration/Hosts 下Create host
这里写图片描述
点击Add添加进来了
这里写图片描述

这里是监测主机在线的方式,绿色表示在线,红色表示不在线。
这里写图片描述

接下来就可以在Monitoring/Graphs下看到图了
选择哪个组哪个主机的哪些信息
这里写图片描述
这里写图片描述

在Screen里面可以看到多张图
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值