Ask question

Ask Questions and Get Answers from Our Community

Answer

Answer Questions and Become an Expert on Your Topic

Contact Staff

Our Experts are Ready to Answer your Questions

Splunk Tổng hợp kiến thức cơ bản về Splunk dành cho người mới bắt đầu

gani

Administrator
Joined
Jun 22, 2019
Messages
64
Reaction score
14
Points
8
Location
HCM city
Outline

Module 1: Introducting Splunk

Module 2: Splunk Components

Module 3: Installing Splunk

Module 4: Getting Data In

Module 5: Basic Search

Module 6: Using Fields

Module 7: Best Practices

Module 8: Splunk’s Search Language

Module 9: Transforming Commands

Module 10: Creating Reports and Dashboards

Module 11: Pivot and Datasets

Module 12: Creating and Using Lookups

Module 13: Creating Scheduled Reports and Alerts


Module 1: Introducing Splunk

What is Splunk?


Splunk là một phần mềm chủ yếu được sử dụng để tìm kiếm, giám sát và kiểm tra dữ liệu do máy tạo ra thông qua giao diện web từ đó phân tích để đưa ra báo cáo cũng như cảnh báo với thời gian thực.

What data?

Splunk hỗ trợ mọi kiểu data từ computer, server, databases, sensors, …

How does Splunk work?

1599625058380.png


Splunk sẽ thu thập data trực tiếp từ các thiết bị cấu hình đẩy log về splunk hoặc bằng cách cài các agent lên trên thiết bị
Các log được xử lí và lưu lại dưới các indexer để phục vụ cho việc tìm kiếm của người dùng

Mình sẽ viết 1 bài kĩ hơn ở vấn đề này sau

How is Splunk deployed?

Có 3 cách để triển khai hệ thống Splunk
  • Dạng Enterprise
  • Dạng Cloud: Splunk Cloud cung cấp Splunk Enterprise dưới dạng dịch vụ đám mây mà không cần mua, quản lý và triển khai cơ sở hạ tầng bổ sung.
  • Dạng Light: Splunk Light là một giải pháp toàn diện cho các môi trường CNTT nhỏ.
What are Splunk Enhanced Solutions?

Splunk cung cấp cho doanh nghiệm 3 giải pháp chính:
  • Splunk IT service Intelligence (ITSI)
  • Splunk Enterprise Security (ES)
  • Splunk User Behavior Analytics (UBA)
Module 2: Splunk Components

Functions

  • Index Data
  • Search & Investigate
  • Add Knowledge
  • Monitor & Alert
  • Report & Analyze
Index Data

Là thành phần quan trọng của hệ thống Splunk. Nó thu thập và xử lý các data đầu vào từ bất kì nguồn nào
Có thể xem Indexer là một nhà máy và data là những nhiên liệu thô cần phải xử lí. Khi data được chuyển vào nhà máy, Indexer đóng vai thanh tra nhìn vào các data đó mà đưa ra quyết định xử lí chúng. Lúc này data sẽ được gắn nhãn sourcetype để phân loại. Dựa vào nhãn sourcetype này data sẽ được cắt thành cách single envent và gắn nhãn timestamp. Sau đó chúng được lưu ở Splunk index nơi mà người dùng có thể tìm kiếm.

Splunk có thể index cho rất nhiều kiểu dữ liệu. Các nguồn dữ liệu thông thường:

  • Các dữ liệu có cấu trúc: Các tập tin CSV, JSON hay XML
  • Các dịch vụ Web: Apache, IIS
  • Các phần mềm vận hành IT: Nagios, NetApp, Cisco USC
  • Dịch vụ cơ sở dữ liệu: Oracle, MySQL, Microsoft SQL Server
  • Các nền tảng ảo hóa: VMWare, Xen Desktop, XenApp, Hyper-V
  • Các dịch vụ ứng dụng: JMX & JMS, WebLogic, WebSphere,
  • Nền tảng của Microsoft: Exchange, Active Directory, Sharepoint
Search & Investigate

Khi nhập một câu truy vấn vào thanh search, bạn có thể tìm ra các events chứa giá trị bạn cần trên nhiều nguồn dữ liệu
Bạn cũng có thể phân tích cũng như thống kê các events này bằng cách sử dụng ngôn ngữ tìm kiếm của splunk.


Add Knowledge

Bạn có thể coi Add Knowledge như một công cụ đa năng mà bạn sử dụng để khám phá và phân tích các khía cạnh khác nhau của dữ liệu CNTT của mình.
Ví dụ: các loại sự kiện cho phép bạn nhanh chóng và dễ dàng phân loại và nhóm các sự kiện tương tự lại với nhau; sau đó, bạn có thể sử dụng chúng để thực hiện các tìm kiếm phân tích trên các nhóm sự kiện được xác định và lưu thành các báo cáo để sử dụng khi cần.


Monitor & Alert

Splunk có thể chủ động monitor hệ thống trong thời gian thực để xác định lỗi, các vấn đề của hệ thống cũng như các cuộc tấn công trước khi ảnh hưởng đến khách hàng và dịch vụ.
Bạn có thể tạo các alert để monitor hệ thống và tự động respond qua các actions được định sẵn

Hiện tại Splunk ta có thể đặt cảnh báo Splunk qua:

  • Một Log Event
  • Chạy một script
  • Gửi Email
  • Gửi một HTTP POST
  • Thậm chí có thể gọi điện hoặc gửi tin nhắn qua số điện thoại của người dùng nếu ta cấu hình
Report & Analyze

Splunk tổng hợp các report và sơ đồ hóa thành các biểu đồ
Các report có thể được chia sẻ lẫn nhau để mọi người có cái nhìn tổng quan về hệ thống


Components

Ta sẽ đi tìm hiểu 3 thành phần cốt lõi để tạo nên hệ thống Splunk:
  • Indexer
  • Search Head
  • Forwarder
Indexer

1599625103363.png

Như mình đề cập bên trên, thì Indexer là nơi xử lí dữ liệu máy đầu vào và lưu lại các kết quả đó trong các indexes dưới dạng các events.

Khi Indexer thực hiện việc index các event, nó sẽ tạo ra gắn thời gian vào các thư mục để thuận lợi cho việc thực hiện truy vấn của người dung. Khi người dùng truy vấn trong khoảng thời gian nào thì Splunk chỉ việc mở các thư mục chứa trong khoảng thời gian đó – hiệu quả và nhanh chóng.


Search Head

1599625136729.png

Đây là nơi cho phép người dung sử dụng ngôn ngư Splunk để tìm kiếm dữ liệu trong indexed
Search Head xử lí các yêu cầu tìm kiếm của người dùng và phân tán nó đến các indexers, sau khi nhận được kết quả từ các indexers Search Head thực hiện hợp nhất kết quả trước khi phản hồi cho người dung
Search Head cũng cung cấp cho người dùng các tool hỗ trợ chẳng hạn như dashboard, report, visualizations, …


Forwarder

1599625153730.png

Forwarder có nhiệm vụ tiêu thụ data và chuyển tiếp đến các indexers để xử lí
Forwarder không yêu cầu resource cao, cũng như ít ảnh hưởng đến performance của hệ thống
Forwarder thường nằn chung trên các máy chạy các ứng dụng tạo ra dữ liệu, chẳng hạn như máy chủ web


Deploying and Scaling Splunk

Ta có thể triển khai Splunk dưới dạng all in one – Standalone đến dạng Enterprise – full distributed infrastructure
  • Standalone: dùng cho làm LAB
1599625178107.png

Tất cả tính năng trong một instance trong một server
  • Basic: dùng cho doanh nghiệp nhỏ (up to 20GB/day & 20 users)
1599625214194.png

Tương tự như Standalone nhưng có thêm thành phân Forwarder thu thập và đẩy data về Splunk server
  • Multi-Instance: dùng cho doanh nghiệp vừa (up to 100GB/day & 100 users )
1599625239130.png

Mô hình này làm tăng số lượng indexing dẫn đến tăng khả năng searching
Các index lúc này được chia trên nhiều VM

  • Full distributed infrastructure (cluster): dùng cho doanh nghiệp lớn – Enterprise
1599625259945.png

Mô hình này là kết hợp việc cluster Search Head và cluster Index
Cluster Search Head:

  • Tăng cường khả năng search cho users
  • Cho phép chia sẻ resource
  • Điều phối các hoạt động xử lí yêu cầu tìm kiếm và phân tán yêu cầu đến các indexers
Cluster Index:
  • Tạo được các bản sao dữ liệu
  • Ngăn ngừa việc mất dữ liệu
Mình sẽ cung cấp cho các bạn một bài viết cụ thể về cluster Splunk sau

Module 3: Install Splunk

Mình sẽ cung cấp các bài viết về cài đặt Splunk cho các bạn sau

Module 4: Getting Data In

1599625307445.png


Module 5: Searching

Wildcards
: Bạn có thể sử dụng ký tự dấu hoa thị (*) làm ký tự đại diện để khớp với số ký tự không giới hạn trong một chuỗi
Ví dụ: khi bạn nhập vào fail* để search thì kết quả tìm kiếm được trả chứa chữ fail sẽ được hiển thị


Screenshot_1.png


Các phép toán tử - biểu thức Boolean

Các toán tử mà splunk hỗ trợ là: AND, OR NOT
  • Lưu ý các phép này phải được viết hoa
  • Phép AND có thể không cần viết. Ví dụ: web error tương tự web AND error
  • Thứ tự độ ưu tiên của các phép này như sau: ( ) > NOT > OR > AND có nghĩa là splunk sẽ ưu tiên thực hiện câu lệnh trong ngoặc đơn trước và tiếp theo là phép NOT tới OR và cuối cùng là AND
Ví dụ:

fail* NOT ubuntu OR tomcat

Ở trong câu lệnh search này không chứa dấu ngoặc đơn nên tiến trình thực hiện như sau:
  • Tìm kiếm tất cả sự kiện chứ chuỗi "fail" và không chứ kí tự ubuntu
  • Tìm kiếm tất cả sự kiện chứa chuỗi "fail" và tomcat

Screenshot_2.png


Biểu thức trường - Biểu thức so sánh

Bạn có thể sử dụng toán tử so sánh để đối sánh một giá trị cụ thể hoặc một phạm vi giá trị trường

OperatorExampleResult
=field=abcCác giá trị trường được đánh giá khớp với "abc"
!=field!=fooCác giá trị trường được đánh giá không khớp với "abc"
<field<xCác giá trị trường số nhỏ hơn x
>field>xCác giá trị trường số lớn hơn x
<=field<=xCác giá trị trường số nhỏ hơn hoặc bằng x
>=field>=xCác giá trị trường số lớn hơn hoặc bằng x

Ví dụ: tìm các sự kiện có trường độ trễ lớn hơn 100:


delay > 100

Ngoài ra còn các trường nâng cao khác mình sẽ update sau. Và bây giờ chúng ta bắt đầu vào thực hành nào.

Ngữ cảnh:

Bạn được báo cáo là có nhiều lượt truy cập và SSH fail vào máy chủ, hãy thu thập thông tin và về chúng.

Task 1: thực hiện tìm kiếm cơ bản

Trong thanh tìm kiếm bạn sẽ nhập: error OR fail* để thấy được tất cả event liên quan đến lỗi được yêu cầu

Ví dụ kết quả trả về như sau:


Screenshot_3.png



Ngoài những thông tin trong Event bạn cần chú các trường bên dưới để biết thêm chính xác là log được gửi từ web server hay là web application để dễ khoanh vùng xử lý.


Task 2: thực hiện lệnh search mới và khoanh vùng kết quả

Click vào Search để thực hiện lệnh tìm kiếm mới (góc trên bên trái)
Thực hiện tìm kiếm fail* AND password với
All time.

Screenshot_4.png


Để thực hiện tìm kiếm truy cập SSH với port 22 thì chúng ta gõ thêm "port 22" vào:

Screenshot_5.png


Các bạn lưu ý vì câu lệnh search "port 22" có khoảng trắng ở giữa nếu các bạn không bỏ vào ngoặc kép thì nó sẽ ra kết quả sai lệch như mình đã đề cập ở trên
Thay vì cho ra kết quả như hình thì splunk sẽ hiểu là AND port AND 22


Task 3: tinh chỉnh kết quả


Bạn có thể thay đổi chổ All time thành mốc thời gian xảy ra sự cố để tìm đúng thông tin

Screenshot_6.png


Splunk cho bạn thêm các tiện ích sau để thuận tiện trong quá trình search bằng cách click trái vào các kí tự trong event

Screenshot_7.png


Task 4: lưu và chia sẻ

Từ menu Job chọn Edit Job Settings

Screenshot_8.png


Tùy chỉnh thông số bên dưới: quyền đọc và thời gian lưu và click Save

Screenshot_9.png


Một mẹo nhỏ nhưng rất hữu ích để bạn dễ dàng xem lại các lịch sử tìm kiếm bằng cách chọn Activity > Jobs

Screenshot_10.png


Ở đây bạn có thể xem lại các câu lệnh đã search và save.
Bạn có thể tùy ý chỉnh sửa trên các câu lệnh đã và đang thực thi


Screenshot_11.png


Ví dụ bạn đang thực hiện lệnh search với All time có khả năng sẽ đợi rất lâu và làm chậm splunk bạn có thể stop lệnh search đi để không ảnh hưởng đến hệ thống.
 
Last edited:
Top