• Zabbix


    系列文章目录

    `

    一、zabbix

    1.zabbix 是什么

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

    2.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。

    3.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实验

    1.部署 zabbix 服务端

    //关闭 selinux 与防火墙

    systemctl disable --now firewalld
    setenforce 0
    hostnamectl set-hostname zbx-server
    
    • 1
    • 2
    • 3

    部署 Nginx + PHP 环境并测试
    安装 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    2. 安装 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
    
    • 1
    • 2
    • 3
    • 4

    3.修改 nginx 配置

    vim /etc/nginx/conf.d/default.conf
    server {
      listen 80;
      server_name zbx.kgc.com;
      root /var/www/zbx;
      
      location / {
        index index.php;
      }
      
      location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/zbx$fastcgi_script_name;
        include fastcgi_params;
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    4.修改 php 配置

    vim /etc/php-fpm.d/www.conf
    user = nginx
    group = nginx
     
    vim /etc/php.ini
    max_execution_time = 300		# 368行
    max_input_time = 600			# 378行
    post_max_size = 80M				# 656行
    date.timezone = Asia/Shanghai	# 877行
    ```![在这里插入图片描述](https://img-blog.csdnimg.cn/ce8de25a8b9343a8b4afec6e347f0d21.png)
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/6b68888a7f734b35a953ab3c6b8360c5.png)
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/ea309ccf979f46e8aff5d3649bc47507.png)
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/c3245f27f9a44a768a3467eeefeef4d1.png)
    
    **创建目录和测试文件**
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    mkdir -p /var/www/zbx
    vim /var/www/zbx/index.php

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2d54196561a445be82609d32ed74b031.png)
    
    
    • 1
    • 2

    启动服务
    systemctl enable --now nginx php-fpm

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/fd91c0033e074d738ececc7baf38a040.png)
    
    
    • 1
    • 2

    测试访问(hosts解析)
    修改 C:\Windows\System32\drivers\etc\hosts
    192.168.169.10 zbx.kgc.com
    浏览器访问:http://zbx.kgc.com/index.php
    ``
    在这里插入图片描述

    部署数据库,要求 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述
    在这里插入图片描述
    初始化数据库

    mysql_secure_installation
    分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Y
    mysql -u root -pabc123
    
    • 1
    • 2
    • 3
    创建数据库并指定字符集
    CREATE DATABASE zabbix character set utf8 collate utf8_bin;
     
    #创建 zabbix 数据库用户并授权
    GRANT all ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
    GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
    flush privileges;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    向数据库导入 zabbix 数据
    上传源码包 zabbix-6.0.13.tar.gz 到 /opt 目录
    cd /opt
    tar xf zabbix-6.0.13.tar.gz
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    按照顺利导入数据库
    cd /opt/zabbix-6.0.13/database/mysql
    mysql -uroot -pabc123 zabbix < schema.sql
    mysql -uroot -pabc123 zabbix < images.sql
    mysql -uroot -pabc123 zabbix < data.sql
    mysql -uroot -pabc123 zabbix < double.sql
    mysql -uroot -pabc123 zabbix < history_pk_prepare.sql
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    编译安装 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 -s /sbin/nologin -M zabbix

    
    
    • 1

    #编译安装
    cd /opt/zabbix-6.0.13/
    ./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
    ``

    **检查版本**
    
    
    • 1
    • 2

    zabbix_server --version
    zabbix_server (Zabbix) 6.0.13

    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/b100c6cd3b7e432280b9f91f8328db78.png)
    
    修改 zabbix server 配置文件,修改数据库的密码
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    vim /etc/zabbix/zabbix_server.conf

    LogFile=/var/log/zabbix_server.log # 38行,指定 zabbix 日志路径,需要去/var/log下面创建zabbix_server.log文件,并且给权限777
    DBPassword=zabbix

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/a56c161dc2dc43eb8774acc507ee826f.png)
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/05e45d81b1384fd1bd2b97b4737597c4.png)
    
    
    • 1
    • 2
    • 3

    准备 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/sbin/zabbix_server -f
    User=zabbix
    [Install]
    WantedBy=multi-user.target
    EOF
    systemctl daemon-relead
    systemctl enable --now zabbix-server
    netstat -lntp | grep 10051 #zabbix_server 默认监听 10051 端口
    ``
    在这里插入图片描述

    部署 Web 前端,进行访问
    cp -r /opt/zabbix-6.0.13/ui/* /var/www/zbx
    chown -R nginx.nginx /var/www/zbx
    
    • 1
    • 2
    • 3

    在这里插入图片描述

  • 相关阅读:
    利用python可视化散点图及其计算欧式距离分析相关性
    基因注释:区间范围匹配
    如何让数据成为企业的生产力?
    8月问题总结~Android 12适配
    ​企业数据泄露不断,深信服EDR助企业构建数据“安全屋”
    字符设备驱动总结
    STM32第十一课:ADC采集光照
    Stable Diffusion 启动时 got an unexpected keyword argument ‘socket_options‘ 错误解决
    git revert 简单用法【笔记】
    《评标专家和评标专家库管理暂行办法》(发改委第29号 )
  • 原文地址:https://blog.csdn.net/m0_73695023/article/details/130874333