热爱技术,追求卓越
不断求索,精益求精

java使用钉钉群机器人Webhook和okhttp实现系统监控群告警

现在使用钉钉办公的企业越来越多,尤其是互联网企业。钉钉的功能还是蛮强大的,我们今天就讲一下使用钉钉群机器人实现系统监控告警功能。

钉钉群机器人相关文档请直接前往下面的链接:

https://open-doc.dingtalk.com/microapp/serverapi2/nr29om

钉钉配置Webhook机器人

登录钉钉PC客户端(请升级至最新版),操作入口:

  • 窗口右上角点击【头像】,进入”机器人管理“, 可对所有机器人进行统一管理。
  • 进入一个钉钉群,在群的顶部功能栏中,点击【群设置】,进入菜单可以看到【群机器人】的入口,点击进入“群机器人”的管理面板后,可以进行添加、编辑和删除群机器人的操作。
  • 选择【自定义】(Webhook的方式),给机器人取个可爱的名字,点击【完成】,复制Webhook的地址备用

上面的配置是PC版,移动版的操作也很简单:

登录钉钉手机端(请升级至最新版),进入一个钉钉群,点击右上角的群设置进入群设置页面,可看到群机器人的入口,点击进入群机器人的管理页面后,可以进行添加、编辑和删除群机器人的操作。

Webhook的地址如下,后面的“xxx”是access_token,每个机器人唯一:

https://oapi.dingtalk.com/robot/send?access_token=xxx

使用okhttp发送群告警

引入依赖

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.4.1</version>
</dependency>

发送钉钉的完整代码如下:

package cn.lovecto.promotion.ding;

import org.junit.Test;
import com.alibaba.fastjson.JSONObject;

import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.Request.Builder;

public class DingTest {


    private static OkHttpClient client = new OkHttpClient();


    @Test
    public void test(){
        sendToDingDing("test", "test", "https://oapi.dingtalk.com/robot/send?access_token=xxx");
    }

    /**
     * 发送钉钉消息
     * @param title 标题
     * @param message 消息内容
     * @param webhook 钉钉自定义机器人webhook
     * @return
     */
    public static boolean sendToDingDing(String title, String message, String webhook) {
        try {
            JSONObject text = new JSONObject();
            text.put("text", message);
            text.put("title", title);

            JSONObject json = new JSONObject();
            json.put("msgtype", "markdown");
            json.put("markdown", text);
            String jsonString = json.toJSONString();

            String type = "application/json; charset=utf-8";
            RequestBody body = RequestBody.create(MediaType.parse(type), jsonString);
            Builder builder = new Request.Builder().url(webhook);
            builder.addHeader("Content-Type", type).post(body);

            Request request = builder.build();
            Response response = client.newCall(request).execute();
            String string = response.body().string();
            System.out.println(String.format("send ding message:%s", string));
            //logger.info("send ding message:{}", string);
            JSONObject res = JSONObject.parseObject(string);
            return res.getIntValue("errcode") == 0;
        } catch (Exception e) {
            e.printStackTrace();
            //logger.error("发送钉钉消息错误! ", e);
            return false;
        }
    }

}

运行测试,钉钉群收到了“test”消息,接下来就只需要在需要监控的地方调用上面的sendToDingDing方法就可以实现钉钉群告警啦。

赞(3)
未经允许不得转载:LoveCTO » java使用钉钉群机器人Webhook和okhttp实现系统监控群告警

热爱技术 追求卓越 精益求精