• 分布式监控平台——Zabbix


    市场上常用的监控软件:

    • 传统运维:zabbix、 Nagios
    • 云原生环境: Prometheus (go语言开发的)

    一、zabbix概述

    作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。

    利用一个优秀的监控软件,我们可以:

    • 通过一个友好的界面进行浏览整个网站所有的服务器状态
    • 可以在Web 前端方便的查看监控数据
    • 可以回溯寻找事故发生时系统的问题和报警情况

    1.1 zabbix是什么?

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

     1.2 zabbix监控原理

    zabbix agent安装在被监控的主机上,zabbix agent 负责定期收集客户端本地各项数据,并发送至zabbix server 端,zabbix server收到数据后,将数据存储到数据库中,用户基于zabbix WEB可以看到数据在前端展现图像。

    当zabbix 监控某个具体的项目,该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、 restart、 install 等)。

    用户可以基于zabbix-web可以在WEBUI界面中查看展现的数据图像,以及进行相关的配置管理用户还可以在WEBUI界面中设置监控项的触发器,如被监控的数据指标超过触发器设定的阈值,会进行发送通知信息或者一些应急操作指令。

    1.3 zabbix常见的五个程序

    zabbix监控部署在系统中,包含常见的五个程序: zabbix server、 zabbix agent、 zabbix proxy、zabbix get、zabbix sender 等。

    (1) zabbix server: zabbix 服务端守护进程,其中zabbix_agent、 zabbix_ get、zabbix_sender、 zabbix_proxy的数据最终都提交给zabbix server;

    (2) zabbix agent: 客户端守护进程,负责收集客户端数据,例如:收集CPU负载、内存、硬盘使用情况等;

    (3)zabbi xproxy: zabbix分布式代理守护进程,通常大于500台主机,需要进行分布式监控架构部署;

    (4)zabbix get: zabbix 数据接收工具,单独使用的命令,通常在server 或者proxy端执行获取远程客户端信息的命令;

    (5)zabbix sender: zabbix 数据发送工具,用户发送数据给server 或proxy端,通常用户耗时比较长的检查。

    1.4 zabbix端口号

    • zabbix服务端zabbix_server 默认使用10051 端口。
    • 客户端zabbix_agent2 默认使用10050 端口。

    二、安装zabbix 5.0

    建议使用5.0版本/4.6版本/4.8 版本,不使用6.0。

    实验环境:

    节点IP安装服务
    zabbix-server192.168.6.170zabbix-server-mysql、zabbix-agent
    zabbix-agent192.168.6.187zabbix-agent2

    2.1 部署 zabbix 服务端(端口号10051)

    2.1 部署 zabbix 服务端(端口号10051)

    zabbix-server内存至少2G,推荐4G。

    zabbix 服务端同时安装zabbix-server-mysql和zabbix-agent,因为服务端所在主机自己也要被监控。

    1.  ##1、关闭防火墙,修改主机名
    2.  systemctl disable --now firewalld
    3.  setenforce 0
    4.  hostnamectl set-hostname zbx-server
    5.  su
    6.  ​
    7.  ##2、获取 zabbix 的下载源
    8.  rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    9.  ​
    10.  ##3、更换 zabbix.repo 为阿里源,安装zabbix-server-mysql和zabbix-agent
    11.  cd /etc/yum.repos.d
    12.  sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
    13.  ​
    14.  yum clean all && yum makecache
    15.  ​
    16.  yum install -y zabbix-server-mysql zabbix-agent
    17.  ​
    18.  #安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4
    19. 版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本
    20. 的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /etc/opt/rh 目录下。
    21.  yum install -y centos-release-scl
    22.  ​
    23.  ##4、修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
    24.  vim /etc/yum.repos.d/zabbix.repo
    25.  ......
    26.  [zabbix-frontend]
    27.  ......
    28.  enabled=1          #开启安装源
    29.  ......
    30.  ​
    31.  yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl   #安装zabbix前端环境到 scl 环境下
    32.  ​
    33.  ##5、安装 zabbix 所需的数据库
    34.  yum install -y mariadb-server mariadb
    35.  ​
    36.  systemctl enable --now mariadb    #将数据库设置为开机自启,并立即启动
    37.  ​
    38.  mysql_secure_installation         #初始化数据库,并设置密码,如 abc123
    39.  ​
    40.  ##6、添加数据库用户,以及 zabbix 所需的数据库信息
    41.  mysql -u root -pabc123      #登录数据库
    42.  ​
    43.  CREATE DATABASE zabbix character set utf8 collate utf8_bin;    #设置utf8字符集
    44.  GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';  #创建并授权用户,使得zabbix可以访问数据库
    45.  flush privileges;   #刷新权限
    46.  ​
    47.  #查询已安装的zabbix-server-mysql的文件列表,找到 sql.gz 文件的位置
    48.  rpm -ql zabbix-server-mysql
    49.  ​
    50.  #导入数据库信息,使用zcat将sql.gz文件导入数据库
    51.  zcat /usr/share/doc/zabbix-server-mysql-5.0.29/create.sql.gz | mysql -uroot -pabc123 zabbix      #导入sql.gz文件
    52.  ​
    53.  ##7、修改 zabbix-server 配置文件,修改数据库的密码
    54.  vim /etc/zabbix/zabbix_server.conf
    55.  ......
    56.  DBPassword=zabbix #124行,取消注释,指定 zabbix 数据库的密码,DBPassword的值是数据库授权zabbix用户的密码。
    57.  ​
    58.  ##8、修改 zabbix 的 php 配置文件
    59.  vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
    60.  ......
    61.  php_value[date.timezone] = Asia/Shanghai #25行,取消注释,修改时区
    62.  ​
    63.  ##9、启动 zabbix 相关服务
    64.  systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
    65.  systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
    66.  netstat -natp | grep zabbix
    67.  ​
    68.  ##10、浏览器访问
    69.  浏览器访问:http://192.168.142.10/zabbix
    70.  点击下一步,设置数据库的密码 zabbix
    71.  安装完成后,默认的登录账号和密码为:Admin/zabbix
    72.  设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。
    73.  ​
    74.  ##11、解决 zabbix-server Web页面中文乱码问题
    75.  yum install -y wqy-microhei-fonts
    76.  ​
    77.  \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

     1.关闭防火墙

     2.获取zabbix的下载源

     3、更换 zabbix.repo 为阿里源,安装zabbix-server-mysql、zabbix-agent和SCL

     

    4、修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下。

    修改/etc/yum.repos.d/zabbix.repo文件:

     5、安装zabbix所需的数据库

     

     

     6、添加数据库用户,以及 zabbix 所需的数据库信息

     

     7、修改 zabbix-server 配置文件/etc/zabbix/zabbix_server.conf,修改数据库的密码。

    8、修改 zabbix 的 php 配置文件,/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

     9、启动 zabbix 相关服务

     10、浏览器访问http://192.168.6.170/zabbix

     

     

     

     

     

    11、解决 zabbix-server Web页面中文乱码问题

     

     

    2.2 部署zabbix 客户端(端口号10050)

    zabbix 5.0版本采用golang 语言开发的新版本客户端agent2 。

    zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。

    1.  ##1、关闭防火墙,修改主机名
    2.  systemctl disable --now firewalld
    3.  setenforce 0
    4.  hostnamectl set-hostname zbx-agent01
    5.  su
    6.  ​
    7.  ##2、服务端和客户端都配置时间同步,使用阿里云的时钟源
    8.  yum install -y ntpdate
    9.  ntpdate -u ntp.aliyun.com
    10.  ​
    11.  ##3、客户端配置时区,与服务器保持一致
    12.  mv /etc/localtime{,.bak}
    13.  ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    14.  ​
    15.  date
    16.  ​
    17.  ##4、设置 zabbix 的下载源,安装 zabbix-agent2
    18.  rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    19.  ​
    20.  cd /etc/yum.repos.d
    21.  sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo  
    22.  ​
    23.  yum install -y zabbix-agent2  
    24.  ​
    25.  ##5、修改 agent2 配置文件
    26.  vim /etc/zabbix/zabbix_agent2.conf
    27.  ......
    28.  Server=192.168.142.6.170 #80行,指定 zabbix 服务端的 IP 地址
    29.  ServerActive=192.168.6.170 #120行,指定 zabbix 服务端的 IP 地址
    30.  Hostname=zbx-agent01 #131行,指定当前 zabbix 客户端的主机名
    31.  ​
    32.  ##6、启动 zabbix-agent2
    33.  systemctl start zabbix-agent2
    34.  systemctl enable zabbix-agent2
    35.  ​
    36.  netstat -natp | grep zabbix
    37. tcp6 0 0 :::10050 :::* LISTEN 1988/zabbix_agent2
    38.  ​
    39.  ​
    40.  ##7、在服务端验证 zabbix-agent2 的连通性
    41.  yum install -y zabbix-get #服务端,安装 zabbix 主动获取数据的命令,get指令
    42.  ​
    43.  zabbix_get -s '192.168.6.187' -p 10050 -k 'agent.ping'
    44.  1              #服务端对客户端进行连通性测试,返回1表示连通
    45.  ​
    46.  zabbix_get -s '192.168.6.187' -p 10050 -k 'system.hostname'
    47.  zbx-agent01     #返回客户端的主机名说明正常连通

    1、关闭防火墙,修改主机名

     2、服务端和客户端都配置时间同步
     3、客户端配置时区,与服务器保持一致

     4、设置 zabbix 的下载源,安装 zabbix-agent2

     5、修改 agent2 配置文件,/etc/zabbix/zabbix_agent2.conf

     

    6、启动 zabbix-agent2 

     

    7. 将客户端加入服务端的监控主机中

    在 Web 页面中添加 agent 主机。

    1.  1.点击左边菜单栏【配置】中的【主机】,点击【创建主机】
    2.  【主机名称】设置成 zbx-agent01
    3.  【可见的名称】设置成 zbx-agent01-192.168.6.187
    4.  【群组】选择 Linux server
    5.  【Interfaces】的【IP地址】设置成 192.168.6.187
    6.  ​
    7.  2.再点击上方菜单栏【模板】
    8.  【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent
    9.  点击 【添加】

    1、点击左边菜单栏【配置】中的【主机】,点击【创建主机】

     

     

     概述:

    zabbix工作原理(工作流程):

    zbbix-agent客户端,部署在被监控的对象主机上,负责定期去收集监控数据,发送给

    zabbix-server收到数据后会将数据存储在数据库中。

    用户可以基于zabbix-web ui界面中查看展现的数据图像,以及进行相关的配置管理 用户还可以在WEBUI界面中设置监控项的触发器,如被监控的数据指标超过触发器设定的阈值,会进行发送通知信息或者一些应急操作指令。

    这里agent收集数据分为主动和被动两种模式:

    主动模式:agent请求server获取主动监控列表,,并主动将监控项内需要检测的数据提交给server/proxy

    被动模式:server向agent请求获取监控项的数据,agent返回数据。

  • 相关阅读:
    c语言——扫雷游戏(简易版)
    基于springboot+vue.js+uniapp的房屋租赁系统附带文章源码部署视频讲解等
    JSP的特点与工作流程
    C和指针 第10章 结构和联合 10.1 结构基础知识
    Nuxt - 超详细环境搭建及创建项目整体流程(create-nuxt-app)
    Win10 环境下 VS2022 暴力编译PP-OCRv4
    分享从零开始学习网络设备配置(华为ensp版本)------任务1.1 安装eNSP模拟器
    找不到msvcp140.dll的解决方法,以及msvcp140.dll丢失的原因
    Java 最常见的 208 道面试题(含答案)之一
    http和https的区别?
  • 原文地址:https://blog.csdn.net/weixin_59629968/article/details/127875468