作者:惨绿少年

来源:https://www.cnblogs.com/clsn/p/7885990.html

目录[-]

一、监控概述

二、安装Zabbix 

三、Web界面操作

四、自定义监控与监控报警

五、监控全网服务器

六、自动发现与自动注册

七、分布式监控与SNMP监控

  一、监控概述  

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 监控范畴

1.3 怎么来监控

1.3.1 远程管理服务器

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

1.3.2 监控硬件

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

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

1.3.3 查看cpu相关

lscpu、uptime、top、htop vmstat mpstat

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

1.3.4 内存够不够可以用

free

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

df、dd、iotop

1.3.6 监控网络

iftop nethogs

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的组成

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监控

     二、安装Zabbix    

2.1 环境检查

2.2 安装zabbix过程

2.2.1 安装方式选择

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

yum安装(干净环境)

使用yum 需要镜像yum源 http://www.cnblogs.com/clsn/p/7866643.html

2.2.2 服务端快速安装脚本

2.2.3 客户端快速部署脚本

2.3 检测连通性

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

yum install zabbix-get

2.3.2 在服务端进行测试

三、Web界面操作

3.1 zabbix的web安装

3.1.1 使用浏览器访问

http://10.0.0.61/zabbix/setup.php

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

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

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

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

安装完成、点击finsh

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

3.2 添加监控信息

3.2.1 修改监控管理机zabbix server

配置 >> 主机

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

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

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

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

3.2.2 添加新的主机

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

注意勾选以启用

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

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

3.2.3 查看监控内容

检测中  >> 最新数据

在最新数据中需要筛选,

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

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

3.2.4 查看图像

检测中 >> 图形

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

四、自定义监控与监控报警

4.1 自定义监控

4.1.1 说明

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

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

4.1.2 预备知识

4.2 实现自定义监控

4.2.1 自定义语法

4.2.2 agent注册

4.2.3 在server端注册(web操作)

①   创建模板

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

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

查看创建出来的模板。↑

②   创建应用集

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

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

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

③   创建监控项

监控项 >> 创建监控项

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

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

④   创建触发器

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

(根据需求创建)

触发器 >> 创建触发器

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

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

严重性自定义。

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

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

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

⑤   创建图形

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

图形 >> 创建图形

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

⑥   主机关联模板

配置 >> 主机

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

4.2.4 查看监控的图形

4.3 监控报警

4.3.1 第三方报警平台

http://www.onealert.com

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

4.3.2 onealert配置

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

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

4.3.3 安装 onealert Agent

4.3.1 如何删除onealert Agent

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

②  删除创建的用户

③  删除用户群组

④  删除创建的动作

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

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

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

   好-->坏

坏-->好

4.4 监控可视化

4.4.1 聚合图形

最新数据 >> 图形

自定义名称

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

4.4.2 幻灯片

添加幻灯片

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

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

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

4.5 模板的共享

4.5.1 主机共享

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

导入

4.5.2 模板共享

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

五、监控全网服务器

5.1 需求说明

实际需求:

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

5.2 规划方案

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

  方法1:使用克隆的方式

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

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

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

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

5.2.1 api接口使用(curl)

5.3 具体实施规划

5.3.1 硬件、系统、网络监控

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

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

snmp监控

5.3.2 应用服务监控

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

方法1:监控873端口net.tcp.port[,873]   方法2:模拟推送拉取文件

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

方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111]   方法2:showmount -e ip|wc -l

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

方法1:端口(通过3306的mysql端口) net.tcp.port[,3306]
   方法2:mysql远程登录
   方法3:使用zabbix agent自带的模板及key

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

方法1:端口(通过80的web端口) net.tcp.port[,80]
   方法2:看网页状态码、返回内容==zabbix 自带WEB检测

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

使用zabbix自带的监控Web监测 进行监控

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

nginx,pptp
ntp 端口udp 123

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

自定义监控

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

5.4.1 使用自动发现规则

添加自动发现规则

创建发现动作

查看自动发现的机器。

5.4.2 监控备份服务器

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

在服务端进行测试

将模板添加到主机

5.4.3 监控NFS服务器

创建nfs监控模板

使用 proc.num[,,,]  键值,检测nfs进程的数量

在服务端进行测试

将模板绑定到主机

5.4.4 监控MySQL服务器

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

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

添加新的mysql监控项端口

[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "net.tcp.port[,3306]"1#检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

将模板关联到主机 

5.4.5 监控web服务器

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

proc.num[,,,]进程数。返回整数  net.tcp.port[,port] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "proc.num[,,,nginx]"2[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "net.tcp.port[,80]"1

将模板关联到主机 

5.4.6 监控URL地址

创建监测页面

echo ok >> /application/nginx/html/www/check.html

测试监控面页

[root@web03 ~]# for ip in 7 8 9 ;do curl 10.0.0.$ip/check.html ;doneokokok

创建web监测模板

创建应用集

创建Web场景

创建图形

将模板关联到主机

监测结果

5.4.7 监控反向代理服务器

创建自定义key

[root@lb01 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_nk.confUserParameter=keep-ip,ip a |grep 10.0.0.3|wc -l

在服务端测试

[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界面添加模板

将模板关联到主机

5.4.8 监控Nginx的7种连接状态

nginx服务器显示status……  location /status {         stub_status on;         access_log off;  }……
[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: 0Active connections: 1server accepts handled requests 134 134 127Reading: 0 Writing: 1 Waiting: 0Active 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

服务端测试

[root@m01 ~]# zabbix_get -s 172.16.1.7  -p 10050 -k "nginx_waiting"0[root@m01 ~]# zabbix_get -s 172.16.1.8  -p 10050 -k "nginx_waiting"0[root@m01 ~]# zabbix_get -s 172.16.1.9  -p 10050 -k "nginx_waiting"0

在zabbix-web上添加

监控项

添加图形

将模板关联到主机

查看添加的图形

六、自动发现与自动注册

6.1 自动注册与自动注册

6.1.1 简介

自动发现:

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

自动注册:

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

6.1.2 两种模式

被动模式:默认 agent被server抓取数据 (都是在agent的立场上说)
主动模式:agent主动将数据发到server端 (都是在agent的立场上说)

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

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

6.2 自动发现--被动模式

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

zabbix Server安装完毕

第二个里程碑:配置agent客户端

zabbix agent安装完毕,注意配置Server=172.16.1.61

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

web界面:配置 >> 自动发现 >> Local network
使用自带的自动发现规则(进行修改)即可 

在ip范围内输入ip,注意格式;
延迟在实际的生产环境中要大一些,实验环境可以小一些 

创建发现动作

配置 >> 动作 >> Auto discovery. Linux servers. 

①  配置动作

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

③  在操作中添加

a)  添加主机与启用主机

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

zabbix 5.0所有依赖包_最详细的 Zabbix 使用教程相关推荐

  1. zabbix 5.0所有依赖包_一杯茶的时间,上手Zabbix

    [51CTO.com原创稿件] IT 运维离不开系统监控,就好像鱼儿离不开水一样.一款强大的监控系统可以有力保证设备和业务的稳定. 图片来自 Pexels 在监控系统层出不穷的今天,作为老牌监控系统的 ...

  2. zabbix 5.0所有依赖包_Zabbix“专家坐诊”第82期问答汇总

    Q:我所有的监控项都是通过自动发现获取的item和值,这个数据获取的时间是怎么控制的,现在感觉都是无序的,我想控制在每个整点的10分左右更新数据. A:zabbix获取数据是轮询的.有时候数据会出现采 ...

  3. spring自动装配依赖包_解决Spring自动装配中的循环依赖

    spring自动装配依赖包 我认为这篇文章是在企业应用程序开发中使用Spring的最佳实践. 使用Spring编写企业Web应用程序时,服务层中的服务量可能会增加. 服务层中的每个服务可能会消耗其他服 ...

  4. npm 删除依赖包_前端开发,npm会了吗?

    npm 是Node.js的包管理工具(package manager),npm 由三个独立的部分组成: 网站(开发者查找包,设置参数以及管理npm的主要途径) 注册表(保存每个包(package)的信 ...

  5. pycharm安装python包_Pycharm使用教程(四)-安装python依赖包(非常详细,非常实用)...

    简介 在做python开发时,需要很多依赖包,如果已经安装pip,安装依赖包,可以通过命令行:没有安装的,也可以通过PyCharm安装. 具体安装步骤 1.在File->Setting,如图: ...

  6. 第三:Pycharm中安装Python依赖包(非常详细)

    简介 在做python开发时,需要很多依赖包,如果已经安装pip,安装依赖包,可以通过命令行:没有安装的,也可以通过PyCharm安装. 具体安装步骤 1.在File->Setting,如图: ...

  7. 引入yml依赖包_手把手教你发布 Python 项目开源包

    编译:机器之心,作者:Gabriel Lerner.Nathan Toubiana 好不容易码了个 python 项目,是不是很兴奋?那么怎么把这个项目发出去让大家看到呢?本文作者写了一份在 GitH ...

  8. maven 打包指定依赖包_[Maven]-Maven基础-01-基础概念

    Maven基础 1.基础概念 Maven基础概念 什么是Maven 什么是理想的项目构建? 高度自动化,跨平台,可重用的组件,标准化的 什么是依赖?为什么要进行依赖管理? 自动下载,统一依赖管理 有哪 ...

  9. tesseract4.0.0 中文语言包_一份TensorFlow2.0中文教程

    近两个月,网上已经出现了大量 TensorFlow 2 0 英文教程.在此文章中,本文为大家推荐一个持续更新的中文教程,以便大家学习.来源:机器之心 今年 3 月份,谷歌在 Tensorflow De ...

  10. oracle11gr2依赖包下载,Oracle 11gr2 RAC安装图文教程+所需要的RPM包

    Oracle RAC安装流程与心得分享 经过了四天的时间,我成功地搭建出了一个简单的(双节点)Oracle RAC环境,现在把安装的过程记录于此,一是为了方便复习,二是为了分享给将来可能会用到RAC的 ...

最新文章

  1. vb.net与matlab的混合编程
  2. CSS3来绘制一个3维立体游泳圈_立体墙绘画绘制技巧来了,襄阳墙体彩绘公司介绍...
  3. 【echart数组数据】echarts两条或两条以上x轴不同的线合并x轴 含有不连续数据
  4. Java的子类可以继承父类的私有变量和私有方法吗?
  5. java初始化变量n_java中预构造函数初始化变量的属性
  6. 利用pyinstaller打包python3程序
  7. 查找最接近的元素c语言,查找最接近的元素
  8. Ajax通讯异常12002,前端MVC框架[02] 发送AJAX请求及建立连接池
  9. C:\Windows\Installer越来越大?让我们一起来删除msp这个毒瘤
  10. Cdn间隙性故障总结
  11. js实现页面加载完毕之前显示Loading效果
  12. 【Hoxton.SR1版本】Spring Cloud Gateway网关初体验
  13. 计算机接口cad图,贴片机CAD图纸
  14. 大型网站技术架构(八)——网站的安全架构
  15. AtCoder Grand Contest 030 (AGC030) C - Coloring Torus 构造
  16. 用Rdkit把化学结构式的Smiles转换为InchI
  17. Google中国招聘三大标准 实干、内功与人品
  18. 项目需求讨论-标题栏上的搜索功能
  19. Mosquitto设置用户名密码
  20. 概率论的学习和整理--番外7:简单的丢骰子 和 抽黑球白球问题,对比不同概率模型求解的差别。

热门文章

  1. 1米6农村放牛娃的奋斗历程:从同济、港理工,到清华、伯克利大学!
  2. 得洲奥斯汀研究生计算机专业排名,德克萨斯大学奥斯汀分校世界排名及专业排名汇总(QS世界大学排名版)...
  3. supervisor 管理后台进程
  4. 1995-2013年RSA大会历届主题回顾
  5. 益聚星荣:如何有理有据地给元宇宙泼一盆冷水?
  6. 个人网站添加百度统计
  7. Retrofit2 详解和使用(一)
  8. 趁你年轻快来学学如何搭建一个小说网站,这里有超详细教程,快进来看看吧,错过了可不要后悔哟。
  9. postgreSql版的occurs函数
  10. 简单说明经济是什么~