• Zabbix 监控


    介绍
    企业级监控解决方案官方网站
    zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
    zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题。

    Zabbix 主要特点:
    安装与配置简单,学习成本低 支持多语言(包括中文) 免费开源 自动发现服务器与网络设备分布式监视以及 WEB 集中管理功能 可以无 agent 监视 用户安全认证和柔软的授权方式 通过 WEB 界面设置或查看监视结果 email 等通知功能

    Zabbix主要功能:

    监控CPU负载、内存使用、磁盘使用、网络状态、端口监视、日志监视、插件开发自定义
    Zabbix 由 Zabbix Server 和 Zabbix agent组成

    Zabbix Server 可以通过 SNMP,Zabbix agent,Ping,端口监视等你方法提供对远程服务器/网络状态的 监视,数据收集功能,可以在运行 Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OX X,Windows 多 平台。
    Zabbix Agent 安装在需要被监控的目标服务器上,主要完成对硬件信息与操作系统有关的内存,CPU 等你 信息收集。
    Zabbix Server 可以单独监视远程服务器的服务状态,同时也可以与 Zabbix Agent 结合。可以轮询 Zabbix Agent 主动接收监视数据(trapping 传递 方式),同时还可以被动接收 Zabbix Agent 发送的数据。

    Zabbix 运行机制

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

    整个环境所需要的软件包

    php-5.6.13  
    libmcrypt-2.5.8 
    mysql-5.6.26
    nginx-1.8.0 
    zabbix-3.0.5

    我们需要先构建 LNMP 的环境,因为 Zabbix 通过 PHP 页面展示
    搭建 LNMP 的环境,可以参考上篇博客 LNMP源码编译安装
    安装 Zabbix
    下载地址:http://www.zabbix.com/download
    Zabbix 需要数据库的支持,而却 Zabbix 已经自带了数据库结构,images 数据库和表数据等相关内容
    创建 Zabbix 使用数据库

    mysql -uroot -p
    mysql> create database zabbix;
    mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';    //zabbix 用户授权
    mysql> flush privileges;
    mysql> exit

    导入数据库,注意顺序,否则会报错

    // 解压进入zabbix目录
    mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
     mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql 
     mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

    如果在做分布式的环境中,Proxy 服务器只需要一个数据库 schema,代理者 agent 不需要数据库!Server 必须 三个数据库同时拥有
    Zabbix 同时支持很多类型数据库,可以通过查阅帮助: https://www.zabbix.com/documentation/2.4/manual/appendix/install/db_scripts

    编译安装 zabbix

     yum install -y net-snmp-devel  //net-snmp-config 依赖
    
     ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl
    
    // --prefix=    #指定路径
    // --enable-server  #Server 支持
    // --enable-agent   #支持 Zabbix 客户端
    // --with-mysql #指定 MySql 库可以选择制定路径 mysql_config,mysql_config 是命令,用于
    // 编译 mysql 客户端程序
    // --with-net-snmp  #支持 snmp 协议,需要安装 net-snmp-devel 包
    // --with-libcurl   #支持 CURL 功能,libcurl 主要功能就是用不同的协议连接不同的服务器,
    // libcurl 当前支持的协议有 http,https,ftp,gopher,telent,dict,file,和 ldap 协议

    其他参数:
    –enable-proxy 指的是支持 zabbix 代理服务器,zabbix proxy 是一个监控代理服务器,它收集到监控数
    据,选存放在缓冲区,保存的时间可以通过配置文件设定,然后再传送的 zabbix server。监控代理服务需要一个独立的数据库。
    用 zabbix proxy 的好处:进程监控,当监控文遏制通讯不方便的时候,当通讯上千台设备的时候,使用 zabbix_proxy 可以简化维护分布式监控,降低 zabbix server 的负负载,
    看到如下信息,预编译就没有什么问题
    ……


    make install    //上面的提示,没有 make 步骤,直接 install
     ls /usr/local/zabbix/  //编译成功,产生如下目录
    // bin  etc lib sbin    share

    配置 zabbix Server

    vim /usr/local/zabbix/etc/zabbix_server.conf
    
    DBHost=localhost    #默认注释掉了,直接取消注释即可
    DBName=zabbix   #数据库用户,我们授权的用户也是   zabbix
    DBUser=zabbix   #默认是 root,我们授权的用户是 zabbix
    DBPassword=zabbix   #密码我们授权的也是 zabbix
    #监控 Zabbix Server 本身
    #监控本身,意思是本身作为服务器之外,自己也做自己的客户端,也要使用    agentd   这个代理者 配置文件#中,有 agentd 和 agent 两个配置文件,前者是守护进程,后者依赖 xinetd
    vim /usr/local/zabbix/etc/zabbix_agentd.conf
    Server=127.0.0.1    #默认监控服务器自己,这三行不用改
    ServerActive=127.0.0.1
    Hostname=Zabbix server
    UnsafeUserParameters=1  
    #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本
    #其中 Server 和 ServerActive 都指定 zabbixserver 的 IP 地址,不同的是,前者是被动后者是主动。也就#是说前者允许 127.0.0.1 这个 ip 来我这取数据。而 serverActive 的 127.0.0.1 的意思是,客户端主动提#交数据给 他。启动服务
     useradd -u 8005 -M -s /sbin/nologin zabbix 
    //如果 zabbix 用户不存在, 将以 root 运行,新建之后,如果 zabbix 存在,那么久直接可以用 zabbix 运行
    /usr/local/zabbix/sbin/zabbix_server        //直接运行
     echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local //开机启动 
     netstat -antup | grep zabbix   //zabbix server 运行端口 10051
      tcp   0   0 0.0.0.0:10051 0.0.0.0:*   LISTEN
      37568/zabbix_server

    如果这里没有端口显示,则需要注册端口

    vim /etc/services   //末尾添加下面这几行
    zabbix-agent    10050/tcp   # Zabbix Agent
    zabbix-agent    10050/udp   # Zabbix Agent
    zabbix-trapper  10051/tcp   # Zabbix Trapper
    zabbix-trapper  10051/udp   # Zabbix Trapper

    编辑 php 页面控制文件
    默认配置文件没有写入到我们的 Nagix 的配置文件中,也就是不能加载到我们的 zabbix 页面目录

    cp -r /usr/local/src/zabbix-3.0.5/frontends/php/*   /usr/local/nginx/html/ 
     vim /usr/local/nginx/conf/nginx.conf
    location / {
    root    html;
    index   index.php index.html index.htm; #找到此行内容,添加 index.php
    }

    重启服务

     /usr/local/nginx/sbin/nginx -s reload ; /etc/init.d/php-fpm restart

    打开网页安装 zabbix
    浏览器输入:http://192.168.1.63 如图,下一步 Next
    默认用户名: admin密码: zabbix
    //开始检查环境,如图,发现很多环境不符编辑 php.ini 文件,修 改

    vim /usr/local/php/php.ini
        post_max_size = 16M#修改
        max_execution_time = 300#修改
        max_input_time = 300#修改
        date.timezone = Asia/Shanghai#此行有注释,去注释并修改
        always_populate_raw_post_data = -1#此行取消注释即可
    
    /etc/init.d/php-fpm restart  #重启
    
     提示示没有安装gettext模块,为了不影响后面的功能,现在把这个模块重新安装进去:
    可以单独把这个模块编译安装进来:
    cd /usr/local/src/php-5.6.13/ext/
    cd gettext/
    
    /usr/local/php/bin/phpize 
    
    ./configure --with-php-config=/usr/local/php/bin/php-config
    make && make install
    vim /usr/local/php/php.ini
    // 添加:extension = "gettext.so"
    /etc/init.d/php-fpm restart
    // 再次刷新即可

    写入失败,直接 down 这个配置文件,然后上传上去

    mv zabbix.conf.php /usr/local/nginx/html/conf/ 
    // 然后在点击 Retry

    点击 Finish,完成安装!
    登陆 Zabbix 并配置 登陆之后我们修改语言 默认用户名和密码分别问 admin,zabbix

    点击右上角用户,然后选择语言

    然后 Update 即可,页面变为中文

    如果所示,可到我们当前监控的本机(默认没有启动,点击后面红色的停用,则启用)

    把zabbix_agent 也启动起来:

    /usr/local/zabbix/sbin/zabbix_agentd

    再次刷新页面,可以看到,agent状态已经正常

    但是发现下面显示有问题:这个是中文字符集的问题,在英文状态下显示是正常的

    图形界方框的解决办法
    在 Windows 下面找一个 ttf 的字体文件

     mv /root/Desktop/微软雅黑.ttf  /usr/local/nginx/html/fonts/
      cd /usr/local/nginx/html/fonts/
      mv DejaVuSans.ttf /root/
      mv 微软雅黑.ttf DejaVuSans.ttf

    Zabbix 启动服务总结
    LNMP环境搭建好
    启动nginx服务、启动MySQL服务、启动php-fpm服务、测试环境是否正常
    上传zabbix 3.0.5 压缩包
    解压
    创建数据库,创建用户,授权
    导入zabbix自带的数据库
    安装zabbix,预编译, 直接 make install 安装完成
    修改server、agent配置文件
    复制启动脚本,启动服务,查看端口
    也没初始化zabbix:
    复制源码目录PHP目录下的所有内容到nginx 发布目录下
    重启nginx、php-fpm 服务
    通过IP地址,直接初始化安装zabbix,
    需要修改php.ini 配置文件。按照页面说明来修改对应的数值和选项
    如果提示缺少模块,可以重新打模块进去,满足条件,继续安装
    安装的时候,输入创建的DB和password
    安装完,默认的账户是admin,密码zabbix
    登陆进来,启动zabbix server ,稍等几分钟,可以看到agent端已经变成绿色即可监控本机数据状态
    通过查看配置图形,即可看到监控项的出图情况
    最下面的字体表示有问题,可以复制windows字体来替换原来的字体,刷新页面即可显示正常

    配置监控远程主机:
    安装 Agent

    yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI   // 解决 依赖
     useradd -u 8001 -M -s /sbin/nologin    zabbix
    
    cd /usr/local/src/ zabbix-3.0.5/
    
     ./configure --prefix=/usr/local/zabbix --enable-agent
    
    //被监控端只需要部署 agnet
     make install
    cat /etc/services|grep zabbix
        zabbix-agent    10050/tcp               # Zabbix Agent
        zabbix-agent    10050/udp               # Zabbix Agent
        zabbix-trapper  10051/tcp               # Zabbix Trapper
        zabbix-trapper  10051/udp               # Zabbix Trapper
    
    # 启动agent:
     /usr/local/zabbix/sbin/zabbix_agentd
    也可以使用系统启动脚本来启动:
    # 配置 Agnet 开机启动
    grep"chkconfig" /usr/local/src/zabbix-3.0.5/ -R –color
    # 查看有 chkconfig 的 文件
            /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core5/zabbix_agentd
            /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core5/zabbix_server
            /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core/zabbix_agentd
            /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core/zabbix_server
    
        cp /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core5/zabbix_agentd  /etc/init.d/
    
     vim /etc/init.d/zabbix_agentd  //上一步生成了启动脚本,然后现在编辑脚 本
        ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"   #修改此行
        chkconfig --add zabbix_agentd  chkconfig zabbix_agentd on
    拓展:core 和 core5 里面的文件都可以实现 zabbix 代理启动,core 里面是测试版本,core5 是稳定版本
    
    配置 Agentd 的配置文件
    vim /usr/local/zabbix/etc/zabbix_agentd.conf    //客户端操作
    
    Server=192.168.1.63 #zabbix server 地址,可以多个,用,隔开
    ServerActive=192.168.1.63   #主动检查的意思,主动检查手机的数据的数据发送给 Zabbix Server
    Hostname=test
    UnsafeUserParameters=1
    
    # 启动服务
     /etc/init.d/zabbix_agentd restart
     netstat -antup | grep zabbix
        tcp 0   0 0.0.0.0:10050 0.0.0.0:*   LISTEN
        9683/zabbix_agentd
    
    # Server 端测试通讯
    
     /usr/local/zabbix/bin/zabbix_get -s 192.168.1.64 -p10050 -k system.uname
    //可以获取对方系统版本则证明没有问题

    服务端配置管理脚本

    cp  /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
    
    vim /etc/init.d/zabbix_agentd
    BASEDIR=/usr/local/zabbix   #修改此行内容为 zabbix 的安装位置
    chkconfig --add zabbix_agentd [root@XueGod63 ~]# chkconfig zabbix_agentd on
    /etc/init.d/zabbix_agentd restart       //可以监控自己,也要启动服务 
    netstat -antup | grep zabbix    //两者之间监控端口不一样
        //tcp   0   0 0.0.0.0:10050 0.0.0.0:*   LISTEN
        //51645/zabbix_agentd
        //tcp   0   0 0.0.0.0:10051 0.0.0.0:*   LISTEN
        //10786/zabbix_server
    监控自己使用 10050 端口,监控对方使用的是 10051 端口
    
    

    添加 Host 主机

    添加主机

    这里写图片描述
    编辑,填写主机名,IP地址,注意,这里写的主机名要跟客户端的hostname一样

    这里写代码片
    这里写图片描述

    在弹出的模块里选择一个自己需要的模块:

    这里写图片描述

    返回之后,可以看到已经添加进来:等到可用性变成绿色即可出图监控

    这里写图片描述

    这时候就可以通过图形功能来查看出图情况

    添加监控项:
    通过比较zabbix servers 群组和Linux servers 群组,可以发现,默认的配置中Linux servers监控项比较少,下面手动添加监控项:

    删选无触发器,出来很多监控项,默认都是启用状态,我们无需再次启动,下面修改自动发现的时间

    文件系统探测和网络流量探测

    把原来的3600s改成10s

    修改更新数据后,再次返回图形监控页面,稍等几分钟再次查看监控项

    再次返回主页,可以看到整体的监控状态

    设置 Triger 触发器值

    找到当前主机应用的模板:

    默认的值是20%

    修改成自己设定的值

    更新数据

    模拟测试磁盘空间超标:

     dd if=/dev/zero of=/root/a.txt bs=1M count=6000

    刷新主页查看,发现警告信息

    ========以上是触发器值的设置================

    自定义绘图颜色:
    找到主机对应的模块—修改模板对应的图形颜色

    根据需求修改每一个项的显示颜色

    总结 zabbix 的文件
    zabbix_agent.conf 是用超级服务(xinetd)的方式来启动的,被动检查,只有 Server 说检查的时候才建材
    zabbix_agentd.conf 是以独立进程的方式来启动的,一般使用这个来做配置,自动检查,自动提交 zabbix_server.conf Server 启动配置文件,只有一个
    zabbix_get 是 Zabbix 中的一个程序,用于 Zabbix-Server 到 Zabbix-Agent 的数据获取,通常可以用来 检测验证 Agent 的配置是否正确。它的使用方法如下

    zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>
    -h:远程 Zabbix-AgentIP 地址或者是主机名。
    -p:远程 Zabbix-Agent 的端口。
    -I:本机出去的 IP 地址,用于一台机器中有多个网卡的情况。
    -k:获取远程 Zabbix-Agent 数据所使用的 Key[expmple@~]# zabbix_get -s 192.168.1.64 -k system.uname
    zabbix_sender 与 get 相反,用来发送 Zabbix 服务器处理性能数据。该工具通常用于长时间运行的用户脚 本,用于定期发送可用性和性能数据。使用方法如下
    zabbix_sender [-Vhv] {[-zpsI] -ko | [-zpI] -T -i <file> -r} [-c <file>]
    参数说明:
    -c --config <file>  配置文件绝对路径
    -z --zabbix-server <server> zabbix server 的 IP 地址
    -p --port <server port> zabbix server 端口.默认 10051
    -s --host <hostname>    主机名,zabbix 里面配置的主机名(不是服务器的 hostname),不能使用
    
    ip 地址
    -I --source-address <IP address> 源 IP
    -k --key <key>  监控项的 key
    -o --value <key value>  key 值
    -i --input-file <input file>    从文件里面读取 hostname、key、value 一行为一条数据,使用空格作为分
    隔符,如果主机名带空格,那么请使用双引号包起来
    -T --with-timestamps    一行一条数据,空格作为分隔符: <hostname> <key> <timestamp>
    <value>,配合 --input-file option,timestamp 为 unix 时间戳
    -r --real-time  将数据实时提交给服务器
    -v --verbose    详细模式, -vv 更详细

    配置 Zabbix 监控 Apache 服务

    http://www.zabbix.org/wiki/Main_Page
    https://github.com/zabbix/zabbix-community-repos
    各种模板
    http://www.douglas.wiki.br/doku.php?id=en:installing_and_configuring_zabbix

    寻找或者自己写监控脚本
    上面给出部分网站去寻找脚本,有能力的可以自己写,我们可以借助别人的脚本,这些脚本大多数是遵循 GPL 的 协议

    下载一个脚本之后,你要分析下脚本的运行环境,这几脚本大多数是个人缩写,每个人的运行环境不一样,所以 你可以用 VIM 打开分析一下,有的是 python,有的是 ruby 写的,脚本拿到手需要改里面的东西! 如上图脚本,第一个是执行脚本,我们先对执行脚本一些必要操作,我们使用 192.168.0.64作为 apache Server

    mv check_apache /usr/local/zabbix/bin/
    
     cd /usr/local/zabbix/bin/ ; chmod +x check_apache  //脚本可执行权 限
     vim check_apache   //脚本需要我们改动的东西
     vim check_apache   //脚本需要我们改动的东西
    ……
    126 rval=$?;;
    127 'version')
    128 ApacheVersion=$(/usr/sbin/httpd -v 2> /dev/null | head -n 1 | awk '{print $3}' | cut -d '/'
    -f  2 | tail -n 1)
    129 echo "$ApacheVersion"
    130 exit $rval;;
    ……
    #在 128 行,我们这里使用 yum 安装的 apache,所以我们的版本获取方式是 httpd 命令,如果你用源码编译,需要指定绝对路径

    改动配置文件
    第二个文件就是我们改动和添加到主 agentd 配置文件的内容

    vim ../etc/zabbix_agentd.conf
    Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf   #此行启用并修改
     cd
    mv conf-apache.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/ vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/conf-apache.conf // 修 改 此文件
    UserParameter=apache[*],/usr/local/zabbix/bin/check_apache    $1
     service zabbix_agentd restart
    对 httpd 文件的配置
     yum install httpd -y
     vim /etc/httpd/conf/httpd.conf //末尾添加这一段
    <IfModule mod_status.c>
    #
    # Allow server status reports generated by mod_status,
    # with the URL of http://servername/server-status
    
    # Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
    #
    <Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1  ::1
    Allow from 192.168.0.0/24
    </Location>
    # Keep track of extended status information for each request
    ExtendedStatus On
    # Determine if mod_status displays the first 63 characters of a request or
    # the last 63, assuming the request itself is greater than 63 chars.
    # Default: Off
    #SeeRequestTail On
    <IfModule mod_proxy.c>
    # Show Proxy LoadBalancer status in mod_status
    ProxyStatus On
    </IfModule>
    </IfModule>
    [root@XueGod64 ~]# service httpd restart 
    
    
    cd /usr/local/zabbix/bin/
    测试脚本是否正常
    ./check_apache Uptime   //使用-h 或直接回车,有帮助出现

    前端页面操作
    导入模板

    让主机关联模板:

    选择刚才导入的模板,添加,更新

    查看最新数据,筛选Apache

    可以选择生产图形

    配置 zabbix 监控 MySQL
    和监控我们的 Apache 一样,寻找合适的脚本,不过,脚本并不是那么容易就可以找得到的! 要么自己手动去写,要么自己找到的拿来修改,都是需要花费代价的!ZABBIX 默认提供了 MYSQL 的监控模板
    数据库用户授权

     yum install -y mysql-server ;
     service mysqld restart
     mysql_secure_installation
    mysql -uroot -p123456
    
    mysql> grant usage on *.* to "zabbix-monitor"@"%" identified by '123456'; 
    mysql> flush privileges;
    mysql> quit
    cp /usr/local/src/zabbix- 3.0.5/conf/zabbix_agentd/userparameter_mysql.conf/usr/local/zabbix/etc/zabbix_agentd.conf.d/
    
    vim /usr/local/zabbix/etc/zabbix_agentd.conf
    
    Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf   #启用并修改 建立数据库和 zabbix 的链接信息
    
     vim /usr/local/zabbix/etc/.my.cnf
    
        #Zabbix Agent 
        [mysql] 
        host=localhost 
        user=zabbix-monitor 
        password=123456
        socket= /var/lib/mysql/mysql.sock
        [mysqladmin] 
        host=localhost
         user=zabbix-monitor 
        password=123456
        socket= /var/lib/mysql/mysql.sock
    
      vim   /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf 
    将 HOME=/var/lib/zabbix 全部改成 HOME=/usr/local/zabbix/etc/
    
    # For all the following commands HOME should be set to the directory that has .my.cnf file with password information.(提示目录下必须有.my.cnf)
    
     service zabbix_agentd restart

    Zabbix邮件报警配置:

     yum install postfix    //安装 postfix 
      vim /etc/postfix/main.cf  //修改下面行
        myhostname = test63
        mydomain = test63
        myorigin = $myhostname
        inet_interfaces = all
        mynetworks = 127.0.0.0/8, 192.168.0.0/24
    service postfix restart 

    点击添完成,先测试能否收到测试邮件

     mail -s "smxjphb@163.com" ******************@163.com

    测试,关闭 zabbix 客户端服务

     zabbix_agentd service zabbix_agentd stop 
    #结果延迟比较大,大概要5-10分钟置 zabbix 自动发现并监控(监控Windows为案例)
    

    下载安装Windows 客户端agent

    C:UsersAdministrator>Downloadszabbix_agents_3.0.4.wininwin32zabbi
    .exe -c Downloadszabbix_agents_3.0.4.winconfzabbix_agentd.win.conf -i  # 安装
    zabbix_agentd.exe [5008]: service [Zabbix Agent] installed successfully
    zabbix_agentd.exe [5008]: event source [Zabbix Agent] installed successf
    
    C:UsersAdministrator>Downloadszabbix_agents_3.0.4.wininwin32zabbi
    .exe -c Downloadszabbix_agents_3.0.4.winconfzabbix_agentd.win.conf -s #启动
    zabbix_agentd.exe [1060]: service [Zabbix Agent] started successfully

    创建自动发现规则
    添加关联动作
    等待一会,就可以发现自动探测监控了
    zabbix监控tomcat

    zabbix是使用了一个叫做Java Gateway的应用去监控JMX的。Java Gateway集成在zabbix官方开发发布的。
    1.源码编译zabbix的时候需要添加参数–enable-java 或者单独下载zabbix-java-getway http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/
    2.zabbix_server端安装jdk
    3.修改zabbix_java相关选项

    #进入到下面的目录下面进行seeting.sh脚本编辑
    find / -name zabbix_java
        /usr/local/zabbix/sbin/zabbix_java
        /usr/local/src/zabbix-3.2.1/src/zabbix_java
    vim /usr/local/src/zabbix-3.2.1/src/zabbix_java/settings.sh 
    #将注释释放掉
        LISTEN_IP="0.0.0.0"   #监听地址
        LISTEN_PORT=10052    #监听端口
        PID_FILE="/tmp/zabbix_java.pid"  
        START_POLLERS=5   # 开启的工作线程数(必须大于等于后面zabbix_server.conf文件的StartJavaPollers参数)

    4.修改zabbix_server文件

    vim /usr/local/zabbix/etc/zabbix_server.conf
     JavaGateway=127.0.0.1
    216 
    217 ### Option: JavaGatewayPort
    218 #       Port that Zabbix Java gateway listens on.
    219 #
    220 # Mandatory: no
    221 # Range: 1024-32767
    222 # Default:
    223  JavaGatewayPort=10052
    224 
    225 ### Option: StartJavaPollers
    226 #       Number of pre-forked instances of Java pollers.
    227 #
    228 # Mandatory: no
    229 # Range: 0-1000
    230 # Default:
    231  StartJavaPollers=3
    

    5.启动zabbix_java

    //  找到zabbix_java目录路径,然后执行命令./startup.sh
    /usr/local/zabbix/sbin/zabbix_java/startup.sh
    # 检查端口是否监听
    netstat -anp|grep 10052
        tcp        0      0 :::10052                    :::*                        LISTEN      106420/java

    6.下载tomcat, Extras:catalina-jmx-remote.jar
    http://tomcat.apache.org/download-70.cgi

    # 将下载好的 catalina-jmx-remote.jar存放到tomcat子目录目录lib录下
    mv catalina-jmx-remote.jar /usr/local/tomcat/lib/
    

    7.修改catalina.sh文件

    7 # OS specific support.  $var _must_ be set to either true or false.
    108 cygwin=false
    109 darwin=false
    110 os400=false
    111 hpux=false
    #增加JAVA_OPTS,添加此行
    112 JAVA_OPTS="-Dcom.sun.management.jmxremote.port=12345   #定义jmx监听端口
    113 -Dcom.sun.management.jmxremote.authenticate=false 
    114 -Dcom.sun.management.jmxremote.ssl=false 
    115 -Djava.rmi.server.hostname=192.168.0.155"       # 客户端IP
    #或者增加
     CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.0.155"
    
    
    # 修改 tomcat server.xml 配置文件,添加以下内容:
     vim /usr/local/zabbix/etc/zabbix_server.conf  
    
     <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"  rmiRegistryPortPlatform="12345"     rmiServerPortPlatform="12346"/>
    
    
    
    
    #测试
    java -jar cmdline-jmxclient-0.10.3.jar - 192.168.0.155:12345 java.lang:type=Memory NonHeapMemoryUsage
    12/03/2016 13:15:18 +0800 org.archive.jmx.Client NonHeapMemoryUsage: 
    committed: 30474240
    init: 2555904
    max: -1
    used: 29289904
    

    8.重启启动tomcat服务和zabbix_agentd服务

  • 相关阅读:
    云中树莓派(5):利用 AWS IoT Greengrass 进行 IoT 边缘计算
    乐观锁 与 悲观锁 来解决数据库并发问题
    Python二维数组构造
    一次问题追查----短字符串签名算法引发的bug
    C++ assert 断言使用
    并查集(Union-Find)算法
    linux shell grep/awk/sed 匹配tab
    C++ 变量默认初始值不确定(代码测试)
    linux 查看机器内存方法 (free命令)
    html table奇偶行颜色设置 (CSS选择器)
  • 原文地址:https://www.cnblogs.com/flyhgx/p/6367973.html
Copyright © 2020-2023  润新知