worker321 发表于 2019-1-25 10:11:22

Zabbix简单的入门应用

  Zabbix:
      是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,非常强大的一款工具。一般zabbix都是选择mysql作为存储数据,所以当zabbix监控的主机越来越多,数据量也会越来越大,这是mysql就会成为瓶颈。
        zabbix的版本:
              长期维护的版本有2.2和3.0,还有2.0和2.4
        zabbix的功能:
          1、数据采集:    可以根据zabbix内置的key,也可以使用自定义的UserParameter
            2、实时绘图:    展示采集的结果,由graph和screen
            3、告警      :    超出定义的触发器的值就告警,可以通过邮件、短信、QQ、微信的方式通知
            4、数据存储:    采集的数据存储在数据库中
            5、支持使用模块:

            6、网络自动发现: 只要在主机上定义好ip和端口,zabbix通过扫描机制自动添加监控
            7、分布式监控:    可以通过代理收集区域内的主机采集信息,然后发送给zabbix,减缓zabbix的压力   
        zabbix程序的构成:

         zabbix_server:服务端守护进程,监听的端口是10050
         zabbix_agentd: agent端守护进程,监听的端口是10051
         zabbix_proxy:代理服务器,可选组件
         zabbix_get:    命令行工具,手动测试数据采集;
         zabbix_sender: 命令行工具,运行于agent端,手动向server端发送数据
         zabbix_java_gateway: java网关,只用于监控jvm虚拟机的
  

  一、安装zabbix,以3.0为例:

~]# yum -y install zabbix-server-mysql zabbix-web zabbix-web-mysql zabbix-get mariadb-server  编辑配置文件:/etc/zabbix/zabbix_server.conf:
   ListenPort=10051   //监听的端口
   SourceIP=            //服务端IP
   LogType=file         //日志格式,自我独立进行的格式(file)、system(系统记录)
   LogFile=/var/log/zabbix/zabbix_server.log   //日志文件
   LogFileSize=0|1      //日志是否需要滚动
   PidFile=/var/run/zabbix/zabbix_server.pid   
   DBHost=localhost   //数据库服务器地址
   DBName=zabbix      //数据库名称
   DBUser=zabbix      //登录数据库名称
   DBPassword=zabbix    //数据库密码
   DBSocket=/var/lib/mysql/mysql.sock   //指明数据库的sock路径  编辑zabbix-web文件:

  vim /etc/httpd/conf.d/zabbix.conf
  php_value date.timezone Asia/Shanghai    //修改时区
  编辑php.ini文件:
vim /etc/php.ini

; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai         //修改时区  授权zabbix登录数据库,并创建zabbix存储的数据库:
> grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
> create database zabbix charset 'utf8';  zabbix_server数据库的初始化:

~]# cd /usr/share/doc/zabbix-server-mysql-3.0.2/
~]# gzip -d create.sql.gz
~]# mysql -uzabbix -h127.0.0.1 -p zabbix N1 zabbix@localhost.locFri May 20 19:3723/1047"PROBLEM: zabbix.node.port"
& 1
Message1:  

  5、对于多个监控项可以整合到一个图形当中,比如监控网卡流量:
http://s3.运维网.com/wyfs02/M02/80/52/wKiom1c9yyzQB7OfAAAWjPuNUGs748.png
  定义网卡的进口流量和出口流量,点击Hosts中的node1主机中的Graphs,创建图像
  http://s2.运维网.com/wyfs02/M01/80/53/wKiom1c9y7ejS1QkAABNxQoP-Ig498.png
  添加完后查看图形界面:

http://s3.运维网.com/wyfs02/M01/80/50/wKioL1c9zSThfPlgAAGqzN9TiZ8189.png
  

  如果有多个主机监控了流量的话可以聚合在一个页面,方便查看:
http://s4.运维网.com/wyfs02/M00/80/53/wKiom1c9zUGx_vu8AAAedhmq6eE009.png
http://s4.运维网.com/wyfs02/M00/80/50/wKioL1c9zlvR0x3DAAA08cslzUY965.png
http://s5.运维网.com/wyfs02/M01/80/50/wKioL1c9zq-jy_CiAADYH-T4cug118.png
  

  四、配置模板,直接让主机套用模板,而不用一个个添加监控项:
      模板可以直接用系统自带的,也可以自定义一个模板:

  http://s1.运维网.com/wyfs02/M00/80/60/wKioL1c-_0uifd7_AAAo9gW61Hc691.png
  生成一个模板后,之后只要添加各种监控项,触发器,和应用集等,添加完后直接套用在主机上即可:
  http://s3.运维网.com/wyfs02/M01/80/60/wKioL1c_AAvT7r-mAAAYTwDroOk825.png
  

  五、配置宏定义 (macro,预设的文本替换模式)
   两种:
            内置   {MACRO}调用不需要加$
            自定义 {$MACRO} 调用和定义都需要加$
     级别:
           全局
           模板
           主机            
     优先级:主机 --> 模板 -->全局
  定义端口全局宏:   
  http://s4.运维网.com/wyfs02/M01/80/63/wKiom1c_AQGCvGfLAAAY30HvpdQ495.png
  定义一个模板宏:
http://s5.运维网.com/wyfs02/M01/80/60/wKioL1c_AvmQ_ADXAAAu0q-NnuA073.png
  定义一个主机宏:
  http://s2.运维网.com/wyfs02/M00/80/60/wKioL1c_BBnAt6t2AAAsMHhjpMA524.png

  直接修改node1的监听端口的值:
http://s4.运维网.com/wyfs02/M02/80/60/wKioL1c_BL2i7BsuAAAvRk6qhCw156.png
  查看是否生效:
  http://s2.运维网.com/wyfs02/M00/80/60/wKioL1c_BgTiKEPyAABCkB0nfP4287.png
  

  六:配置key
     key也分内建和自定义,有时候系统没有的key只能自己定义,自定义的key是在agent端实现:
  语法格式:
        UserParameter=,
~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=menory.info,awk '/^MemFree/{print $2}' /proc/meminfo
UserParameter=memory.usage
[*],awk '/^$1/{print $$2}' /proc/meminfo    //传递参数  重启zabbix-agent服务:
~]# service zabbix-agent restart
~]# zabbix_get -s 172.18.250.75 -p 10050 -k "memory.info"    //在zabbix-server端测试
693772
~]# zabbix_get -s 172.18.250.75 -p 10050 -k "memory.usage"
1012352  测试key能否在主机上应用:
http://s5.运维网.com/wyfs02/M01/80/61/wKioL1c_Ew2ixa_3AAAtPKLcSJk142.png
http://s5.运维网.com/wyfs02/M00/80/61/wKioL1c_E0TC4xjLAAAKPqJXXSo743.png
  

  七:配置zabbix的分布式监控:

  当zabbix-server监控的主机太多时,每个item都需要server端去建立tcp连接,这时server会扛不住,所以可以根据布置分布式代理来建立item连接,然后收集数据,并一起发给server端。
~]# yum -y install zabbix-proxy-mysql mariadb-server  
授权zabbix登录数据库,并创建proxy存储的数据库:
> grant all on proxy.* to 'proxy'@'localhost' identified by 'proxy';
> create database proy charset 'utf8';zabbix_server数据库的初始化:

~]# cd /usr/share/doc/zabbix-proxy-mysql-3.0.2/
~]# gzip -d scheam.sql.gz
~]# mysql -uproxy -h127.0.0.1 -p proxygrant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
> create database zabbix charset 'utf8';zabbix_server数据库的初始化:

~]# cd /usr/share/doc/zabbix-server-mysql-3.0.2/
~]# gzip -d create.sql.gz
~]# mysql -uzabbix -h127.0.0.1 -p zabbix
页: [1]
查看完整版本: Zabbix简单的入门应用