วันพฤหัสบดีที่ 27 กุมภาพันธ์ พ.ศ. 2563

จัดการ log message ด้วย Grok Filter (logstash)



Grok เป็นวิธีที่ดีในการแยกวิเคราะห์ข้อมูลและสามารถสืบค้นได้ เครื่องมือนี้เหมาะสำหรับบันทึก                   syslog ,  apache และบันทึกเว็บเซิร์ฟเวอร์อื่น ๆ

grok patterns

   เราสามารถศึกษาและทดลอง mapping log message ได้จากเว็บ grokdebug
   และจาก project log ของเรานั้นเราจะได้ log message ดังนี้ (ในที่นี้ได้ทำการเพิ่ม patterns ลงไป)

     DHCPD_VIA via (%{IP:dhcp_relay_ip}|(?<dhcp_device>[^: ]+))

     DHCPD_OPERATION DHCP(%{DHCPD_DISCOVER}|%{DHCPD_OFFER_ACK}|%{DHCPD_REQUEST}|%               {DHCPD_DECLINE}|%{DHCPD_RELEASE}|%{DHCPD_INFORM}|%{DHCPD_LEASE})(: %                                         {GREEDYDATA:dhcpd_message})?
     DHCPD_DISCOVER (?<dhcp_operation>DISCOVER) from %{MAC:dhcp_client_mac}( \(%                                               {DATA:dhcp_client_name}\))? %{DHCPD_VIA}
     DHCPD_OFFER_ACK (?<dhcp_operation>(OFFER|N?ACK)) on %{IP:dhcp_client_ip} to %{MAC:dhcp_client_mac}       (  \(%{DATA:dhcp_client_name}\))? %{DHCPD_VIA}
     DHCPD_REQUEST (?<dhcp_operation>REQUEST) for %{IP:dhcp_client_ip}( \(%{DATA:dhcp_server_ip}\))? from         %  {MAC:dhcp_client_mac}( \(%{DATA:dhcp_client_name}\))? %{DHCPD_VIA}
     DHCPD_DECLINE (?<dhcp_operation>DECLINE) of %{IP:dhcp_client_ip} from %{MAC:dhcp_client_mac}( \(%             {DATA:dhcp_client_name}\))? %{DHCPD_VIA}
     DHCPD_RELEASE (?<dhcp_operation>RELEASE) of %{IP:dhcp_client_ip} from %{MAC:dhcp_client_mac}( \(%           {DATA:dhcp_client_name}\))? %{DHCPD_VIA} \((?<dhcpd_release>(not )?found)\)
     DHCPD_INFORM (?<dhcp_operation>INFORM) from %{IP:dhcp_client_ip}? %{DHCPD_VIA}
     DHCPD_LEASE (?<dhcp_operation>LEASE(QUERY|UNKNOWN|ACTIVE|UNASSIGNED)) (from|to) %                           {IP:dhcp_client_ip} for (IP %{IP:dhcp_leasequery_ip}|client-id %{NOTSPACE:dhcp_leasequery_id}|MAC address %         {MAC:dhcp_leasequery_mac})( \(%{NUMBER:dhcp_leasequery_associated} associated IPs\))?

     DHCPD %{DHCPD_OPERATION}



พิ่ม patterns ให้กับ logstash 
   ใช้คำสั่งนี้ในการค้นหา directory ของ grok
     $ sudo find / -name patterns
 

 เพิ่ม patterns ลงใน grok-patterns
    $ sudo vi  /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-                              4.1.2/patterns/grok-patterns
   
   กำหนดการกรองให้กับ logstash (file.conf)
   
  
   restart logstash
     $ sudo systemctl start logstash
   เปิด Browser พิมพ์ URL
     http://localhost:5601 เลือก discover

ไม่มีความคิดเห็น:

แสดงความคิดเห็น