天天看点

zabbix监控mysql主从,nginx监控请求读取活连接,redis监控连接

作者:街头角落里
zabbix监控mysql主从,nginx监控请求读取活连接,redis监控连接

友情链接

Zabbix拓扑图绘制,快速定位故障主机

Mycat部署mysql读写分离

一/mysql主从

1/修改agentd

[root@192_168_5_8 zabbix_agentd.d]# ll
总用量 8
-rwxr-xr-x 1 root root  202 8月  10 2020 slave.sh
-rw-r--r-- 1 root root 2484 8月  10 2020 userparameter_mysql.conf

[root@192_168_5_88 zabbix_agentd.d]# cat slave.sh 
#!/bin/bash
case $1 in
     mysql_slave)
        /usr/local/mysql/bin/mysql -uzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}' |grep -c Yes
        ;;
esac
[root@192_168_5_8 zabbix_agentd.d]# cat userparameter_mysql.conf 
UserParameter=mysql.slave[*],sudo /etc/zabbix/zabbix_agentd.d/slave.sh $1
                          
[root@192_168_5_8 zabbix_agentd.d]#service zabbix-agent restart           

2/zabbix服务端测试

[root@localhost ~]# zabbix_get -s 192.168.5.8 -k mysql.slave[mysql_slave]
2           

3/zabbix监控平台查看数据

mysql主从监控模板

链接:https://pan.baidu.com/s/1_BwXIAJd3BS3JqXHk1FX6w

提取码:as0s

zabbix监控mysql主从,nginx监控请求读取活连接,redis监控连接

二/nginx监控

1、修改Nginx配置文件

以便访问nginx status页面(nginx编译时需加参数--with-http_stub_status_module)

[root@HK_192_168_5_5 sbin]#vi /data/nginx/conf/nginx.conf
http {
    include       /data/nginx/conf/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /data/nginx/log/access.log  main;

    sendfile        on;

    keepalive_timeout  65;


        server {
          listen       11180;
          server_name  localhost;

                  location /nginx_status{
                        stub_status on;
                        access_log off;
                        allow 127.0.0.1;
                        deny all;
          }
        }
}           

2/测试nginx数据获取

[root@HK_192_168_5_5 sbin]# ./nginx -t -c /data/nginx/conf/nginx.conf
nginx: the configuration file /data/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /data/nginx/conf/nginx.conf test is successful
[root@HK_192_168_5_5 sbin]# sh reload.sh 
[root@HK_192_168_5_5 sbin]# curl http://127.0.0.1:11180/nginx_status
Active connections: 2 
server accepts handled requests
 38452793 38452793 1 
Reading: 0 Writing: 1 Waiting: 0 
[root@HK_192_168_5_5 sbin]#            

3/创建脚本

[root@HK_192_168_5_5 zabbix_agentd.d]# chmod +x nginx-status.sh 
[root@HK_192_168_5_5 zabbix_agentd.d]# cat nginx-status.sh 

#!/bin/bash
result="/usr/bin/curl -s http://127.0.0.1:11180/nginx_status"
case $1 in
    active)
        $result |awk '/Active/ {print $NF}'
    ;;
    accepts)
        $result |awk 'NR==3 {print $1}'
    ;;
    handled)
        $result |awk 'NR==3 {print $2}'
    ;;
    requests)
        $result |awk 'NR==3 {print $3}'
    ;;
    reading)
        $result |awk '/Reading/ {print $2}'
    ;;
    writing)
        $result |awk '/Writing/ {print $4}'
    ;;
    waiting)
         $result |awk '/Waiting/ {print $6}'
    ;;
          *)
    echo "USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
esac           

4/配置zabbix

[root@HK_192_168_5_5 zabbix_agentd.d]# vi userparameter_mysql.conf
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx-status.sh "$1"
[root@HK_192_168_5_5 zabbix]#service zabbix-agent restart           

5/zabbix服务端

[root@localhost ~]# zabbix_get -s 192.168.5.5 -k nginx.status[active]
13           

6/zabbix监控平台及模板

nginx模板

链接:https://pan.baidu.com/s/1muS_Zghz_G6E4HtXjrdFgA

提取码:9xga

zabbix监控mysql主从,nginx监控请求读取活连接,redis监控连接

三/redis监控

1/配置zabbix

[root@192_168_5_8 zabbix_agentd.d]#cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=Redis.Info[*],/etc/zabbix/zabbix_agentd.d/redis_status.sh $1 $2
UserParameter=Redus.Status,/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 53379 ping | grep -c PONG           

2/创建脚本

[root@192_168_5_8 zabbix_agentd.d]# cat redis_status.sh
#!/bin/bash
REDISCLI="/usr/local/redis/bin/redis-cli"
HOST="127.0.0.1"
#PORT=($(sudo netstat -tpln | awk -F "[ :]+" '/redis/ && /0.0.0.0/ {print $5}'))
PORT=6379
PASS=""

if [[ $# == 1 ]];then
    case $1 in
        version)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info server | grep -w "redis_version" | awk -F':' '{print $2}'`
            echo $result
        ;;
        uptime)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info server | grep -w "uptime_in_seconds" | awk -F':' '{print $2}'`
            echo $result
        ;;
        connected_clients)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info clients | grep -w "connected_clients" | awk -F':' '{print $2}'`
            echo $result
        ;;
        blocked_clients)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info clients | grep -w "blocked_clients" | awk -F':' '{print $2}'`
            echo $result
        ;;
        used_memory)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info memory | grep -w "used_memory" | awk -F':' '{print $2}'`
            echo $result
        ;;
        used_memory_rss)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info memory | grep -w "used_memory_rss" | awk -F':' '{print $2}'`
            echo $result
        ;;
        used_memory_peak)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info memory | grep -w "used_memory_peak" | awk -F':' '{print $2}'`
            echo $result
        ;;
        used_memory_lua)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info memory | grep -w "used_memory_lua" | awk -F':' '{print $2}'`
            echo $result
        ;;
        used_cpu_sys)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info cpu | grep -w "used_cpu_sys" | awk -F':' '{print $2}'`
            echo $result
        ;;
        used_cpu_user)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info cpu | grep -w "used_cpu_user" | awk -F':' '{print $2}'`
            echo $result
        ;;
        used_cpu_sys_children)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info cpu | grep -w "used_cpu_sys_children" | awk -F':' '{print $2}'`
            echo $result
        ;;
        used_cpu_user_children)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info cpu | grep -w "used_cpu_user_children" | awk -F':' '{print $2}'`
            echo $result
        ;;
        rdb_last_bgsave_status)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info Persistence | grep -w "rdb_last_bgsave_status" | awk -F':' '{print $2}' | grep -c ok`
            echo $result
        ;;
        aof_last_bgrewrite_status)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info Persistence | grep -w "aof_last_bgrewrite_status" | awk -F':' '{print $2}' | grep -c ok`
            echo $result
        ;;
        aof_last_write_status)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info Persistence | grep -w "aof_last_write_status" | awk -F':' '{print $2}' | grep -c ok`
            echo $result
        ;;
        *)
            echo -e "\033[33mUsage: $0 {connected_clients|blocked_clients|used_memory|used_memory_rss|used_memory_peak|used_memory_lua|used_cpu_sys|used_cpu_user|used_cpu_sys_children|used_cpu_user_children|rdb_last_bgsave_status|aof_last_bgrewrite_status|aof_last_write_status}\033[0m"
        ;;
    esac
elif [[ $# == 2 ]];then
    case $2 in
        keys)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info | grep -w "$1" | grep -w "keys" | awk -F'=|,' '{print $2}'`
            echo $result
        ;;
        expires)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info | grep -w "$1" | grep -w "keys" | awk -F'=|,' '{print $4}'`
            echo $result
        ;;
        avg_ttl)
            result=`/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info | grep -w "$1" | grep -w "avg_ttl" | awk -F'=|,' '{print $6}'`
            echo $result
        ;;
        *)
            echo -e "\033[33mUsage: $0 {db0 keys|db0 expires|db0 avg_ttl}\033[0m" 
        ;;
    esac
fi
[root@192_168_5_8 zabbix_agentd.d]#            

3/添加权限和重启agent

[root@HK_192_168_5_5 zabbix]#chmod +x *.sh
[root@HK_192_168_5_5 zabbix]#service zabbix-agent restart           

4/zabbix服务测试

[root@localhost ~]# zabbix_get -s 192.168.5.35 -k nginx.status[used_cpu_user_children]
13           

5/zabbix平台及模拟

redis模板

链接:https://pan.baidu.com/s/1Ghx-WxaO7y3khtCMqgfXUg

提取码:30li

zabbix监控mysql主从,nginx监控请求读取活连接,redis监控连接

友情链接

zabbix邮箱告警,设置触发器,中文告警

Mycat2版部署mysql读写分离

继续阅读