1. Tổng quan.
Việc sử dụng Splunk để thu thập logs từ các thiết bị Cisco giúp bạn quản lý logs hiệu quả, giám sát hệ thống mạng, phân tích bảo mật, tối ưu hóa hiệu suất, và tìm kiếm dữ liệu. Điều này cung cấp một cách để tăng cường quản lý và bảo mật mạng của bạn và phát hiện sớm các vấn đề và mối đe dọa tiềm ẩn.
Sử dụng Splunk để thu thập logs từ các thiết bị Cisco có nhiều tác dụng quan trọng như sau:
- Quản lý logs: Splunk cho phép bạn thu thập, lưu trữ và quản lý logs từ các thiết bị Cisco trong một nền tảng trung tâm duy nhất. Điều này giúp đơn giản hóa quá trình quản lý logs và tạo ra một nguồn dữ liệu tập trung để phân tích và kiểm tra.
- Giám sát hệ thống: Splunk cho phép bạn theo dõi và giám sát hệ thống mạng Cisco. Bằng cách thu thập và phân tích logs từ các thiết bị Cisco, bạn có thể xem trạng thái hoạt động, tình trạng sự cố, và hiệu suất của các thiết bị và hệ thống mạng.
- Phân tích bảo mật: Splunk cung cấp khả năng phân tích logs bảo mật từ các thiết bị Cisco để phát hiện và đối phó với các mối đe dọa và hành vi đáng ngờ. Bằng cách xem xét các sự kiện bảo mật từ logs, Splunk có thể giúp bạn xác định các hành vi không hợp lệ, tấn công mạng, hoặc các vấn đề bảo mật khác.
- Tối ưu hóa hiệu suất: Splunk cung cấp khả năng phân tích logs từ các thiết bị Cisco để tìm hiểu về hiệu suất mạng. Bạn có thể theo dõi và phân tích các yếu tố như băng thông, tải trọng mạng, lưu lượng, và thời gian phản hồi để tìm hiểu và tối ưu hóa hiệu suất mạng của bạn.
- Tìm kiếm và khám phá dữ liệu: Splunk cung cấp công cụ mạnh mẽ để tìm kiếm, lọc và khám phá logs từ các thiết bị Cisco. Bạn có thể tìm kiếm dữ liệu theo các tiêu chí như thời gian, nguồn, mức độ quan trọng, và nhiều hơn nữa để đưa ra các phân tích và báo cáo tùy chỉnh.
2. Triển khai Splunk.
Để triển khai Splunk bằng Docker Compose, bạn có thể sử dụng file docker-compose.yml để xác định các dịch vụ và cấu hình liên quan đến Splunk. Dưới đây là một ví dụ cơ bản về cách triển khai Splunk bằng Docker Compose:
- Tạo một file docker-compose.yml và mở nó để chỉnh sửa.
- Đưa vào nội dung sau vào file docker-compose.yml:
version: '3'
services:
splunk:
image: splunk/splunk:latest
ports:
- '8000:8000' # Port để truy cập giao diện Splunk Web
- '8088:8088' # Port để nhận dữ liệu từ các nguồn khác
- '514:514/tcp' # Port TCP để nhận log trên cổng 514
- '514:514/udp' # Port UDP để nhận log trên cổng 514
environment:
- SPLUNK_START_ARGS=--accept-license
- SPLUNK_PASSWORD=Hoanghd164
- Lưu và đóng file docker-compose.yml.
- Mở terminal hoặc command prompt và chạy lệnh sau trong thư mục chứa file docker-compose.yml:
docker-compose up -d
Docker Compose sẽ bắt đầu quá trình tải xuống và triển khai container Splunk. Sau khi hoàn tất, bạn có thể truy cập vào giao diện Splunk Web bằng cách mở trình duyệt và truy cập vào địa chỉ http://localhost:8000
. Đăng nhập bằng tài khoản admin và mật khẩu bạn đã đặt trong biến môi trường SPLUNK_PASSWORD.
Lưu ý: File docker-compose.yml trong ví dụ trên chỉ triển khai Splunk cơ bản với cấu hình mặc định. Bạn có thể tùy chỉnh file này để đáp ứng nhu cầu và yêu cầu cụ thể của dự án Splunk của bạn, bao gồm việc thiết lập các cài đặt bổ sung, mount thư mục lưu trữ dữ liệu, v.v.
Chú ý rằng, để sử dụng Splunk trong môi trường sản xuất, bạn nên tìm hiểu và tuân thủ các hướng dẫn triển khai Splunk bằng Docker được cung cấp bởi Splunk và đảm bảo tuân thủ các quy định bảo mật và hiệu suất.
5. Kiểm tra xem container đã chạy hay chưa bằng cách sử dụng lệnh docker-compose ps.
$ docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
root-splunk-1 "/sbin/entrypoint.sh…" splunk running (starting) 0.0.0.0:514->514/tcp, 0.0.0.0:514->514/udp, 0.0.0.0:8000->8000/tcp, 0.0.0.0:8088->8088/tcp, :::514->514/tcp, :::514->514/udp, :::8000->8000/tcp, :::8088->8088/tcp
Hãy chắc chắn rằng port TCP/8000 và UDP/514 đã chạy.
$ netstat -tulnp | grep '514\|8000'
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 9239/docker-proxy
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 9261/docker-proxy
tcp6 0 0 :::8000 :::* LISTEN 9246/docker-proxy
tcp6 0 0 :::514 :::* LISTEN 9268/docker-proxy
udp 0 0 0.0.0.0:514 0.0.0.0:* 9281/docker-proxy
udp6 0 0 :::514 :::* 9288/docker-proxy
Đây là kết quả login trên trình duyệt.
Hãy login thông tin admin/password
với password
chính là thông tin bạn đã khai báo trong file docker-compose.yml
và dưới đây là kết quả sau khi login thành công và bạn nhận được một thông báo như dưới.
Thông báo này là một thông báo từ Splunk Inc. giải thích về việc thu thập dữ liệu vận hành (product usage data) từ phần mềm Splunk mà bạn đã triển khai. Điều quan trọng cần lưu ý là dữ liệu vận hành được thu thập là dữ liệu tổng hợp (aggregated data) và không bao gồm bất kỳ dữ liệu nào bạn nhập vào (ingest) vào Splunk.
Nội dung của thông báo nhấn mạnh rằng dữ liệu vận hành được sử dụng để nâng cao giá trị đầu tư của bạn vào phần mềm Splunk. Các ví dụ về dữ liệu mà họ thu thập bao gồm việc sử dụng các tính năng, cấu trúc triển khai, môi trường hạ tầng và hoạt động, hiệu suất của hệ thống, v.v.
Splunk sử dụng dữ liệu này để tối ưu hóa triển khai của bạn, ưu tiên các tính năng, cải thiện trải nghiệm của bạn, thông báo cho bạn về các bản vá (patches), và phát triển chức năng sản phẩm chất lượng cao.
Thông báo cũng cho biết rằng chia sẻ dữ liệu vận hành từ triển khai của bạn đã được bật (ON), và bạn có thể thay đổi các tùy chọn thu thập dữ liệu này bất kỳ lúc nào trong cài đặt Instrumentation của bạn.
Nếu bạn muốn tìm hiểu thêm về dữ liệu họ thu thập, cách họ truyền dữ liệu an toàn và lưu trữ dữ liệu, bạn có thể tìm hiểu thêm thông tin trong phần giới thiệu về việc thu thập dữ liệu của Splunk.
Bỏ qua thông báo bạn sẽ được chuyển đến trang “Hello, Administrator
” của Splunk.
3. Thu thập logs trên Cisco.
3.1. Cấu hình trên Cisco.
Các câu lệnh logging trap debugging
và logging host 192.168.13.209
có tác dụng cấu hình và điều khiển ghi log trên thiết bị mạng. Dưới đây là giải thích về từng câu lệnh:
logging trap debugging
: Câu lệnh này chỉ định mức cảnh báo tối thiểu cho việc ghi log trên thiết bị. Trong trường hợp này, mức log sẽ là “debugging”. Theo cấp độ ưu tiên từ thấp đến cao, các mức log theo thứ tự là: “debugging”, “informational”, “notifications”, “warnings”, “errors”, “critical”, và “alerts”. Khi thiết lập mức log là “debugging”, tất cả các thông báo, cảnh báo và lỗi đều được ghi log. Điều này thường được sử dụng cho mục đích gỡ lỗi và theo dõi chi tiết hơn của hoạt động hệ thống.logging host 192.168.13.209
: Câu lệnh này chỉ định máy chủ (hoặc địa chỉ IP) để gửi log đến. Tất cả các log được ghi trên thiết bị sẽ được chuyển đến máy chủ có địa chỉ IP là 192.168.13.209. Điều này cho phép tổng hợp log từ nhiều thiết bị về một trạm log tập trung để dễ dàng theo dõi và phân tích.
Ví dụ, sau khi thực hiện cấu hình:
logging trap debugging
logging host 192.168.13.209
Câu lệnh “logging on” hoặc “logging enable” không phải là một câu lệnh cấu hình chính thức trong hầu hết các hệ điều hành và thiết bị mạng. Do đó, nó không có tác dụng rõ ràng hoặc chuẩn xác.
Tuy nhiên, trong một số trường hợp, câu lệnh “logging on” hoặc “”logging on” hoặc “logging enable”” có thể là một cách viết ngắn gọn cho việc bật tính năng ghi log chung (logging) trên một thiết bị. Nó có thể được sử dụng để bật ghi log ở mức mặc định hoặc ghi log với mức cảnh báo mặc định.
Lưu ý rằng cách viết “logging on” hoặc “logging enable” có thể khác nhau tùy thuộc vào loại thiết bị hoặc hệ điều hành mà bạn đang sử dụng. Để biết chính xác tính năng và cú pháp của cấu hình ghi log trên thiết bị mạng của bạn, hãy tham khảo tài liệu và hướng dẫn của nhà cung cấp thiết bị hoặc hệ điều hành.
logging on
Hoặc
logging enable
Xác nhận lại config logs trên thiết bị đã thành công.
$ show logging
Syslog logging: enabled (0 messages dropped, 6 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled)
No Active Message Discriminator.
No Inactive Message Discriminator.
Console logging: disabled
Monitor logging: level debugging, 0 messages logged, xml disabled,
filtering disabled
Buffer logging: level debugging, 197 messages logged, xml disabled,
filtering disabled
Exception Logging: size (4096 bytes)
Count and timestamp logging messages: disabled
Persistent logging: disabled
Trap logging: level debugging, 201 message lines logged
Logging to 192.168.13.209 (udp port 514, audit disabled,
link up),
138 message lines logged,
0 message lines rate-limited,
0 message lines dropped-by-MD,
xml disabled, sequence number disabled
filtering disabled
Logging Source-Interface: VRF Name:
Log Buffer (4096 bytes):
ernet3/3 (not half duplex), with ISP2 Ethernet0/0 (half duplex).
Hãy chắc chắn rằng thiết bị đã kết nối đến Splunk.
$ ping 192.168.13.209
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.13.209, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Thiết bị sẽ bắt đầu ghi log với mức cảnh báo “debugging” và gửi log đến máy chủ có địa chỉ IP 192.168.13.209.
3.2. Thiết lập thu thập Logs trên Splunks.
Đầu tiên bạn vào Settings -> Add Data -> Data Inputs.
Chọn giao thức UDP bấm Add new.
Điền port mà bên thiết bị Cisco đã gửi qua.
Chọn Source type là cisco_syslog.
Bấm Submit bạn sẽ thấy phần Review lại các cấu hình bạn đã thực hiện ở các bước trên, thông tin tóm tắt như sau:
Đây là thiết lập nhận dữ liệu log thông qua UDP Port 514, gán chúng vào chỉ mục mặc định và định dạng log là cisco_syslog, được áp dụng trong ngữ cảnh ứng dụng “launcher” từ máy chủ có địa chỉ IP được xác định.
Hãy cùng nhau xem ý nghĩa của các thuộc tính cấu hình:
- Input Type UDP Port: Đây xác định loại đầu vào dữ liệu, trong trường hợp này là “UDP Port”, tức là dữ liệu log được gửi đến thông qua giao thức UDP.
- Port Number: Đây là số cổng (port number) trên thiết bị mạng hoặc máy chủ nơi dữ liệu log được gửi đến. Trong trường hợp này, cổng là 514, là cổng tiêu chuẩn thường được sử dụng để gửi log thông qua giao thức Syslog.
- Source name override: Đây là một thuộc tính tùy chọn và trong trường hợp này là “N/A” (Not Applicable), tức là không có tên nguồn được ghi đè (override) trên các log.
- Restrict to Host: Đây cũng là một thuộc tính tùy chọn và trong trường hợp này là “N/A”, tức là không giới hạn dữ liệu log đến một máy chủ cụ thể.
- Source Type: Đây xác định loại nguồn dữ liệu, trong trường hợp này là “cisco_syslog”, tức là định dạng log dành cho các thiết bị Cisco.
- App Context: Đây xác định ngữ cảnh ứng dụng, trong trường hợp này là “launcher”, có thể là tên ứng dụng hoặc môi trường cụ thể mà cấu hình này đang áp dụng.
- Host (IP address of the remote server): Đây là địa chỉ IP của máy chủ từ nơi dữ liệu log được gửi đến.
- Index: Đây là thuộc tính quan trọng nhất và xác định chỉ mục (index) mà dữ liệu log được gán vào trong Splunk. Trong trường hợp này, chỉ mục mặc định (default index) sẽ được sử dụng để lưu trữ dữ liệu log.
Hãy bấm Start Searching để bắt đầu duyệt các logs đã thu thập được.
Và đây là log đầu tiên của thiết bị 192.168.13.184.
Mình thêm một thiết bị thứ 2 là 192.168.13.183.
Và đây là chi tiết logs khi chúng ta xem chi tiết.