设为首页 收藏本站
查看: 1366|回复: 0

[经验分享] zabbix详解(一)

[复制链接]

尚未签到

发表于 2019-1-18 07:56:29 | 显示全部楼层 |阅读模式
  zabbix简介
  zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  zabbix能监视各种网络参数保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。
  
  zabbix3部分构成,zabbixserver、可选组件zabbix proxy、可选组件zabbix agent
  zabbix server可以通过SNMPzabbix agent,,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行Linux,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台之上
  
  zabbix proxy 是从监控设备收集监测数据和发送到zabbixserver的进程,属于代表zabbix server 的运行所有收集到的数据被暂时存放在代理服务器,之后统一由代理服务器转发给zabbix server所属的服务器,部署proxy是可选的,但是对于分担单个zabbix服务器的负载是非常有益的。如果尽在zabbix proxy上收集数据,那么将减轻zabbix server上的进程对cpu资源和磁盘I/O的消耗。zabbix proxy在没有本地管理员的情况下,是集中监控远程区域,分支和网络的理想解决方案。
  
  zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1,Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。
  
  zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
  另外zabbix server还支持SNMP (v1,v2)可以与SNMP软件(例如:net-snmp)等配合使用。
  zabbix安装
  zabbix的安装可以通过rpm包、源码编译、官方yum源三种方法安装,这里介绍利用yum源来安装。访问官方网址:http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/,只要安装其中的zabbix-release-2.4-1.el6.noarch.rpm即可自动生成yum
  
  相关安装包的说明:

  •   公共组件:
zabbix-2.4.7-1.el6.x86_64.rpm

  •   java监控组件:
  zabbix-java-gateway-2.4.7-1.el6.x86_64.rpm

  •   服务器端如果需要手动获取数据要装get
  zabbix-get-2.4.7-1.el6.x86_64.rpm

  •   客户端自动发送数据要装send
  zabbix-sender-2.4.7-1.el6.x86_64.rpm

  •   要装server端的话,只要装server、和相应数据库的server-mysql即可:
  zabbix-server-2.4.7-1.el6.x86_64.rpm         
  zabbix-server-mysql-2.4.7-1.el6.x86_64.rpm
  如果需要手动获取数据要装get
  zabbix-get-2.4.7-1.el6.x86_64.rpm

  •   要装web端的话,只要装web、和相应数据库的web-mysql,还有一个japanese的日文包用来显示中文(2.02.2可能已有专用的中文包):
  zabbix-web-2.4.7-1.el6.noarch.rpm   
  zabbix-web-mysql-2.4.7-1.el6.noarch.rpm
  zabbix-web-japanese-2.4.7-1.el6.noarch.rpm

  •   要装proxy的话,只要安装zabbixproxyproxy-mysql三个即可:
  zabbix-2.4.7-1.el6.x86_64.rpm
  zabbix-proxy-2.4.7-1.el6.x86_64.rpm         
  zabbix-proxy-mysql-2.4.7-1.el6.x86_64.rpm
  
  安装实例

  •   A1A2两台机器分别配置为Serveragent
  •   A1上需要安装servermysqlagentweb,因为服务器本身一般都会作为一个agent端一起监控
  •   A2上只需安装agent即可
  A1的安装与配置
  aserver安装
  server程序的安装
  yum install zabbix-server-xxxx.rpmzabbix-server-mysql-xxx.rpm zabbix-get-xxx.rpm            zabbix-2.4.0-1.el6.x86_64.rpm
  
  web程序的安装
  yum install zabbix-web-xxx.rpm  zabbix-web-mysql-xxx.rpm  zabbix-2.4.0-1.el6.x86_64.rpm
  
  agent程序的安装
  yum install zabbix-agent-xxx.rpm  zabbix-sender-xxx.rpm  zabbix-2.4.0-1.el6.x86_64.rpm
  
  注意:公共组件zabbix-2.4.0-1.el6.x86_64.rpm 是必须安装的,而且server端一般都会装上agent,监控自己
  
  安装后/etc/httpd/conf.d/下会有zabbix.conf
  启动服务service httpd start
  
  cd/usr/share/doc/zabbix-server-mysql-2.4.0/create 该目录下有mysql创建和升级的模板脚本,需要导入到server的数据库(如果是安装proxy端只需导入schema.sql
  导入顺序:schema.sql -> images.sql -> data.sql
  mysql zabbix -u root -p < schema.sql
  mysql zabbix -u root -p < images.sql
  mysql zabbix -u root -p < data.sql
  

  b 配置server
  通过修改zabbix_server.conf
  vim /etc/zabbix/zabbix_server.conf
  
  常用选项说明:

  •   ListenPort=10051
    默认监听端口,不改的话就不用动

  •   SourceIP=
    给外面连接的IP,如果有多个可以在这里指定,只有一个不用指定

  •   LogFileSize=0
    日志文件大小,指定后日志会自动滚动,0为不滚动

  •   DebugLevel
    调试级别,日志级别,一般不做调整

  •   DBHost=localhost
    如果数据库是本机用localhost速度更快,例如这里可以指定172.16.100.7

  •   DBSchema=
    用于DB2PostgreSQL

  •   DBUser=zbxuser
    DBPassword=zbxpass
    根据实际情况修改

  •   StartPollersUnreachable=1
    探测主机是否在线

  •   StartDiscoverers=0
    自动发现功能,消耗资源,关闭

  •   StartTimers=1
    启动几个计时器进程

  •   HousekeepingFrequency=1
    每隔1小时启动一次,删除过期数据

  •   MaxHousekeeperDelete=500
    一次最多删多少个

  •   SenderFrequency=30
    报警频率

  •   FpingLocation=/usr/sbin/fping
    程序位置,要使用必须先安装Fping

  •   都设置好后可以启动服务了,它会启动很多进程,同时监听ipv4ipv6
service zabbix-server start
  
  c web的配置

  •   首先要去编辑php的时区
vim /etc/php.ini
去掉注释 data.timezone = Asia/Chongqing

  •   重启httpd服务
service httpd restart

  •   然后访问
http://172.16.100.7/zabbix
  
选择2,没问题再3,填入数据库的相关信息,主机地址、端口、名字。最后就可以登陆访问了
  

  d 把本机配置为agent
  agent程序已经安装,编辑配置文件vim/etc/zabbix/zabbix_agentd.conf
  
  选项说明:

  •   Server=172.16.100.7,127.0.0.1
服务器的设定,同时也是一个授权,授权给这个服务器来获取数据.可以多个

  •   ServerActive=172.16.100.7,127.0.0.1
客户端可以主动通知服务器端,这里是通知对象的设定,同上,可以设定多个地址。当前主机即是Server又是Agent的时候,127.0.0.1不能去掉

  •   Hostname=node1
主机名要全局唯一

  •   都配置好了启动
    service zabbix-agent start
    ss -tunlp 查看
  
  e web上监控相应agent
  configuration -> hosts ,如果有开启自动发现功能这里就会显示出来,没有的话就create host,默认disable ,点击启用

  

  f 安装另一个agent

  •   程序安装
yum install zabbix-agent-xxx.rpm  zabbix-sender-xxx.rpm  zabbix-2.4.0-1.el6.x86_64.rpm

  •   修改配置文件/etc/zabbix/zabbix_agentd.conf
修改hostname,server

  •   启动服务servicezabbix-agent start
  •   再到web界面添加host
  注意!!!

  添加host时要注意Host name 的名字如果不是填IP,就要和/etc/zabbix/zabbix_agentd.confhostname名字保持一致!否则当客户端主动发送信息给服务器端时,服务器端会检测失败,这里规范的写法应该是和agent配置文件hostname一致
  zabbix监控配置流程
  
  Zabbix完整的监控配置流程大体上由如下步骤组成:
  Host group(主机组) --> Hosts(主机) -->Applications(应用) -->Items(监控项) --> Triggers(触发器) --> Events(事件) -->Actions(动作) -->User groups(用户组) -->Users(用户) --> Medias(媒介)
  zabbix主机与组配置
  主机不单单指linuxwindows等服务器,它还包括路由器、交换机等设备。
  

  (1)创建主机
  configuration -> Hosts -> Create host


  

属性
描述
Hostname主机名,只允许数字、空格、句号、下划线、不支持非主流符号。zabbix客户端配置文件中的hostname名称一定要与这个名字一致!
Visblename显示名称,可选项。主机名的别名
Groups主机要加入的组,一个主机至少要加入一个组!
Newhost group新主机组。想新建一个组,可以在这里写上
Interfaces主机接口:包含agent,snmp,jmx,IPMI。推荐使用IP地址方式来监控,也可以使用域名。zabbix agent 默认端口10050snmp 161jmx 12345IMPI 623
Monitoredby proxy是否通过proxy监控
  

  2Templates主机模板
  可以把主机链接到想要的模板上,模板上的项目就会应用到主机上
  unlink: 取消模板,模板中的item依旧保留在host
  unlink and clear: 取消模板,并且删除监控到的数据以及将模板添加到hostitem也删除

  主机组

  

  

  zabbix item 监控项
  
  items是从主机里面获取的特定数据。通常称之为监控项
  
  1item的构成
  aitem的组成,由key+参数组成。
  例:
  需要获取cpu信息,则需要一个对应的监控key: system.cpu.load来实现
  system.cpu.load[avg5] 获取5分钟的cpu负载情况
  system.cpu.load[avg1] 获取1分钟的cpu负载情况
  
  获取网卡流量,则需要key:net.if.innet.if.out
  net.if.in[eth0] 获取eth0接口的网卡流入流量
  
  bkey名称的命名
  允许字符:所有数字、大小写字母、下划线、减号、点
  
  ckey参数
  key 可以有多个参数,它们之间用逗号 “,” 分开
  key 的参数可以是带引号的字符串、不带引号的字符串以及数组
  key 的参数如果为空,那么将会使用它设置的默认值
  key 的参数带引号,任何unicode数据都合法,如果参数里面带有双引号,则要使用 “\” 来转义
  key 的参数不带引号,除了逗号和右中括号,其他任何unicode字符串都合法。
  key 的参数是一个数组,那么数组要多加一对中括号,并且数组里面的参数同样要遵循参数规范
  
  注意:每个key背后都应该有一个命令或脚本来负现实现数据收集;此命令或脚本可调用传递给key的参数,调用方式为$1, $2,...
  
  2item types 监控类型
  如图,圈起来的就是所有的类型

  常用的类型有agentjmximpisnmpagent-active
  一种类型相当于一个接口,如果一个item中配置了多个接口,zabbix会依次(Agent->snmp->jmx->ipmi)调用,直到找到合适的接口为止
  
  aagent 类型
  agent有两种,agent(被动检测)和agent-active(主动检测)
  区别:
  agent(被动检测): zabbix server zabbix agent 讨要数据
  agent-active(主动检测): zabbix agent 提交数据给 zabbixserver
  
  agent 常用key
                              网卡流量相关:
                                       net.if.in[if,]
                                                 if:接口,如eht0
                                                 mode:bytes, packets, errors, dropped
                                       net.if.out[if,]
                                       net.if.total[if.]
  
                              端口相关:
                                       net.tcp.listen[port]
                                       net.tcp.port[,port]
                                       net.tcp.service[service,,]
                                       net.udp.listen[port]
  
                              进程相关:
                                       kernel.maxfiles
                                       kernel.maxproc
  
                              CPU相关:
                                       system.cpu.intr中断
                                       system.cpu.load[,]负载
                                       system.cpu.num[]数量
                                       system.cpu.switches
                                       system.cpu.util[,,]利用率
  
                              磁盘IO或文件系统相关:
                                       vfs.dev.read[,,]
                                       vfs.dev.write[,,]
                                       vfs.fs.inode[fs,]
  
  
  3)创建item
  Configuration -> Hosts -> 在需要的主机上点击items-> Create item...


  属性说明:
属性
描述
Host主机或者模板
Name
  监控项item名称可以使用如下宏变量:
  $1,$2...$9 9个参数对应item key的参数位置
例如:free disk on $1 如果item key vfs.fs.size[/,free] ,那么对应的名称会变成 free disk on / ,$1对应了第一个参数“/”
Typeitem类型,常用有agent,agent-active,snmp
key可选系统自带的key或自定义key
Hostinterface主机接口
Typeof information  获取到的数据类型
  Numeric(unsigned) - 64bit unsigned integer
  Numeric(float) - floating point
  numbercharacter - 字符串,最长255字节
  Log - 日志文件 .key 必须为log[]
  Text- 文本
  

Datetype  定义获取到数据的数据类型
  Boolean - 数据为01. true表示1 false 0 ,不区分大小写
  Octal - 八进制
  Decimal - 十进制
  Hexadecimal - 十六进制
Units  默认情况下,如果原始值超过1000,那么它会先除以1000并且显示出来。例如设置了单位为bps并且受到的值为11102,将会显示为11.1kbps
  如果单位被指定为B(byte),Bps(bytes per second),那么它会除以1024然后再显示数据
  如果指定如下时间单位:
  unixtime - 转为 “yyyy.mm.ddhh:mm:ss” 只能使用正数
  uptime - 转为 “hh:mm:ss” 或者 “N days,hh:mm:ss”
  例如收到的值为881764秒,它将会显示为“10 days,04:56:04”
  
  s - 转为 “yyy mmm ddd hhhmmm sss ms”
  例如收到的值为881764(秒),它将会显示为 10d 4h 56m 。有时只会显示2个单元,例如1m 5h,如果返回的值小于0.001,它只会显示 aa.com。如果key返回的数据为1,那么监控页面不会显示1,而是显示aa.com. key返回的数据只能为整数,并且不做任何修改保存到数据库中,只有在显示的时候才会根据映射表来展示相应内容
Newapplication
创建一个新的应用
Applications设置item属于哪个应用
Populateshost inventory field设置获取到的数据自动填充到inventory 资产清单的相应属性。前提是你的inventory 处于自动模式


  4)自定义item
  语法:
  UserParameter=,
  
  定义方法:
  zabbix安装目录/etc/zabbix/zabbix_agentd.d/下创建对应的conf文件,在文件里按语法编写即可。
  
  例:
  conf内容为: cat /etc/zabbix/zabbix-agnet.d/mysql.conf
  UserParameter=Mysql.dml
  • ,/usr/local/mysql/bin/mysql -h$1 -u$2 -p$3 -e 'SHOW GLOBAL STATUS' | awk'/Com_$4\>/{print $$2}'
      (这里-p后不要加空格,这里命令参数使用了$符,所以要用两个$)
      
      重启客户端服务使定义生效
      service zabbix-agent restart
      
      再在命令行用zabbix_get测试:
      zabbix_get -s 172.16.100.7 -p 10050 -k"Mysql.dml[172.16.100.7,root,password,select]"
      
      注意:可以在服务器端使用zabbix_get命令来测试定义好的item
      
      
      zabbix Applications 应用程序
      Applications item的一个组。例如我们要监控Mysql,就可以把所有和Mysql相关的item放到这个应用程序中。
      一个item可以属于多个Application
      1)创建Application并添加item

    • 点击configuration -> Hosts 或者 Templates
    • 点击对应HostTemplate中的 Application,再点击右上角的Create Application,填写名称添加即可

      2)添加itemapplication
          新建或编辑item,修改其中的applications为需要的即可
      
      zabbix simple check 基本检测
      Simplecheck检测用于无远程客户商的环境,没有安装Agent的情况下使用,可以支持的功能包括ICMP pingservice检测。
      Simplecheck所支持的key
      1icmpping
      用法:

    • zabbix使用外部命令fping处理icmp ping. fping 不包含在zabbix中,所以要额外安装,如果配置了epel源,可以直接yum install fping 安装
    • 安装后修改zabbix_server.conf, 指定fping 路径,配置参数FpingLocation=/usr/bin/fping.
    • 执行fping命令的zabbix用户要设置setuid,fping命令时需要root
    • Web配置:Configuration -> Hosts -> 点击 zabbix server items -> create item
      这里只填一个参数IP,其他用默认值,增加后就可以在Monitoring -> latest data 查看数据

      2icmppingloss
      
      3icmppingsec
      
      4net.tcp.service 检测服务是否开启
          创建过程同上图,key内容如下:
                      net.tcp.service[http] net.tcp.service[ftp,,155]
      
      5net.tcp.service.perf 检测服务器性能
          创建过程同上图,key内容如下:
                      net.tcp.service.perf[http,,8080]
      
      
      zabbix 历史数据与趋势数据
      所有的数据收集后成为过去的了,所以称为历史数据。以及还会收集每小时的平均数据作为趋势数据,因为每小时才收集一次,所以趋势数据占用的资源很小。
      
      1)保留历史数据
      可以通过如下方式设置保留数据的时长:

    • item项新建或编辑里
    • 设置HouseKeeper tasks

      2)保留趋势数据
      可以通过如下方式设置保留趋势数据的周期

    • item项新建或编辑里
    • 批量更新item
    • 设置Housekeeper tasks
      
      注意:Housekeeper会定期删除过期的数据,一般历史数据根据需要尽量少存点,因为数据量是很大的。趋势数据占用资源小,可以保留长一点。例如保存历史记录15天,趋势数据保留2年。另外,如果历史数据设置为0zabbix用与触发器后不会存到数据库.如果趋势数据设置为0zabbix不会计算和存储它。
               重启服务器会丢失数据导致这个小时的平均数据不正确。你的数据是什么类型的,趋势数据也是什么类型的。整数的数据特别要注意一个问题,如果一共获取了两个值,其中一个0,一个1,那么它们的平均值是0,而不是0.5
      





  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-664570-1-1.html 上篇帖子: zabbix proxy 配置 下篇帖子: zabbix 监控总结
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表