zabbix监控Nginx,tomcat,mysql

zabbix监控Nginx

  • 在ady02上安装Nginx
    编辑yum仓库:
    vi /etc/yum.repos.d/nginx.repo
    粘贴:
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    
        安装:
    yum install -y nginx
  • 配置Nginx状态信息
    vi  /etc/nginx/conf.d/default.conf  #增加
    location /nginx_status 
    {
            stub_status on;
            access_log   off;
            allow 127.0.0.1;
            deny all;
        }
  • 测试
    curl http://127.0.0.1/nginx_status
  • 说明:
    字段含义
    Active Connections当前活动连接数,其中也包括了等待状态的连接
    accepts接收到的连接数
    handled已经处理完的连接数,该数字一般和accepts一致,如果不一致那么说明Nginx出错了
    requests总共处理的请求数,一个连接可以有多个请求,所以该值比accpets要大
    Reading正在读取请求头信息的连接数
    Writing正在发送响应报文的连接数
    Waiting处于闲置状态,等待客户端发送请求的连接数
  • 编写监控脚本
    vi /usr/local/sbin/ngx_status.sh  #内容如下
    #!/bin/bash
    url="http://127.0.0.1/nginx_status"
    curl=/usr/bin/curl
    
    # 检测nginx进程是否存在
    function ping {
        /sbin/pidof nginx | wc -l 
    }
    # 检测nginx性能
    function active {
        $curl $url 2>/dev/null| grep 'Active' | awk '{print $NF}'
    }
    function reading {
        $curl $url 2>/dev/null| grep 'Reading' | awk '{print $2}'
    }
    function writing {
        $curl $url 2>/dev/null| grep 'Writing' | awk '{print $4}'
    }
    function waiting {
        $curl $url 2>/dev/null| grep 'Waiting' | awk '{print $6}'
    }
    function accepts {
        $curl $url 2>/dev/null| awk NR==3 | awk '{print $1}'
    }
    function handled {
        $curl $url 2>/dev/null| awk NR==3 | awk '{print $2}'
    }
    function requests {
        $curl $url 2>/dev/null| awk NR==3 | awk '{print $3}'
    }
    $1
    
    chmod 755 /usr/local/sbin/ngx_status.sh
  • 编辑zabbix_agent.conf
    vi /etc/zabbix/zabbix_agentd.conf # 增加
    UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1
  • 重启服务
    systemctl restart zabbix-agent
  • zabbix_get 测试
    在服务端执行
    zabbix_get  -s 192.168.139.129 -k 'nginx.status[accepts]'
  • 导入nginx模板(web)
    下载模板 https://github.com/aminglinux/linux2019/blob/master/zabbix_nginx_template/zbx_export_templates.xml
    
    Configuration -> Templates -> 右上角Import
  • 链接模板(web)
    Configuration -> Hosts -> aminglinux02 -> Templates -> Select -> Add -> Update

zabbix监控tomcat

  • 监控流程:
    1)安装zabbix_java_gateway
    2)配置zabbix_java_gateway配置文件和zabbix_server配置文件,指定监听端口,启动进程数
    3)编辑Tomcat配置文件,开启JMX
    4)添加host,指定JMX interface
    5)链接TOMCAT模板
  • 安装zabbix_java_gateway
    yum install -y zabbix-java-gateway
  • 修改配置文件
    vi /etc/zabbix/zabbix_java_gateway.conf 
    	定义 LISTEN_PORT 和 START_POLLERS
    
    vi /etc/zabbix/zabbix_server.conf
    	定义 JavaGateway(127.0.0.1) 和 JavaGatewayPort 和  StartJavaPollers
    
    启动zabbix-java-gateway服务 systemctl start zabbix-java-gateway
    
    重启zabbix-server服务 systemctl restart zabbix-server
  • 开启JMX
    vi /usr/local/tomcat/bin/catalina.sh #在#!/bin/sh下增加
    export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
    -Djava.rmi.server.hostname=192.168.222.128
    -Dcom.sun.management.jmxremote.port=9999
    -Dcom.sun.management.jmxremote.ssl=false
    -Dcom.sun.management.jmxremote.authenticate=false"
    
    重启tomcat
    /usr/local/tomcat/bin/shutdown.sh 
    /usr/local/tomcat/bin/startup.sh	
  • 添加Host链接模板
    Configuration -> Hosts -> Create host
    Agent interfaces -> remove
    JMX interfaces -> Add -> 192.168.222.128  9999
    Templates -> Select -> Template App Apache Tomcat JMX -> select -> Add
    Add

zabbix监控mysql

  • 授权一个监控用户
    > grant usage, process, replication client on *.* to 'mon'@'localhost' identified by 'x2ay9xodTvyM';
  • 编辑配置文件
    vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
    mkdir /var/lib/zabbix
    vi /var/lib/zabbix/.my.cnf #如下内容
    [mysql]
    host=localhost
    user=mon
    password='x2ay9xodTvyM'
    socket=/tmp/mysql.sock
    
    [mysqladmin]
    host=localhost
    user=mon
    password='x2ay9xodTvyM'
    socket=/tmp/mysql.sock
  • 重启zabbix-agent服务
    systemctl restart zabbix-agent
  • 测试
    zabbix_get -s 127.0.0.1 -p 10050 -k mysql.ping
    若提示:sh: mysqladmin: 未找到命令
    需要: ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/	
    
    zabbix_get -s 127.0.0.1 -p 10050 -k mysql.version
    zabbix_get -s 127.0.0.1 -p 10050 -k mysql.size
  • 添加主机和模板
    Configuration -> Hosts -> Create host
    Agent interfaces -> 127.0.0.1 10050
    Templates -> Select -> Template DB MySQL -> select -> Add
    Add
  •  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值