Zabbix之SNMP部署心得
0x00 前言
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix可以通过SNMP,Agent,ssh/telnet,IPMI(端口监视)等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
0x01 zabbix概念
一般情况下,我们将zabbix agent部署到被监控主机上,由agent采集数据,报告给负责监控的中心主机,负责监控的中心主机被称为zabbix server,zabbix server将从agent端接收到的信息存储于zabbix的数据库中,我们把zabbix的数据库端称为zabbix database, 如果管理员需要查看各种监控信息,则需要zabbix的GUI,zabbix的GUI是一种Web GUI,我们称之为zabbix web,zabbix web是使用php编写的,所以,如果想要使用zabbix web展示相关监控信息,需要依赖LAMP环境,不管是zabbix server ,或是zabbix web,他们都需要连接到zabbix database获取相关数据。下面配一张zabbix的架构图帮助理解一下:
zabbix web:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上。
zabbix database:用于存储所有zabbix的配置信息、监控数据的数据库。
zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等。
zabbix agent:部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix server。
0x02 zabbix安装
操作系统:centos7
zabbix版本:4.2 (安装过程可参考:https://www.zabbix.com/download 或 http://www.zsythink.net/archives/500 )
# 配置zabbix官方源
# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm
# yum clean all # zabbix server、web、agent安装
# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent # 初始化数据库
# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;
# 导入zabbix数据库
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix # 配置数据库用户和密码
# vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix# 编辑Zabbix前端PHP配置,更改时区
# vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai # 修改为亚洲上海,记得去除前面的## 设置zabbix和httpd服务开机自启
# systemctl restart zabbix-server zabbix-agent httpd
# systemctl enable zabbix-server zabbix-agent httpd
通过浏览器访问http://server_ip_or_name/zabbix
即可
接下来正常安装配置即可,默认登录账号密码:Admin/zabbix
如zabbix服务没有正常启动,如下图所示:
则可能存在以下几种原因:
1、zabbix-server未正常启动
可用命令查看:systemctl status zabbix-server2、已经开启selinux,但是没有正常设置对应权限。
用getenforce查看selinux状态,如果是Enforcing则会存在问题,可用setenforce 0临时关闭3、zabbix-server未能正常连接数据库。
检查文件/etc/zabbix/zabbix_server.conf和/etc/zabbix/web/zabbix.conf.php是否配置正确4、zabbix.conf.php文件中$ZBX_SERVER参数对应的主机名不能正常解析。
检查文件/etc/httpd/conf.d/zabbix.conf是否配置正确5、其他原因,需要查看zabbix server日志。
0x03 zabbix监控
zabbix中添加主机
添加主机具体可以参考:http://www.zsythink.net/archives/551 ,我这里简单说一下
在zabbix web控制台选择:配置–>主机–>创建主机
模板:
在工作中会有许多相同的或者类似的主机,我们在对它们进行配置的时候会花费我们大量时间去做相同而配置操作,而模板的引入就解决了这个问题。我们可以将那些实体配置写到一个模板中,然后根据需要将模板应用于尽可能多的主机。当然模板并不是必须的,而它自身所提供的模板也是有限的,很多时候还需要你自己去创建符合运维要求的模板。
宏:
zabbix宏变量让zabbix变得更灵活,变量可以定义在主机、模板以及全局,变量名称类似:{$MACRO},宏变量都是大写的。当然这个也不是必须的,不过可以简化你在配置中的操作。你可以理解为在代码中定义的变量,到时候可以引用一样。
zabbix中添加监控项
添加监控项具体可以参考:http://www.zsythink.net/archives/551
在zabbix web控制台选择:配置–>主机–>选择要创建监控项的主机–>监控项–>创建监控项(前提是添加好主机)
监控项的配置中最主要的就是选择对监控类型、键值、信息类型,其他的一般默认即可。
SNMP
因为在监控的设备中并不是所有设备都支持agent,如防火墙、IPS、AD等,且agent相对来讲没有SNMP安全。
下面我们来说一下监控类型中的SNMP,具体可以参考官方文档:https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/snmp
在zabbix中SNMP分为三个版本:v1、v2c、v3,每个版本的安全性不同,版本越高安全性越好,当然也就意味着配置更麻烦。
首先你得在客户端配置好SNMP协议
SNMPv2c:一般只需要配置一个团体名即可。
SNMPv3:实现原理和SNMPv1、SNMPv2c基本一致,唯一的区别是SNMPv3增加了身份验证和加密处理,提高了安全性。
在客户端配置好以后,在服务端可以用SNMP检测工具来测试能不能获取到数据,如果可以则客户端配置正常,否则可能某个环节存在问题。
首先在服务端装好SNMP测试工具yum install -y net-snmp net-snmp-utils
# SNMPv2c
团体名:public IP:192.168.0.10
snmpwalk -v 2c -c public 192.168.0.10# SNMPv3
用户名:test IP:192.168.0.10
snmpwalk –v 3 –l noAuthNoPriv –u test 192.168.0.10用户名:test 用户密码:pass 加密算法:MD5 IP:192.168.0.10
snmpwalk –v 3 –l authNoPriv –u test –A MD5 –a "pass" 192.168.0.10用户名:test 用户密码:pass 加密算法:MD5 传输加密密码:word 传输加密协议:DES IP:192.168.0.10
snmpwalk –v 3 –l authPriv –u test –A MD5 –a "pass" –X DES –x "word" 192.168.0.10
一般假如客户端SNMP协议配置正常,使用snmpwalk命令可以获得该设备的整个MIB(Management Information Base),具体可参考:https://www.cnblogs.com/LittleHann/p/3834860.html
https://blog.csdn.net/u011857683/article/details/79915260
OID(对象标识符),是SNMP代理提供的具有唯一标识的键值。MIB(管理信息基)提供数字化OID到可读文本的映射。
MIB
MIB(Management Information Base)是用于管理通信网络中的实体的数据库。通常与简单网络管理协议(SNMP)相关联,数据库是分层的(树形结构的),并且每个条目通过对象标识符(OID)来寻址。
对于MIB,我们可以理解为一个中央数据库,用来保存网络中各种设备的参数信息,类似于数据库中常说的唯一标识每条记录的"主键",在MIB中,由对象识别符(OID:Object Identifier)唯一指定每条MIB记录。
下面来看一下深信服的MIB,我们可以从中得到我们想要参数的OID,如果是第一次看需要好好研究一下,你只要把它想象成一个树状结构还是很好理解的。
OID
Object IDentifiers(OID)在计算中,对象标识符或OID是由国际电信联盟(ITU)和ISO / IEC标准化的标识符机制,用于命名具有全局明确持久名称的任何对象,概念或“事物”。关于OID的结构可以参考:http://oid-info.com/cgi-bin/display
OID结构图大致如下:
类别 | 标号 | 所包含信息 |
---|---|---|
system | (1) | 主机或路由器的操作系统 |
interface | (2) | 各种网络接口及它们的测定通信量 |
address translation | (3) | 地址转换(例如ARP映射) |
ip | (4) | Internet软件(IP分组统计) |
icmp | (5) | ICMP软件(已收到ICMP消息的统计) |
tcp | (6) | TCP软件(算法、参数和统计) |
udp | (7) | UDP软件(UDP通信量统计) |
egp | (8) | EGP软件(外部网关协议通信量统计) |
通过这颗“对象命名树”我们可以看出来OID也分为通用管理的和私人企业的
通用的一般都是:.1.3.6.1.2.1.x.x.x
私人企业的一般都是:.1.3.6.1.4.1.x(企业标识符).x.x
贴一个常用OID表参考一下:https://blog.csdn.net/qq_20332637/article/details/82691364
如果要是碰到一些不常用的企业,个人认为有以下三种方法:
1.假如客户端SNMP协议配置正常可通过snmpwalk命令获得
2.通过查询文档,贴个网址基本上记录了所有企业的标识符 http://www.iana.org/assignments/enterprise-numbers/enterprise-numbers
3.直接打电话给相关企业,我觉得这是最好也是最直接的方法,因为一般企业会把整个MIB发给你供你作参考。
下面还有两个命令可以了解一下
snmptranslate:
通过snmptranslate命令在MIBOID在数字和文字名称之间进行转换
[root@zabbix ~]# snmptranslate .1.3.6.1.2.1.25.2.3.1.6.1
HOST-RESOURCES-MIB::hrStorageUsed.1
snmpdf:
通过snmpdf监视远程主机的磁盘空间,相当于直接在主机上执行df -h
[root@zabbix ~]# snmpdf -v 3 -u test -a MD5 -A "pass" -x DES -X "word" -l authPriv 192.168.0.10
Description size (kB) Used Available Used%
Physical memory 3915440 1769556 2145884 45%
Virtual memory 3915440 1769556 2145884 45%
Memory buffers 3915440 4756 3910684 0%
Cached memory 512960 512960 0 100%
Shared memory 0 0 0 0%
Swap space 0 0 0 0%
/ 10194224 973844 9220380 9%
/etc 5032856 28304 5004552 0%
/var 15356420 161020 15195400 1%
/logfs 25673452 42420 25631032 0%
/virus 10193524 148 10193376 0%
/app 10193848 1542580 8651268 15%
/aclog 42165088 2344628 39820460 5%
/sys/fs/cgroup/blkio 0 0 0 0%
/sys/fs/cgroup/cpu 0 0 0 0%
因为一些厂商出厂的MIB里一般只有内存的使用大小(单位:KB),内存总量(单位:KB),所以在我们想要监控内存使用率时就需要使用表达式了,关于表达式这里我就不分析了,因为本人也只是略懂,有兴趣的读者可以自行百度去研究研究。
Zabbix之SNMP部署心得相关推荐
- Zabbix 3.0 部署监控 [三]
Zabbix 3.0 部署监控 [三] zabbix 时间:2016年9月22日 笔者QQ:381493251 Abcdocker交流群:454666672 如果遇到什么问题可以进群询问,我们 ...
- Zabbix 3.0 部署监控 [二]
原文出自 http://www.abcdocker.com/abcdocker/1453 Zabbix 3.0 部署监控 [二] zabbix 一.添加监控主机及设置 1.创建主机 Agent可以干 ...
- zabbix简介及部署
一.zabbix简介 zabbix是一款企业级的监控解决方案,它可以通过SNMP.zabbix专用agent.简单的系统管理及网络工具来监控对象,收集信息,并将收集到的信息存储在数据库中,通过即时绘制 ...
- zabbix监控SNMP
步骤一:部署系统环境 1.修改主机名 [root@CentOS7-test~]# hostnamectlset-hostname zabbixserver [root@CentOS7-test ~]# ...
- Centos7下的zabbix安装与部署
1.Zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系 ...
- zabbix介绍及部署(超详细讲解)
目录 一.zabbix的基本概述 二.zabbix的构成 三.zabbix的监控对象 四.zabbix的常用术语 五.zabbix的工作流程 六.zabbix进程详解 七.zabbix的监控框架 7. ...
- Zabbix的snmp监控
Zabbix的snmp监控 一.SNMP介绍 二.服务端安装snmp监控工具 三.修改SNMP相关配置文件 四.重启snmp服务 五.测试收集信息 六.WEB配置 七.检查SNMP是否添加成功 一.S ...
- zabbix 通过 SNMP 监控 Windows主机
1.实验环境 zabbix-server:10.0.11.55 Windows客户端:自己在用的笔记本电脑(10.0.11.53) zabbix_agent:Windows 版 agent 2.下载 ...
- 使用Zabbix的SNMP trap监控类型监控设备的一个例子
转载来源 :使用Zabbix的SNMP trap监控类型监控设备的一个例子 :https://www.jianshu.com/p/aa795afdf655 介绍 本文以监控绿盟设备为例. 1.登录被监 ...
最新文章
- 【算法导论学习笔记】第3章:函数的增长
- cryptojs aes加密每次结果不同_Javascript加密算法标准库,支持Nodejs+浏览器——crypto-js...
- QT的QQmlApplicationEngine类的使用
- 一步一步分析vue之_data属性
- PHP面向对象分析设计的61条军规
- SciTE AMPL配置问题
- 计算机毕业设计JAVA房屋租赁系统mybatis
- cocos creator fgui 按钮事件
- KETTLE 下载网址
- 三菱PLC型号通讯接口汇总表 细分FX Q系列等 PLC数据采集实用知识点
- msvcr71.dll文件丢失——解决办法
- 个人对傅里叶分析的理解与整理(持续整理中)
- 顶尖、顶级、权威期刊目录
- S7-200SMART PLC的IP更改方法
- vue表格闪动 xn-table
- “35岁危机”不再,算法岗应届生平均月薪超3.2万,人工智能行业掀抢人大战!...
- 集成Google广告的一点错误
- 高性能TcpServer(C#) - 3.命令通道(处理:掉包,粘包,垃圾包)
- 备份和导入Outlook 2016 电子邮件签名
- 百度-AI趣味课堂(三)
热门文章
- 2022年电设省赛碎碎念【C题小车题省一】
- 海尔计算机无法装win7系统,海尔自带Win10系统如何改成Win7系统?海尔台式机装win7详细步骤...
- 前端项目部署,阿里云服务器部署前端项目,超详细
- 什么样的教育是真正有意义的?---范美忠
- 双11付费专栏9折优惠
- @Async 异步任务自定义线程池的配置方法和 @Scheduled 定时任务自定义线程池的配置方式
- Elasticsearch:运用 Java 创建索引并写入数据
- 分枝定界图解(含 Real-Time Loop Closure in 2D LIDAR SLAM论文部分解读及BB代码部分解读)
- Cortex-A15 Processor 简介
- Jasperreport_6.18的回血终结篇之案例目录、封面