Score:0

Rsyslog ส่งต่อไฟล์บันทึกบางไฟล์ไปยัง logstash เท่านั้น

ธง br

ฉันมีเครื่องไคลเอนต์ที่ส่งต่อไฟล์บันทึกไปยังเซิร์ฟเวอร์ rsyslog ส่วนกลาง ฉันสามารถดูบันทึกบนเซิร์ฟเวอร์ syslog ส่วนกลางได้ที่นี่:

root@server:/var/log# ls -al /var/log/client/
รวม 2495
drwxr-xr-x 2 syslog syslog 4096 19 มิ.ย. 07:06 น.
drwxrwxr-x 14 root syslog 4096 19 มิ.ย. 10:26 น.
-rw-r----- 1 syslog adm 324895 19 มิ.ย. 16:02 auth.log
-rw-r----- 1 syslog adm 31787 19 มิ.ย. 15:17 น. authpriv.log
-rw-r----- 1 syslog adm 3859 19 มิ.ย. 15:17 cron.log
-rw-r----- 1 syslog adm 96770 19 มิ.ย. 15:38 daemon.log
-rw-r----- 1 syslog adm 1475044 19 มิ.ย. 16:03 น. kern.log
-rw-r----- 1 syslog adm 11019 มิ.ย. 19 12:50 น. local0.log
-rw-r----- 1 syslog adm 15883 19 มิ.ย. 12:49 น. syslog.log
-rw-r----- 1 syslog adm 1688 19 มิ.ย. 07:16 user.log

ฉันสนใจ local0.log มากที่สุด

ฉันได้กำหนดค่าเซิร์ฟเวอร์ rsyslog ส่วนกลางเพื่อส่งต่อบันทึกไปยัง logstash:

root@server:/etc/rsyslog.d# cat /etc/rsyslog.d/70-output.conf 

แม่แบบ(ชื่อ="json-แม่แบบ"
  ประเภท = "รายการ") {
    ค่าคงที่ (ค่า = "{")
      ค่าคงที่ (value="\"@timestamp\":\"") คุณสมบัติ (ชื่อ="timereported" dateFormat="rfc3339")
      ค่าคงที่ (value="\",\"@version\":\"1")
      ค่าคงที่ (ค่า="\",\"ข้อความ\":\"") คุณสมบัติ (ชื่อ="msg" รูปแบบ="json")
      ค่าคงที่ (ค่า = "\",\"sysloghost\":\"") คุณสมบัติ (ชื่อ = "ชื่อโฮสต์")
      ค่าคงที่ (value="\",\"severity\":\"") คุณสมบัติ (ชื่อ="syslogseverity-text")
      ค่าคงที่ (value="\",\"facility\":\"") คุณสมบัติ (ชื่อ="syslogfacility-text")
      ค่าคงที่ (ค่า="\",\"ชื่อโปรแกรม\":\"") คุณสมบัติ (ชื่อ="ชื่อโปรแกรม")
      ค่าคงที่ (ค่า="\",\"procid\":\"") คุณสมบัติ (ชื่อ="procid")
    ค่าคงที่ (ค่า="\"}\n")
}

*.* action(type="omfwd" target="localhost" port="10514" protocol="udp" template="json-template")

Logstash ได้รับการกำหนดค่าให้ส่งต่อบันทึกไปยัง elasticsearch:

root@server:/etc/rsyslog.d# cat /etc/logstash/conf.d/logstash.conf 
ป้อนข้อมูล {                                                                                      
  ทีซีพี {                                                                                      
    โฮสต์ => "127.0.0.1"                                                                      
    พอร์ต => 10514                                                                            
    ตัวแปลงสัญญาณ => "json"                                                                          
    พิมพ์ => "rsyslog"                                                                        
  }                                                                                          
}                                                                                            
                                                                                         
กรอง { }                                                                                   
                                                                                                                                                                                                     
เอาต์พุต {                                                                                     
  ถ้า [ประเภท] == "rsyslog" {                                                                   
    การค้นหาแบบยืดหยุ่น {                                                                          
      โฮสต์ => [ "127.0.0.1:9200" ]                                                          
    }                                                                                        
  }                                                                                          
}  

ฉันเห็นว่า elasticsearch มีบันทึกแล้ว:

root@server:/etc/rsyslog.d# curl -XGET 'http://localhost:9200/logstash-*/_search?q=*&pretty'

{
  "เอา" : 4,
  "timed_out" : เท็จ
  ...
    "ฮิต" : [
      {
        "_index": "logstash-2021.06.19-000001",
        "_type" : "_doc",
        "_id" : "3YxQJHoBrZHyFIavQWQZ",
        "_คะแนน" : 1.0,
        "_แหล่งที่มา" : {
          "ข้อความ" : " [20468.211706] [UFW BLOCK] IN=eth0 OUT= MAC=<snip> SRC=<snip> DST=<snip> LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=15690 PROTO=TCP SPT=43024 DPT=6780 WINDOW=1024 RES=0x00 SYN URGP=0 ",
        ...
      

อย่างไรก็ตาม ดูเหมือนว่ามีเพียงไฟล์บันทึกบางไฟล์เท่านั้นที่ถูกส่งต่อไปยัง logstash (หรือ logstash ไม่ได้ส่งต่อไปยังelasticsearch)

ดูบันทึกทั้งหมดใน elasticsearch (หรือภายใน kibana) ฉันเห็น /var/log/client/local0.log กำลังถูกเพิกเฉยอย่างสมบูรณ์

มีวิธีบังคับให้รวมไฟล์บันทึกนี้หรือไม่ ฉันจะแก้ไขปัญหานี้ได้อย่างไร

ขอบคุณ!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา