zabbix
Posted 笨小孩@GF 知行合一
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix相关的知识,希望对你有一定的参考价值。
Zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
安装使用
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主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
搭建Zabbix监控环境
要想搭建一个Zabbix的工作环境,需要从服务器入手。与服务器通信,管理员需要使用一个Zabbix前端界面,与Zabbix服务器和数据库进行通信。三个关键(界面、服务器和数据库)可以安装在同一台服务器上,但是如果你拥有一个更大更复杂的环境,将它们安装在不同的主机上也是一个选项。Zabbix服务器能够直接监控到同一网络中的设备,如果其他网络的设备也需要被监控,那还需要一台Zabbix代理服务器。
特点
- zabbix的主要特点
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能等等
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
zabbix监控范畴
- 硬件监控 :Zabbix IPMI Interface
- 系统监控 :Zabbix Agent Interface
- Java 监控:ZabbixJMX Interface
- 网络设备监抟:Zabbix SNMP Interface
- 应用服务监控:Zabbix Agent UserParameter
- mysql 数据库监控:percona-monitoring-pldlgins
- URL监控:Zabbix Web监控
Zabbix官网:https://www.zabbix.com/cn
实验环境:Server CentOS 8.3
Client CentOS 7.6
SElinux及防火墙均为关闭状态
开始安装:
-
在 Server 端执行
- rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpm
-
安装Zabbix server,Web前端,agent
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-agent -y
- 创建初始数据库 Make sure you have database server up and running.
#mysql -uroot -p
password
mysql>create database zabbix character set utf8 collate utf8_bin;
mysql>
flush privileges;mysql>create user 'zabbix'@'localhost' identified by 'password';
mysql>grant all privileges on zabbix.* to zabbix@localhost;
mysql>
flush privileges;mysql>exit
- 导入初始架构和数据,系统将提示您输入新创建的密码。
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -ppassword
- 这里如果报错
- ERROR 1046 (3D000) at line 1: No database selected
- 进行如下操作
- 为Zabbix server配置数据库
- 编辑配置文件
- vim /etc/zabbix/zabbix_server.conf
DBPassword=password
- 为Zabbix前端配置php
- 编辑配置文件
- vim /etc/nginx/conf.d/zabbix.conf uncomment and set 'listen' and 'server_name' directives.
listen 88; 打开这2行的注释,修改端口,注意不要和 nginx 冲突
server_name test.com;
- 启动Zabbix server和agent进程,并为它们设置开机自启
systemctl enable zabbix-server zabbix-agent
nginx php-fpm- systemctl start zabbix-agent.service nginx.service php-fpm.service
- 配置Zabbix前端
- 连接到新安装的Zabbix前端: http://server_ip_or_name
- 默认用户名为 Admin 密码 : zabbix
- 修改用户名和密码
- 首先用MD5生成密码,然后在数据库中修改
- 设置成中文
- yum install glibc-langpack-zh -y
- localectl list-locales | grep zh
-
添加主机,在客户端操作
- rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/7/x86_64/zabbix-release-5.2-1.el7.noarch.rpm
- yum install zabbix-agent -y
- systemctl enable zabbix-agent.service --now
- systemctl status zabbix-agent.service
- 回到 WEB 界面
- 稍等1~5分钟,可用性这里 ZBX 变为绿色即为添加监控成功
-
下面配置自动发现、添加主机
SNMP
因为在监控的设备中并不是所有设备都支持agent,如防火墙、IPS、AD等,且agent相对来讲没有SNMP安全。在zabbix中SNMP分为三个版本:v1、v2c、v3,每个版本的安全性不同,版本越高安全性越好。为不同种类的设备、不同厂家生产的设备、不同型号的设备,定义为一个统一的接口和协议,使得管理员可以是使用统一的外观面对这些需要管理的网络设备进行管理。通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。
SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议,SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议,SNMP主要用于网络设备的管理。
SNMP协议是TCP/IP协议簇的一个应用层协议,在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案,由于SNMP的简单性,在Internet时代得到了蓬勃的发展,1992年发布了SNMPv2版本,以增强SNMPv1的安全性和功能,SNMP的协议版本目前有SNMP v1、SNMP v2c和SNMP v3三种版本,其具体差别如下:
-
SNMP v1采用团体名(Community Name)认证,团体名用来定义SNMP NMS和SNMP Agent的关系,如果SNMP报文携带的团体名没有得到设备的认可,该报文将被丢弃,团体名起到了类似于密码的作用,用来限制SNMP NMS对SNMP Agent的访问。
-
SNMP v2c也采用团体名认证,它在兼容SNMP v1的同时又扩充了SNMP v1的功能,它提供了更多的操作类型(GetBulk和InformRequest)、支持更多的数据类型(Counter64等)、提供了更丰富的错误代码且能够更细致地区分错误。
-
SNMP v3提供了基于用户的安全模型(USM,User-Based Security Model)的认证机制,用户可以设置认证和加密功能,认证用于验证报文发送方的合法性,避免非法用户的访问,加密则是对NMS和Agent之间的传输报文进行加密,以免被窃听。通过有无认证和有无加密等功能组合,可以为SNMP NMS和SNMP Agent之间的通信提供更高的安全性。
-
SNMP的工作机制SNMP网络元素分为NMS和Agent两种:
NMS(Network Management Station,网络管理站)是运行SNMP客户端程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作。
Agent是驻留在设备上的一个进程,负责接收、处理来自NMS的请求报文。在一些紧急情况下,如接口状态发生改变等,Agent也会主动通知NMS。 -
NMS是SNMP网络的管理者,Agent是SNMP网络的被管理者。NMS和Agent之间通过SNMP协议来交互管理信息。
-
-
首先在客户端安装
- yum install -y net-snmp net-snmp-utils
-
vim /etc/snmp/snmpd.conf
增加访问 OID范围
view systemview included .1
- 返回 WEB 界面
- 使用 snmp v3
- 先停止 snmpd 服务
- 创建用户
- net-snmp-create-v3-user
- Enter a SNMPv3 user name to create:
test
Enter authentication pass-phrase:
test@zabbixsnmpmd5
Enter encryption pass-phrase:
[press return to reuse the authentication pass-phrase]
test@zabbixsnmpdes
adding the following line to /var/lib/net-snmp/snmpd.conf:
createUser test MD5 "test@zabbixsnmpmd5" DES "test@zabbixsnmpdes"
adding the following line to /etc/snmp/snmpd.conf:
rwuser test
- 启动服务后,测试
- systemctl start snmpd
- snmpwalk -v3 -utest -lauth -aMD5 -A"test@zabbixsnmpmd5" -X"test@zabbixsnmpdes" 192.168.2.31 > 2.31snmp.txt
- 返回 WEB 界面 添加主机
以上是关于zabbix的主要内容,如果未能解决你的问题,请参考以下文章