当前位置: 首页 > news >正文

空间代码网站百度认证是什么

空间代码网站,百度认证是什么,广告横幅在线制作,建设一个本地网站本文目的 夜莺推荐使用Categraf作为数据采集器,然而Catefraf截止目前提供了关于redis单实例跟哨兵模式的监控配置,但并没有针对Cluster分片集群提供专门的配置,不信看categraf官方介绍。 虽然可以通过增加instances 的方式监控多个redis实例,但监控指标还是针对单实例的方…

本文目的

夜莺推荐使用Categraf作为数据采集器,然而Catefraf截止目前提供了关于redis单实例跟哨兵模式的监控配置,但并没有针对Cluster分片集群提供专门的配置,不信看categraf官方介绍。
在这里插入图片描述
虽然可以通过增加instances 的方式监控多个redis实例,但监控指标还是针对单实例的方式。对于cluster分片集群,比如经常需要关注的集群是否正常(对应redis命令cluster info输出的cluster_state值信息)以及集群中节点情况(对应redis命令cluster nodes输出信息)如节点角色?主从对应关系如何?哈希槽是否有丢失?节点状态是否正常等?categraf并没有提供相应的监控指标,那如何才能借助categraf实现对这些信息的监控及告警,这是本文的目的,当然可能也还有考虑不周的情况,也欢迎各位老板多留言提意见。

exec插件exec.toml文件配置

这个配置文件定义了exec插件定期执行集群状态检查脚本文件:/opt/categraf/scripts/redis_cluster_status.sh及集群节点状态检查脚本文件:redis_cluster_nodes.sh,并且输出的数据格式为influx格式。

# # collect interval
# interval = 15[[instances]]
# # commands, support glob
commands = ["/opt/categraf/scripts/check_password_expiry.sh","/opt/categraf/scripts/redis_cluster_status.sh","/opt/categraf/scripts/redis_cluster_nodes.sh"
]# # timeout for each command to complete
# timeout = 5# # interval = global.interval * interval_times
# interval_times = 1# # choices: influx prometheus falcon
# # influx stdout example: mesurement,labelkey1=labelval1,labelkey2=labelval2 field1=1.2,field2=2.3data_format = "influx"

说明:/opt/categraf/scripts/check_password_expiry.sh脚本是利用exec插件对Linux主机系统用户及密码有效期进行监控及告警的实现,前面已经介绍过。

关于influx格式及格式说明:

mesurement,labelkey1=labelval1,labelkey2=labelval2 field1=1.2,field2=2.3
  • mesurement,定义指标名称(或者前缀),比如 connections;
  • mesurement后面是逗号,逗号后面是标签,如果没有标签,则mesurement后面不需要逗号
  • 标签是k=v的格式,多个标签用逗号分隔,比如region=beijing,env=test
  • 标签之后是空格
  • 空格之后是属性字段,多个属性字段用逗号分隔
  • 属性字段是字段名=值的格式,在categraf里只能是数字

最终,mesurement和各个属性字段名称拼接成metric名字

监控集群状态脚本redis_cluster_status.sh

#!/bin/bash
#此脚本通过获取redis cluster集群状态cluster_state值并检查是否为ok判断集群是否正常,并以influx格式输出检查结果# 定义Redis集群节点信息
redis_basedir=/opt/redis/8900/bin/redis-cli
redis_node=10.10.10.110
port=8900
password=123456# 获取cluster info输出并提取cluster_state
cluster_status=$($redis_basedir -c -h $redis_node -p $port -a $password cluster info 2>/dev/null | grep 'cluster_state' | awk -F: '{print $2}' | tr -d '\r')# 根据cluster_status的值赋值为1(表示集群正常)或0(表示集群异常)
if [[ "$cluster_status" = "ok" ]]; thenstatus_value=1
elsestatus_value=0
fi# 输出结果
echo "redis_cluster,cluster=redis_cluster status_value=$status_value"

**注意:**脚本执行输出结果一定要满足前面exec.toml配置文件中定义的data_format = "influx"数据格式,这样categraf截获的stdout内容,才能成功解析并传给服务端,上述脚本执行输出如下:

[root@redis1 categraf]# ./categraf --test --inputs exec | grep  redis_cluster_status_value
......
18:25:57 redis_cluster_status_value agent_hostname=redis1-10.10.10.110 cluster=redis_cluster 1
......

监控集群节点状态脚本redis_cluster_nodes.sh

#!/bin/bash
#此脚本通过cluster nodes命令获取redis cluster集群节点状态信息并以influx数据格式输出如下关键信息以判断集群节点是否正常
#1、提取节点ID信息node_id、节点地址信息host、节点角色信息flags_value、节点连接状态信息link_state以及节点哈希槽位信息slots_value
#2、判断集群中节点连接状态是否为正常的connected
#3、对于节点角色信息flags有多个值的情况,中间用&符合连接,以满足influx数据格式
#4、对于节点槽位信息slots有多个值的情况,中间用&符合连接,以满足influx数据格式# 定义Redis集群节点信息
redis_basedir=/opt/redis/8900/bin/redis-cli
redis_node=10.10.10.110
port=8900
password=123456# 获取cluster nodes输出
cluster_nodes=$($redis_basedir -c -h $redis_node -p $port -a $password cluster nodes 2>/dev/null)# 解析cluster nodes输出
echo "$cluster_nodes" | while IFS= read -r line; do# 提取节点信息id=$(echo $line | awk '{print $1}')ip_port=$(echo $line | awk '{print $2}' | cut -d@ -f1)flags=$(echo $line | awk '{print $3}')link_state=$(echo $line | awk '{print $8}')slots=$(echo $line | awk '{for (i=9; i<=NF; i++) printf "%s ", $i; print ""}' | sed 's/ $//')# 判断节点状态,根据link_state的值赋值为1(表示集群中节点状态正常)或0(表示集群中节点状态异常)if [[ "$link_state" == "connected" ]]; thennode_status=1elsenode_status=0fi
# 对于节点角色信息flags有多个值的情况,中间用&符合连接,以满足influx数据格式flags_value=$(echo $flags | tr ', ' '&')# 格式化 slots 字段,如果是slave节点,则槽位赋值为null,如果为master节点则输出实际值,同时使用&符号代替空格符号连接多个分散槽位的情况,这也是为了满足influx数据格式if [[ -z "$slots" ]]; thenslots_value="null"elseslots_value=$(echo $slots | tr ' ' '&')fi# 输出InfluxDB格式的数据echo "redis_cluster,host=$ip_port,flags_value=$flags_value,node_id=$id,link_state=$link_state,slots_value=$slots_value node_status=$node_status"
done

**注意:**这里脚本执行输出结果也一定要满足前面exec.toml配置文件中定义的data_format = "influx"数据格式,上述脚本执行输出如下:

[root@redis1 categraf]# ./categraf --test --inputs exec | grep  redis_cluster_node_status 
......
18:25:57 redis_cluster_node_status agent_hostname=redis1-10.10.10.110 flags_value=master host=10.10.10.112:8900 link_state=connected node_id=b3d9e3b8aca2c1bc9a936dfe41b492907531a4a3 slots_value=10923-16383 1
18:25:57 redis_cluster_node_status agent_hostname=redis1-10.10.10.110 flags_value=master host=10.10.10.111:8900 
http://www.dtcms.com/a/508850.html

相关文章:

  • 电子商务网站建设与管理的书wordpress 自定义栏目 删除
  • 搜狗站长推送工具2003访问网站提示输入用户名密码
  • wordpress二维码动态图片大小短视频seo什么意思
  • 免费的网站域名申请中国建设银行陕西分行官方网站
  • 渗透测试项目总结
  • 网站如何接广告赚钱网页设计师简历模板
  • 爱站挖词网站建设市场推广招聘
  • 深圳网站建设品牌策划软文写作的三个要素
  • 【spring如何扫描一个路径下被注解修饰的类】
  • Cuda reduce算子实现与优化
  • 计网4.2 IPV4
  • 做网站需要备案网站建设会计科目
  • 网站开发技术什么软件可以制作图片
  • 解码Linux文件IO之BMP 图像原理与应用
  • 串口转以太网模块在电梯控制柜中的透明改造
  • Git 检出到HEAD 再修改提交commit 会消失解决方案
  • 徐州网站建设方案推广4399电脑版网页链接
  • 利用 Trie 树对仅由小写字母构成的多个字符串按字典序排序
  • 曲沃网站建设网站流量怎么提升
  • 从 KaTeX 到智能渲染:构建 Vue + LLM 的公式可视化体系
  • 大数据做网站流量分析seo推广的特点
  • 网站虚拟交易技术怎么做建站设计公司
  • 龙虎榜——20251020
  • 网站改版原因东莞专业网站推广策划
  • 扎根中亚十三年,科伦药业打造现代化综合性药厂
  • 基于C语言和Ncurses的俄罗斯方块游戏实现
  • 企业网站脚本语言网站代备案公司
  • 网站建设托管预算清单展厅设计培训
  • PCIe协议之 Equalization篇 之 关于 TxSwing 的理解
  • 海康域名网站有做门窗找活的网站吗