Zabbix6.0监控入门

news2024/12/26 22:24:05

1. Zabbix 监控系统入门简介

  • Zabbix 是一个基于 WEB 界面的提供分布式系统监控的企业级的开源解决方案,Zabbix 能监视各种网络参数,保证服务器系统的安全稳定的运行,并提供灵活的通知机制以让 SA 快速定位并解决存在的各种问题。Zabbix 分布式监控系统的优点如下:

    1. 支持自动发现服务器和网络设备;
    2. 支持底层自动发现;
    3. 分布式的监控体系和集中式的 WEB 管理;
    4. 支持主动监控和被动监控模式;
    5. 服务器端支持多种操作系统:Linux、Solaris、HP-UX、AIX、FreeBSD、OpenBSD、MAC 等;
    6. Agent 客户端支持多种操作系统:Linux、Solaris、HP-UX、AIX、FreeBSD、Windows 等;
    7. 基于 SNMP、IPMI 接口方式、Agent 方式;
    8. 安全的用户认证及权限配置;
    9. 基于 WEB 的管理方法,支持自由的自定义事件和邮件、短信发送;
    10. 高水平的业务视图监控资源,支持日志审计,资产管理等功能;
    11. 支持高水平 API 二次开发、脚本监控、自 Key 定义、自动化运维整合调用。

2. Zabbix 监控组件及流程

  • Zabbix 监控组件如图所示,主要由五大组件,分别是 Zabbix server端、Zabbix Proxy、Agent 客户端,其中 Zabbix Server 端包括:WEB GUI、Database、Zabbix_Server

在这里插入图片描述

  • Zabbix 监控系统具体监控系统流程如图所示:

在这里插入图片描述

  • Zabbix 监控完整流程包括:Agentd 安装在被监控的主机上,Agent 负责定期收集客户端本地各项数据,并发送到 Zabbix Server 端,Zabbix Server 收到数据,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。

  • Zabbix 监控某个具体的项目,该项目会设置一个触发器阀值,当被监控的指标超过该触发器设定的阀值,会进行一些必要的动作,动作包括:邮件、微信报警或者执行命令等操作。如下为 Zabbix 完整监控系统,各个部分负责的工作:

    1. Zabbix Server:负责接收 agent 发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
    2. Database Storage:专用于存储所有配置信息,以及存储由 Zabbix 收集到的数据;
    3. Web interfaceZabbixGUI 接口,通常与 Server 运行在同一台主机上;
    4. Proxy:常用于分布监控环境中,代理 Server 收集部分被监控端的监控数据并统一发往 Server 端;
    5. Zabbix Agent:部署在被监控主机上,负责收集本地数据并发往 Server端或 Proxy 端;
  • Zabbix 监控部署在系统中,会包含常见的四个程序:zabbix_server 、zabbix_get、zabbix_agentd 、zabbix_proxy、zabbix_sender 等。四个程序启动后分别对应四个进程,如下为每个进程的功能:

    1. Zabbix_server:Zabbix 服务端守护进程,其中 zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终均是提交给Zabbix_Server
    2. Zabbix_Agentd:客户端守护进程,负责收集客户端数据,例如收集 cpu负载、内存、硬盘使用情况等;
    3. Zabbix_getZabbix 数据获取工具,单独使用的命令,通常在 server或者 proxy 端执行获取远程客户端信息的命令;
    4. Zabbix_senderzabbix 数据发送工具,用于发送数据给 server 或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致 zabbix超时。于是我们在脚本执行完毕之后,使用 sender 主动提交数据;
    5. Zabbix_proxyzabbix 分布式代理守护进程,分布式监控架构需要部署 Zabbix_Proxy

3. Zabbix 监控方式及数据采集

  • Zabbix 分布式监控系统监控客户端的方式常见有三种,分别是 Agent 方式、SNMP、IPMI 方式,三种方式特点如下:

    1. AgentZabbix 可以基于自身 Zabbix_agent 客户端插件监控 OS 的状态,例如 CPU、内存、硬盘、网卡、文件等;
    2. SNMPZabbix 可以通过简单网络管理协议(Simple Network Management Protocol,SNMP)协议监控网络设备或者 windows 主机等,通过设定 SNMP 的参数将相关监控数据传送至服务器端,交换机、防火墙等网络设备一般都支持 SNMP 协议;
    3. IPMI:智能平台管理接口(Intelligent Platform Management Interface,IPMI)即主要应用于设备的物理特性,包括:温度、电压、电扇工作状态、电源供应以及机箱入侵等。IPMI 最大的优势在于无论OS 在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控;
  • Zabbix 监控客户端分为主动监控与被动监控,主被动模式以客户端为参照,Zabbix 监控客户端默认为被动模式,可以修改为主动模式,只需要在客户端配置文件中添加。可以关闭被动模式的方法:在配置文件中加入 StartAgents=0,即为关闭被动模式。主被动监控模式区别如下:

    1. Zabbix 主动模式:Agent 主动请求 server 获取主动的监控项列表,并主动将监控项内需要检测的数据提交给 server/proxyzabbix agent首先向 ServerActive 配置的 IP 请求获取 active items,获取并提交active tiems 数据值 server 或者 proxy
    2. Zabbix 被动模式:Serveragent 请求获取监控项的数据,agent 返回数据,Server打开一个TCP连接,Server发送请求agent.pingAgent接收到请求并且响应,Server 处理接收到的数据。

4. Zabbix 监控平台概念

  • Zabbix 监控系统包括很多监控概念,掌握 Zabbix 监控概念能对 Zabbix 监控快速的理解,如下为 Zabbix 常用术语及解。
常用术语解释
主机(host)被监控的网络设备,可以写 IP 或者 DNS
主机组(host group)主机组用于管理主机,可以批量设置权限
监控项(item)具体监控项,items 值由独立的 keys 进行识别
触发器(trigger)为某个 items 设置触发器,达到触发器会执行action 动作
事件(event)例如达到某个触发器,称之为一个事件
动作(action)对于特定事件事先定义的处理方法,默认可以发送信息及发送命令
报警升级(escalation)发送警报或执行远程命令的自定义方案,如隔 5分钟发送一次警报,共发送 5 次等
媒介(media)发送通知的方式,可以支持 Mail、SMS、Scripts等
通知(notification)通过设置的媒介向用户发送的有关某事件的信息
远程命令达到触发器,可以在被监控端执行命令
模板(template)可以快速监控被监控端,模块包含:item、trigger、graph、screen、application
web 场景(web scennario)用于检测 web 站点可用性,监控 HTTP 关键词
web 前端(frontend)Zabbix 的 web 接口
图形(graph)监控图像
屏幕(screens)屏幕显示
幻灯(slide show)幻灯显示

5. Zabbix6.0 监控平台部署

IP地址服务
192.168.10.10nginx、php-fpm、mysql、zabbix-server
192.168.10.20zabbix-agent

5.1. 关闭防火墙

#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

5.2. 部署 Nginx + PHP 环境并测试

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

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

yum  -y install  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 -y install 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配置文件
rm -rf /etc/nginx/conf.d/default.conf
vim  /etc/nginx/conf.d/zabbix.conf
   server {
      listen       80;
      server_name  sxy.zabbix.com;
      root        /usr/share/nginx/html;
      location / {
        index  index.php index.html index.htm;
      }
      location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
      }
    }


#修改 php 配置
vim  /etc/php-fpm.d/www.conf
user = nginx
group = nginx
listen = 0.0.0.0:9000

vim /etc/php.ini
max_execution_time = 300		
max_input_time = 600			
post_max_size = 80M				
date.timezone = Asia/Shanghai	

#创建测试文件,启动服务
vim /usr/share/nginx/html/index.php
<?php
phpinfo();
?>
systemctl start nginx   php-fpm

5.2.1. 测试访问

  • 修改C:\Windows\System32\drivers\etc\hosts
  • 添加以下内容:192.168.10.10 sxy.zabbix.com
  • 打开浏览器访问:http://sxy.zabbix.com/index.php

在这里插入图片描述

5.3. 安装数据库并配置

#安装mysql
yum  -y  install  https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm
yum -y install mysql-community-server
#启动mysql
systemctl start mysqld
#查询mysql的默认密码为:ueFgj11+,k1l
grep "pass" /var/log/mysqld.log 
2024-04-08T08:30:06.031992Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ueFgj11+,k1l
#修改密码和密码策略
mysql -uroot -p    ---回车后,输入ueFgj11+,k1l
#修改密码
alter user 'root'@'localhost' identified by '123456Qaz.';
#修改密码策略
vim  /etc/my.cnf
添加以下内容
validate_password.policy=0
validate_password.length=4
#重启mysql
systemctl  restart  mysqld
#创建用户和数据库并授权
create database zabbix charset utf8;
create user 'zabbix'@'localhost' identified with mysql_native_password by 'zabbix';
grant all on zabbix.* to 'zabbix'@'localhost';

5.4. 安装 Zabbix 相关软件包

#下载zabbix6.0源码包
cd   /data
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.28.tar.gz
tar  -xf  zabbix-6.0.28.tar.gz
#安装依赖包
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 -s /sbin/nologin -M zabbix
#编译安装
cd /data/zabbix-6.0.28/
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent  --with-mysql  --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make && make install
ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/

#导入zabbix初始数据

mysql -uroot -p123456Qaz. zabbix <  /data/zabbix-6.0.28/database/mysql/schema.sql
mysql -uroot -p123456Qaz. zabbix <  /data/zabbix-6.0.28/database/mysql/images.sql
mysql -uroot -p123456Qaz. zabbix <  /data/zabbix-6.0.28/database/mysql/data.sql

#修改配置文件指定数据库:
cp -rp  /usr/local/zabbix/etc/zabbix_server.conf  /usr/local/zabbix/etc/zabbix_server.conf.bak
vim   /usr/local/zabbix/etc/zabbix_server.conf 
 DBHost=localhost
 DBName=zabbix
 DBUser=zabbix
 DBPassword=zabbix
 #准备 systemctl 服务管理文件
 cat > /usr/lib/systemd/system/zabbix-server.service << EOF
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service

[Service]
Type=simple
ExecStart=/usr/local/zabbix/sbin/zabbix_server -f
User=zabbix

[Install]
WantedBy=multi-user.target
EOF

#启动zabbix_server服务
systemctl start zabbix-server.service
#查询是否启动成功
netstat -ntlp | grep zabbix
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      1669/zabbix_server  
tcp6       0      0 :::10051                :::*                    LISTEN      1669/zabbix_server

5.5. 迁移zabbix的前端代码至/usr/share/nginx/html

#删除测试文件
rm -rf /usr/share/nginx/html/*
#把zabbix前端代码移到/usr/share/nginx/html/
mv /data/zabbix-6.0.28/ui/*  /usr/share/nginx/html/
#修改前端代码所属组所属主
chown -R nginx. /usr/share/nginx/html/
#重启nginx
systemctl  restart nginx

5.6. 打开浏览器访问sxy.zabbix.com

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 解决zabbix显示图像下边文字乱码情况:
cd /usr/share/nginx/html/assets/fonts/
备份默认语言
mv  DejaVuSans.ttf   DejaVuSans.ttf.bak
上传新的语言
进入windows C:\Windows\Fonts目录下下载自己想要的语言传到服务器上并改成系统默认语言的名字
 mv  SIMSUN.TTC   DejaVuSans.ttf

6. 添加监控主机

#安装zabbix-agent
yum -y install zabbix6.0-agent.x86_64
#修改配置文件
vim /etc/zabbix_agentd.conf
server=192.168.10.10      #指定了Zabbix代理将要与之通信的Zabbix服务器的主机名或IP地址
ServerActive=192.168.10.10     #它用于主动模式下,即Zabbix代理会主动向Zabbix服务器发送数据
Hostname=10.20     #Hostname的设置则帮助Zabbix服务器识别来自哪个设备的监控数据

#启动服务
systemctl start zabbix-agent.service

7. 快速入门

7.1. 登录和配置用户

7.1.1. 登录

在这里插入图片描述

  • 这是Zabbix的“欢迎”界面。输入用户名 Admin 以及密码 zabbix 以作为 Zabbix超级用户登录。将授予访问配置和管理菜单的权限

7.1.2. 防止暴力破解

  1. 为了防止暴力破解和词典攻击,如果发生连续五次尝试登录失败,Zabbix界面将暂停30秒。
  2. 在下次成功登录后,将会在界面上尝试登录失败的IP地址。

7.1.3. 创建用户

  • 可以在管理 → 用户 下查看用户信息
    在这里插入图片描述
  • 点击 创建用户添加一个新用户
    在创建的用户表单中,请确保将你的用户添加到现有的 用户组, 例如 ‘Zabbix administrators’.
    在这里插入图片描述
  • 权限选项卡有一个必填字段角色。该角色决定用户可以查看哪些前端元素,以及允许用户执行哪些操作。点击选择,然后从列表中选择一个角色。例如,选择Admin role以允许访问除管理之外的所有Zabbix前端部分。稍后,你可以修改权限或创建更多用户角色。选择角色后,权限将显示在同一选项卡中:
    在这里插入图片描述

7.2. 新建主机

  • Zabbix中的主机是一个你想要监控的网络实体(物理的,或者虚拟的)。Zabbix中,对于主机的定义非常灵活。它可以是一台物理服务器,一个网络交换机,一个虚拟机或者某些应用程序。

7.2.1. 添加主机

  • Zabbix中,可以通过配置 → 主机或者监测 → 主机,查看已配置的主机信息。默认已有一个名为’Zabbix server’的预先定义好的主机。但我们需要学习如何添加另一个。
  • 点击创建主机来新增一台主机。将会展示出一个主机配置表。
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 其他操作可以查询我的zabbix40的相关文档,里面有自定义监控项等操作,这里就不掩饰了,基本操作一样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1602196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

强化学习(四)基于蒙特卡罗算法 Monte-Calo 的求解

文章目录 1. 免模型学习的强化学习问题2. 利用蒙特卡洛法求解最优价值函数2.1 策略评估&#xff08;预测&#xff09;2.2 策略迭代&#xff08;控制&#xff09; 在《强化学习&#xff08;三&#xff09;基于动态规划 Dynamic Programming 的求解方法》的文末中提到&#xff0c…

rust学习(BorrowMut异常)

现象&#xff1a; 编译没有问题&#xff0c;运行时出现&#xff1a; 代码&#xff1a; pub fn do_test() {let v Arc::new(RefCell::new(100));let v1 v.try_borrow_mut().unwrap();let v2 v.try_borrow_mut().unwrap(); } 原因&#xff1a; 一个cell貌似不能同时被借用…

书生·浦语大模型实战营之OpenXLab 部署 InternLM2 实践指南

书生浦语大模型实战营之OpenXLab 部署 InternLM2 实践指南 本文档将手把手教您如何在 OpenXLab 部署一个 InternLM2-7B chat 的应用 目录 资料介绍书生浦语 InternLM介绍OpenXLab浦源平台介绍部署 InternLM2-Chat-7B demo模型准备上传模型编写代码部署应用 资料介绍 书生浦语…

Matlab求矩阵的逆,3种常用方法总结

几种求逆矩阵的方法总结&#xff0c;以Matlab语言为例 *0* 引言*1* 简单描述函数实现*2* 方法调用计算对比 0 引言 最近在使用函数库求解逆矩阵的时候发现同一个矩阵使用不同的语言、不同的求解方法会产生不同精度的结果&#xff0c;特别是阶数很高的方阵&#xff0c;一些库中的…

基于LabVIEW的CAN通信系统开发案例

基于LabVIEW的CAN通信系统开发案例 介绍了基于LabVIEW开发的CAN通信系统&#xff0c;该系统主要用于汽车行业的数据监控与分析。通过对CAN通信协议的有效应用&#xff0c;实现了车辆控制系统的高效信息交换与实时数据处理&#xff0c;从而提升了车辆性能的检测与优化能力。 项…

【MySQL数据库】 (篇一 ) 让你快速上手——新手速通版

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、如何起步&#xff1f;&#x1f3c3;‍1.创建数据库&#xff1a;2.选择数据库&#xff1a;3.删除数据库&#xff1a;4.创建表&#xff1a;5.删除表&#xff…

贝锐蒲公英自研异地组网新技术:远程视频监控,流畅度、清晰度大幅提升

在远程视频监控过程中&#xff0c;若遇到网络带宽若遇到网络波动&#xff0c;如&#xff1a;丢包、高延迟等&#xff0c;往往会导致视频流传输时发生数据丢失或延迟现象&#xff0c;从而严重影响视频画面的清晰度和流畅度。 比如&#xff1a;在公司总部集中监看远程矿山或户外水…

华为ensp中静态路由和默认路由的原理及配置

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月17日17点37分 默认路由 [Router] ip route-static <目的网络> <目的网络掩码> <下一跳地址>默认路由的作用是将无法匹配路由表中其他路由表项的…

通过WSL在阿里云上部署Django项目MySQL

前端用Vue&#xff0c;后端用Django&#xff0c; nginx&#xff0c;Mysql 参照&#xff1a; 通过WSL在阿里云上部署Vue项目_阿里云 wsl-CSDN博客 阿里云重登录 采用Ubuntu系统&#xff0c; apt update #检查是否已经安装 mysql --version systemctl status mysql apt insta…

react v18 项目初始化

按照以下命令进行傻瓜式操作即可&#xff1a; 全局安装脚手架工具&#xff1a; npm install -g create-react-app创建项目my-react-app&#xff1a; create-react-app my-react-app安装 antd: yarn add antd安装 react-router-dom&#xff1a; yarn add react-router-dom启动项…

【模拟】Leetcode Z 字形变换

题目讲解 6. Z 字形变换 算法讲解 class Solution { public:string convert(string s, int numRows) {if(numRows 1)return s;string ret;int step 2 * numRows - 2;int n s.size();//记录第一行for(int i 0; i < n; i step){ret s[i];}//处理接下来的行for(int i …

C++练级之路——类和对象(中二)

1、运算符重载 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊函数名的函数&#xff0c;也是具有其返回值类型&#xff0c;函数名字以及参数列表&#xff0c;其返回值类型和参数列表与普通的函数类似。 函数名字为&#xff1a;关键字operator后面接需…

【前端面试3+1】14 路由跳转的方式、如何取消已经发送的ajax请求、如何按顺序发起三个ajax请求并按顺序返回、【两个数组的并集】

一、路由跳转的几种方式 1、页面跳转 使用超链接 <a> 标签&#xff1a;通过在页面中定义超链接&#xff0c;用户点击超链接后会跳转到指定的URL页面。使用重定向&#xff1a;服务器端可以通过设置HTTP响应头中的Location字段&#xff0c;将用户重定向到指定的URL页面。使…

MySQL Prepared语句(Prepared Statements)

在数据库应用中&#xff0c;很多SQL语句都会重复执行很多次&#xff0c;每次执行可能只是where条件中的变量值不同&#xff0c;但MySQL依然会解析SQL语法并生成执行计划。对于这类情况&#xff0c;可以利用prepared语句来避免重复解析SQL的开销。 文章目录 一、prepared语句优…

职业技能鉴定服务中心(新闻系统+证书查询系统)

后端采用ThinkPHP8&#xff0c;最新tp框架 前端采用divcss布局 数据库采用MySQL 采用三种技术实现新闻系统和证书查询系统 源码&#xff1a;git clone https://gitee.com/3539949703/certificate-website.git 效果图如下&#xff1a;

2024年国内可用最强AI工具软件应用排行榜TOP8——优点和缺点

中国在2024年持续推动人工智能&#xff08;AI&#xff09;发展&#xff0c;受到政策、技术和市场的三重驱动。诞生了一批人工智能&#xff08;AI&#xff09;领域的新力军。我们通过对国内AI的逐一评测&#xff0c;从各个AI处理结果优略的角度&#xff0c;再结合网络上广大AI用…

bootstrap-select 搜索过滤输入中文问题,前2个字母输入转成空格

bootstrap是v3.3.7的 v1.6.3版本的bootstrap-select,注释以下2行 //that.$menu.find(li).filter(:visible:not(.divider)).eq(0).addClass(active).find(a).focus(); // $(this).focus();

学习在Debian系统上安装Shadowsocks教程

学习在Debian系统上安装Shadowsocks教程 安装shadowsocks-libev及其所需的依赖启动Shadowsocks服务&#xff1a;如果你想要通过代理本地流量&#xff0c;你可以使用ss-local&#xff1a;启动并设置ss-local&#xff1a;查看状态本地连接 安装shadowsocks-libev及其所需的依赖 …

mybatisPlus数据字段填充

这里用到的时实体类User import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import lombok.…

【Linux系统编程】第四弹---基本指令(二)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、echo指令 2、cat指令 3、more指令 4、less指令 4、head指令 5、tail指令 6、时间相关的指令 7、cal指令 8、find指…