모듈이 쓸모없는 출력으로 커널 로그를 넘치게 하는 것을 어떻게 방지합니까?

모듈이 쓸모없는 출력으로 커널 로그를 넘치게 하는 것을 어떻게 방지합니까?

나는 이 atmel_mxt_ts모듈을 사용하고 있는데 커널 로그에 초당 약 10개의 쓸모없는 상태 메시지가 넘쳐납니다. 이로 인해 로그가 엄청나게 커지고 SSD에 불필요한 쓰기가 발생할까 걱정됩니다. 이 모듈의 출력을 침묵하게 하는 방법이 있습니까, 아니면 적어도 시스템 로그에서 이를 무시하도록 할 수 있습니까?

예:

Jun 08 22:44:52 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0000:01: Status: 08 
Jun 08 22:44:52 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0001:01: Status: 08 
Jun 08 22:44:52 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0000:01: Status: 08 
Jun 08 22:44:52 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0001:01: Status: 08 
Jun 08 22:44:52 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0000:01: Status: 08 
Jun 08 22:44:52 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0001:01: Status: 08 
Jun 08 22:44:52 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0000:01: Status: 08 
Jun 08 22:44:52 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0001:01: Status: 08 
Jun 08 22:44:52 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0000:01: Status: 08 
Jun 08 22:44:52 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0001:01: Status: 08 
Jun 08 22:44:51 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0000:01: Status: 08 
Jun 08 22:44:51 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0001:01: Status: 08 
Jun 08 22:44:51 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0000:01: Status: 08 
Jun 08 22:44:51 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0001:01: Status: 08 
Jun 08 22:44:51 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0000:01: Status: 08 
Jun 08 22:44:51 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0001:01: Status: 08 
Jun 08 22:44:51 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0000:01: Status: 08 
Jun 08 22:44:51 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0001:01: Status: 08 
Jun 08 22:44:51 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0000:01: Status: 08 
Jun 08 22:44:51 ben-chromebook kernel: atmel_mxt_ts i2c-ATML0001:01: Status: 08 

답변1

사용하는 경우 syslog-ng다음 지시어를 사용할 수 있습니다 filter.

filter demo_filter { not match ("atmel_mxt_ts i2c-ATML0000:01: Status: 08"); };

필터링에 대한 자세한 내용은 syslog-ng다음을 참조하세요.https://www.balabit.com/sites/default/files/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html-single/index.html#filters

사용하는 경우 rsyslog속성 기반 필터를 사용할 수 있습니다.

:msg, !contains, "atmel_mxt_ts i2c-ATML0000:01: Status: 08"

필터링에 대한 자세한 내용은 rsyslog다음을 참조하세요.http://www.rsyslog.com/doc/rsyslog_conf_filter.html

답변을 확장하고 주어진 의견에 반응하려면 다음을 수행하십시오.

버전 216 이전의 Systemd 로깅은 기본적으로 메시지를 syslog에 전달했습니다. 버전 216부터 메시지는 더 이상 전달되지 않습니다. rsyslog 또는 syslog-ng(버전 3.6부터 시작)가 로그 자체에서 메시지를 추출하기 때문입니다(참조:https://wiki.archlinux.org/index.php/Systemd/Journal#Journald_in_conjunction_with_syslog).

Storage=또한 기본적으로 Journald.conf 지시문이 설정되어 있습니다 auto. 이는 /var/log/journal 디렉토리가 존재하는 경우에만 로그가 지속된다는 것을 의미합니다( man journald.conf.

따라서 syslog를 필터링하면 지속적인 로깅이 없는 한 SSD에 대한 원치 않는 쓰기를 방지할 수 있습니다. 이 경우 Storage=지시어를 none또는 로 설정해야 합니다 volatile.

관련 정보