运维老司机带你学Zabbix,小白速收!

640?


zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,在企业中有非常全面的应用,本文是Linux运维老司机撰写,一站式帮你解决zabbix的难题。


第1章 zabbix监控

640?wx_fmt=png


1.1 为什么要监控

在需要的时刻,提前提醒我们服务器出问题了

当出问题之后,可以找到问题的根源

网站/服务器 的可用性


1.1.1 网站可用性

在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。


1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天

2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天

3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。

4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。

5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。

6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒


1.2 监控什么东西

监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控


1.2.1 监控范畴

640?wx_fmt=png


1.3 怎么来监控

1.3.1 远程管理服务器

如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM


1.3.2 监控硬件

查看硬件的温度/风扇转速,电脑有鲁大师,服务器就有ipmitool。

使用ipmitool实现对服务器的命令行远程管理

640?wx_fmt=jpeg


1.3.3 查看cpu相关

lscpu、uptime、top、htop vmstat mpstat

   其中htop需要安装,安装依赖与epel源。

640?wx_fmt=jpeg


1.3.4 内存够不够可以用

free

640?wx_fmt=jpeg


1.3.5 磁盘剩多少写的快不快可以用

df、dd、iotop

640?wx_fmt=jpeg


1.3.6 监控网络

iftop nethogs

640?wx_fmt=jpeg


1.4 监控工具总览

mrtg 流量监控出图

nagios 监控

cacti  流量监控出图

zabbix 监控+出图


1.5 zabbix介绍

Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。


使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP ... 各种协定做死活监视。


在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。


另外,Zabbix 包含 XMPP 等各种 Item 警示功能。


1.5.1 zabbix的组成 

640?wx_fmt=png

zabbix官网: https://www.zabbix.com

zabbix 主要由2部分构成 zabbix server和 zabbix agent

zabbix proxy是用来管理其他的agent,作为代理


1.5.2 zabbix监控范畴

²  硬件监控 :Zabbix IPMI Interface

²  系统监控 :Zabbix Agent Interface

²  Java 监控:ZabbixJMX Interface

²  网络设备监抟:Zabbix SNMP Interface

²  应用服务监控:Zabbix Agent UserParameter

²  MySQL 数据库监控:percona-monitoring-pldlgins

²  URL监控:Zabbix Web监控


第2章 安装zabbix

640?wx_fmt=png

2.1 环境检查

640?wx_fmt=jpeg


2.2 安装zabbix过程

2.2.1 安装方式选择

编译安装 (服务较多,环境复杂)

yum安装(干净环境)


2.2.2 服务端快速安装脚本

640?wx_fmt=jpeg

640?wx_fmt=jpeg


2.2.3 客户端快速部署脚本

640?wx_fmt=png


2.3 检测连通性

2.3.1 服务端安装zabbix-get检测工具

yum install zabbix-get


2.3.2 在服务端进行测试

640?wx_fmt=png


第3章 web界面操作

640?wx_fmt=png


3.1 zabbix的web安装

3.1.1 使用浏览器访问

http://10.0.0.61/zabbix/setup.php

640?wx_fmt=png


   在检测信息时,可查看具体的报错信息进行不同的解决

640?wx_fmt=png


   选择mysql数据库,输入密码即可

640?wx_fmt=png


   host与port不需要修改,name自定义

640?wx_fmt=png


 确认信息,正确点击下一步 

640?wx_fmt=png

  

 安装完成、点击finsh

640?wx_fmt=png

 

      进入登陆界面  账号Admin密码zabbix   注意A大写

640?wx_fmt=png


3.2 添加监控信息

3.2.1 修改监控管理机zabbix server

配置 >> 主机

640?wx_fmt=png

 

主机名称: 要与主机名相同,这是zabbix server程序用的

可见名称: 显示在zabbix网页上的,给我们看的

640?wx_fmt=png

 

   修改后,要将下面的已启用要勾上

640?wx_fmt=png


   添加完成就有了管理机的监控主机

640?wx_fmt=png


3.2.2 添加新的主机

配置 >> 主机 >> 创建主机

640?wx_fmt=png

 

注意勾选以启用

640?wx_fmt=png


   然后添加模板,选择linux OS ,先点小添加,再点大添加。

640?wx_fmt=png


   添加完成,将会又两条监控主机信息

640?wx_fmt=png


3.2.3 查看监控内容

检测中  >> 最新数据

   在最新数据中需要筛选, 

640?wx_fmt=png


   输入ip或者名字都能够搜索出来

640?wx_fmt=png

 

在下面就会列出所有的监控项

640?wx_fmt=png


3.2.4 查看图像

检测中 >> 图形

   选择正确的主机。选择要查看的图形即可出图

640?wx_fmt=png


第4章 自定义监控与监控报警

640?wx_fmt=png

4.1 自定义监控

4.1.1 说明

zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。

需求:服务器登陆人数不能超过三人,超过三人报警


4.1.2 预备知识

640?wx_fmt=png


4.2 实现自定义监控

4.2.1 自定义语法

640?wx_fmt=png


4.2.2 agent注册

640?wx_fmt=png


4.2.3 在server端注册(web操作)

①   创建模板

配置 >> 模板 >> 创建模板

640?wx_fmt=png


点击添加,即可创建出来模板

640?wx_fmt=png

   查看创建出来的模板。↑


②   创建应用集

应用集类似(目录/文件夹),其作用是给监控项分类。

点击 应用集 >> 创建应用集

640?wx_fmt=png

      自定义应用集的名称,然后点击添加


③   创建监控项

监控项 >> 创建监控项

640?wx_fmt=png

键值 -- key,即前面出创建的login-user。

640?wx_fmt=png

   注意:创建监控项的时候,注意选择上应用集,即之前创建的安全。

640?wx_fmt=png


④   创建触发器

触发器的作用:当监控项获取到的值达到一定条件时就触发报警

(根据需求创建)

触发器 >> 创建触发器

创建触发器,自定义名称,该名称是报警时显示的名称。

   表达式,点击右边的添加,选择表达式。 

   严重性自定义。

640?wx_fmt=png


   表达式的定义 ↓ ,选择之前创建的监控项,

最新的T值为当前获取到的值。

640?wx_fmt=png


   添加完成,能够在触发器中看到添加的情况

640?wx_fmt=png


⑤   创建图形

以图形的方式展示出来监控信息

图形 >> 创建图形

名称自定义,关联上监控项。

640?wx_fmt=png


⑥   主机关联模板

配置 >> 主机

   一个主机可以关联多个模板

640?wx_fmt=png


4.2.4 查看监控的图形 

640?wx_fmt=png


4.3 监控报

4.3.1 第三方报警平台

http://www.onealert.com

     通过 OneAlert 提供的通知分派与排班策略,以及全方位的短信、微信、QQ、电话提醒服务,您可以在最合适的时间,将最重要的信息推送给最合适的人员。


4.3.2 onealert配置

添加应用,注意添加的是zabbix 

640?wx_fmt=png


   实现微信报警需要关注微信公众号即可。 

640?wx_fmt=png


4.3.3 安装 onealert Agent

640?wx_fmt=png

640?wx_fmt=png


4.3.1 如何删除onealert Agent

①  删除报警媒介类型中的脚本 

640?wx_fmt=png


②  删除创建的用户

640?wx_fmt=png


③  删除用户群组

640?wx_fmt=png


④  删除创建的动作 

640?wx_fmt=png


4.3.2 触发器响应,发送报警信息 

640?wx_fmt=png


   在微信和邮件中,均能收到报警信息。

640?wx_fmt=png

   注意:当状态改变的时候才会发邮件

      好-->坏

            坏-->好


4.4 监控可视化

4.4.1 聚合图形

最新数据 >> 图形

640?wx_fmt=png


   自定义名称

640?wx_fmt=png


   点击聚合图形的名称,进行更改,添加要显示的图形即可。

640?wx_fmt=png


4.4.2 幻灯片

添加幻灯片

监测中 >> 复合图形 >> 幻灯片演示

640?wx_fmt=png


   创建幻灯片,名称自定,选择要显示的

640?wx_fmt=png

   幻灯片根据设定的时间自动播放


4.5 模板的共享

4.5.1 主机共享

在主机页打开,全选后点击导出

640?wx_fmt=png

 

  导入

640?wx_fmt=png


4.5.2 模板共享

https://github.com/zhangyao8/zabbix-community-repos

640?wx_fmt=png


第5章 监控全网服务器

640?wx_fmt=png

5.1 需求说明

实际需求:

公司已经有了100台服务器,现在需要使用zabbix全部监控起来。


5.2 规划方案

常规监控:cpu,内存,磁盘,网卡  问题:怎样快速添加100台机器

     方法1:使用克隆的方式

     方法2:自动注册和自动发现

     方法3:调用zabbix api接口  curl 、python

            开发自己的运维平台兼容zabbix的通道

服务监控,url监控等特殊监控:自定义监控

5.2.1 api接口使用(curl)

640?wx_fmt=png


5.3 具体实施规划

5.3.1 硬件、系统、网络监控

所有集群节点(所有虚拟机)都监控上

交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)

snmp监控


5.3.2 应用服务监控

1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;

640?wx_fmt=png


2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;

640?wx_fmt=png


3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;

640?wx_fmt=png


4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;

640?wx_fmt=png


5. 监控URL地址来更精确的监控我们的网站运行正常;

640?wx_fmt=png


6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。

640?wx_fmt=png


7. 监控Nginx的7种连接状态。

640?wx_fmt=png


5.3.3 监控服务通用方法

1. 监控端口 netstat ss lsof  ==》 wc -l

2. 监控进程 ps -ef|grep 进程|wc -l  试运行一下

3. 模拟客户端的使用方式监控服务端

        web  ==》 curl

        mysql ==》 select insert

        memcache ==》 set再get


5.4 实施全网监控

安装客户端脚本,for centos6

640?wx_fmt=png


5.4.1 使用自动发现规则

添加自动发现规则

640?wx_fmt=png

 创建发现动作

640?wx_fmt=png

查看自动发现的机器。 

640?wx_fmt=png


5.4.2 监控备份服务器

利用系统自带键值进行监控net.tcp.listen[port] 创建新的模板 

640?wx_fmt=png

在服务端进行测试

640?wx_fmt=png

将模板添加到主机 

640?wx_fmt=png


5.4.3 监控NFS服务器

创建nfs监控模板

使用 proc.num[<name>,<user>,<state>,<cmdline>]  键值,检测nfs进程的数量

640?wx_fmt=png

 在服务端进行测试

640?wx_fmt=png

将模板绑定到主机 

640?wx_fmt=png


5.4.4 监控MySQL服务器

将自带的mysqlkey值加上mysql的账户密码,否则不能获取到数据。 

640?wx_fmt=png

使用系统自带模板  net.tcp.port[<ip>,port] 利用自带的监控端口键值进行监控 

640?wx_fmt=png

添加新的mysql监控项端口 

640?wx_fmt=png

640?wx_fmt=png

将模板关联到主机 

640?wx_fmt=png


5.4.5 监控web服务器

创建监控模板 监控 nginx服务与 80 端口

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

将模板关联到主机 

640?wx_fmt=png


5.4.6 监控URL地址

创建监测页面

640?wx_fmt=png


创建web监测模板

   创建应用集 

640?wx_fmt=png

   创建Web场景 

640?wx_fmt=png

   创建图形

640?wx_fmt=png

将模板关联到主机 

640?wx_fmt=png

监测结果 

640?wx_fmt=png


5.4.7 监控反向代理服务器

创建自定义key

640?wx_fmt=png


在服务端测试

[root@m01 ~]# zabbix_get -s 172.16.1.5  -p 10050 -k "keep-ip"1[root@m01 ~]# zabbix_get -s 172.16.1.6  -p 10050 -k "keep-ip"0

在web界面添加模板

640?wx_fmt=png

 将模板关联到主机 

640?wx_fmt=png


5.4.8 监控Nginx的7种连接状态

640?wx_fmt=png

[root@web01 ~]# for ip in 7 8 9 ;do curl 172.16.1.$ip/status ;doneActive connections: 1server accepts handled requests 73 73 69Reading: 0 Writing: 1 Waiting: 0

Active connections: 1server accepts handled requests 134 134 127Reading: 0 Writing: 1 Waiting: 0

Active connections: 1server accepts handled requests 7 7 7Reading: 0 Writing: 1 Waiting: 0

在nginx服务器上添加key

cat >/etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<'EOF'UserParameter=nginx_active,curl -s  127.0.0.1/status|awk 

'/Active/ {print $NF}'UserParameter=nginx_accepts,curl -s  127.0.0.1/status|awk 

'NR==3 {print $1}'UserParameter=nginx_handled,curl -s  127.0.0.1/status|awk 

'NR==3 {print $2}'UserParameter=nginx_requests,curl -s  127.0.0.1/status|awk 

'NR==3 {print $3}'UserParameter=nginx_reading,curl -s  127.0.0.1/status|awk 

'NR==4 {print $2}'UserParameter=nginx_writing,curl -s  127.0.0.1/status|awk 

'NR==4 {print $4}'UserParameter=nginx_waiting,curl -s  127.0.0.1/status|awk 

'NR==4 {print $6}'EOF


服务端测试

640?wx_fmt=png


在zabbix-web上添加

640?wx_fmt=png


监控项

640?wx_fmt=png


添加图形

640?wx_fmt=png


将模板关联到主机 

640?wx_fmt=png


查看添加的图形

640?wx_fmt=png

640?wx_fmt=png


第6章 自动发现与自动注册

640?wx_fmt=png


6.1 自动注册与自动注册

6.1.1 简介

自动发现:

zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多.


自动注册:

zabbix agent主动到zabbix Server上报到,登记;缺点agent有可能找不到Server(配置出错)


6.1.2 两种模式

640?wx_fmt=png

     注意: 两种模式都是在agent上进行配置

     zabbix 的使用要在hosts文件中预先做好主机名的解析


6.2 自动发现--被动模式

第一个里程碑:完成之前的安装

640?wx_fmt=png

 

640?wx_fmt=png


在ip范围内输入ip,注意格式;

   延迟在实际的生产环境中要大一些,实验环境可以小一些

640?wx_fmt=png


   创建发现动作

640?wx_fmt=png

640?wx_fmt=png

①  配置动作

640?wx_fmt=png

②  在条件中添加条件,让添加更准确

640?wx_fmt=png

③  在操作中添加

a)  添加主机与启用主机

640?wx_fmt=png

      然后等待者客户端自动上门就好?


6.3 自动注册--主动模式

第一个里程碑:zabbix Server安装完毕 (完成)

640?wx_fmt=png


   第二个里程碑:zabbix agent安装完毕,需要额外增加的配置

640?wx_fmt=png


    源文件与修改后对比

640?wx_fmt=png640?wx_fmt=png

   第三个里程碑:在web见面上进行配置

640?wx_fmt=png

640?wx_fmt=png创建动作,添加名称即可 

640?wx_fmt=png条件中也无需修改 

640?wx_fmt=png

    在动作中添加动作

(添加主机、添加到主机群组、链接到模板)

640?wx_fmt=png

    添加完动作后,等待就行了

    注意:重启客户端可以加速发现。但是在生产环境中勿用。

640?wx_fmt=png


第7章 分布式监控与SNMP监控

640?wx_fmt=png


7.1 分布式监控

7.1.1 作用

    分担压力,减轻负载

    多机房监控

zabbix Server  ===》  zabbix agent (只能同一个局域网监控)

分担压力,降低负载

640?wx_fmt=png


多机房监控

640?wx_fmt=png


7.1.2 环境说明

640?wx_fmt=png


7.1.3 配置zabbix proxy

第一个里程碑:配置zabbix yum源,并安装proxy

640?wx_fmt=png


   第二个里程碑:安装数据库

    zabbix  proxy也需要数据库,这个数据库不是用于存储监控数据的 只是用于存储配置信息

   #安装数据库

640?wx_fmt=png


   #建立数据库

640?wx_fmt=png


   #导入数据文件

640?wx_fmt=png


   #配置zabbix proxy 连接数据库

sed -i.ori 

'162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf

sed -i 

's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf

sed -i 

's#Hostname=Zabbix proxy#Hostname=cache01#' /etc/zabbix/zabbix_proxy.conf# Hostname 作为后面添加的代理程序名称,要保持一致

   #启动

640?wx_fmt=png


   #检查端口

[root@cache01 ~]# netstat -lntup |grep zabbixtcp        0      0 0.0.0.0:10050     0.0.0.0:*       LISTEN      105762/zabbix_agent

tcp        0      0 0.0.0.0:10051   0.0.0.0:*         LISTEN      85273/zabbix_proxy 

tcp6       0      0 :::10050       :::*      LISTEN      105762/zabbix_agent

tcp6       0      0 :::10051  :::*           LISTEN      85273/zabbix_proxy


   第三个里程碑:修改agent配置指向 proxy

[root@cache01 ~]

# grep ^Server /etc/zabbix/zabbix_agentd.confServer=172.16.1.61ServerActive=172.16.1.61[root@cache01 ~]

# sed -i 's#172.16.1.61#172.16.1.21#g' /etc/zabbix/zabbix_agentd.conf[root@cache01 ~]

# grep ^Server /etc/zabbix/zabbix_agentd.confServer=172.16.1.21ServerActive=172.16.1.21[root@cache01 ~]

# systemctl restart zabbix-agent.service


   第四个里程碑:web界面添加代理

    管理 >> agent代理程序 >> 创建代理


640?wx_fmt=png

   代理程序名称要填写主机名

640?wx_fmt=png

   稍等片刻就能在程序中出现代理

640?wx_fmt=png

   在主机中能发现主机代理

640?wx_fmt=png


7.2 SNMP监控

7.2.1 使用范围

无法安装agent  很多前辈的监控软件都可以监控各种设备  都是通过snmp监控

snmp simple network manager protocol 简单网络管理协议

简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。


7.2.2 安装snmp程序

640?wx_fmt=png


7.2.3 配置snmp程序

640?wx_fmt=png


7.2.4 测试snmp

640?wx_fmt=png


说明:

# snmpwalk 类似 zabbix_get

# -v 2c  指定使用snmp协议的版本  snmp分为v1 v2 v3

# -c public  指定暗号

# sysname  类似zabbix的key


7.2.5 在web界面进行配置

添加新的主机,注意使用snmp接口

640?wx_fmt=png

选择模板,注意使用SNMP的模板

640?wx_fmt=png

    添加完成就能够在主机中看到snmp监控对的主机

640?wx_fmt=png

7.2.6 附录

640?wx_fmt=png

作者:惨绿少年

文章链接:https://www.cnblogs.com/clsn/p/7885990.html

640?wx_fmt=other

PS:记得查收小编送你的免费大礼包呦~

福利 | 一万多套PPT模板等你免费来拿!无条件领取!

免费送 | 1000多套简历模板免费拿,附赠简历制作教程!

免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~


640? 640?


▼▼点击【阅读原文】,22大互联网热门课程任选免费学

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值