【监控】Zabbix:企业级开源监控解决方案

这篇具有很好参考价值的文章主要介绍了【监控】Zabbix:企业级开源监控解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、zabbix的基本概述

zabbix是一个监控软件,其可以监控各种网络参数,保证企业服务架构安全运营,同时支持灵活的告警机制,可以使得运维人员快速定位故障、解决问题。zabbix支持分布式功能,支持复杂架构下的监控解决方案,也支持web页面,为主机监控提供了良好直观的展现。

官网

二、zabbix的构成

zabbix主要由以下5个组件构成:

1、Server

zabbix server是zabbix的核心组件,server内部存储了所有的配置信息、统计信息和操作信息。zabbix agent会向zabbix server报告可用性、完整性及其他统计信息。

2、web页面

web页面也是zabbix的一部分,通常和zabbix server位于一台物理设备上,但是在特殊情况下也可以分开配置。web页面主要提供了直观的监控信息,以方便运维人员监控管理。

3、数据库

zabbix数据库内存储了配置信息、统计信息等zabbix的相关内容。

4、proxy

zabbix proxy可以根据具体生产环境进行采用或者放弃。如果使用了zabbix proxy,则其会替代zabbix server采集数据信息,可以很好的分担zabbix server的负载。zabbix proxy通常运用与架构过大、zabbix server负载过重,或者是企业设备跨机房、跨网段、zabbix server无法与zabbix agent直接通信的场景。

5、Agent

zabbix agent通常部署在被监控目标上,用于主动监控本地资源和应用程序,并将监控的数据发送给zabbix server。

三、zabbix的监控对象

zabbix支持监控各种系统平台,包括Linux和Windows等主流操作系统,也可以借助SNMP或者是SSH协议监控路由交换设备。

zabbix如果部署在服务器上,可以监控其CPU、内存、网络性能等硬件参数,也可以监控具体的服务或者应用程序、服务运行情况及性能。

硬件监控:Zabbix IPMI Interface ,通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压、温度、风扇状态、电源状态等。

系统监控:Zabbix Agent Interface ,通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent,推荐首选这种方式。

Java监控:Zabbix JMX Interface ,通过JMX进行监控,JMX(java management extensions,即java管理扩展),监控JVM虚拟机时,使用这种方法是非常不错的选择。

网络设备监控:Zabbix SNMP Interface ,通过SNMP协议与被监控对象进行通信,SNMP协议的全称为simple network management protocol,被译为简单网络管理协议,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件都支持SNMP协议。

应用服务监控:Zabbix Agent UserParameter

MySQL数据库监控:percona-monitoring-plulgins

URL监控:Zabbix Web 监控

四、zabbix的常用术语

zabbix的学习需要掌握一些zabbix的常用术语,zabbix常用术语列举如下:

1、主机(host)

要监控的设备,可以由IP或者是主机名(必须可解析)指定。

2、主机组(host group)

主机的逻辑容器,包含主机和模板,主机组通常在给用户或者是用户组指派监控权限时使用。

3、监控项(item)

一个特定监控指标的相关数据,比如内存的大小、CPU的使用率,甚至是服务的运行状态等等。监控项数据来源于被监控对象,并且每个监控项都由一个key来标识。

4、触发器(trigger)

一个表达式,用于评估监控项的值是否在合理的范围内。当接收的值超出触发器的规定时,就被认为是故障,如果超出后再次符合,就被认为是正常。

5、事件(event)

触发器触发的一个特定事件,或者是zabbix定义的一个自动上线注册主机的事件。

6、动作(action)

指根据配置,zabbix对于触发器触发的特定事件进行处理的具体措施,如执行某个脚本,或者是向管理员邮箱发送邮件等等。

7、报警升级(escalation)

发送警报或者是执行远程命令的自定义方案。

8、媒介(media)

发送通知(告警)的手段,如微信、邮件、钉钉等等。

9、通知(notification)

通过指定的媒介,向用户发送的有关事件的信息。

10、远程命令(remote command)

指运维人员提前写好的命令,可以让被监控主机在触发事件后执行。

11、模板(template)

用于快速定义被监控主机的预设条目集合,通常包括了监控项、触发器、应用等,模板可以直接链接至某个主机。

12、应用(application)

一组监控项的集合。

13、web场景(web scennario)

用于检测web站点可用性的一个或多个HTTP请求。

14、前端(frontend)

zabbix的web接口。

五、zabbix的工作流程

Zabbix在进行监控时,zabbix客户端要安装在被监控设备上,负责定期收集数据,并将其发送给zabbix服务端;zabbix服务端要安装在监控设备上,其将zabbix客户端发送的数据存储的数据库中,zabbix web根据数据在前端进行展示和绘图。

zabbix的数据收集分为两种模式:

1、主动模式

zabbix客户端主动向zabbix server请求监控项列表,并主动将监控项内需要的数据提交给zabbix server。

2、被动模式

zabbix server向 agent 请求获取监控项的数据,zabbix agent返回数据。

由此可以看出zabbix的主动和被动模式是以zabbxi客户端为基准的。

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

六、zabbix进程详解

在默认的情况下,zabbix有6个工作进程;分别是 zabbix_agentd,zabbix_get,zabbix_proxy,zabbix_sender,zabbix_server 和 zabbix_gateway。

其中,zabbix_java_gateway是可选进程。这6个进程的作用如下:

1、zabbix_agentd

zabbix-agentd为zabbix客户端守护进程 ,主要负责收集客户端监控项数据。

2、zabbix_server

zabbix_server为zabbix服务端守护进程,主要负责收集zabbix客户端数据。(端口为10051)

3、zabbix_proxy

zabbix_proxy是zabbix的代理程序,其功能类似于server,作用上类似于一个中转站,最终会把收集的数据再次提交给zabbix_server。

4、zabbix_get

zabbix_get作为zabbix工具,通常运行在zabbix_server或者zabbix_proxy上,用于远程获取客户端信息,通常用于排错。

5、zabbix_sender

zabbix_sender也是zabbix的一个工具,通常运行在zabbix的客户端,用于耗时比较长的检查,其作用是主动发送数据。

6、zabbix_java_gateway

zabbix_java_gateway是zabbix2.0以后引入的新功能,可以用于JAVA方面的设备;但是只能主动获取数据,而不能被动获取数据。

七、zabbix的监控框架

在实际的工作环境中,根据网络环境和监控的规模不同,zabbix一共有三种框架,分别是server_client架构、master_node_client架构和server_proxy_client架构。

1、server_client架构

zabbix最简单的架构,监控设备和被监控设备之间直接相连,zabbix_server 和 zabbix_client 之间直接进行数据交互。

2、zabbix_proxy_client架构

proxy是连接 server 和 client 之间的桥梁,其本身不存放数据,只是将zabbix_agent端发来的数据暂存,然后再提交给server。这种架构一般用于跨机房、跨网络的中型网络架构。

在server_proxy_client架构中,server设备的宕机会导致整个系统瘫痪而无法正常工作。

3、master_node_client架构

master_node_client架构是zabbix最复杂的架构。一般用于跨机房、跨网络、监控设备较多的大型网络架构。与server_proxy_client架构相比,master_node_client架构的主要区别在于node与proxy上.

在master_node_client架构中,每个node可以理解为一个小的server端,在自己的配置文件和数据库,node下游可以直接连接client,也可以再次经过proxy代理后连接client。

在master_node_client架构中,master设备宕机不会影响node节点的正常工作。

7.1 三种架构模式的架构图如下:

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

7.2 每个模块的工作职责:

1、Zabbix_Server:zabbix_server作为核心组件,用来获取agent存活情况和监控数据。所有的配置、统计、操作数据均通过server进行存取到database;

2、Zabbix_Database:用户存储所有的zabbix的配置信息、监控数据的数据库;

3、Zabbix_Web:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,通常与zabbix_server运行在同一台主机上,也可以单独部署在独立的服务器上;

4、Zabbix_Proxy:通常用于分布式监控,代理zabbix_server收集部分被监控的数据并统一发送给server端;(通常大于500台主机需要使用)

5、Zabbix_Agent:部署在被监控主机上,负责收集被监控主机的数据,并发送给servre端或者proxy端;

Zabbix Server、Proxy、Agent都有自己的配置文件以及log文件,重要的参数需要在这里配置,后面会详细说明。

八、zabbix源码安装及部署

一、服务端安装

1.1 安装zabbix5.0储存库(二进制安装方式)

rpm-Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
这时候你查看一下你的库里面会有一个zabbix库

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

1.2 安装zabbix软件包

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
可选配置:如果官方仓库无法连接,可将仓库地址改为清华大学,下边是清华大学仓库地址

vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1 gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-
ZABBIX-A14FE591
 
[zabbix-frontend]
name=Zabbix Official Repository frontend -
$basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/frontend enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-
ZABBIX-A14FE591
 
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo -
$basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/ enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-
ZABBIX-A14FE591
gpgcheck=0
 
[zabbix-non-supported]
name=Zabbix Official Repository non-supported
- $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/ enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY- ZABBIX
gpgcheck=0
 
启用zabbix-frontend存储库
vim /etc/yum.repos.d/zabbix.repo
...
[zabbix-frontend]
name=Zabbix Official Repository frontend -
$basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/frontend 
enabled=1    #启用仓库
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY- ZABBIX-A14FE591

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

1.3 安装zabbix前端软件包

zabbix-web-mysql-scl       用于连接数据库
zabbix-apache-conf-scl    用于连接apache 
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl 

如果缺包加入以下两个库

yum -y install epel-release

yum install centos-release-scl

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
这时候提示我们缺包,我们可以下载另外两个库
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
下载完成后可以继续下载那两个包
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

1.4 安装数据库软件

yum install -y mariadb-server

systemctl start mariadb                #启动数据库

systemctl enable mariadb            #设置开机自启

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

1.5 数据库配置

#进入数据库
mysql
 
创建存储数据的库,并支持中文(库名:zabbix)
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
 
#授权连接数据库的用户,并设置密码(用户名:zabbix)
MariaDB [(none)]> create user zabbix@localhost identified by '123456';
 
#数据库授权
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
 
#查看所有库
MariaDB [(none)]> show databases;
+--------------------+
| Database    |
+--------------------+
| information_schema |
| mysql    |
| performance_schema |
| test    |
| zabbix    |
+--------------------+
5 rows in set (0.01 sec)
 
#进入zabbix库
MariaDB [(none)]> use zabbix; 
Database changed
 
#查看当前库下表
MariaDB [zabbix]> show tables; 
Empty set (0.00 sec)    #空
 
#在Zabbix服务器主机上,导入初始架构和数据。系统将提示您输
入新创建的密码
zcat /usr/share/doc/zabbix-server- mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: password    #输入zabbix用户密码
 
#Zabbix服务器配置数据库
vim /etc/zabbix/zabbix_server.conf
100 DBName=zabbix         #存储监控数据的库名
116 DBUser=zabbix             #连接数据库的用户
124 DBPassword=123456     #设置zabbix用户密码
 
#为Zabbix配置正确的时区
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai    #亚洲/上海 

进入数据库
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
创建存储数据的库,并支持中文(库名:zabbix)

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
授权连接数据库的用户,并设置密码(用户名:zabbix)
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

数据库授权,在本地登录
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
查看所有库

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

进入zabbix数据库并查看当前库下的表

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
在Zabbix服务器主机上,导入初始架构和数据。系统将提示您输入新创建的密码(要先退出数据库)
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

Zabbix服务器配置数据库

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

为Zabbix配置正确的时区
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

1.6 启动并查看

#启动所有服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
 
#设置服务随机自启
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
 
#查看zabbix服务占用端口信息
netstat -anptul | grep zabbix
tcp    LISTEN    0    128    *:10051
#zabbix-server端口
tcp    LISTEN    0    128    *:10050
#zabbix-agent端口 

启动所有服务并设置开机自启
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控查看zabbix服务占用端口信息
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

1.7 zabbix 服务端一键安装脚本

#!/bin/bash
#Zabbix-Server  5.0
 
#安装zabbix源、aliyun YUM源
cd /etc/yum.repos.d/
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i.bak 's#repo.zabbix.com#mirrors.aliyun.com/zabbix#' zabbix.repo
sed -i 's#enabled=0#enabled=1#' zabbix.repo
 
#安装zabbix
yum -y install zabbix-server-mysql zabbix-agent
yum -y install centos-release-scl
yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
 
#安装启动 mariadb数据库
yum -y install mariadb mariadb-server httpd
systemctl start mariadb.service
 
#创建数据库
mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'
mysql -e 'flush privileges;'
 
#导入数据
zcat /usr/share/doc/zabbix-server-mysql-5.0.3/create.sql.gz|mysql -uzabbix -pzabbix -Dzabbix
 
#配置zabbixserver连接mysql
sed -i.bak '/^# DBPassword=*/i DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
 
#添加时区
sed -i.bak '/^; php_value[date.timezone]*/i php_value[date.timezone] = Asia/Shanghai' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
 
#解决中文乱码
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
 
#启动服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
 
#开机自启动
systemctl enable mariadb.service
systemctl enable httpd
systemctl enable zabbix-server
 
#输出信息
echo "浏览器访问 http://`hostname -I|awk '{print $1}'`/zabbix" 

二、zabbix服务参数介绍

zabbix server服务名:zabbix-server 端口:10051

zabbix agent服务名:zabbix-agent端口:10050

zabbix server主配置文件:/etc/zabbix/zabbix_server.conf

zabbix agent主配置文件:/etc/zabbix/zabbix_agentd.conf

zabbix企业微信报警脚本路径:/usr/lib/zabbix/alertscripts

zabbix自定义监控项路径:/etc/zabbix/zabbix_agentd.d zabbix

日志文件路径:/var/log/zabbix/

九、web页面设置

从浏览器上打开Zabbix前端访问URL. 如果你是从packages方式安装Zabbix, URL是:

对应Apache: http:///zabbix

对应Nginx: http://

您看到的第一个Web前端安装向导页面如下:

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
先决条件检查

请确保先满足所有软件先决条件. 这里的Check of pre- requisites必须全部项目OK后才能继续配置,如有提示 fail,去server上检查是否安装这个包或配置是否按上述更改
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

配置数据库连接

输入连接数据库所需的详细信息。zabbix数据库必须先建立好。

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

Zabbix server服务器详情

请输入Zabbix服务器详情,可选的输入Zabbix服务器的名 字, 然而, 如果输入并提交了, Zabbix服务器的名字将会显示在菜单和页面的标题。

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
安装前总结

回顾所有配置
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

完成安装

如果webserver用户对conf/目录有写访问权,配置文件 将自动保存,并且可以立即进入下一步

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
web界面登陆

zabbix前端已经安装完成!超级用户名是Admin,密码是zabbix

为了防止暴力破解和词典攻击,如果发生连续五次尝试登陆失败,Zabbix接口将暂停30秒。

在下次成功登陆后,将会在界面上显示登录尝试失败的IP地址。

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
web界面概览

侧边栏的垂直菜单可访问Zabbix前端各个部分。

菜单默认使用深蓝主题。

菜单可以整个折叠或隐藏:

折叠, 单击Zabbix logo旁边的

隐藏, 单击Zabbix logo旁边的

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
折叠菜单

当菜单折叠为图标时,将鼠标光标放在菜单上,就会重新 显示完整菜单。 需要注意菜单只是重新浮在页面内容上; 要将页面内容移至右侧,您必须单击展开按钮。 如果再次 将鼠标光标置于整个菜单之外,则该菜单将在两秒钟后再 次折叠。

隐藏菜单

即使菜单被完全隐藏,只需要通过鼠标单击汉堡图标即可 获得完整的菜单。需要注意的是它只是重新浮现在页面内 容上;要将页面内容移至右侧,您必须通过单击显示侧边 栏按钮来取消隐藏菜单。

9.1 修改界面的语言

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
更改完成后

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

9.2 修改登录密码(此处我设置为123456)

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

9.3 用户及媒介创建

添加用户

可以在管理(Administration)→用户(Users)下查看用户信息。

点击 创建用户(Create user)以增加用户。

在添加用户的表单中,请确保将新增的用户添加到了一个已有的用户组,比如’Zabbix administrators’。

所有必填项都以红色星标标记。
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

默认情况下,没有为新增的用户定义媒介(media,即通 知发送方式) 。如需要创建,可以到 媒介(Media)标签 下,然后点击 增加(Add)。

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
在这个对话框中,为用户输入一个Email地址。

你可以为媒介指定一个时间活动周期,(访问时间周期说明

页面,查看该字段格式的描述)。默认情况下,媒介一直 是活动的。你也可以通过自定义触发器严重等级来激活媒介,默认所有的等级都保持开启。

选择用户身份(如果需要该用户接收告警通知,需要超级 管理员类型)

9.4 添加权限

默认情况下,新用户没有访问主机的权限。若要授予用户 权限,请单击“组”列中的用户组(在本例中 为"administrators"组)。在“组属性”表单中,转到“权限” 选项卡。
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
此用户是要有只读访问Linux Server组的权限, 设置权限级别,然后添加到权限列表中。 在“用户组属性”表单中, 单击“更新。

重要提醒:在Zabbix中,主机的访问权限被分配给用户组, 而不是单独的用户。权限设置完成了!您可以尝试使用新用户的凭据登录。

9.5 如何修改超级用户 Admin 的密码

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

十、部署被监控的主机

1、修改源

rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.24-1.el7.x86_64.rpm 

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

2、下载agent包并查看

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

3、修改agent配置文件

vim /etc/zabbix/zabbix_agentd.conf
117 Server=192.168.63.20    #指定zabbix server地 址
 
#启动服务并设置服务随机自启
systemctl start zabbix-agent
systemctl enable zabbix-agent 

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

4、zabbix客户端一键安装脚本

#!/bin/bash
#Zabbix-Agent  5.0
 
Zabbix_Service=192.168.63.20
 
#安装zabbix源、aliyun YUM源
cd /etc/yum.repos.d/
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i.bak 's#repo.zabbix.com#mirrors.aliyun.com/zabbix#' zabbix.repo
sed -i 's#enabled=0#enabled=1#' zabbix.repo
 
#安装zabbix
yum -y install zabbix-agent
 
#修改配置文件
sed -i.bak "s/^Server=127.0.0.1/Server=$Zabbix_Service/" /etc/zabbix/zabbix_agentd.conf
sed -i "s/^ServerActive=127.0.0.1/ServerActive=$Zabbix_Service/" /etc/zabbix/zabbix_agentd.conf
sed -i "/^Hostname=/c Hostname=$(echo `hostname`)" /etc/zabbix/zabbix_agentd.conf
 
#开启zabbix-agent服务 10050 端口
systemctl start zabbix-agent
 
#设置开机自启
systemctl enable zabbix-agent
 
#输出提示
echo -e "Now you can use \033[32mnetstat -tnlp\033[0m check \033[33mport:10050\033[0m"

十一、用Zabbix进行操作系统监控

Zabbix默认使用Zabbix agent监控操作系统,其内置的监控项可以满足系统大部分的指标监控,因此,在完成Zabbix agent的安装后,只需在前端页面配置并关联相应的系统监控模板就可以了。如果内置监控项不能满足监控需求,则可以通过system. run[command, ]监控项让Zabbix agent运行想要的命令来获取监控数据。

下面介绍Zabbix对于Linux和Windows的监控。

操作系统相关监控项的选择及优化

▊ Zabbix agent类型的监控项

在Zabbix官方手册中,可以查看Zabbix agent类型的监控项键值说明,其中不仅列出了所有操作系统可使用的键值,还包括参数和注意事项等信息。对于Windows系统,官方还列出了其特有的监控项,如服务、性能计数器等。

同样,手册中也介绍了上述监控项对不同操作系统的使用情况,明确地指出了不同操作系统中可用及不可用的监控项。

▊ 监控系统主/被动模式的选择及优化

建议使用Zabbix默认的操作系统模板监控相应的主机,但是需要一些优化来确保达到最好的监控效果,以及最大限度地减少Zabbix系统性能的开销。

下面介绍Zabbix agent(active)和Zabbix agent监控项类型的区别。

前者又名主动模式监控项类型,后者为被动模式监控项类型。这里的主动和被动都是针对Zabbix agent来说的。主动模式监控项,顾名思义,就是Zabbix agent会主动上报监控数据给Zabbix server。而被动模式监控项就是指Zabbix server根据监控项的更新间隔向Zabbix agent拉取监控数据。两者都有各自的适用范围。

在小型环境中,当主机数量为200~500台时,可以将大部分监控项设置为Zabbix agent(被动模式)类型的监控项,这样,监控数据的更新时间不会受被监控对象的系统时间的影响,更新时间都是跟着Zabbix server走的。

在中大型环境中,建议将大部分监控项设置为Zabbix agent(active)(主动模式)类型的监控项,这样,Zabbix agent会主动上报监控数据给Zabbix server,可以大大减小Zabbix系统的压力。但主动模式监控项的监控数据会受到操作系统的时间影响,当被监控对象的系统时间与Zabbix server的系统时间有偏差时,其含有nodata函数的触发器就会产生误告警。

下面以Linux模板Template OS Linux为例进行优化。

经过多年的实践经验,建议将agent ping、Host local time及所有自动发现的规则项(不是监控项原型里的)都设置为被动模式,这样就不会受到系统时间的影响了。将自动发现的监控项设为被动模式,主要是由于间隔时间太长,导致纳管主机的监控数据很久才出来,这个时候,被动模式的监控项就可以使用“check now”的功能了。

监控频率:与主机性能指标有关的监控项,如CPU、内存等,建议将频率调整为1次/分钟;而一些信息指标监控项,如Host name、Version of zabbix_agent(d) running等,建议将频率设置为1次/小时(或更长);对于模板中的自动发现监控项,如Mounted filesystem discovery、Network interface discovery等,也建议将频率设置为1次/小时;对于一些容量指标监控项,如总内存、总文件系统大小等,也都建议将频率设置为1次/小时。

关闭无用的触发器:在默认的模板中,官方提供了很多触发器,在实际使用中,用户可以根据自身需求开启/关闭。

▊ 告警抑制及触发器中宏变量的巧用

Zabbix提供了很多触发器函数,用户可以通过使用这些函数灵活地制定告警规则。下面就简单介绍一下常用在操作系统监控中的触发器函数。

(1)告警抑制。

告警抑制在监控中起到了很大的作用,可以有效减少误告警。但Zabbix没有直接相关的告警抑制选项,可以通过几个常用的触发器函数来达到抑制告警的目的。

告警抑制需求举例:如果CPU iowait连续5min都大于20%,则告警{Template OS Linux:system.cpu.util[,iowait].min(5m)}>20,表示5min内的最小值大于20%就告警,即只有5min内的数据都大于20%才告警。基本上所有的告警都可以用类似的方法进行抑制。

(2)宏变量。

Zabbix有一个特性,就是模板关联主机之后,主机中继承自模板的监控项和触发器的配置很多都是不能改的,这就导致使用者很难定制化一些告警阈值。但Zabbix提供了宏变量来解决这一问题。下面同样以CPU iowait监控项的触发器举例。

对于{Template OS Linux:system.cpu.util[,iowait].avg(5m)}>20,其中的20为固定的值,现在有一种场景:有20台主机,都套用了Linux的模板,但其中两台主机需要将CPU iowait的阈值调整成10%,其他不变。此时如果设置成固定的20,那么对于特定机器的阈值调整很难做到。解决方案如下:将模板中的触发器写成{Template OS Linux:system.cpu. util[,iowait].avg(5m)}>{KaTeX parse error: Expected 'EOF', got '}' at position 10: CPUIOWAIT}̲,然后在模板的“宏”选项卡中添…CPUIOWAIT}”,值为“20”,如图所示。
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

这是模板宏,此时将那两台需要修改阈值的主机的宏改为10就可以了,因为在主机中,主机宏的优先级是高于模板宏的优先级的。

(3)LLD宏变量。

LLD的宏变量解决了在自动发现中单个监控项宏的问题。例如,有以下场景:一台主机中有很多文件系统,整个文件系统的告警阈值宏变量为85%,此时,有一个文件系统/opt,它的阈值需要设置为95%。为了解决这个问题,Zabbix也提供了LLD宏变量,书写方式为:

  {host:vfs.fs.size[{#FSNAME},pfree].last()}<{$LOW_SPACE_LIMIT:"{#FSNAME}" }

此时,在主机宏中添加“{$LOW_SPACE_LIMIT:"/opt "}”,值为“95”就可以了,如图所示。
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

Linux

本节主要介绍Linux系统中CPU、内存、文件系统相关Zabbix监控指标的使用及优化。

1.CPU使用率

Zabbix默认的CPU使用率相关的监控项共有15个,但是没有可以表示主机总体CPU使用率的监控项。可以通过创建可计算类型的监控项来监控总体的CPU使用率指标,计算逻辑为“100-system.cpu.util[,idle]”,意思是用100减去CPU的空闲值,可以比较准确地表示总体CPU的使用率。

2.内存使用率

Zabbix默认的内存键值vm.memory.size中有很多参数。

total:总物理内存。

free:可用内存。

active:RAM中当前或最近使用的内存。

inactive:未使用内存。

wired:被标记为始终驻留在RAM中的内存,不会移动到磁盘中。

pinned:和wired一样。

anon:与文件无关的内存(不能重新读取)。

exec:可执行代码,通常来自一个(程序)文件。

file:缓存最近访问文件的目录。

buffers:缓存文件系统元数据。

cached:缓存。

shared:可以同时被多个进程访问的内存。

used:active + wired 内存。

pused:active + wired 总内存的百分比。

available:inactive + cached + free memory内存。

pavailable:inactive + cached + free memory占total的百分比。

可以看到,available、pavailable是inactive + cached + free memory的可用内存,而used、pused则不是,更建议给pavailable参数的内存监控项设置告警阈值。

3.文件系统

默认模板中关于文件系统的监控项共有5个。

Free disk space on {#FSNAME}。

Free disk space on {#FSNAME} (percentage)。

Free inodes on {#FSNAME} (percentage)。

Total disk space on {#FSNAME}。

Used disk space on {#FSNAME}。

建议将文件系统的监控项改为3个,分别为总容量、已使用大小、已使用的百分比大小,这样也可以减小Zabbix的压力。

Windows

本节主要介绍Windows系统中服务、性能计数器、事件日志相关Zabbix监控指标的使用及优化。

1.Windows服务的自动发现

在大部分情况下,用户不会去关心所有Windows系统的服务,但默认模板会将所有的服务都发现出来并添加告警。对此,建议将模板中的Windows service discovery关闭,当有主机需要监控服务时,在主机上开启,并添加过滤条件来找到需要监控的服务,如图所示。
【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控
2.Windows性能计数器监控

Zabbix提供了一个很重要的且专属于Windows的监控项键值perf_counter [counter, ],通过这个键值,就可以监控性能计数器中的数据了,如监控项Average disk read queue length的键值为perf_counter[\234(_Total)\1402]。具体使用方法在官方手册中有介绍。

3.Windows event log

在Windows中有一个重要的组件,就是event log。Zabbix同样提供了相应的专属键值来监控它,即eventlog[name, ,]。可以看到,这个键值中有非常多的参数,可以很准确地监控用户需要的日志。

打开Windows中的事件查看器,选择一个事件,如图所示。

【监控】Zabbix:企业级开源监控解决方案,运维,zabbix,开源,监控

可以看到,键值中的参数在图中都有出现。

name:日志名称。

< severity >: 级别

< source >:来源

< eventid >: 事件ID

需要注意的是,上述参数都需要填写英文。

来源

手把手带你用Zabbix进行操作系统监控
zabbix介绍及部署(超详细讲解)文章来源地址https://www.toymoban.com/news/detail-520219.html

到了这里,关于【监控】Zabbix:企业级开源监控解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【完整版】zabbix企业级监控(概念、简单操作、页面优化、监控主机自己、监控linux、监控Win10)

    第三阶段基础 时  间:2023年7月19日 参加人:全班人员 内  容: zabbix企业级监控 目录 一、Zabbix概述 (一)Zabbix简介 (二)Zabbix运行条件: (三)Zabbix功能 (四)优劣势 (五)zabbix的监控原理: (六)扩展:zabbix的监控架构 (七)Grafana简介: (八)Zabbix特点 二、zabb

    2024年02月02日
    浏览(35)
  • zabbix企业级监控(监控第二台linux服务器安装部署)接上篇单台监控文章操作

    zabbix企业级监控监控linux主机 目录 【agent端配置】(监控第二台linux服务器) 1、源码安装zabbix(解包、编译、配置、安装) 2、改agent配置文件 3、启动服务 图形操作: yum -y install libxml2-devel libcurl-devel pcre-devel ntpdate  //安装依赖包 ntpdate s1a.time.edu.cn //联网时间同步清华大学源

    2024年02月17日
    浏览(34)
  • Amazon SageMaker:搭建企业级AI模型的完整解决方案

    人工智能仍处于科技浪潮之巅… 随着智能芯片、大数据和云计算的发展,深度学习技术得到进一步升级。以 ChatGPT 为首的AIGC技术大放异彩:AI绘画、AI作曲、AI编程、AI写作…一系列AI产品赋能生产;边缘计算、联邦学习、多智能体等技术逐渐从学术界走向工业界,提高生产效

    2023年04月15日
    浏览(45)
  • 云计算与大数据平台的企业级数据集成解决方案

    随着互联网的普及和人们对数据的需求不断增加,企业们需要更加高效、智能化地处理和分析大量的数据。云计算和大数据平台为企业提供了一种新的解决方案,可以帮助企业更高效地处理和分析大量数据。 云计算是一种基于互联网的计算资源共享和分配模式,可以让企业在

    2024年04月25日
    浏览(42)
  • Cloud Computing HCIA-③华为企业级虚拟化解决方案

    FusionCompute 是华为的一款虚拟化产品,它属于华为 FusionSphere虚拟化套件 中的重要一员。此外还有 FusionCloud:华为云产品 , FusionAccess:华为桌面云 , FusionInsight:华为大数据产品等等 。 FusionCompute包括两个重要组件: 1.CNA(computing node agent):计算机节点代理 2.VRM(virtual resource managem

    2024年02月15日
    浏览(48)
  • AnyLink:一款基于ocserv的 SSL VPN 企业级解决方案

    AnyLink 是一款 SSL VPN 软件,它可以兼容 AnyConnect 以满足对企业内网的接入。另外你也可以像 x-ui 那样分配用户组以及规则,总之在 Clash 纷纷删库后使用三层VPN当梯子确实是个退而求其次的方案。本文以CentOS 7为例,简单介绍 AnyLink 的部署及使用技巧。 CentOS 7 服务器(AnyLink 服

    2024年03月19日
    浏览(48)
  • Vue.js 与 ViewDesign:为企业级 Web 应用提供高效可靠的解决方案

    在当今瞬息万变的商业环境中,企业需要高效、稳定且易于维护的 Web 应用程序来支持其日常运营和业务发展。幸运的是,Vue.js 和 ViewDesign 的强大组合为开发人员提供了构建复杂企业级 Web 应用程序的完美解决方案。 Vue.js 是一个开源的渐进式 JavaScript 框架,专为构建用户界面而生

    2024年03月11日
    浏览(37)
  • yudao-ui-admin-vben管理后台:基于最新vben 框架的企业级管理后台应用解决方案

    摘要: 本文主要介绍了yudao-ui-admin-vben管理后台,一个基于最新vben 框架的企业级管理后台应用解决方案。文章首先概述了yudao-ui-admin-vben管理后台的技术栈和功能特点,然后深入探讨了其架构设计、核心模块实现以及性能优化等方面的技术细节。最后,文章总结了yudao-ui-admi

    2024年04月27日
    浏览(30)
  • Linux 企业级夜莺监控分析工具远程访问

    夜莺监控是一款开源云原生观测分析工具,采用 All-in-One 的设计理念,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力。夜莺于 2020 年 3 月 20 日,在 github 上发布 v1 版本,已累计迭代 100 多个版本。 本地

    2024年02月08日
    浏览(34)
  • 企业级开源路由系统VyOS-构建和使用

    VyOS是一个基于Linux的企业级路由器操作系统,被许多公司和个人用来驱动物理网络设备,如路由器和防火墙。它有一个统一的命令行界面来管理其所有的网络相关功能(和Juniper Junos操作很像)。VyOS使用Debian GNU/Linux作为其基础,并添加了FRR,一个强大的开源路由套件,以及开

    2024年04月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包