您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页zabbix的原理详解及其搭建

zabbix的原理详解及其搭建

来源:榕意旅游网

 

 

 

一.Zabbix简介   

Zabbix 是一款功能强大的分布式开源监控系统,线上用的也比较多,个人感觉是cacti和nagios的整合,又天生自带分布式监控,大批量主机运维监控优势明显

 

       zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

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

       zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。

       zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

 

Zabbix 通过 C/S模式采集数据,通过B/S模式在web端展示和配置。

被监控端:主机通过安装 agent 方式采集数据,网络设备通过SNMP方式采集数据

Server 端:通过收集SNMP和agent发送的数据,写入数据库(MySQL,ORACLE等),

再通过 php+apache 在 web 前端展示

 

zabbix的主要特点:

          - 安装与配置简单,学习成本低

          - 支持多语言(包括中文)

          - 免费开源

          - 自动发现服务器与网络设备

          - 分布式监视以及WEB集中管理功能

          - 可以无agent监视

          - 用户安全认证和柔软的授权方式

          - 通过WEB界面设置或查看监视结果

          - email等通知功能

         等等

 

 

Zabbix主要功能:

         - CPU负荷

         - 内存使用

         - 磁盘使用

         - 网络状况

         - 端口监视

         - 日志监视

Zabbix运行条件:

  Server:Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低。

  Agent:目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows。

  SNMP:支持各类常见的网络设备

1.2 Zabbix功能

 具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制) 支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。

1.3 优劣势

  优点:开源,无软件成本投入;Server对设备性能要求低(实际测试环境:虚拟机CentOS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);支持设备多;支持分布式集中管理;开放式接口,扩展性强。

  缺点:中文资料较少。

 

官方也提供了安装资料:http:///wiki/howto/monitor

 

 

 

默认的用户名为 admin,密码是zabbix

使用 zabbix 进行监控之前,要理解zabbix监控的流程。

一次完整的监控流程可以简单描述为:

Host Groups(设备组)->Hosts(设备)->Applications(监控项组)->Items(监控项)->Triggers

(触发器)->Actions(告警动作)->Medias(告警方式)->User Groups(用户组)->Users

(用户)

 

 

1.Server
zabbix系统核心进程,轮询并捕获数据、发送通知等。是zabbix agent和zabbix proxy汇报数据的对象。server自身可远程检测网络服务。所有的前后端配置、统计信息、可操作数据存储于此。包含server、前段界面和后端DB几部分。

2.Agent
部署在被监控主机上用于监控本地资源和应用并向zabbix server汇报结果。使用本地系统调用故非常高效。

 

2.  有主动和被动两种检测模式。被动模式下agent根据server或proxy的具体请求来返回数 据。主动模式下先主动由server获取监控项列表在检测并返回新的数据。采用主动或被动检测取决于相应监控项的配置。angentd 的作用就是获取 host 数据,然后将收集到的数据发送给 server(主动模式)。或者是server 主动来拿取数据(被动模式)。

3.Proxy
可以自由选择部署或者不部署,主要用于分担server的负载。在集中化监控远程位置、分支、网络的场景中是很好的解决方案。可从被监控设备收集数据缓存在proxy本地后传递给其所属的zabbix server。proxy需要单独的数据库。

host
需要被监控的设备,如交换机、路由器、WEB服务器、DB服务器等

host group
被监控设备的逻辑分组,如DB服务器一组、WEB服务器一组等。可包含主机和模板。用于权限控制

item
需要被监控的项,如CPU空闲率、某一块磁盘的使用率等

trigger
用于评估收到的监控值是否超出设定的阈值的逻辑表达式

event
如trigger状态改变等值得注意的事件

action
预先定义的响应event的一系列operations

escalation
执行action中的operations的定制场景;一连串的发送通知、执行远程命令

media
传递notification的方式

notification
通过media发送给用户的关于某个event的消息

remote command
在被监控机器上触发并自动执行的预定义命令

template
用于简化和加速主机上大规模监控任务的部署。包含一系列项目,如items, triggers, graphs, screens, applications, low-level discovery rules

application
逻辑组中的一组items

web scenario
一个或多个HTTP request用以检查web站点可用性

frontend
zabbix的web界面

zabbix api
允许通过JSON RPC 协议创建、更新和获取zabbix对象如,hosts, items, graphs and others。或者执行其他任务

zabbix server
zabbix核心,履行监控,与zabbix proxies、zabbix client交互、计算trigger、发送notification、存储数据等任务

zabbix agent
部署在被监控主机上用于监控本地资源和应用

zabbix proxy
可代zabbix server收集数据分担处理负载

 

zabbix的配置文件一般有三种:
zabbixserver的配置文件zabbix_server.conf
zabbixproxy的配置文件zabbix_proxy.conf
zabbix_agentd的配置文件zabbix_agentd.conf

 

1.                  zabbix       server的配置文件:

 

 

 

 

 

                     Zabbix      agentd的配置文件

               

 

               Zabbix         proxy的配置文件

 

 

默认开启 ,现在关闭   server5/6

 

 

 

/etc/init.d/gmetad  stop

   chkconfig gmetad off

   /etc/init.d/gmond  stop

   chkconfig gmond off

   netstat  -antlp

 

 

Zabbix 需要 lamp环境

 

 

 

 

 

                                zabbix

 

server5   zabbix-server

 

安装套件   yum install -y fping-2.4b2-16.el6.x86_64.rpm

                 iksemel-1.4-2.el6.x86_64.rpm

iksemel-utils-1.4-2.el6.x86_64.rpm

php-bcmath-5.3.3-26.el6.x86_64.rpm

php-mbstring-5.3.3-26.el6.x86_64.rpm

zabbix-2.4.5-1.el6.x86_64.rpm

zabbix-agent-2.4.5-1.el6.x86_64.rpm

zabbix-get-2.4.5-1.el6.x86_64.rpm

zabbix-server-2.4.5-1.el6.x86_64.rpm

zabbix-server-mysql-2.4.5-1.el6.x86_64.rpm

zabbix-web-2.4.5-1.el6.noarch.rpm

zabbix-web-mysql-2.4.5-1.el6.noarch.rpm

server6     zabbix-agent

 

scp zabbix-2.4.5-1.el6.x86_64.rpm  zabbix-agent-2.4.5-1.el6.x86_64.rpm  root@172.25.19.6:/root

yum install zabbix-2.4.5-1.el6.x86_64.rpm  zabbix-agent-2.4.5-1.el6.x86_64.rpm -y

 

 

 

server5

 

/etc/init.d/mysqld  start    (失败时:  rm -f /var/lib/mysql/mysql.sock )

 cd /var/lib/mysql/

mysql -uroot  -pwestos

 

 create database zabbix character set utf8 collate utf8_bin; 创建数据表

grant all privileges on zabbix.* to zabbix@localhost identified by 'westos';  给zabbix权限  并建立用户

  quit;

cd /usr/share/doc/zabbix-server-mysql-2.4.5/create/

   mysql -uzabbix -pwestos zabbix < schema.sql  请耐心等待

   mysql -uzabbix -pwestos zabbix < images.sql

   mysql -uzabbix -pwestos zabbix < data.sql

cd /etc/zabbix/

 vim zabbix_server.conf

DBPassword=westos  107行 #指定zabbix数据库密码

 cd /etc/httpd/conf.d/

   vim zabbix.conf

 # php_value date.timezone Europe/Riga  28行   如果/etc/php.ini  改过了就不要动 。 应该Aisa/Shanghai

 

 

cd /etc/zabbix/

 

vim zabbix_agentd.conf

Hostname=server5.example.com  137 行

 

/etc/init.d/zabbix-server start

/etc/init.d/httpd  start

/etc/init.d/zabbix-agent start

 

server6

 cd /etc/zabbix/

   vim zabbix_agentd.conf

 Server=172.25.19.5  78行

ServerActive=172.25.19.5  129 行

Hostname=server6.example.com  144行

   /etc/init.d/zabbix-agent  start

 

server 5

cd /etc/zabbix/

 vim zabbix_server.conf

#ServerActive=127.0.0.1 注释掉就不用自己向主机发送,hosts没有server5.example.com

 

StartDiscoverers=5  178行

/etc/init.d/zabbix-server restart

 

浏览 172.25.19.5/zabbix

usrname:  Admin    

password: zabbix

 

zabbix server 上激活 zabbix agent自动注册功能

点击 Configuration -> Actions -> Create action按下图所示设置

 

自定义 Action 的名字。

Conditions 选项卡保持默认即可。

Operations 选项卡添加如下:

 

 

Add host:自动注册主机添加到 hosts列表

Add to host groups:自动注册主机加入 linux servers组(组名可以自定义)

Link to templates:自动注册主机应用模板 Template OS linux

点击 Configuration -> Hosts 可以看到新加的主机:

 

Zabbix 的更多功能值得大家一起研究和分享。

来看看 zabbix 是怎样添加服务监控项的,利用zabbix自带的监控模版,以http服务为例:

添加httpd

 

 

1. 点击 Configuration -> Templates 选择需要链接的模版

2. 

3. 选择需要链接的主机 server6example.com

4. 也可以在 Configuration -> Hosts -> server2.example.com -> Templates选择需要的模版

5. 

 

 

  yum install httpd -y

cd /var/www/html/

vim index.html

server6

 

/etc/init.d/httpd start

 

去图形界面添加该模块

 

 

 

添加 mysql

yum install -y mysql-server

/etc/init.d/mysqld start

 mysql -uroot  -pwestos

grant select on nagbd.* to fanan@localhost  identified by 'westos';

flush  privileges;

 

在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf文件中指定了zabbix agent如何获取mysql

mkdir /var/lib/zabbix

 cd /var/lib/zabbix/

vim .my.cnf

[mysql]

host = localhost

user = fanan

password = westos

socket = /var/lib/mysql/mysql.sock

[mysqladmin]

host = localhost

user = fanan

password = westos

socket = /var/lib/mysql/mysql.sock

 

 /etc/init.d/zabbix-agent restart

 

去图形界面添加该模块

链接 mysql 监控模版

 

 

点击 Configuration -> Hosts -> zabbix server Graphs可以看到两个新的监控图形

 

 

 

 

 

 

 

 

 

Email 报警

图形界面

 

点击 administration -> Media types -> Email

 

点击 Administration -> Users 进入 Admin 管理员Media选项卡

 

点击configuration -> Actions 点击Triggers  Enabled

 

QQ 邮箱做的实验,由于server5.example.com是没有域名解析的,会被QQ

入白名单。

 

关掉 httpd mysql ,看是否发短信

 

 

 

110monitor

tar zxf alert-agent-4.1.3.1-linux-x64.tar.gz -C /usr/lib/zabbix/alertscripts/

cd /usr/lib/zabbix/alertscripts/

 cp  alert-agent/plugin/zabbix-plugin/110monitor .

chown  -R zabbix.zabbix *

 

图形界面

点击 administration -> Media types ->create media types

 

点击 Administration -> Users 进入 Admin 管理员Media选项卡

 

点击configuration -> Actions 点击Triggers  create

关掉 httpd mysql ,看是否发短信

 

打开网页:110monitor.com

 

登陆  XXXXXX@qq.com    

      redhat007

 

 

OneAlert 文档 ->集成方法-> zabbix  ->通用性安装

 

 Server 7   zabbix-proxy

zabbix  proxy

Yum install  -y      zabbix-2.4.5-1.el6.x86_64

zabbix-proxy-2.4.5-1.el6.x86_64

zabbix-proxy-mysql-2.4.5-1.el6.x86_64

fping-2.4b2-16.el6.x86_64.rpm

yum install -y  mysql-server

 cd /etc/zabbix/

vim zabbix_proxy.conf

 [   server = 172.25.9.5

Hostname = server7.example.com

DBPassword=westos

 

Configfrequency=600

]

 

 

 

Mysql

create database zabbix_proxy  character set utf8 collate  utf8_bin;

grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'westos';

 mysql -uzabbix  -pwestos zabbix_proxy < schema.sql

/etc/init.d/zabbix-proxy start

 

 

Server6

Vim  /etc/zabbix/zabbix_agentd.conf

#severactive=172.25.9.5

Server=172.25.9.7

/etc/init.d/zabbix_agent restart

 

 

 

 

 

 

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- nryq.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务