Zabbix

文章目录

一,Zabbix

1.什么是zabbix

zabbix官方网站地址:https://www.zabbix.com/

Zabbix是一款功能强大的监控软件,能够监控各种网络参数以及服务器、虚拟机、应用程序、服务、数据库、网站和云服务的健康状况和完整性。它采用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的警报,从而确保对服务器问题做出快速反应。

Zabbix基于存储的数据提供详尽的报告和数据可视化功能,使其成为容量规划的理想选择。作为运维人员,掌握使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等技能至关重要,这些监控数据有助于了解网站上线发布的结果和健康状态。

使用Zabbix监控功能,可以通过一个友好的界面浏览整个网站所有服务器的状态在Web前端方便地查看监控数据回溯寻找事故发生时系统的问题和报警情况,从而快速定位并解决问题。

2.Zabbix简介

  • zabbix 是一个使用 网页Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  • zabbix 能监视各种网络参数,确保服务器系统的安全运营;提供灵活的通知机制以让系统管理员快速定位或者解决存在的各种问题。
  • zabbix 由zabbix server 与可选组件 zabbix agent组成。通过 C/S 模式采集数据,通过 B/S 模式在 网页Web 端展示和配置。
  • zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。
  • zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。

3.构成

zabbix5个主要组件

3.1web页面

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

3.2数据库

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

3.3Server

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

3.4proxy

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

3.5Agent

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

4.Zabbix监控项

Zabbix是一款功能强大的开源监控工具,它支持监控各种系统平台,包括Linux和Windows等主流操作系统,同时也能够借助SNMP或SSH协议监控路由交换设备等网络设备。

4.1硬件监控

  • Zabbix IPMI Interface:通过IPMI接口进行监控,可以获取被监控对象的物理特征,如电压、温度、风扇状态、电源状态等。这种方式适用于需要深入了解硬件健康状况的场景。

4.2系统监控

  • Zabbix Agent Interface:通过专用的代理程序进行监控,与master/agent模型相似。如果被监控对象支持对应的agent,这种方式是首选,因为它可以提供更详细和实时的系统信息,如CPU使用率、内存使用率、网络性能等。

4.3Java监控

  • Zabbix JMX Interface:JMX(Java Management Extensions)是Java管理扩展,用于监控JVM虚拟机。Zabbix通过JMX接口可以监控Java应用程序的性能指标,如Tomcat服务、Elasticsearch、ZooKeeper等。为了从Java程序中获取数据,Zabbix需要使用Java Gateway作为代理。

4.4网络设备监控

  • Zabbix SNMP Interface:SNMP(Simple Network Management Protocol)简单网络管理协议,是监控网络设备(如路由器、交换机)的常用协议。由于这些硬件通常不支持安装agent,但大多支持SNMP协议,因此Zabbix可以通过SNMP协议与被监控对象进行通信,获取网络设备的状态、流量、接口状态等信息。

4.5应用服务监控

  • Zabbix Agent UserParameter:对于特定的应用服务,Zabbix允许用户自定义监控项(UserParameter),通过执行特定的命令或脚本来获取服务状态或性能指标。这种方式非常灵活,可以根据实际需求进行定制。

4.6MySQL数据库监控

  • Percona Monitoring Plugins:虽然Zabbix本身提供了对MySQL数据库的监控能力,但使用Percona Monitoring Plugins可以进一步增强监控功能。这些插件提供了更丰富的MySQL监控指标,如连接数、查询时间、复制状态等。

4.7URL监控

  • Zabbix Web 监控:Zabbix还支持对Web服务的URL进行监控,通过模拟HTTP请求来检查Web服务的可用性和响应时间。这对于确保Web应用程序的稳定性和用户体验至关重要。

5.常用术语

主机(Host)

  • 要监控的设备,可以通过IP地址或主机名(必须可解析)来指定。

主机组(Hostgroup)

  • 主机的逻辑容器,用于组织和分类主机。
  • 主机组也包含模板,模板是预定义的监控项、触发器和图形的集合,可用于多个主机。
  • 主机组通常在给用户或用户组指派监控权限时使用。

监控项(Item)

  • 一个特定监控指标的数据来源,如内存大小、CPU使用率或服务的运行状态等。
  • 每个监控项都由一个key来唯一标识,数据来源于被监控对象。

触发器(Trigger)

  • 一个表达式,用于评估监控项的值是否在合理的范围内。
  • 当监控项的值超出触发器定义的范围时,触发器会被触发,通常表示一个故障或警告状态。
  • 如果值再次回到正常范围内,触发器状态会相应更新为正常。

事件(Event)

  • 触发器触发时产生的特定事件。
  • 事件是Zabbix系统中用于表示状态变化(如故障、警告、恢复等)的基本单位。

动作(Action)

  • 根据配置,Zabbix对触发器触发的特定事件进行处理的具体措施。
  • 这些措施可以包括执行某个脚本、向管理员邮箱发送邮件等。

报警升级(Escalation)

  • 发送警报或执行远程命令的自定义方案。
  • 当事件未得到及时响应时,可以通过报警升级机制逐步升级通知的紧急程度和范围。

媒介(Media)

  • 发送通知(告警)的手段,如微信、邮件、钉钉等。
  • 媒介定义了通知如何被发送到用户。

通知(Notification)

  • 通过指定的媒介,向用户发送的有关事件的信息。
  • 当触发器被触发时,根据配置的媒介和动作,系统会自动发送通知给用户。

远程命令(Remote Command)

  • 运维人员提前写好的命令,可以让被监控主机在触发事件后执行。
  • 这提供了一种在被监控对象出现问题时自动执行修复或诊断命令的机制。

模板(Template)

  • 用于快速定义被监控主机的预设条目集合,通常包括监控项、触发器、应用等。
  • 模板可以直接链接至某个主机,从而简化监控配置过程,确保监控策略的一致性和可重用性。

web场景(web scennario)

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

前端(frontend)

  • zabbix的web接口。

6.zabbix 6.0版本的特点

6.1Zabbix Server高可用性与集群配置

  • 原生支持HA集群:Zabbix 6.0 LTS原生支持高可用性(HA)集群配置,允许用户轻松定义一个或多个备用节点,以防止硬件故障或计划维护期导致的停机。这一特性显著增强了Zabbix服务的稳定性和可靠性。
  • 实时监控集群状态:系统能够实时监控Zabbix server集群节点的状态,确保在发生节点故障时能够迅速切换到备用节点,保障监控服务的连续性和数据的完整性。
  • 简化配置流程:用户无需依赖外部工具即可将Zabbix server配置为HA集群模式,简化了配置流程,降低了运维成本。

6.2增强的Kubernetes监控功能

  • 自动发现与监控:Zabbix 6.0 LTS新增了对Kubernetes节点和Pods的自动发现和监控能力,能够实时、准确地收集这些资源的性能指标和状态信息,为运维人员提供全面的系统健康状况视图。
  • 无代理监控支持无代理方式采集Kubernetes Pods和节点的信息,通过直接访问Kubernetes API获取数据,减少了因代理软件故障导致的监控盲点,提高了监控效率和准确性。
  • 主机高水平信息获取:除了对Pods的监控外,还能够获取Kubernetes节点主机的高水平信息,包括硬件资源使用情况、操作系统性能指标等,为运维人员提供深度洞察,帮助优化集群性能和稳定性。

7.工作原理

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

7.1zabbix的数据收集模式

(1)主动模式

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

(2)被动模式

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

zabbix的主动和被动模式是以zabbix客户端主动被动发送监控数据决定的

8.进程

zabbix有6个工作进程,分别是zabbix_agentdzabbix_getzabbix_proxyzabbix_senderzabbix_serverzabbix_gateway

8.1进程作用

(1)zabbix_agentd

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

(2)zabbix_server

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

(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客户端,通常用于耗时比较长的检查,作用是主动发送数据。用户发送数据给 server 或 proxy 端

(6)zabbix_java_gateway

zabbix_java_gateway是zabbix2.0之后引入的新功能,可以使用支持JAVA的设备,但是其只能主动获取数据,而不能被动获取数据。

9.架构

三种zabbix监控架构

server-client

zabbix最简单的架构,监控设备和被监控设备之间直接相连,zabbix server和zabbix client之间直接进行数据交互。适用于简单网络中,比如局域网内设备较少的监控环境

server-proxy-client

proxy是连接server和client之间的桥梁,其本身并不存放数据,只是将zabbix agent端发送来的数据暂存,然后再提交给server。这种架构一般用于跨机房、跨网络的中型网络架构。在server-proxy-client架构架构中,server设备的宕机会导致整个系统无法正常工作。设备数量多的情况也可以使用

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结点的正常工作。

模块****作用

  • ZabbixServer:ZabbixServer为核心组件,用来获取agent存活状况及监控数据。所有的配置、统,计、操作数据均通过Server进行存取到database
  • ZabbixDatabase:用户存储所有zabbix的配置信息、监控数据的数据库
  • ZabbixWeb:Zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信,息,通常与zabbixServer运行在同一台主机上,也可以单独部署在独立的服务器上
  • ZabbixProxy:常用于分布监控环境中,代理zabbixServer收集部分被监控的监控数据并统一发往,Server端;(通常大于500台主机需要使用)
  • ZabbixAgent:部署在被监控主机上,负责收集被监控主机的数据,并发往Server端或Proxy端

zabbixserver、proxy、agent都有自己的配置文件以及log文件,重要的参数需要在这里配置

二,配置Zabbix

zabbix6.0在centos7中yum无法安装,服务端的zabbix只能编译安装,客户端zabbix用yum

Zabbix 的服务端和客户端端口分别是:

Zabbix 服务端(Server)端口:10051 - 用于接收来自 Zabbix Agent 和其他客户端发送的数据。

Zabbix 客户端(Agent)端口:10050 - 用于 Zabbix Agent 接收来自 Zabbix Server 的监控请求。

这些端口是 Zabbix 的默认端口,也可以在配置文件中进行修改。

1.配置Nginx + PHP

zabbix-server

关闭防火墙并且开机自启
systemctl disable --now firewalld

临时关闭强制功能
setenforce 0

设置zabbix服务端主机名
hostnamectl set-hostname zbx-server

配置Nginx
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
yum install -y nginx

安装php
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install -y \
php72w \
php72w-cli \
php72w-common \
php72w-devel \
php72w-embedded \
php72w-gd \
php72w-mbstring \
php72w-pdo \
php72w-xml \
php72w-fpm \
php72w-mysqlnd \
php72w-opcache \
php72w-ldap \
php72w-bcmath

修改nginx 配置
vim /etc/nginx/conf.d/zbx.conf
server {
  listen 80;
  #server_name zbx.abc.com;
  server_name 192.168.88.50;
  root /var/www/zbx;
  
  location / {
    index index.php;
  }
  
  location ~ \.php$ {
    root /var/www/zbx;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/zbx$fastcgi_script_name;
    include fastcgi_params;
  }
}

修改 php 配置
vim /etc/php-fpm.d/www.conf
user = nginx                  # 8行
group = nginx                 # 10行
 
vim /etc/php.ini
max_execution_time = 300		  # 368行
max_input_time = 600			    # 378行
post_max_size = 80M				    # 656行
date.timezone = Asia/Shanghai	# 877行

创建目录和测试文件,启动服务
mkdir -p /var/www/zbx
vim /var/www/zbx/index.php
<?php
phpinfo();
?>

systemctl enable --now nginx php-fpm

2. 配置MySQL或Mariadb

MySQL 5.7 或 Mariadb 10.5 及以 上的版本

zabbix-server

cat > /etc/yum.repos.d/mariadb.repo << EOF
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
EOF

开启和开机启动
yum install -y mariadb-server mariadb
systemctl enable --now mariadb

初始化数据库
mysql_secure_installation
回车
n
Y 
设置root密码,123456
再次输入密码123456
Y
Y
Y
Y

进入mysql数据库
mysql -u root -p123456

创建数据库并指定字符集
在/etc/my.cnf设置过就不需要操作这个
CREATE DATABASE zabbix character set utf8 collate utf8_bin;

创建 zabbix 数据库用户并授权
GRANT all ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';

创建 zabbix 数据库用户并授权登录不包含本机登录
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';

刷新
flush privileges;

向数据库导入 zabbix 数据
把zabbix-6.0.13.tar.gz上传到 /opt 目录下

解压
cd /opt
tar xf zabbix-6.0.13.tar.gz

查看
ls /opt/zabbix-6.0.13/database/mysql

按顺序导入数据库
cd /opt/zabbix-6.0.13/database/mysql
mysql -uroot -p123456 zabbix < schema.sql
mysql -uroot -p123456 zabbix < images.sql
mysql -uroot -p123456 zabbix < data.sql
mysql -uroot -p123456 zabbix < double.sql
mysql -uroot -p123456 zabbix < history_pk_prepare.sql

3.编译安装 zabbix Server

安装依赖包,创建 zabbix 用户
yum install -y \
mysql-devel \
pcre-devel \
openssl-devel \
zlib-devel \
libxml2-devel \
net-snmp-devel \
net-snmp \
libssh2-devel \
OpenIPMI-devel \
libevent-devel \
openldap-devel \
libcurl-devel \
fping \
gcc \
gcc-c++ \
make

useradd -m -s /sbin/nologin zabbix

编译安装
cd /opt/zabbix-6.0.13/
export CFLAGS="-std=gnu99" 
#用于在当前的终端环境中设置编译器的标志 CFLAGS,使得编译器在编译 C 代码时使用 GNU C99 标准

./configure \
--sysconfdir=/etc/zabbix/ \
--enable-server \
--with-mysql \
--with-net-snmp \
--with-libxml2 \
--with-ssh2 \
--with-openipmi \
--with-zlib \
--with-libpthread \
--with-libevent \
--with-openssl \
--with-ldap \
--with-libcurl \
--with-libpcre

make install

检查版本
zabbix_server --version

修改 zabbix server 配置文件,改数据库的密码
vim /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix_server.log # 38行,改zabbix日志路径
DBPassword=zabbix                  # 123行,取消注释设置zabbix数据库的密码

创建日志文件,并修改属组和属主权限
touch /var/log/zabbix_server.log
chown zabbix:zabbix /var/log/zabbix_server.log

配置systemctl 服务管理文件
vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
[Install]
WantedBy=multi-user.target

重新加载
systemctl daemon-reload
启动并开机自启
systemctl enable --now zabbix-server

netstat -lntp | grep 10051 #zabbix_server   默认监听 10051 端口

4.配置Web 前端,进行访问

拷贝
cp -r /opt/zabbix-6.0.13/ui/* /var/www/zbx #设置的user和group为nginx

递归改属主属组为nginx
chown -R nginx:nginx /var/www/zbx

浏览器访问:http://zbx.abc.com/ 或 http://192.168.88.50

Default language选择 Chinese(zh_CN),点击下一步

密码 输入 zabbix,点击下一步

Zabbix主机名称 输入 Zabbix-监控;默认时区 选择 Asia/Shanghai,点击下一步

安装完成后,默认的登录账号和密码为:Admin/zabbix

5.zabbix 客户端,配置 zabbix 服务端自我监控
zbx-server 192.168.88.50

rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

abbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2
yum install -y zabbix-agent2
systemctl enable --now zabbix-agent2

检查zabbix客户端是否有
netstat -lntp | grep 10050 #客户端 zabbix_agent2 默认监听 10050 端口

6.zabbix-server Web页面中文乱码

yum install -y wqy-microhei-fonts
\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /var/www/zbx/assets/fonts/DejaVuSans.ttf
前面的反斜杠 `\` 是为了**转义**某些特殊字符

刷新一下

三,加zabbix客户端

客户端192.168.88.60P配置

禁用防火墙,使其在系统启动时不会自动启动防火墙
systemctl disable --now firewalld

临时关闭强功能
setenforce 0

给设备改主机名
hostnamectl set-hostname zbx-agent01

客户端192.168.88.60,服务端192.168.88.50都要配置

服务端和客户端都配置时间同步
yum install -y ntpdate    #先用rpm -qa|grep ntp检查下有没有,没有就下载
ntpdate -u ntp.aliyun.com

服务端和客户端都设置 hosts 解析
cat > /etc/hosts << EOF
192.168.88.50 zbx-server
192.168.88.60 zbx-agent01
EOF

仅客户端192.168.88.60配置


配置zabbix 的下载源,安装 zabbix-agent2
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-agent2

配置agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.88.50     #80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.88.50 #133行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01     #144行,指定当前 zabbix 客户端的主机名

启动 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -natp | grep zabbix

测试验证服务端zabbix-agent2通不通

zbx-server 192.168.88.50

测试验证服务端zabbix-agent2通不通   zbx-server 192.168.88.50
yum install -y zabbix-get #安装zabbix 主动获取数据的命令
zabbix_get -s '192.168.88.60' -p 10050 -k 'agent.ping'
#zbx-agent01  

zabbix_get -s '192.168.88.60' -p 10050 -k 'system.hostname'
zbx-agent01
#常用的键值
agent.ping #服务端与客户端是否连通,返回1表示
可达,返回非表示不可达
system.hostname #系统主机名
agent.hostname #客户端主机名
net.if.in[if,<mode>] #网络接口进入的流量统计,if表示网卡名称,带<>的参数表示可以省略
net.if.out[if,<mode>] #网络接口流出的流量统计
proc.num[<name>,<user>,<state>,<cmdline>,<zone>] #进程数
net.tcp.port[<ip>,port] #检查是否能建立tcp连接到指定端口,返回0表示不能连接,返回1表示可以连接

Web 页面中添加 agent 主机
点击左边配置中的主机,点击创建主机
主机名称输入 zbx-agent01
可见的名称输入 zbx-agent01-192.168.88.60
模板搜索 Linux ,选择 Linux by Zabbix agent
群组选择 Linux servers
Interfaces点击添加 客户端,IP地址输入 192.168.88.60
监控模板下载地址
https://share.zabbix.com/
https://monitoringartist.github.io/zabbix-searcher/
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates

刷新一下状态就好了

四,自定义监控

假设自定义监控客户端服务器登录人数,超过三个用户就报警

1.在客户端建自定义key

1.1配置zabbix监控对象,定义key

客户端zbx-agent01 192.168.88.60

vim /etc/zabbix/zabbix_agent2.conf
#将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
Include=/etc/zabbix/zabbix_agent2.d/*.conf  #281行

#自定义监控项的格式
Format: UserParameter=<key>,<shell command>

key:服务器添加监控时需用到的key值
shell command:监控脚本的绝对路径

cd /etc/zabbix/zabbix_agent2.d/

vim UserParameter_login.conf
UserParameter=login.user,who|wc -l

systemctl restart zabbix-agent2
重启

1.2服务端验证

zbx-server 192.168.88.50

zabbix_get -s '192.168.88.60' -p 10050 -k 'login.user'
数字  #显示数字和客户端只打开几个就是几个,假设是3个客户端就显示3

2.web页面建立自定义监控模版

2.1建模版

点击左边菜单栏配置中的模板,点击创建模板

模板名称设置成 Template Login User(自定义)

可见的名称设置成 Template Login User(自定义)

群组选择 Template

描述可自定义

点击添加,在链接的模板中搜索Template Login User

2.2建监控项

点击上面菜单栏监控项,点击创建监控项

名称设置成 Number of login users(自定义)

键值设置成 login.user,键值必须要与自定义的监控项配置文件中设置的保持一致

更新间隔设置成 10s

历史数据保留时长Storage period 30d 保留时间可自定义设置

点击 添加

2.3建触发器

触发器是**把监控项得到监控的值和触发器预设的值进行对比,判断是否要报警**

点击上边菜单栏触发器,点击创建触发器

名称设置成 Number of login users is greater than 3

严重性设置成 一般严重

表达式点击添加,监控项点击选择 Number of login users,功能选择 last(),结果选择 > 3,点击插入

点击 添加

进入方式和监控项一样

2.4建图形

点击上方菜单栏图形,点击创建图形

名称设置成 Number of login users

宽、高采用默认值,自己定也行

监控项点击添加勾选相关监控项 Number of login users,功能选择 最大,其它可保持默认值

点击 添加

2.5主机与模板关联

一台主机可关联多个模版

点击左边菜单栏配置中的主机,选要关联的主机

点击菜单栏模板,在Link new tamplates搜索 login,选择 Template Login User,点击更新

点击监测中的主机,点击你关联主机的图形,可查看到相关的监控项指标

2.6设置邮件报警功能

(1)点击菜单栏管理,报警媒介类型,点击创建媒体类型

名称设置成 qq_Email

SMTP服务器设置成 smtp.qq.com

SMTP服务器端口设置成 25

SMTP HELO设置成 qq.com

SMTP电邮设置成 自己的邮箱地址

认证选择 用户名和密码

用户名称设置成自己的邮箱地址

密码可登录QQ邮箱页面,点击设置,账户,生成授权码,通过短信获取授权码

描述可自定义

点击菜单栏Message templates,点击添加,Message type选择 问题,点击更新

点击添加,测试功能

主题:【{TRIGGER.STATUS}】- 服务器{HOST.NAME}的告警

告警时间:{EVENT.DATE} {EVENT.TIME}

告警信息:{TRIGGER.NAME}

告警等级:{TRIGGER.SEVERITY}

告警项目:{ITEM.NAME}

告警值:{TRIGGER.VALUE}

当前状态:{ITEM.VALUE}

事件ID:{EVENT.ID}

中文设置

{EVENT.TIME}: 事件发生的时间。

{EVENT.DATE}: 事件发生的日期。

{EVENT.NAME}: 问题的名称或描述。

{HOST.NAME}: 主机的名称。

{EVENT.SEVERITY}: 事件的严重程度。

{EVENT.OPDATA}: 事件的运行数据或其他相关信息。

{EVENT.ID}: 原始问题的ID。

{TRIGGER.URL}: 可能是指向更多信息或解决方案的链接。

主题:Problem: {EVENT.NAME}事件 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:

{TRIGGER.NAME}故障!

内容:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

(2)点击菜单栏User settings,报警媒介,点添加

类型选择 qq_Email

收件人设置成 另外一个邮箱

当启用时设置成 1-7,00:00-24:00

点击 添加

点更新

(3)点击左边菜单栏配置,动作,Trigger actions

选择相对应的动作名称点击进入,点击添加

类型选择 触发器,操作者选择 等于,触发器点击选择Nunber of login users is greater than 3

点击添加

勾选已启动

点击更新

(4)测试邮件报警

增加测试客户端的用户登录数超过触发器预设的值,查看监测,仪表盘,确认报警

五,zabbix的自动注册自动发现

zabbix服务端去主动的查找发现的客户端,把客户端登记在服务端上,如果客户端主机数量多的情况系zabbix服务端注册登记需要的时间就长,负载大

1.配置自动发现

客户端zbx-agent02

关闭防火墙
systemctl disable --now firewalld

临时关闭增强功能
setenforce 0

改主机名
hostnamectl set-hostname zbx-agent02

下zabbix
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

把zabbix改成阿里源
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

下载zabbix-agent2
yum install -y zabbix-agent2

配置agent2
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.88.50       #80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.88.50 #133行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent02       #144行,指定当前 zabbix 客户端的主机名

启动开机启动 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2

重启zabbix-agent2服务
systemctl restart zabbix-agent2.service

确定客户端成功
systemctl is-active zabbix-agent2.service

1.1.删除zabbix网页客户端主机

点击菜单栏配置,主机,勾上客户端主机,删除

1.2.配置/etc/hosts解析

zbx-server192.168.88.50 zbx-agent02192.168.88.70都要配

cat > /etc/hosts << EOF
192.168.88.50 zbx-server
192.168.88.70 zbx-agent02
EOF

2.zabbix网页配自动发现

agent2 是被动模式,被服务端发现

点击菜单栏配置中的自动发现,点击创建发现规则

名称设置成 mynetwork

IP范围设置成 192.168.88.1-254

更新间隔设置成 30s

检查点击添加,检查类型选择 Zabbix 客户端,端口范围设置成10050,键值设置成 system.uname

设备唯一性准则选择 IP地址

主机名称选择 DNS名称

可见的名称选择 主机名称

勾选 已启用,点击更新

点击左边菜单栏,动作,上边菜单选择 Discovery actions

勾选Auto discovery. Linux servers.,点击启用

点击左边菜单栏配置,主机刷新,等待一段时间后即可刷新出自动发现的客户端主机

服务端查看 zabbix 日志 tail -f /var/log/zabbix_server.log

验证

3.zabbix自动注册

agent02是主动注册,zabbix agent2 会主动上报自己的信息,发给 zabbix server。缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。

4.配置/etc/hsosts解析

先在zabbix菜单栏点配置,发现动作,勾上发现规则,点禁用

点击左边菜单栏配置中的主机,勾选原有的客户端主机,点删除

zbx-server 192.168.88.50 zbx-agent02 192.168.88.70 都要配

cat > /etc/hosts << EOF   
192.168.88.50 zbx-server
192.168.88.70 zbx-agent02
EOF

5.配置zbx-agent2

zbx-agent02 192.168.88.70

vim /etc/zabbix/zabbix_agent2.conf
HostnameItem=system.hostname #152行,取消注释

egrep -v "^#|^$" /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.88.50
ServerActive=192.168.88.50
Hostname=zbx-agent02
HostnameItem=system.hostname #配置项HostnameItem用于指定Zabbix Agent在注册时自动获取主机名的方式。system.hostname表示使用系统的主机名作为Zabbix Agent的主机名
Include=/etc/zabbix/zabbix_agent2.d/*.conf #281行 配置项用于包含目录中的所有.conf文件。
zabbix_agent2.d目录下的配置文件会被自动加载,适合用于拆分和管理多个配置文件
ControlSocket=/run/zabbix/agent.sock #345行 该配置项用于指定Zabbix Agent的控制套接字文件路径。
agent.sock用于与Agent进行控制命令的交互(如启动、停止、重新加载配置等)

systemctl restart zabbix-agent2

6.zabbix网页面配置自动注册

点击左边菜单栏配 动作,上方菜单选择自动注册动作,点击创建动作

名称设置成

点击 添加,类型选择主机名称,操作者选择 包含,值设置成 zbx-agent

点击上方菜单栏操作,点击添加,操作类型选择 添加主机,点击 Add

再点击添加,操作类型 选择添加到主机群组,主机群组选择 Linux servers,点击 Add

再点击添加,操作类型 选择 与模板关联,模板搜索 Linux,选择 Linux by Zabbix

agent,点击 Add

点击下方的添加

验证

六,配置zabbix代理

zabbix代理可以代替zabbix服务端检索zabbix客户端数据,再把数据发给zabbix服务端,分担了zabbix服务端的压力。代理分为集中式,分布式监控。分布式监控可以分担客户端的集中式压力,能解决多个机房之间的网络延时

1.配置代理服务器

关闭防火墙
systemctl disable --now firewalld

临时关闭增强功能
setenforce 0

改主机名
hostnamectl set-hostname zbx-proxy

安装 zabbix-proxy
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy

配置数据库, MySQL 5.7 或 Mariadb 10.5 及以上版本
配置 Mariadb yum源
cat > /etc/yum.repos.d/mariadb.repo << EOF
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
EOF

yum install -y mariadb-server mariadb

systemctl enable --now mariadb

初始化数据库
mysql_secure_installation
回车
n
Y
设置root密码122456
再次输入密码123456
Y
Y
Y
Y

mysql -u root -p123456

创建数据库并指定字符集
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;

#创建 zabbix 数据库用户并授权
GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
刷新
FLUSH PRIVILEGES;
退出
exit

导入数据库信息
rpm -ql zabbix-sql-scripts #查询 sql 文件的位置

将查看的命令输入到zabbix_proxy库
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -p123456 zabbix_proxy

修改 zabbix-proxy 配置
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.88.50 #32行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-proxy   #42行,指定当前 zabbix 代理服务器的主机名
DBPassword=zabbix    #194行,指定当前数据库 zabbix 用户的密码

启动 zabbix-proxy
systemctl start zabbix-proxy
systemctl enable zabbix-proxy

配置 hosts 解析
zbx-server 192.168.88.50,
zbx-agent01 192.168.88.60,
zbx-agent02 192.168.88.70,
zbx-proxy 192.168.88.80,
都要配置,各自不用加自己的ip

vim /etc/hosts
192.168.88.50 zbx-server
192.168.88.60 zbx-agent01
192.168.88.70 zbx-agent02
192.168.88.80 zbx-proxy

2.zabbix页面配置 agent 代理

点击左边菜单栏 配置 动作,勾选自动注册规则,点击 禁用

点击左边菜单栏 配置 主机,勾选原有的客户端主机,点击 删除

点击左边菜单栏 管理 agent代理程序,点击创建代理

agent代理程序名称输入 zbx-proxy

系统代理程序模式选择 主动式

代理地址输入 192.168.88.80

点击添加

3. 在agent上配置使用 proxy

3.1agent客户端配置agent2

zbx-agent02 192.168.88.70

vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.88.80       #80行,指定 zabbix 代理服务器的 IP 地址
ServerActive=192.168.88.80 #133行,指定 zabbix 代理服务器的 IP 地址
systemctl restart zabbix-agent2.service

3.2在zabbix网页上配置

点击左边菜单栏 配置 主机,点击创建主机

主机名称输入 zbx-agent02

可见的名称输入 zbx-agent02

模板搜索 Linux ,选择 Linux by Zabbix agent

群组选择 Linux server

Interfaces选择 客户端,IP地址输入 192.168.88.70,端口输入 10050

由agent代理程序监测选择 zbx-proxy

点击添加

3.3客户端代理端重启服务

systemctl restart zabbix-agent2   #客户端

systemctl restart zabbix-proxy    #代理端


tail -f /var/log/zabbix/zabbix_proxy.log

在zabbix网页左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态

七,配置zabbix高可用集群

zabbix官方的高可用仅针对 Zabbix Server 部分,数据库部分和前端需要自行采用各自领域的高可用方案。

1.zabbix服务端主节点

zabbix的ha默认关闭,HA 部分的配置在配置文件的最下面:High availability cluster parameters
vim /etc/zabbix/zabbix_server.conf
DBHost=192.168.88.50            #87行,指定使用的数据库地址
DBName=zabbix                   #99行,指定数据库名称
DBUser=zabbix                   #115行,指定数据库用户 zabbix
DBPassword=zabbix               #123行,指定当前数据库 zabbix 用户的密码
HANodeName=zbx-server01         #974行,设置为当前节点主机名
NodeAddress=192.168.88.50:10051 #984行,设置为节点IP

systemctl restart zabbix-server.service

设置主节点数据库授权远程登录权限
mysql -uroot -p123456
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;

2.zabbix服务端备节点

备节点 Zabbix Server 配置
vim /etc/zabbix/zabbix_server.conf
DBHost=192.168.10.19
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
HANodeName=zbx-server02
NodeAddress=192.168.88.40:10051

systemctl restart zabbix-server.service

3.客户端配置

vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.88.50,192.168.88.40
ServerActive=192.168.88.50;192.168.88.40
注意:ServerActive 的连接符是‘;’

八,监控windows

1.下载window客户端

zabbix客户端下载网址

https://cdn.zabbix.com/zabbix

https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.13/zabbix_agent2-6.0.13- windows-amd64-openssl.msi

2.安装客户端

windows端

双击软件包,点击next

Host name:DESKTOP-C97AD62 填写windows本机host

Zabbix server IP/DNS:192.168.88.50 #填写zabbix server端的IP

Agent listen port:10050 agent的端口,默认10050,可不做修改

Server or Proxy for active checks:192.168.88.50 #填写zabbix server端的IP

勾选 Add agent location to the PATH #添加环境变量

PSK 是安全加密 无需勾选

3.zabbix网页添加主机,关联模板

点击左边菜单栏配置 主机,点击创建主机

主机名称输入 windows-5

可见的名称输入 windows-192.168.88.5

模板搜索 windows ,选择 Windows by Zabbix agent

群组输入 windows ,选择 windows server(新)

Interfaces点击添加 客户端,IP地址输入192.168.88.5,端口输入 10050

重启一下zabbix服务端状态会变绿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值