知乎专栏 |
将 ERROR 和 WARN 级别的日志发送到钉钉群
[root@netkiller ~]# cat /etc/logstash/conf.d/file.conf input { tcp { port => 4567 codec => json_lines } gelf { port => 12201 use_udp => true #use_tcp => true } } filter { ruby { code => "event.set('datetime', event.get('@timestamp').time.localtime.strftime('%Y-%m-%d %H:%M:%S'))" } } output { file { path => "/opt/log/%{marker}.%{+yyyy}-%{+MM}-%{+dd}.log" codec => line { format => "[%{datetime}] %{level} %{message}"} } file { path => "/opt/log/origin.%{+yyyy}-%{+MM}-%{+dd}.log.gz" codec => json_lines gzip => true } if "ERROR" in [level] or "WARN" in [level] { http { url => "https://oapi.dingtalk.com/robot/send?access_token=56c27cb734a56cf549f6977ecc2761c4a16473db02d9d2881d008f9a239ba3e0" http_method => "post" content_type => "application/json; charset=utf-8" format => "message" message => '{"msgtype":"text","text":{"content":"Monitor: %{host} - %{message}"}}' } } }
neo@MacBook-Pro-M2 ~ % cat workspace/bottleneck/src/main/java/cn/netkiller/Application.java package cn.netkiller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MarkerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; @EnableDiscoveryClient @SpringBootApplication public class Application { private static final Logger logger = LoggerFactory.getLogger(Application.class); @PostConstruct public void init() { System.out.printf("==================== init ===================="); logger.warn(MarkerFactory.getMarker("finance"), "XXX 系统启动"); } @PreDestroy public void destroy() { System.out.printf("==================== destroy ===================="); logger.error(MarkerFactory.getMarker("finance"), "XXX 系统销毁"); } public static void main(String[] args) { System.out.println("Netkiller bottleneck tool!"); SpringApplication.run(Application.class, args); } }
@PostConstruct 可以监控 启动情况
@PreDestroy 可以监控 退出情况