Outline
Module 1: Introducing 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?
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
What are Splunk Enhanced Solutions?
Splunk cung cấp cho doanh nghiệp 3 giải pháp chính:
Module 2: Splunk Components
Functions
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 event 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:
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:
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
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
Đâ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 dùng
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
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
Tất cả tính năng trong một instance trong một server
Tương tự như Standalone nhưng có thêm thành phân Forwarder thu thập và đẩy data về Splunk server
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
Mô hình này là kết hợp việc cluster Search Head và cluster Index
Cluster Search Head:
Cluster Index:
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
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ị
Các phép toán tử - biểu thức Boolean
Các toán tử mà splunk hỗ trợ là: AND, OR và NOT
Ví dụ:
Ở 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:
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
Ví dụ: tìm các sự kiện có trường độ trễ lớn hơn 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:
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.
Để 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:
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
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
Task 4: lưu và chia sẻ
Từ menu Job chọn Edit Job Settings
Tùy chỉnh thông số bên dưới: quyền đọc và thời gian lưu và click Save
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
Ở đâ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
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.
Module 1: Introducing 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?
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
What are Splunk Enhanced Solutions?
Splunk cung cấp cho doanh nghiệp 3 giải pháp chính:
Module 2: Splunk Components
Functions
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 event 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:
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:
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
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
Đâ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 dùng
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
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
Tất cả tính năng trong một instance trong một server
Tương tự như Standalone nhưng có thêm thành phân Forwarder thu thập và đẩy data về Splunk server
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
Mô hình này là kết hợp việc cluster Search Head và cluster Index
Cluster Search Head:
Cluster Index:
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
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ị
Các phép toán tử - biểu thức Boolean
Các toán tử mà splunk hỗ trợ là: AND, OR và NOT
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:
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
Operator | Example | Result |
= | field=abc | Các giá trị trường được đánh giá khớp với "abc" |
!= | field!=foo | Các giá trị trường được đánh giá không khớp với "abc" |
< | field<x | Các giá trị trường số nhỏ hơn x |
> | field>x | Các giá trị trường số lớn hơn x |
<= | field<=x | Các giá trị trường số nhỏ hơn hoặc bằng x |
>= | field>=x | Cá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:
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.
Để 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:
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
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
Task 4: lưu và chia sẻ
Từ menu Job chọn Edit Job Settings
Tùy chỉnh thông số bên dưới: quyền đọc và thời gian lưu và click Save
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
Ở đâ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
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.
---ST---
0 Nhận xét