|
|
第1行: |
第1行: |
− | ==创建vhost ==
| |
− | <pre>
| |
− | #创建 lxtx_hello vhost
| |
− | rabbitmqctl add_vhost /hello
| |
| | | |
− | 为用户设置virtual host 权限 用户为admin:
| |
− | rabbitmqctl set_permissions -p /hello admin '.*' '.*' '.*'
| |
| | | |
− | rabbitmqctl delete_vhost /hello
| |
− | </pre>
| |
| | | |
− | ==开启镜像模式==
| |
| | | |
| + | |
| + | == 监控进程== |
| + | zabbix进程监控 监控Rsync 进程 |
| + | |
| + | ===zabbix monitor=== |
| <pre> | | <pre> |
− | #为 vhost hello 开启镜像 ,名为 mirror4_hello
| + | 1、主机下新建监控项 |
− | rabbitmqctl set_policy -p hello mirror4_hello "^" '{"ha-mode":"all"}'
| |
− | Setting policy "mirror4_hello" for pattern "^" to "{\"ha-mode\":\"all\"}" with priority "0"
| |
| | | |
− | #默认vhost
| + | 配置--主机--点击主机监控项--创建监控项- |
− | rabbitmqctl set_policy mirror4_newcailuw "^" '{"ha-mode":"all"}'
| |
| | | |
− | #书面一点的解说
| + | 名称-Rsync-proc |
− | #这行命令在vhost名称为hello创建了一个策略,策略名称为mirror4_hello ,策略模式为 all 即复制到所有节点,包含新增节点,策略正则表达式为 “^” 表示所有匹配所有队列名称
| |
| | | |
− | 参数
| + | 类型-zabbix客户端 |
| | | |
− | ha-mode:策略键
| + | 键值-proc.num[,root,all,rsyncd] |
− | 1.all 队列镜像在群集中的所有节点上。当新节点添加到群集时,队列将镜像到该节点
| |
− | 2.exactly 集群中的队列实例数。
| |
− | 3.nodes 队列镜像到节点名称中列出的节点。
| |
| | | |
− | ha-sync-mode:队列同步
| + | 信息类型-数字(无正负) |
− | 1.manual手动<默认模式>.新的队列镜像将不会收到现有的消息,它只会接收新的消息。
| |
− | 2.automatic自动同步.当一个新镜像加入时,队列会自动同步。队列同步是一个阻塞操作。
| |
− | 作者:全能程序猿
| |
− | 链接:https://www.jianshu.com/p/f81d62a8de02
| |
− | 来源:简书
| |
− | 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
| |
− | </pre>
| |
| | | |
| + | 数据类型-十进位数字 |
| | | |
− | [https://www.jianshu.com/p/f81d62a8de02 RabbitMQ镜像策略set_policy]
| + | 应用集-Processes |
| | | |
− | [https://blog.csdn.net/wexiaoword/article/details/81352045 rabbitMq集群之镜像模式] | + | 如图 |
| + | </pre> |
| + | [[文件:Zabbixpro.png]] |
| + | <pre> |
| + | PRONAME=flume |
| + | num=`ps -ef|grep java|grep $PRONAME|wc -l` |
| + | |
| + | zabbix_get -s 118.89.28.39 -p10050 -k "" |
| + | |
| + | zabbix_get -s 118.89.28.39 -p 10050 -k "proc.num[,root,all,flume]" |
| + | zabbix_get -s 118.89.28.39 -p 10050 -k "proc.num[,root,all,salt-minion]" |
| + | |
| + | ssdb |
| + | zabbix_get -s 123.207.227.123 -p 10050 -k "proc.num[,root,all,ssdb]" |
| | | |
− | https://www.rabbitmq.com/parameters.html
| + | zabbix_get -s 118.89.28.39 -p 10050 -k "proc.num[,root,all,ssdb]" |
| | | |
− | https://www.rabbitmq.com/rabbitmqctl.8.html
| |
| | | |
− | = * Rabbitmq 用户角色及权限控制=
| |
| | | |
| | | |
| + | 2、创建触发器 |
| | | |
− | ==RabbitMQ的用户角色分类:==
| + | 配置--主机--点击主机触发器--创建触发器 |
− | none、management、policymaker、monitoring、administrator | |
| | | |
− | ==RabbitMQ各类角色描述:==
| + | 名称-- Rsync-Server-Proc on server{HOST.NAME} |
− | <pre>
| |
− | none
| |
− | 不能访问 management plugin
| |
| | | |
− | management
| + | 表达式-- {ad-admin:proc.num[,root,all,rsyncd].last()}=0 |
− | 用户可以通过AMQP做的任何事外加:
| |
− | 列出自己可以通过AMQP登入的virtual hosts
| |
− | 查看自己的virtual hosts中的queues, exchanges 和 bindings
| |
− | 查看和关闭自己的channels 和 connections
| |
− | 查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。
| |
| | | |
− | policymaker
| + | 表达式--可以使用添加--选择刚刚添加的监控项--然后选择值 |
− | management可以做的任何事外加:
| |
− | 查看、创建和删除自己的virtual hosts所属的policies和parameters
| |
| | | |
− | monitoring
| |
− | management可以做的任何事外加:
| |
− | 列出所有virtual hosts,包括他们不能登录的virtual hosts
| |
− | 查看其他用户的connections和channels
| |
− | 查看节点级别的数据如clustering和memory使用情况
| |
− | 查看真正的关于所有virtual hosts的全局的统计信息
| |
| | | |
− | administrator
| + | zabbix_get -s 11.8.0.22 -p 10050 -k "proc.num[,root,all,rsyncd]" 可以使用这个命令去或者服务器端口当前的值,然后判断 |
− | policymaker和monitoring可以做的任何事外加:
| |
− | 创建和删除virtual hosts
| |
− | 查看、创建和删除users
| |
− | 查看创建和删除permissions
| |
− | 关闭其他用户的connections </pre>
| |
| | | |
− | =Note=
| |
− | <pre>
| |
| | | |
− | administrator一定能看到 cluster信息,manager不行
| |
| | | |
− | monitoring 也可以
| |
− | </pre>
| |
| | | |
| | | |
− | =* 创建用户 =
| |
− | <pre>
| |
− |
| |
− | ** 新增用户admin,密码1234
| |
| | | |
− | rabbitmqctl add_user admin 1234
| |
| | | |
− | ** 也可以使用rabbitmqctl命令更改密码
| + | 名称:ssdb-Server-Proc on server{HOST.NAME} |
| | | |
− | rabbitmqctl change_password admin adm
| + | #选择就行了不用手工写 |
| + | 表达式: {da_123.207.227.123:proc.num[,root,all,ssdb].last()}=0 |
| | | |
− | ** 将admin加入到管理员组 赋予其management角色:
| |
− | rabbitmqctl set_user_tags admin administrator
| |
| | | |
| | | |
− | ** 查看用户列表
| + | {ad-admin:proc.num[,root,all,rsyncd].last()}=0 |
| + | </pre> |
| | | |
− | rabbitmqctl list_users</pre>
| + | ==监控端口== |
| | | |
− | =运维常用命令= | + | ===zabbix server monitor === |
− | ==rabbitmqadmin== | |
| <pre> | | <pre> |
− | 一般情况下,我们会使用 rabbitmq_management 插件,通过 Web UI 的方式来监控和操作 RabbitMQ(端口 15672),但有时候命令的方式会更加方便一些,RabbitMQ 提供了 CLI 管理工具 rabbitmqadmin ,其实就是基于 RabbitMQ 的 HTTP API,用 Python 写的一个脚本。
| + | 1、主机下新建监控项 |
| + | |
| + | zabbix监控端口 |
| + | 使用zabbix的item中的key来做端口 |
| | | |
| + | 监控进程的key |
| + | net.tcp.listen[port] |
| | | |
| + | key对应的释义 |
| + | Checks if this TCP port is in LISTEN state. Returns 0 - it is not in LISTEN state; 1 - it is in LISTEN state |
| + | 检测tcp端口的状态,监听中返回1,未监听返回0 |
| | | |
| + | 示例中的key值配置 |
| + | net.tcp.listen[3307] |
| | | |
| + | zabbix中item的配置如下: |
| </pre> | | </pre> |
− | ==rabbitmqadmin 命令汇总:==
| + | [[文件:zabport1.png]] |
| + | |
| + | [[文件:esport.png]] |
| <pre> | | <pre> |
| + | 2、创建触发器 |
| + | 报警设置当然也用zabbix的trigger |
| | | |
− | 命令 解释
| + | 相应的trigger对应的Expression如下: |
− | rabbitmqadmin list users 查看所有用户 User
| + | {test_agentd:net.tcp.listen[3307].last(0)}=0 |
− | rabbitmqadmin list users name 查看所有用户名 Username
| + | |
− | rabbitmqadmin list users tags 查看所有用户角色
| + | zabbix中trigger的配置如下: |
− | rabbitmqadmin list vhosts 查看所有虚拟主机
| |
− | rabbitmqadmin list connections 查看所有连接
| |
− | rabbitmqadmin list exchanges 查看所有路由 Exchange
| |
− | rabbitmqadmin list bindings 查看所有路由与队列的关系绑定 Binding
| |
− | rabbitmqadmin list permissions 查看所有角色的权限 Permission
| |
− | rabbitmqadmin list channels 查看所有通道 Channel
| |
− | rabbitmqadmin list consumers 查看所有消费者 Consumer
| |
− | rabbitmqadmin list queues 查看所有消息队列 Queue
| |
− | rabbitmqadmin list nodes 查看所有节点 Node
| |
− | rabbitmqadmin show overview 概览 Overview
| |
− | rabbitmqadmin list bindings source destination_type destination properties_key 查看所有路由与队列的关系绑定的详细信息 Binding
| |
− | rabbitmqadmin declare queue name=test durable=true 定义一个队列queue,durable=true代表持久化打开。
| |
− | rabbitmqadmin declare exchange name=my.fanout type=fanout 定义一个Fanout路由
| |
− | rabbitmqadmin declare exchange name=my.direct type=direct 定义一个Direct路由
| |
− | rabbitmqadmin declare exchange name=my.topic type=topic 定义一个Topic路由
| |
− | rabbitmqadmin declare binding source=my.fanout destination=test routing_key=first 定义 binding
| |
− | rabbitmqadmin publish routing_key=test payload="hello world" 发布一条消息
| |
− | rabbitmqadmin publish routing_key=my.test exchange=my.topic payload="hello world" 使用路由转发消息
| |
− | rabbitmqadmin get queue=test requeue=true 查看消息,不消费
| |
− | rabbitmqadmin get queue=test requeue=false 查看消息,并消费
| |
− | rabbitmqadmin purge queue name=test 删除队列中的所有消息 清空队列
| |
− | rabbitmqadmin delete queue name=hello 删除消息队列 Queue
| |
− | rabbitmqadmin delete user name=test 删除用户 User
| |
− | rabbitmqadmin delete exchange name=test 删除路由器 Exchange
| |
− | rabbitmqadmin delete binding source='kk' destination_type=queue destination=test properties_key=test 删除路由器与消息队列的关系绑定 Binding
| |
− | rabbitmqadmin -f raw_json list users raw_json 格式化输出
| |
− | rabbitmqadmin -f long list users 格式化输出
| |
− | rabbitmqadmin -f pretty_json list users pretty_json 格式化输出
| |
− | rabbitmqadmin -f kvp list users 格式化输出
| |
− | rabbitmqadmin -f tsv list users 格式化输出
| |
− | rabbitmqadmin -f table list users table 格式化输出
| |
− | rabbitmqadmin -f bash list users bash 格式化输出
| |
| </pre> | | </pre> |
− | | + | [[文件:zabport2.png]] |
− | ==NOTE==
| |
− | 注意 运维 例如查看队列 是用 rabbitmqadmin ,rabbitmqadmin --username=admin --password=333 list queues 不是 rabbitmqctl list_queues 早上 同桌也说是这个 ,搞半天 还以为集群坏了呢 还看什么日志
| |
− | | |
− | =RabbitMQ 概念:=
| |
| <pre> | | <pre> |
− | 概念 详解
| + | 加上zabbix邮件报警,你就可以停掉对应的进程或者端口来检测是否达到预期期望,即触发了trigger,而后发送报警邮件。 |
− | Exchange 消息交换机,它指定消息按什么规则,路由到哪个队列
| |
− | Queue 消息队列,每个消息都会被投入到一个或多个队列
| |
− | Binding 绑定,它的作用就是把 exchange 和 queue 按照路由规则绑定起来
| |
− | Routing Key 路由关键字,exchange 根据这个关键字进行消息投递
| |
− | Vhost 虚拟主机,可以开设多个 vhost,用作不同用户的权限分离
| |
− | Producer 消息生产者,就是投递消息的程序
| |
− | Consumer 消息消费者,就是接受消息的程序
| |
− | Channel 消息通道,在客户端的每个连接里,可建立多个 channel,每个 channel 代表一个会话任务
| |
| </pre> | | </pre> |
− | =查看 RabbitMQ日志=
| |
| | | |
| + | ==参考== |
| + | [https://wing324.github.io/2016/05/31/zabbix%E5%A6%82%E4%BD%95%E7%9B%91%E6%8E%A7%E8%BF%9B%E7%A8%8B%E6%88%96%E7%AB%AF%E5%8F%A3/ zabbix如何监控进程或端口] |
| | | |
| + | [http://yangrong.blog.51cto.com/6945369/1548670 原来zabbix监控进程与端口是如此的简单] |
| | | |
− | [https://blog.csdn.net/weixin_33716941/article/details/90324587 学会查看 RabbitMQ日志]
| |
| | | |
− | =* see alse=
| + | [https://www.cnblogs.com/netsa/p/7783518.html zabbix 客户端添加自定义参数] |
− | [https://blog.csdn.net/zyz511919766/article/details/42292655 RabbitMQ用户角色及权限控制] | |
| | | |
− | [https://blog.csdn.net/chenshourui/article/details/81203770 rabbitmq学习笔记2 : 添加用户和virtual hosts]
| + | http://www.centos.ws/?p=59 |
− | | + | |
− | | + | zabbix监控进程 |
− | [https://www.cnblogs.com/xishuai/p/rabbitmq-cli-rabbitmqadmin.html RabbitMQ CLI 管理工具 rabbitmqadmin(管理和监控)]
| + | http://825536458.blog.51cto.com/4417836/1877829 |
− | | + | |
− | | + | zabbix监控mysql主从 |
− | [https://www.rabbitmq.com/management-cli.html Management Command Line Tool官网]
| + | http://825536458.blog.51cto.com/4417836/1775341 |
− | | |
− | [https://www.jianshu.com/p/8414cd70bef1 05_RabbitMQ 的CLI管理工具 rabbitmqadmin]
| |
| | | |
| | | |
− | [[category:ops]] | + | [[category:zabbix]] |
监控进程
zabbix进程监控 监控Rsync 进程
zabbix monitor
1、主机下新建监控项
配置--主机--点击主机监控项--创建监控项-
名称-Rsync-proc
类型-zabbix客户端
键值-proc.num[,root,all,rsyncd]
信息类型-数字(无正负)
数据类型-十进位数字
应用集-Processes
如图
文件:Zabbixpro.png
PRONAME=flume
num=`ps -ef|grep java|grep $PRONAME|wc -l`
zabbix_get -s 118.89.28.39 -p10050 -k ""
zabbix_get -s 118.89.28.39 -p 10050 -k "proc.num[,root,all,flume]"
zabbix_get -s 118.89.28.39 -p 10050 -k "proc.num[,root,all,salt-minion]"
ssdb
zabbix_get -s 123.207.227.123 -p 10050 -k "proc.num[,root,all,ssdb]"
zabbix_get -s 118.89.28.39 -p 10050 -k "proc.num[,root,all,ssdb]"
2、创建触发器
配置--主机--点击主机触发器--创建触发器
名称-- Rsync-Server-Proc on server{HOST.NAME}
表达式-- {ad-admin:proc.num[,root,all,rsyncd].last()}=0
表达式--可以使用添加--选择刚刚添加的监控项--然后选择值
zabbix_get -s 11.8.0.22 -p 10050 -k "proc.num[,root,all,rsyncd]" 可以使用这个命令去或者服务器端口当前的值,然后判断
名称:ssdb-Server-Proc on server{HOST.NAME}
#选择就行了不用手工写
表达式: {da_123.207.227.123:proc.num[,root,all,ssdb].last()}=0
{ad-admin:proc.num[,root,all,rsyncd].last()}=0
监控端口
zabbix server monitor
1、主机下新建监控项
zabbix监控端口
使用zabbix的item中的key来做端口
监控进程的key
net.tcp.listen[port]
key对应的释义
Checks if this TCP port is in LISTEN state. Returns 0 - it is not in LISTEN state; 1 - it is in LISTEN state
检测tcp端口的状态,监听中返回1,未监听返回0
示例中的key值配置
net.tcp.listen[3307]
zabbix中item的配置如下:
文件:Zabport1.png
2、创建触发器
报警设置当然也用zabbix的trigger
相应的trigger对应的Expression如下:
{test_agentd:net.tcp.listen[3307].last(0)}=0
zabbix中trigger的配置如下:
文件:Zabport2.png
加上zabbix邮件报警,你就可以停掉对应的进程或者端口来检测是否达到预期期望,即触发了trigger,而后发送报警邮件。
参考
zabbix如何监控进程或端口
原来zabbix监控进程与端口是如此的简单
zabbix 客户端添加自定义参数
http://www.centos.ws/?p=59
zabbix监控进程
http://825536458.blog.51cto.com/4417836/1877829
zabbix监控mysql主从
http://825536458.blog.51cto.com/4417836/1775341