CAT配置

目录

 

CAT配置页面

一、项目配置信息

1、项目基本信息

2、机器分组配置 

二、应用监控配置 

1、业务监控配置

2、业务标签配置

3、心跳报表展示

三、应用告警配置

1、Transaction告警

2、Event告警

3、异常告警配置

4、心跳告警配置

四、全局系统配置

1、告警策略

2、默认告警人

3、告警服务端

4、服务端配置

5、消息采样配置

6、客户端路由


CAT配置页面

一、项目配置信息

1、项目基本信息

  1. CAT上项目名称:项目接入CAT后的唯一标识,来识别自己
  2. 事业部:项目所属事业部
  3. 产品线:项目所属产品线
  4. 负责人:项目负责人,该项不做为告警联系人
  5. 项目组邮件:项目负责人邮件,或项目组产品线邮件,多个邮箱由英文逗号分割,不要留有空格;作为发送告警邮件、微信的依据
  6. 项目组号码:项目负责人手机号;多个号码由英文逗号分隔,不要留有空格;作为发送告警短信的依据

2、机器分组配置 

可以聚合显示同一个项目多个IP的信息,

二、应用监控配置 

1、业务监控配置

 在系统中进行metric埋点,例如:

  ·记录开户人数logMetricForCount(“入账”)。

  ·记录投资总额logMetricForSum(“入账金额”,enterAccountAmount)。

  ·记录平均投资金额logMetricForDuration(“入账金额”,enterAccountAmount)

  (单位时间默认为1分钟)

 在应用监控配置下的业务监控配置中进行配置:

  显示次数曲线需要设置logMetricForCount

  显示平均曲线需要设置logMetricForDuration

  显示求和曲线需要设置logMetricForSum

  添加业务大盘标签会进行基线告警触发告警策略中的business类型的警告。

 “当前值”表示当前实际值,“基线值”表示根据历史趋势算出来当天的基准线

2、业务标签配置

3、心跳报表展示

三、应用告警配置

1、Transaction告警

Transaction埋点后,设置相应告警条件

以上表示 如果在一分钟之内,该方法被触发超过1次,则会在这一分钟结束时触发告警。

  • 监控最近分钟数。设定时间后(单位为分钟),当指标在设定的最近的时间长度内连续触发了监控规则,才会发出警报。比如最近分钟数为3,表明连续三分钟的数组都满足条件才告警。如果分钟数为1,表示最近的一分钟满足条件就告警

埋点方法:

public ResponseBean getApplyById(Integer id) {
    Transaction transaction = Cat.newTransaction("ApplyTestTransaction","applyTestCount");
    OrderInfoVO orderInfoVO = new OrderInfoVO();
    orderInfoVO.setChannelPid("23123123");
    orderInfoVO.setId(id);
    orderInfoVO.setChannelName("zhangsan");
    try{
        transaction.setStatus(Transaction.SUCCESS);
        int m = 100/id;
        return getResponseBean().setCode(RC.SUCCESS).setData(m);
    } catch (Exception e) {
        logger.error("errorrrr");
        Cat.logError(e);
        transaction.setStatus(e);
        transaction.addData("param orderVO",orderInfoVO);
    } finally {
        transaction.complete();
    }
    return getResponseBean().setCode(RC.SUCCESS).setData(123);
}

当选择指标为失败率的时候,阈值填的数就是失败率,

例如 失败率,最大值,0.5,即失败率不能超过50%

[CAT Transaction告警] [项目: o2o-business-oms] [监控项: ApplyTestTransaction-applyTestCount-failRatio],[CAT Transaction告警: o2o-business-oms ApplyTestTransaction applyTestCount] : [实际值:0.667 ] [最大阈值: 0.5 ][告警时间:2019-03-08 14:20:05]<br/>[时间: 2019-03-08 14:20] 
<a href='http://cat-web-server/cat/r/t?domain=o2o-business-oms&type=ApplyTestTransaction&name=applyTestCount&date=2019030814'>点击此处查看详情</a><br/>

2、Event告警

埋点方法:

public void eventTest() {
            Event event = Cat.newEvent(CatEventTypeNamePOSTLOAN_REPAYMENT_PLAN_TASK, "synCapitalBill");
            try {
                event.setStatus(Transaction.SUCCESS);
            } catch (Exception e2) {
                event.setStatus(e2);
                logger.error("eventTest error",e2);
            } finally {
                event.complete();                
            }
        }
    }

配置监控规则和Transaction一致

3、异常告警配置

4、心跳告警配置

四、全局系统配置

1、告警策略

告警服务器配置

只有配置为告警服务器的机器,才会执行告警逻辑;只有配置为发送服务器的机器,才会发送告警。

首先修改全局系统配置-服务端配置,对告警服务器增加<property name="alarm-machine" value="true"/>配置、以及<property name="send-machine" value="true"/>配置。

<server id="10.41.42.61">
      <properties>
         <property name="job-machine" value="true"/>
         <property name="send-machine" value="true"/>
         <property name="alarm-machine" value="true"/>
      </properties>
   </server>

告警策略

告警策略:配置某种告警类型、某个项目、某个错误级别,对应的告警发送渠道,以及暂停时间。

举例:下述配置示例,说明对于Transaction告警,当告警项目名为demo_project:

  • 当告警级别为error时,发送渠道为邮件、短信、微信,连续告警之间的间隔为5分钟

  • 当告警级别为warning时,发送渠道为邮件、微信,连续告警之间的间隔为10分钟

配置示例

<alert-policy>
	<type id="Transaction">
          <group id="default">
             <level id="error" send="mail,weixin" suspendMinute="5"/>
             <level id="warning" send="mail,weixin" suspendMinute="5"/>
          </group>
          <group id="demo-project">
             <level id="error" send="mail,weixin,sms" suspendMinute="5"/>
             <level id="warning" send="mail,weixin" suspendMinute="10"/>
          </group>
    </type>
</alert-policy>

配置说明:

  • type:告警的类型,可选:Transaction、Event、Business、Heartbeat
  • group id属性:group可以为default,代表默认,即所有项目;也可以为项目名,代表某个项目的策略,此时default策略不会生效
  • level id属性:错误级别,分为warning代表警告、error代表错误
  • level send属性:告警渠道,分为mail-邮箱、weixin-微信、sms-短信
  • level suspendMinute属性:连续告警的暂停时间

2、默认告警人

某个告警类型的告警信息(比如Transaction告警),均会发给默认告警接收人

默认告警人的第二个功能是可以直接关闭某种类型的告警。比如,代表不发送Transaction告警。

<alert-config>
   <receiver id="Transaction" enable="true">
      <email>testUser1@test.com</email>
      <phone>12345678901</phone>
      <phone>12345678902</phone>
   </receiver>
</alert-config>
  • receiver id属性:告警的类型,可选:Transaction、Event、Business、Heartbeat
  • receiver enable属性:是否开启告警;如果为false,此类别的告警不会发出
  • email:默认邮件告警人
  • phone:默认短信告警人

3、告警服务端

CAT在生成告警后,调用告警发送中心的Http接口发送告警。CAT自身并不集成告警发送中心,请自己搭建告警发送中心。

<sender-config>
   <sender id="mail" url="http://test/" type="post" successCode="200" batchSend="true">
      <par id="type=1500"/>
      <par id="key=title,body"/>
      <par id="re=test@test.com"/>
      <par id="to=${receiver}"/>
      <par id="value=${title},${content}"/>
   </sender>
   <sender id="weixin" url="http://test/" type="post" successCode="success" batchSend="true">
      <par id="domain=${domain}"/>
      <par id="email=${receiver}"/>
      <par id="title=${title}"/>
      <par id="content=${content}"/>
      <par id="type=${type}"/>
   </sender>
   <sender id="sms" url="http://test/" type="post" successCode="200" batchSend="false">
      <par id="jsonm={type:808,mobile:'${receiver}',pair:{body='${content}'}}"/>
   </sender>
</sender-config>

配置说明:

需修改如下

 自用配置如下


<sender-config>
   <sender id="mail" url="http://10.41.42.60:9933/o2o-payment-platform/cat/sendMail/" type="post" successCode="200" batchSend="true">
      <par id="type=1500"/>
      <par id="key=title,body"/>
      <par id="re=smtp.exmail.qq.com"/>
      <par id="to=${receiver}"/>
      <par id="value=${title},${content}"/>
   </sender>
</sender-config>

sendMail接口实现了发送mail的具体逻辑

@RequestMapping(value = "/sendMail")
@ResponseBody
public void sendMail(HttpServletRequest request, HttpServletResponse response) {
    Map<String,String[]> requestMap =  request.getParameterMap();
    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom(mail_sender);
    message.setTo(requestMap.get("to")[0]);
    message.setSubject(requestMap.get("value")[0].substring(0,16));
    message.setText(requestMap.get("value")[0]);

    mailSender.send(message);
}

receiver取值来自:项目配置信息-项目基本信息-项目组邮件/项目组号码 和全局系统配置- 默认告警人

domain为项目配置信息-项目基本信息-CAT上项目名称

可以通过查看cat的Problem判断邮件失败的原因

  • sender id属性:告警的类型,可选:mail、sms、weixin
  • sender url属性:告警中心的URL
  • sender batchSend属性:是否支持批量发送告警信息
  • par:告警中心所需的Http参数。${argument}代表构建告警对象时,附带的动态参数;此处需要根据告警发送中心的需求,将动态参数加入到代码AlertEntity中的m_paras
  • 上述的告警服务端配置:主要配置每个告警渠道的url规则、参数列表、参数占位符、返回码验证
  • MailSender, SmsSender, WeixinSender:配置告警标题、内容的生成逻辑
  • AlertEntity:配置所需的参数
com.dianping.cat.alarm.spi.sender.AbstractSender$AlertSendExceptionERRORhttp://10.41.42.57:9933/demoService/cat/sendMail---type=1500&key=title,body&re=smtp.exmail.qq.com&to=xxx@qq.com&value=%5B%E5%91%8A%E8%AD%A6%E6%81%A2%E5%A4%8D%5D+%5B%E5%91%8A%E8%AD%A6%E7%B1%BB%E5%9E%8B+Transacation%E5%91%8A%E8%AD%A6%5D%5B+ApplyTestTransaction-applyTestCount-count%5D,%5B%E5%91%8A%E8%AD%A6%E5%B7%B2%E6%81%A2%E5%A4%8D%5D%5B%E6%81%A2%E5%A4%8D%E6%97%B6%E9%97%B4%5D2019-03-07+19%3A07 com.dianping.cat.alarm.spi.sender.AbstractSender$AlertSendException 
at com.dianping.cat.alarm.spi.sender.AbstractSender.recordSendLog(AbstractSender.java:154) 
at com.dianping.cat.alarm.spi.sender.AbstractSender.httpPostSend(AbstractSender.java:131) 
at com.dianping.cat.alarm.spi.sender.AbstractSender.httpSend(AbstractSender.java:140) 
at com.dianping.cat.alarm.spi.sender.MailSender.sendEmail(MailSender.java:76) 
at com.dianping.cat.alarm.spi.sender.MailSender.send(MailSender.java:48) 
at com.dianping.cat.alarm.spi.sender.SenderManager.sendAlert(SenderManager.java:58) 
at com.dianping.cat.alarm.spi.AlertManager.sendRecoveryMessage(AlertManager.java:205) 
at com.dianping.cat.alarm.spi.AlertManager.access$400(AlertManager.java:54) 
at com.dianping.cat.alarm.spi.AlertManager$RecoveryAnnouncer.run(AlertManager.java:248) 
at java.lang.Thread.run(Thread.java:745) 
at org.unidal.helper.Threads$RunnableThread.run(Threads.java:294) 

 

4、服务端配置

通过服务端配置,配置每台CAT服务器的职责。

配置的sample如下: id="default"是默认的配置信息,server id="10.1.1.1" 如下的配置是表示10.1.1.1这台服务器的节点配置覆盖default的配置信息。default配置每一台机器,id如果对应一个ip则为该机器的个性化配置;

<?xml version="1.0" encoding="utf-8"?>
<server-config>
   <server id="default">
      <properties>
         <property name="local-mode" value="false"/>
         <property name="job-machine" value="false"/>
         <property name="send-machine" value="false"/>
         <property name="alarm-machine" value="false"/>
         <property name="hdfs-enabled" value="false"/>
         <property name="remote-servers" value="10.1.1.1:8080,10.1.1.2:8080,10.1.1.3:8080"/>
      </properties>
      <storage  local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7">
      	<hdfs id="logview" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="logview"/>
      	<hdfs id="dump" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="dump"/>
      	<hdfs id="remote" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="remote"/>
      </storage>
      <consumer>
         <long-config default-url-threshold="1000" default-sql-threshold="100" default-service-threshold="50">
            <domain name="cat" url-threshold="500" sql-threshold="500"/>
            <domain name="OpenPlatformWeb" url-threshold="100" sql-threshold="500"/>
         </long-config>
      </consumer>
   </server>
   <server id="10.1.1.1">
      <properties>
         <property name="job-machine" value="true"/>
         <property name="alarm-machine" value="true"/>
	     <property name="send-machine" value="true"/>
      </properties>
   </server>
</server-config>

配置说明:

server模型:代表一台机器的配置。如果id为default,代表默认配置;如果id为ip,代表该台服务器的配置

  • property local-mode : 定义服务是否为本地模式(开发模式),在生产环境时,设置为false,启动远程监听模式。默认为 false;
  • property hdfs-machine : 定义是否启用HDFS存储方式,默认为 false;
  • property job-machine : 定义当前服务是否为报告工作机(开启生成汇总报告和统计报告的任务,只需要一台服务机开启此功能),默认为 false;
  • property alarm-machine : 定义当前服务是否为报警机(开启各类报警监听,只需要一台服务机开启此功能),默认为 false;
  • property send-machine : 定义当前服务告警是否发送(当时为了解决测试环境开启告警线程,但是最后告警不通知,此配置后续会逐步去除,建议alarm-machine开启为true的时候,这个同步为true)

storage模型: 定义数据存储配置信息

  • property local-report-storage-time : 定义本地报告存放时长,单位为(天)
  • property local-logivew-storage-time : 定义本地日志存放时长,单位为(天)
  • property local-base-dir : 定义本地数据存储目录
  • property hdfs : 定义HDFS配置信息,便于直接登录系统
  • property server-uri : 定义HDFS服务地址
  • property console : 定义服务控制台信息
  • property remote-servers : 定义HTTP服务列表,(远程监听端同步更新服务端信息即取此值)
  • ldap : 定义LDAP配置信息(这个可以忽略)
  • ldapUrl : 定义LDAP服务地址(这个可以忽略)

注意配置一台机器 alarm-machine, send-machine设为true

5、消息采样配置

通过消息采样配置,配置每个项目的消息采样率。客户端会定期下拉改配置,根据采样率来采样上报。

采样率不会影响Transaction、Event的汇总指标。当某个项目数据量较大时,建议按需配置采样率

<?xml version="1.0" encoding="utf-8"?>
<sample-config>
   <domain id="cat" sample="1.0"/>
   <domain id="javacat" sample="1.0"/>
</sample-config>

  • domain id属性:项目名
  • sample:项目的采样率

6、客户端路由

  路由配置是 CAT 集群流量负载均衡最重要的一环。路由配置提供了默认机器列表、多机房划分、地域划分等基本功能,路由选择的优先级为:同机房 > 同地域 > 默认机器 > 备用机器。

<?xml version="1.0" encoding="utf-8"?>
<router-config backup-server="10.40.40.191" backup-server-port="2280">
   <default-server id="10.40.40.191" weight="1.0" port="2280" enable="false"/>
   <default-server id="10.40.46.79" weight="1.0" port="2280" enable="true"/>
   <default-server id="10.40.40.192" weight="1.0" port="2280" enable="true"/>
   <network-policy id="default" title="default" block="false" server-group="default_group">
   </network-policy>
   <server-group id="default_group" title="default-group">
      <group-server id="10.40.46.79"/>
      <group-server id="10.40.40.192"/>
   </server-group>
   <domain id="cat">
      <group id="default">
         <server id="10.40.46.79" port="2280" weight="1.0"/>
         <server id="10.40.40.192" port="2280" weight="1.0"/>
      </group>
   </domain>
</router-config>

default-server : CAT 集群机器列表

* enable : true 表示机器处于在线状态,主动对外提供服务;false 表示不对外主动提供服务,可用于定向测试、灰度测试以及备用应急处理。

* weight : 机器权重比例。在定期构建路由报表时,会根据权重以及机器丢失数据量进行路由调整,具体参考 RouterConfigAdjustor。

network-policy : 网络划分,与公司内部网段划分有关。

* network : 具体的网段划分。 例如 <network id="10.8.101.0/24"/> 对应在 <server-group id="sh_group1" title="上海机房一组"/> 中寻找最佳路由。

server-group : CAT 集群按地域、机房等策略划分,根据不同场景需求按需配置。

domain id为项目配置信息-项目基本信息中配置的项目名称

使用路由配置中 domain 配置项可以针对具体应用指定路由,常用于流量均衡调整、灰度测试等。

上述路由配置示例中应用 service-1 配置如下:

<domain id="service-1">
    <group id="default">
        <server id="10.8.101.1" port="2280" weight="1.0"/>
        <server id="10.8.101.2" port="2280" weight="1.0"/>
        <server id="10.8.101.3" port="2280" weight="1.0"/>
    </group>
    <group id="shanghai">
        <server id="10.8.101.1" port="2280" weight="1.0"/>
        <server id="10.8.101.2" port="2280" weight="1.0"/>
        <server id="10.8.101.3" port="2280" weight="1.0"/>
    </group>
    <group id="beijing">
        <server id="10.2.170.1" port="2280" weight="1.0"/>
        <server id="10.2.170.3" port="2280" weight="1.0"/>
        <server id="10.2.170.5" port="2280" weight="1.0"/>
    </group>
</domain>

如果应用 service-1 集群中某个 IP 属于 beijing 的 server-group ,那么将优先使用 beijing 分组所提供的路由列表。

配置说明:

  • backup-server属性:设置为当前服务器对外IP地址,端口固定为2280
  • default-server属性:定义可跳转的路由地址,可以设置多个。default-server的id属性配置可路由的cat-home服务IP地址,端口固定为2280;若需要禁用路由地址,可把enable设置为false
  • network-policy 这边可以配置多个不同网段,表示这个网段使用server-group的cat节点,这里面的作用主要是当多机房部署cat的时候,可以将cat分为多个多个子集群,然后多个子集群处理不同的客户端,避免跨专线访问
  • domain id=cat 这部分主要是定制路由,当发现一些项目数据量特别大,或者其他场景,可以将这写domain的监控请求单独隔离处理

 参考链接:https://github.com/dianping/cat 

hashcat是一款强大的密码恢复工具,支持多种类型的哈希,并且有多种攻击模式和选项可供选择。配置hashcat环境主要包括安装和环境变量设置。 首先,你需要下载适合你操作系统版本的hashcat,可以从官方网站或者其他可信的资源获取。对于Windows用户,可能需要下载预编译的二进制文件;而Linux和macOS用户可以通过包管理器安装或者下载源代码自行编译。 安装完毕后,为了方便使用,你可以设置环境变量。以Windows系统为例,通常你需要将hashcat的可执行文件路径添加到系统的PATH环境变量中。这样你就可以在任何目录下通过命令行直接调用hashcat了。在命令行中输入以下命令可以临时设置环境变量(在新窗口中失效): ``` set PATH=%PATH%;C:\path\to\hashcat ``` 如果你希望永久设置环境变量,你可以在系统属性的“高级”设置中找到环境变量设置界面,然后在“系统变量”中找到PATH变量,点击“编辑”并将hashcat的安装路径添加进去。 对于Linux和macOS用户,通常将hashcat的安装路径添加到`~/.bashrc`或者`~/.bash_profile`文件中,使用以下命令: ``` export PATH=$PATH:/path/to/hashcat ``` 然后更新环境变量: ``` source ~/.bashrc ``` 或者 ``` source ~/.bash_profile ``` 此外,hashcat需要合适的驱动程序来利用显卡的计算能力。例如,在NVIDIA显卡上,你需要确保已经安装了CUDA Toolkit或者对应版本的NVIDIA驱动。AMD显卡则需要安装对应的ROCm驱动。 安装和配置环境变量后,你就可以在命令行中使用hashcat来破解密码了。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值