rsyslogを巧みに使用して複数のログを収集し、単一のログのフィルタ分離を行う
ログはsupervisorが発行したpythonログであり、異なるフォーマットのログを同じファイルに印刷する必要があります.postとERRORキーワード付きのログを分離し、2つの異なるkafkaのtopicキューに入る必要があります.現在の状況ではrsyslogはnginxのアクセスログを収集しており、相互に影響することはできません.つまり、if判断で分離することはできません.ログが混在する可能性があるからです.収集するログのフォーマットは次のとおりです.
操作前に構成したrsyslogのルールは次のとおりです.
当時if判断で分離しようとしたが、すべてのログがif判断に入ることが分かった.ログを混同する可能性が高い.その後、テストで発見された.rulesetにはif判断がネストされ、不思議なrsyslogがあり、大きな問題を解決した.以下のように配置されている.
自建个人原创站运维网カレー社(www.net-add.com)は、新しいブログをネットカフェで更新します.
ERROR:root:requeue {"withRefresh": false, "localPath": "/data1/ms/cache/file_store_location/n.fdaimg.cn/translate/20170219/oobE-fyarref6029227.jpg?43", "remotePath": "translate/20170219/oobE-fyarref6029227.jpg?43"}
INFO:root:2017-02-22T11:53:11.395165, {"withRefresh": false, "localPath": "/data1/ms/cache/file_store_location/n.adfaimg.cn/w/20170222/aue--fyarref6523250.jpeg", "remotePath": "w/20170222/aue--fyarref6523250.jpeg"}
INFO:root:post /data1/ms/cache/file_store_location/n.fsdaimg.cn/w/20170222/aue--fyarref6523250.jpeg to w/20170222/aue--fyarref6523250.jpeg took 112.954854965 ms...
操作前に構成したrsyslogのルールは次のとおりです.
module(load="imfile")
module(load="omkafka")
$PreserveFQDN on
main_queue(
queue.workerthreads="10" # threads to work on the queue
queue.dequeueBatchSize="1000" # max number of messages to process at once
queue.size="50000" # max queue size
)
######################### nginx access #####################
$template nginxlog,"xd172\.16\.11\.44`%msg%"
ruleset(name="nginxlog") {
action(
broker=["10.13.88.190:9092","10.13.88.191:9092","10.13.88.192:9092","10.13.88.193:9092"]
type="omkafka"
topic="cms-nimg-s3"
template="nginxlog"
partitions.auto="on"
)
}
input(type="imfile"
File="/data1/ms/comos/logs/access_s3.log"
Tag=""
ruleset="nginxlog"
freshStartTail="on"
reopenOnTruncate="on"
)
当時if判断で分離しようとしたが、すべてのログがif判断に入ることが分かった.ログを混同する可能性が高い.その後、テストで発見された.rulesetにはif判断がネストされ、不思議なrsyslogがあり、大きな問題を解決した.以下のように配置されている.
module(load="imfile")
module(load="omkafka")
$PreserveFQDN on
main_queue(
queue.workerthreads="10" # threads to work on the queue
queue.dequeueBatchSize="1000" # max number of messages to process at once
queue.size="50000" # max queue size
)
######################### nginx access #####################
$template nginxlog,"xd172\.16\.11\.44`%msg%"
ruleset(name="nginxlog") {
action(
broker=["10.13.88.190:9092","10.13.88.191:9092","10.13.88.192:9092","10.13.88.193:9092"]
type="omkafka"
topic="cms-nimg-s3"
template="nginxlog"
partitions.auto="on"
)
}
input(type="imfile"
File="/data1/ms/comos/logs/access_s3.log"
Tag=""
ruleset="nginxlog"
freshStartTail="on"
reopenOnTruncate="on"
)
####################### python s3 post error################################
$template s3post,"xd172\.16\.11\.43 %msg%"
ruleset(name="s3post") {
if ( $msg contains "post" ) then {
action(
broker=["10.13.88.190:9092","10.13.88.191:9092","10.13.88.192:9092","10.13.88.193:9092"]
type="omkafka"
topic="cms-nimg-s3-post"
template="s3post"
partitions.auto="on"
)
}
if ( $msg contains "ERROR" ) then {
action(
broker=["10.13.88.190:9092","10.13.88.191:9092","10.13.88.192:9092","10.13.88.193:9092"]
type="omkafka"
topic="cms-nimg-s3-post-error"
template="s3post"
partitions.auto="on"
)
}
}
input(type="imfile"
File="/data1/ms/comos/logs/s3q_daemon_0.err"
Tag=""
ruleset="s3post"
freshStartTail="on"
reopenOnTruncate="on"
)
input(type="imfile"
File="/data1/ms/comos/logs/s3q_daemon_1.err"
Tag=""
ruleset="s3post"
freshStartTail="on"
reopenOnTruncate="on"
)
input(type="imfile"
File="/data1/ms/comos/logs/s3q_daemon_2.err"
Tag=""
ruleset="s3post"
freshStartTail="on"
reopenOnTruncate="on"
)
自建个人原创站运维网カレー社(www.net-add.com)は、新しいブログをネットカフェで更新します.