shanghaipc 发表于 2019-1-20 12:20:48

zabbix详解(三)

  zabbix网络发现
  网络发现有什么用?比如小军有100台服务器,不想一台台主机去添加,这时就可以使用网络发现功能自动添加了,前提条件是所有服务器都已经安装了agent或snmp,Server端就可以扫描配置好的ip段,自动添加host,自动给host link 模板、自动添加到主机组里等。网络发现功能让我们能更快速的部署zabbix、简化zabbix管理,并且在经常变动的环境里面也不需要花太多的精力。
  zabbix网络发现基于如下信息

[*]  ip范围
[*]  可用的外部服务(FTP,SSH,WEB,POP3,IMAP,TCP)
[*]  来自zabbixagent的信息
[*]  来自snmp agent的信息
  网络发现由两个阶段组成:discovery和actions
  (1)discovery
  zabbix 定期扫描网络发现规则中的ip范围,每个规则中定义了一组需要检测的服务,在这些ip范围内一一扫描,每次检测到service和host,都会生成一个discovery事件,事件如下:
时间条件serviceupzabbix检测到可用服务servicedownzabbix无法检测到servicehostup某个ip上至少有一个服务是up状态hostdown所有服务都无响应servicediscovered一个服务首次被发现或者在维护后从新归队servicelost服务在up之后又丢失了hostdiscovered一个host首次被发现或者在维护后从新归队hostlost 一个host在up之后又丢失了  

  (2)Actions
  zabbix所有action都是基于发现事件,例如:

[*]  发送通知
[*]  添加/移除主机
[*]  启用/禁用主机
[*]  添加主机到组
[*]  从组中移除主机
[*]  主机link模板/unlink模板
[*]  执行远程脚本命令
  
  创建主机主机名的定义
  discovery 发现主机事件产生之后,将会执行action添加主机等操作。首先server端通过ip番解析主机名(如果失败了,不会重新尝试),如果解析成功了,那么zabbix将会使用这个主机名,否则直接使用ip地址。如果主机名同名呢?比如都叫ngx-server,那么第一台主机名会定义为ngx-server,第二台为ngx-server_2,第三台为ngx-server_3,以此类推。
  
  创建主机主机接口的添加
  主机接口添加规则如下:
  服务检测-例如成功检测到一个SNMP服务,那么创建snmp接口
  如果主机同时对agent和snmp请求作出响应,那么会同时创建这两种接口
  通过哪个接口发现主机,哪个接口就作为默认接口,其余作为附加接口
  如果一开始只响应agent的检测,那么它只会创建agent接口。如果后面响应了snmp检测,那么它又会增加snmp接口
  (3)配置案例
  先配置一个discovery rules , Configuration -> Discovery-> creatediscovery rule
http://s4.运维网.com/wyfs02/M02/7B/14/wKiom1bGmcTSex1NAAEnf2Sg7Rc486.jpg
  

  然后再添加对应的action,Configuration -> Actions (右上角的Event source 选择 Discovery)-> create action
http://s1.运维网.com/wyfs02/M00/7B/14/wKiom1bGmjeDgeXsAAEOkV5eKUY819.jpg
http://s3.运维网.com/wyfs02/M01/7B/14/wKioL1bGmrTCLL3sAAEKMr-Cixk496.jpg
http://s5.运维网.com/wyfs02/M01/7B/14/wKiom1bGmmPB88H0AADG6MfKy-o133.jpg
  除了添加主机,还可以link Template等操作
  

  

  zabbix自动注册
  网络发现是好用,但它要不断的扫描特定网段,所产生的流量,耗费的资源也是很大的。自动注册可以解决这个问题,server不用再扫描特定网段,只需设置好规则,等待特定网段的主机自动向server注册即可。
  配置过程:
  (1)定义agent端,编辑/etc/zabbix/zabbix-agent.conf
  serverActive=192.168.61.154主动模式服务器地址设置
     Server=192.168.61.154被动模式服务器地址设置
     Hostname=a4.com主机名
     ListenIP=192.168.61.140设置为本机某特定IP;
     ListenPort=默认即可
     HostMetadata=a4.com 唯一标识一个主机
     HostMetadataItem=itemkey,
     一般使用system.uname。在客户端用一个itemkey 获得一个数据,发送给服务器端注册,一般就用system.uname获得主机名
  (2)server端配置
  Configuration -> Actions (右上角的Eventsource 选择Auto registration) -> create action
   其余设置和网络发现的action设置一样
  zabbix LLD: Low Level Discovery
  (1)客户端配置
  编写获取需要的数据的脚本放/etc/zabbix-agent.d/scripts下(该路径为自定义)
  自定义参数文件到/etc/zabbix/zabbix_agentd.conf.d/ ,调用上面的脚本
  (2)服务器端配置
  新建模板template-> (该模板下)新建应用application(这个可以不建,主要用于把下面的item分类) -> (该应用下)添加 item prototype (用于为发现的项目自动添加需要的监控项目,key里使用定义好的变量名,方便对应多种不同的名字)-> 创建trigger(关联刚才定义的trigger),还可以继续添加graph图形
  zabbix proxy与node
  当server与agent在不同的机房,并且有大量主机的时候,在各机房配置一个proxy是最好的选择。因为不用proxy直接配置各主机直接访问异地机房server的话,需要开发多条防火墙规则,也带来了安全隐患,配置了proxy的话,只需要开放一台proxy主机即可。
  node与proxy的区别:
  node是一个完整的节点,可以完全独立配置各item、action等和运行,自身有数据库保留收到到的agent数据。proxy只是负责收集agent的数据发送给server端,并且不保留数据
  一般千台以下的机器,配置proxy即可,使用方便。
  下面简单介绍proxy的安装与配置
  (1)zabbix proxy的安装(需要先配置epel源)
     yum -y zabbix-proxy
                     zabbix-proxy-mysql
                     zabbix-agent (一般proxy也是要被服务器端监控的,所以也会安装agent)
                     zabbix-sender
                     zabbix
  (2)创建mysql数据库(mysql的安装请参考站内文章)
  createdatabase zabbix_proxy character set utf8;
           grantall on zabbix_proxy.* to zbxuser@'172.16.%.%' identified by 'zbxpass';
           flushprivileges;
  (3)导入数据
  mysqlzabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-2.4.5/create/schema.sql
           (rpm -qlzabbix-proxy-mysql可找到这个sql位置)
  (4)配置zabbix-proxy
  vim/etc/zabbix/zabbix_proxy.conf
           server=172.16.100.6指明服务器地址
           Hostname=proxy1
           DBHost=172.16.100.7本机
           DBName=zabbix_proxy
           DBUser=zbxuser
           DBPassword=zbxpass
           HeartbeatFrequency=60每隔60秒探测一下服务器的活动状态
           ConfigFrequency=3600每隔3600秒到服务器端拉取相关配置
           DataSenderFrequency=1 每隔1秒就发送一次数据到服务器端,发送数据后会自动删除的,所以本地保存数据量很少
  (5)启动服务
  servicezabbix-proxy start
           ss-tnl 查看服务是否正常运行
  
  (6)服务器端的配置
        administrator-> proxies -> create proxy
           proxymode 的选择,Active 为主动拉取配置,Passive 为服务器端把配置推送过去
           创建好之后,以后新创建Host页面Monitoredby proxy 里就可以选择刚才的proxy了
http://s3.运维网.com/wyfs02/M02/7B/14/wKioL1bGmyHxxEYgAAEGkouIjFs485.jpg
http://s3.运维网.com/wyfs02/M02/7B/14/wKiom1bGms2BlPhgAAAb3NXC3jg140.jpg



页: [1]
查看完整版本: zabbix详解(三)