xml地图|网站地图|网站标签 [设为首页] [加入收藏]
监控web接口和添加触发器,三种方式给apt设置代
分类:操作系统

1: 以监控百度接口为例子:

一、启动redis-server

cd /data/redis
redis-server redis.conf (根据自己的环境启动redis)

测试脚本(写入1000个数据):
seq 1000|while read line; do redis-cli set key_${line} value_${line}; done

图片 1
为什么设置代理,你懂得。

www.baidu.com1: 打开

二、redis-cli info查看redis的运行信息

used_memory_rss  #占用系统的内存
used_memory  #key所占用的内存
mem_fragmentation_ratio #内存碎片化率used_memory_rss/used_memory
connected_clients #已连接的客户端
total_commands_processed #从启动开始运行了多少命令
total_connections_received #从启动开始接收了多个连接
role      #redis主从状态

redis-cli info|grep total_commands_processed

有很多第三方工具可以用,比如proxychains,非常好用,不过今天这不是正题。因为有可能没有代理,上网你都做不到,更别提下载软件了。想一想方法还是告诉你,免得你万一必须用:sudo apt install proxychains

2: 过滤ss0.bdstatic.com

三、监控redis脚本(vim /usr/local/zabbix/check_redis.sh)

#!/bin/sh
while getopts "p:k:P:" opt
do
        case $opt in
                p ) redis_port=$OPTARG;;
                k ) info_key=$OPTARG;;
                P ) redis_passwd=$OPTARG;;
                ? )
                echo 'parameter is wrong!'
                exit 1;;
        esac
done
if [ ! "${redis_port}" ] || [ ! "${info_key}" ];then
        echo "parameter is null"        
        exit 1
fi

if [ "${redis_passwd}" ];then
        result=`/usr/local/bin/redis-cli -a ${redis_passwd} -p ${redis_port} info|grep "${info_key}:"|cut -d: -f2`
else
        result=`/usr/local/bin/redis-cli -p ${redis_port} info|grep "${info_key}:"|cut -d: -f2`
fi
echo $result

通常有三种办法为apt设置代理,有了代理能上网之后,apt才能为你带来其它软件的帮助。
1.设置环境变量,如果想为所有用户设置,可以编辑/etc/profile或者/etc/environment;如果只是当前用户使用,可以设置~/.profile文件,如果使用的不是bash,可能要根据需要设置其它配置文件,具体看使用shell的帮助文件,比如fish是使用:~/.config/fish/config.fish。另外不同的脚本设置环境变量的命令是不同的,注意区别使用。
以bash为例,把下面这行脚本写入配置文件。记着把代理的用户名、密码替换成自己的,如果没有密码也可以把@之前的部分包括@都去掉:

3: 选择两个url进行监控

四、测试脚本

export HTTPS_PROXY=http://username:password@192.168.1.1:8080

无密码测试

sh /usr/local/zabbix/check_redis.sh -k mem_fragmentation_ratio -p 6379
sh /usr/local/zabbix/check_redis.sh -k total_commands_processed -p 6379

如果使用的是socks5代理,可以写成这样:

有密码测试

config set requirepass "test"
auth test
sh /usr/local/zabbix/check_redis.sh -k total_commands_processed -p 6379 -P test
export HTTPS_PROXY="socks5://192.168.1.1:8088"
#或者
export ALL_PROXY="socks5://192.168.1.1:8088"

4: 添加主机

去除密码

auth test
config set requirepass ""

2.如果不想一直使用代理,只是各别命令行程序有代理需求,可以使用临时的环境变量。方法是,建立一个脚本文件,比如叫proxy.sh,内容为:

4.1 解析域名对应的ip地址

五、zabbix agent的配置(vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/redis.conf)

UserParameter=redis.status[*],sh /usr/local/zabbix/check_redis.sh -k $1 -p $2
4.1 如果有密码的话(test替换自己的密码)
UserParameter=redis.status[*],sh /usr/local/zabbix/check_redis.sh -k $1 -p $2 -P test
重启zabbix agentd。
#!/bin/sh
HTTPS_PROXY=http://username:password@192.168.1.1:8080 $*

nslookup ss0.bdstatic.com

六、测试zabbix_agent是否正常

/usr/local/zabbix/sbin/zabbix_agentd -t redis.status[mem_fragmentation_ratio,6379]
/usr/local/zabbix/sbin/zabbix_agentd -t redis.status[total_commands_processed,6379]

zabbix_get -s 192.168.1.106 -k redis.status[mem_fragmentation_ratio,6379]

这样,以后需要使用代理执行某个命令的时候,用如下的形式:

4.2 添加主机

七、在zabbix server网页上配置监控

6.1 添加主机
6.2 添加监控项目
简单检查 net.tcp.service.perf[tcp,,6379]   #浮点数 触发器为0时告警 图形
redis.status[used_memory_rss,6379] #整数
redis.status[used_memory,6379]  #整数
redis.status[mem_fragmentation_ratio,6379] #浮点数   redis内存碎片化率
redis.status[connected_clients,6379] #整数
redis.status[total_commands_processed,6379] #每秒速率 整数  redis每秒钟执行的命令(qps)
redis.status[total_connections_received,6379] #每秒速率 整数

6.3 模板说明

自动发现redis端口(discover_redis.py)

#coding:utf-8
import json
import commands

(status, output) = commands.getstatusoutput("""sudo netstat -tlnp|grep 'redis'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u|grep -v '^1'""")
outputs = output.split('n')
ports = []
for port in  outputs:
    ports += [{'{#REDISPORT}': port}]

print json.dumps({'data':ports},sort_keys=True,indent=4)

自动发现zabbix配置:
UserParameter=redis.discover,python /usr/local/zabbix/discover_redis.py

 

proxy.sh curl https://www.google.com

本文由澳门新葡亰手机版发布于操作系统,转载请注明出处:监控web接口和添加触发器,三种方式给apt设置代

上一篇:sed 下一篇:没有了
猜你喜欢
热门排行
精彩图文