• Zabbix3.2.11源码编译安装for centos7


    本文转载自: https://www.93bok.com

    一、Linux常用开源监控系统简单介绍

    cacti:存储数据能力强,报警性能差
    nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度,储存在内存中。比如,连续采样数据存储,有连续三次不在合理范围内的数据就报警
    zabbix:结合上面两种工具的优点,又可以存储数据,又可以报警。
    

    二、Zabbix组件功能

    Server

    • Zabbix server 是监控代理程序报告系统可用性、系统完成整性和统计信息的核心组件。Zabbix Server是所有配置信息、统计信息和操作数据的核心存储器。

    数据库存储

    • 所有配置信息和Zabbix收集到的数据都被存储在数据库中。

    Web界面

    • 为了从任何地方和任何平台都轻松的访问Zabbix,Zabbix提供了基于Web的界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。
    • 如果使用SQLite,Zabbix Web界面必须要跟Zabbix Server运行在同一台物理机器上。

    Proxy代理服务器

    • Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。

    Agent监控代理

    • Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。

    数据流

    • 此外,了解Zabbix内部的数据流同样很重要。为了创建一个监控项用于采集数据,必须先创建一个主机。转换到Zabbix功能的其他部分,你必须先有一个监控项来创建触发器,你必须有一个触发器来创建动作。 因此,如果你想收到X服务器CPU负载过高的告警,你必须先为X服务器创建一个主机实体并关联一个用于对CPU进行监控的监控项,然后如果CPU负载太高便会激活触发器,接着会执行一个动作,给你发送告警邮件。

    三、Zabbix运行机制

    Ps0Pv4.png

    Zabbix的监控流程可以简单描述为:

    • 数据采集-->数据存储-->数据分析-->数据展示-->监控报警

    监控原理就是:

    • ZabbixAgent服务将从系统中获取的相关数据传送给ZabbixServer,然后ZabbixServer服务奖数据分析之后以PHP页面展示出来
    • Zabbix支持多种网络方式下的监控,可以通过分布式的部署和安装监控代理Zabbix,通过C/S模式采集数据,通过B/S模式在Web端展示和配置!Agent监控端口10050

    四、Zabbix特点

    数据收集

    1、可用性和性能检查
    2、支持SNMP(包括捕获和主动轮训),IPMI,JMX,VMware监控
    3、自定义检查
    4、按照自定义的间隔收集需要的数据
    

    灵活的阀值定义

    • 可以非常灵活的定义问题阈值,称之为触发器,触发器从后端数据库获取参考值

    高度可配置化的告警

    1)可以根据升级计划,接收方和媒体类型来定制发送告警通知 
    2)使用宏变量可以使告警通知更有意义更高效
    3)自动化动作包含执行远程命令
    

    实时图表绘制

    • 使用内置图表绘制功能可以将监控项的内容立即绘制成图表

    Web监控功能

    • Zabbix可以模拟鼠标在Web网站上的操作来检查Web的功能和响应时间

    丰富的可视化选项

    1)能够创建自定义的图形,图形中可将多个监控项组合在一个视图展示
    2)网络拓扑图
    3)以仪表盘的样式展现自定义的展现和幻灯片
    4)报告
    5)监控资源的高级(业务)视图
    

    历史数据存储

    1)数据存储在数据库中
    2)可配置历史数据
    3)内置数据管理机制
    

    配置简单

    1)将被监控对象添加为主机
    2)主机被创建用于监控,在数据库中是唯一存在的
    3)应用模板来监控设备
    

    使用模板

    1)在模板中分组检查
    2)模板可以关联其他模板
    

    网络发现

    1)自动发现网络设备
    2)监控代理自动注册
    3)发现文件系统,网络接口和SNMP OID值
    

    简洁的Web界面

    1)Web前端基于PHP
    2)可从任何地方访问
    3)你可以定制自己的操作方式
    4)审核日志
    

    Zabbix API

    • Zabbix API为Zabbix 提供了对外的可编程接口,用于批量操作,第三方软件集成和其他目的

    权限管理系统

    1)安全用户认证
    2)特定用户可以限制访问特定的视图
    

    功能强大并易于扩展的监控代理

    1)部署在被监控对象上
    2)可以部署在Linux和Windows上
    

    二进制代码

    1)为了性能和更少内存的占用,用C语言编写
    2)便于移植
    

    为复杂环境准备

    • 使用Zabbix proxy代理服务器,使得远程监控更简单

    五、Zabbix官网下载

    六、Zabbix源码编译安装

    (一)搭建LNMP环境

    详细过程略过,可参考之前文章《Centos7.2源码编译LNMP环境》

    (二)源码编译安装Zabbix for server端

    1. 修改php.ini配置文件
    vim /etc/php/php.ini
    
    date.timezone = Asia/Shanghai
    post_max_size = 16M
    max_execution_time = 300
    max_input_time = 300
    
    2. 创建Zabbix数据库
    mysql -u root -p123456
    
    mysql> create database zabbix;
    mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'nongkaige';
    mysql> flush privileges;
    
    3. 测试使用zabbix用户能否登录数据库
    mysql -u zabbix -pnongkaige
    
    4. 导入Zabbix数据库
    • 导入zabbix数据库的架构,已在源码包中,先解压zabbix的源码包
    cd /a01/apps/apps_src/
    tar -zxvf zabbix-3.2.11.tar.gz
    
    • 必须按顺序导入:
    mysql -u zabbix -pnongkaige zabbix < /a01/apps/apps_src/zabbix-3.2.11/database/mysql/schema.sql
    mysql -u zabbix -pnongkaige zabbix < /a01/apps/apps_src/zabbix-3.2.11/database/mysql/images.sql
    mysql -u zabbix -pnongkaige zabbix < /a01/apps/apps_src/zabbix-3.2.11/database/mysql/data.sql
    
    5. 源码编译安装zabbix
    1)创建zabbix运行用户(如果以root用户启动zabbix进程,会自动切换为zabbix用户)
    useradd -M -s /sbin/nologin zabbix
    
    2) 安装依赖
    cd /a01/apps/apps_src/zabbix-3.2.11
    yum -y install libevent-devel libxml2-devel libcurl-devel net-snmp-devel
    
    3)编译zabbix
    ./configure --prefix=/a01/apps/zabbix --sysconfdir=/etc/zabbix --datadir=/a01/apps/zabbix/data --enable-server --enable-agent --enable-java --with-mysql --with-net-snmp --with-libcurl --with-libxml2
    
    • 注意:编译时最好带上--enable-java参数,方便以后监控tomcat程序时候用。
    4)安装java

    Ps0VV1.png

    • 报错:configure: error: Unable to find "javac" executable in path
    • 没有安装java环境,去安装一下即可
    cd /a01/apps/apps_src/
    mkdir -p /usr/local/java
    tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/java/
    vim /etc/profile
    
    JAVA_HOME=/usr/local/java/jdk1.8.0_151
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
    export PATH JAVA_HOME CLASSPATH
    
    source /etc/profile
    java -version
    

    Ps0e56.png

    • 安装完java之后继续编译

    Ps0K2D.png

    5)安装
    make install
    
    6)创建zabbix日志目录
    mkdir -p /var/log/zabbix
    chown -R zabbix:zabbix /var/log/zabbix/
    
    7)配置zabbix_server配置文件
    vim /etc/zabbix/zabbix_server.conf
    
    LogFile=/var/log/zabbix/zabbix_server.log
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=nongkaige
    
    8)配置zabbix_agent配置文件实现自己监控自己
    vim /etc/zabbix/zabbix_agentd.conf
    
    LogFile=/var/log/zabbix/zabbix_agentd.log
    Server=127.0.0.1
    ServerActive=127.0.0.1
    Hostname=Zabbix server
    UnsafeUserParameters=1		#允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本
    
    9)启动zabbix
    /a01/apps/zabbix/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
    /a01/apps/zabbix/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
    

    Ps01rd.png

    • 报错:error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
    • 大概意思是找不到libmysqlclient.so.20,我们去看mysql安装目录下应该会有,软链接过来即可:
    ln -s /a01/apps/mysql/lib/libmysqlclient.so.20 /usr/local/lib
    vim /etc/ld.so.conf
    
    /usr/local/lib
    

    Ps0GVI.png

    • 运行ldconfig命令生效之后再重新启动成功。
    10)配置zabbix web页面
    mkdir -p /a01/apps/nginx/html/zabbix
    cd /a01/apps/apps_src/zabbix-3.2.11/frontends/php/
    cp -a . /a01/apps/nginx/html/zabbix/
    
    11)安装zabbix前端(http://<服务器IP或主机名>/zabbix)
    • 先重启一下php-fpm
    systemctl restart php-fpm
    

    Ps0NPf.png

    • 报错:PHP sockets extension missing (PHP configuration parameter --enable-sockets).
    12)安装php sockets扩展
    • 进入php的源码包,使用phpize工具安装
    cd /a01/apps/apps_src/php-7.1.7/ext/sockets/
    /a01/apps/php7/bin/phpize
    ./configure --with-php-config=/a01/apps/php7/bin/php-config
    make && make install
    vim /etc/php/php.ini
    
    [sockets]
    extension = sockets.so
    
    13)安装php ldap扩展

    Ps0Dqs.png

    yum -y install openldap-devel
    
    • 一定要执行这步,否则下边会报错:configure: error: Cannot find ldap libraries in /usr/lib.
    cp -frp /usr/lib64/libldap* /usr/lib
    
    cd /a01/apps/apps_src/php-7.1.7/ext/ldap/
    /a01/apps/php7/bin/phpize
    ./configure --with-php-config=/a01/apps/php7/bin/php-config
    make && make install
    vim /etc/php/php.ini
    
    [ldap]
    extension = ldap.so
    
    14)重启php-fpm
    systemctl restart php-fpm
    
    15)刷新一下页面继续安装zabbix前端

    Ps0giV.png

    Ps0RRU.png

    Ps04sJ.png

    Ps0Td1.png

    Ps0qJK.png

    • 报错了,我们可以把上图中的配置文件下载下来再上传到图中指定的目录,不过zabbix的web根目录下已经自带了,我们直接去修改即可
    cd /a01/apps/nginx/html/zabbix/conf
    cp zabbix.conf.php.example zabbix.conf.php
    vim zabbix.conf.php
    

    Ps0jQe.png

    16)接下来关闭浏览器重新访问就能登录了(默认账号:admin,密码:zabbix)

    PsBiJf.png

    PsBVyQ.png

    17)改成中文页面

    PsBnwn.png

    PsBQYV.png

    18)修改默认密码为nongkaige

    PsBlWT.png

    PsB3SU.png

    19)配置监控本机

    “配置”-----“主机”-----“启用”

    PsB8lF.png

    20)修复中文乱码

    PsBJOJ.png

    • 可以发现上图中有乱码的情况,变成了一些框框,我们可以去下载字体,或者直接去我们的win7系统上复制一些字体上传并修改配置文件即可。
    • 1、去win7控制面板复制字体

    PsBUT1.png

    • 2、复制字体,并上传到服务器

    PsBdFx.png

    • 3、mv字体到指定目录,并修改配置文件
    cd /a01/apps/apps_src/
    mv msyh.ttf /a01/apps/nginx/html/zabbix/fonts/
    vim /a01/apps/nginx/html/zabbix/include/defines.inc.php
    
    #修改45行
    define('ZBX_GRAPH_FONT_NAME',           'msyh'); // font file name
    #修改93行
    define('ZBX_FONT_NAME', 'msyh');
    
    • 4、刷新网页查看

    PsB0fK.png

    21)停用guest用户
    • “管理”------“用户群组”------“停用的”

    PsBDSO.png

    22)编写脚本把zabbix-server添加到系统服务
    cd /etc/systemd/system
    vim zabbix-server.service
    
    [Unit]
    Description=zabbix-server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/a01/apps/zabbix/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
    
    [Install]
    WantedBy=multi-user.target
    
    chmod 754 /etc/systemd/system/zabbix-server.service
    systemctl enable zabbix-server
    
    23)编写脚本把zabbix-agentd添加到系统服务
    cd /etc/systemd/system
    vim zabbix-agentd.service
    
    [Unit]
    Description=zabbix-server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/a01/apps/zabbix/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
    
    [Install]
    WantedBy=multi-user.target
    
    chmod 754 /etc/systemd/system/zabbix-agentd.service
    systemctl enable zabbix-agentd
    
    • 好了,到此zabbix server已经部署完成,并实现了监控zabbix本机,下面看看效果图

    PsBrlD.png

    (三)客户端源码编译安装Zabbix for agent端for centos 6

    1. 创建zabbix运行用户
    useradd -M -s /sbin/nologin zabbix
    
    2. 解包
    cd /a01/apps/apps_src/
    tar -zxvf zabbix-3.2.11.tar.gz
    cd zabbix-3.2.11
    
    3. 配置
    ./configure --prefix=/a01/apps/zabbix --sysconfdir=/etc/zabbix --datadir=/a01/apps/zabbix/data --enable-agent
    
    4. 安装
    make install
    
    5. 创建zabbix日志目录
    mkdir -p /var/log/zabbix
    chown -R zabbix:zabbix /var/log/zabbix/
    
    6. 配置zabbix_agentd配置文件
    vim /etc/zabbix/zabbix_agentd.conf
    
    LogFile=/var/log/zabbix/zabbix_agentd.log
    Server=192.168.10.21
    ServerActive=192.168.10.21
    Hostname=192.168.10.26
    UnsafeUserParameters=1
    
    7. cp源码包自带脚本把zabbix-agentd添加到系统服务
    cp /a01/apps/apps_src/zabbix-3.2.11/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
    vim /etc/init.d/zabbix_agentd
    
    ZABBIX_BIN="/a01/apps/zabbix/sbin/zabbix_agentd"		#修改
    CONF_FILE="/etc/zabbix/zabbix_agentd.conf"				#添加
    daemon $ZABBIX_BIN -c $CONF_FILE						#添加后边的-c $CONF_FILE
    
    chkconfig --add zabbix_agentd
    chkconfig --level 35 zabbix_agentd on
    
    8. 启动zabbix_agentd
    service zabbix_agentd start
    

    (四)在zabbix服务器端测试是否能和客户端通信

    /a01/apps/zabbix/bin/zabbix_get -s 192.168.10.26 -p10050 -k"net.if.in[eth2,bytes]"
    

    PsBs6e.png

    • 服务端能得到客户端的网卡信息,说明可以正常通信

    (五)到zabbix前端web页面上创建Host监控客户端

    • “配置”------“主机”------“创建主机”

    PsByOH.png

    PsBcmd.png

    PsB2TI.png

    PsBftP.png

    PsB5p8.png

    PsBI1S.png

    PsBo6g.png

  • 相关阅读:
    100个高质量的photoshop画笔
    VC调用DLL库方法的方法
    VC6中使用CHtmlView在对话框控制中显示HTML
    CtrlList 排序问题。
    VC ADO使用说明
    VC右键弹出菜单的实现
    VC6工程项目文件说明
    VC6中用DOM遍历网页中的元素
    C/C++头文件一览
    最常见的20种VC++编译错误信息
  • 原文地址:https://www.cnblogs.com/93bok/p/12425642.html
Copyright © 2020-2023  润新知