zoukankan      html  css  js  c++  java
  • zabbix 介绍

    zabbix实现原理及架构详解
    想要用好zabbix进行监控,那么我们首要需要了解下zabbix这个软件的实现原理及它的架构。建议多阅读官方文档。

    一、总体上zabbix的整体架构如下图所示:

    重要组件说明:

    1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;

    2)database storage:专用于存储所有配置信息,以及由zabbix收集的数据;

    3)web interface:zabbix的GUI接口;

    4)proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;

    5)agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;

    另外,zabbix server、proxy、agent都有自己的配置文件以及log文件,重要的参数需要在这里配置,后面会详细说明。

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

    agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:

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

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

    【主动监测】通信过程如下:

    zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems数据值server或者proxy。很多人会提出疑问:zabbix多久获取一次active items?它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。分两个部分:

     获取ACTIVE ITEMS列表

    Agent打开TCP连接(主动检测变成Agent打开)
    Agent请求items检测列表
    Server返回items列表
    Agent 处理响应
    关闭TCP连接
    Agent开始收集数据
    主动检测提交数据过程如下:

    Agent建立TCP连接
    Agent提交items列表收集的数据
    Server处理数据,并返回响应状态
    关闭TCP连接
    【被动监测】通信过程如下:

    Server打开一个TCP连接
    Server发送请求agent.ping
    Agent接收到请求并且响应<HEADER><DATALEN>1
    Server处理接收到的数据1
    关闭TCP连接
    这里,有人可以看出来,被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了。

    还有人会问,那实际监控中是用主动的还是被动的呢?这里主要涉及两个地方:

    1、新建监控项目时,选择的是zabbix代理还是zabbix端点代理程式(主动式),前者是被动模式,后者是主动模式。

    2、agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启。一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式。

    二、常用的监控架构平台

    1、server-agentd模式:

    这个是最简单的架构了,常用于监控主机比较少的情况下。

    2、server-proxy-agentd模式:

    这个常用于比较多的机器,使用proxy进行分布式监控,有效的减轻server端的压力。


    详解zabbix安装部署(Server端篇)

        Linux下常用的系统监控软件有Nagios、Cacti、Zabbix、Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员。

        今天开始研究下Zabbix,使用Zabbix的目的,是为了能够更好的监控mysql数据库服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大。

        首先,我们先来介绍下Zabblx:

    一.Zabbix简介   

           zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
           zabbix由zabbix server与可选组件zabbix agent两部门组成。
           zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
           zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

    zabbix的主要特点:
              - 安装与配置简单,学习成本低 
              - 支持多语言(包括中文)
              - 免费开源
              - 自动发现服务器与网络设备
              - 分布式监视以及WEB集中管理功能
              - 可以无agent监视
              - 用户安全认证和柔软的授权方式
              - 通过WEB界面设置或查看监视结果
              - email等通知功能
             等等

    Zabbix主要功能:
             - CPU负荷
             - 内存使用
             - 磁盘使用
             - 网络状况
             - 端口监视
             - 日志监视 

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

    二.Zabbix安装


    2.1 zabbix WEB环境搭建

           zabbix的安装需要LAMP或者LNMP环境。
          需要其它的软件包

    yum install mysql-dev gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xm

    2.2 zabbix 数据库设置

         zabbix数据库可以和zabbix服务器分离,采用用专门的mysql服务器存储数据,此时要给zabbix数据库受相应的权限。

    grant all privileges on zabbix.* to zabbix_user@'ip' identified by '123456';


     

    注:ip为zabbix服务器的IP地址。

    关于数据库的安装,可以查看Mysql安装,我习惯使用二进制包。

    启动数据库

    /usr/local/mysql/bin/mysqld_safe  --user=mysql &

    登录数据库,创建帐号和设置权限:

    mysql> use mysql;
    mysql>create database zabbix character set utf8;
    mysql>grant all privileges on zabbix.* to zabbix_user@'192.168.10.197' identified by '123456';
     

    2.3安装zabbix服务


    增加zabbix用户和组

    #groupadd zabbix
    #useradd -g zabbix -m zabbix

    官网下载解压软件包。

    下载地址:

    http://www.zabbix.com/download.php

    #wget http://fossies.org/unix/misc/zabbix-2.0.3.tar.gz
    # tar -zxvf  zabbix-2.0.3.tar.gz
    #cd zabbix-2.203
    导入数据库表

    #cd  zabbix-2.0.3/database/mysql
    #mysql -uroot -pmysql zabbix < mysql.sql
    #mysql -uroot -pmysql zabbix < images.sql 
    #mysql -uroot -pmysql zabbix < schema.sql


    编译安装zabbix


    ./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy

    编译报错checking for main in -lmysqlclient ... no
    yum 安装mysql-devel即可
    #make
    #make install

    添加服务端口


    vim /etc/services
    zabbix-agent 10050/tcp # Zabbix Agent
    zabbix-agent 10050/udp # Zabbix Agent
    zabbix-trapper 10051/tcp # Zabbix Trapper
    zabbix-trapper 10051/udp # Zabbix Trapper
    添加配置文件


    # mkdir -p /etc/zabbix
    # cp -r zabbix-2.203/conf/* /etc/zabbix/
    # chown -R zabbix:zabbix /etc/zabbix

    修改server配置文件,添加zabbix数据库密码
    vim /etc/zabbix/zabbix_server.conf

    LogFile=/tmp/zabbix_server.log
     
    PidFile=/tmp/zabbix_server.pid
     
    DBName=zabbix
     
    DBUser=zabbix_user
     
    DBPassword=123456     #指定zabbix数据库密码
     
    ListenIP=192.168.10.197    #服务器IP地址


    修改Agentd配置文件,更改HOSTNAME为本机的hostname
    vim /etc/zabbix/zabbix_agentd.conf

      

    PidFile=/tmp/zabbix_agentd.pid #进程PID
     
    LogFile=/tmp/zabbix_agentd.log #日志保存位置
     
    EnableRemoteCommands=1 #允许执行远程命令
     
    Server=192.168.10.197 #agent端的ip
     
    Hostname=client1 #必须与zabbix创建的host name相同
    如图设置hostname


     

    添加web前段php文件
    # cd zabbix-2.203/frontends/
    # cp -rf php /home/httpd/zabbix   #虚拟主机目录
    # chown -R zabbix:zabbix zabbix

    web前端安装配置
    修改PHP相关参数
    vim php.ini


    max_execution_time = 300
    max_input_time = 300
    memory_limit = 128M
    post_max_size = 32M
    date.timezone = Asia/Shanghai
    mbstring.func_overload=2


    PHP还必须支持一下模块,在php源码包直接编译安装。详细模块需要在安装是会提示。

    bcmath.so、gettext.so

        在客户端浏览器上面访问zabbix,开始WEB的前端配置,http://ZabbixIP/zabbix,按提示点击下一步

      Step1:下一步。

        Step2:如果全部OK的话才能进行下一步的安装,如果有错误请返回到server端检查相关的软件包是否安装。

        Step3:需要输入mysql数据库帐号密码,如果数据库不在zabbix服务器上面,在Host里面添加数据库服务器的地址,并且要用grant命令给数据库授权。

        Step4:输入服务器端 host name or host IP addres;

    最后会自动写入配置文件:zabbix.conf.php,配置完成后出现登陆界面,默认的用户名为:admin,密码为:zabbix。

    三.启动zabbix服务
    在zabbix安装目录下面可以直接启动
    #/usr/local/zabbix/sbin/zabbix_server start
    tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      7140/zabbix_agentd

    四.设置开启自动启动


    vim /etc/rc.d/rc.local  最后添加下面两行


    /usr/local/zabbix/sbin/zabbix_server start
    /usr/local/zabbix/sbin/zabbix_agentd start
     

    至此,zabbix server端的安装完毕,我们可以通过浏览器来访问。如图:

    接下来会介绍关于客户端监控的使用,以及监控模版的新建,自定义监控服务等。

    更新:客户端安装可以查看:http://www.cnblogs.com/sunbeidan/p/4940144.html

    好文要顶 关注我 收藏该文

  • 相关阅读:
    VS Code 快捷键(中英文对照版)
    Linux下SVN提交时强制写日志
    如何搞定SVN目录的cleanup问题和lock问题
    Unity3D中利用Action实现自己的消息管理(订阅/发布)类
    Unity3D热更新之LuaFramework篇[03]--prefab加载和Button事件
    Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板
    Unity3D热更新之LuaFramework篇[01]--从零开始
    Unity UI性能优化技巧
    Unity中雾效的开启
    解决Unity中模型部件的MeshCollider不随动画一起运动的问题
  • 原文地址:https://www.cnblogs.com/micro-chen/p/7084438.html
Copyright © 2011-2022 走看看