Tác dụng của Log Log ghi lại liên tục các thông báo về hoạt động của cả hệ thống hoặc của các dịch vụ được triển khai trên hệ thống và file tương ứng.. Cấu hình trong mộtkiến trúc client
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN TỐT NGHIỆP
HỆ CỬ NHÂN CNTT
TÌM HIỂU VỀ RSYSLOG SERVER
Cán bộ hướng dẫn: ThS Mai Vân Phương Vũ
Sinh viên thực hiện: Phạm Thanh Sơn
MSSV: K39.104.186
TP.HCM, Tháng 5 – 2019
Trang 2Lời Cảm Ơn
Trước tiên em xin gửi lời cảm ơn chân thành, sâu sắc đến các thầy cô trong khoaCông Nghệ Thông Tin trường Đại Học Sư Phạm Thành Phố Hồ Chí Minh đã tận tìnhgiảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong thời gianvừa qua
Đặc biệt em xin gửi lời cảm ơn đến thầy Mai Vân Phương Vũ đã tận tình giúp
đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm tiểu luận tốt nghiệp Trongthời gian làm việc với thầy em đã học được rất nhiều điều bổ ích, những kiến thức cầnthiết trong quá trình làm việc sau này
Vì kiến thức bản thân còn hạn chế, trong quá trình thực hiện bài tiểu luận emkhông thể tránh khỏi những sai sót, kính mong nhận được những ý kiến đóng góp từthầy cô
Thành phố Hồ Chí Minh, ngày 4 tháng 5 năm 2019
Sinh viên
Mục lụ
Trang 3CHƯƠNG 1: TÌM HIỂU VỀ RSYSLOG SERVER 4
1 Khái niệm về Log 4
2 Tác dụng của Log 4
3 Giới thiệu về Syslog 4
4 Các khái niệm cơ bản của syslog 5
4.1 Facility 5
4.2 Priority 7
4.3 Selector và Action 7
4.4 Các câu lệnh hỗ trợ xem file log 8
4.5 Chi tiết file cấu hình của Rsyslog 8
CHƯƠNG 2: XÂY DỰNG MÔ HÌNH VÀ 11
CÁC CÔNG CỤ DÙNG ĐỂ XÂY DỰNG MÔ HÌNH 11
1 Xây dựng mô hình 11
2 Các bước cài đặt 11
2.1 Cài đặt Server – Hệ điều hành Centos 11
2.3 Cài đặt Rsyslog trên 2 máy Client và Server 36
2.4 Xuất log đến máy chủ 36
2.5 Cài đặt MariaDB 37
2.6 Cấu hinh để lưu log vào cơ sở dữ liệu 37
2.7 Cài đặt và cấu hình Httpd 38
2.8 Cài đặt và sử dụng LogAnalyzer 39
CHƯƠNG 3: NGHIỆM THU ĐỀ TÀI 44
1 Những kiến thức được củng cố 44
2 Kỹ năng được học hỏi 44
Tài liệu tham khảo 45
3
Trang 4CHƯƠNG 1: TÌM HIỂU VỀ RSYSLOG SERVER
1 Khái niệm về Log
Log là một danh sách chi tiết ghi lại toàn bộ thông tin ứng dụng, hiệu suất của hệthống, các hoạt động của user Log có thể được dùng để theo dõi việc sử dụng máytính, phục hồi khẩn cấp, cải thiện ứng dụng Mỗi phần mềm có khả năng tạo log sẽ cónhững phương thức khác nhau để bắt đầu hoặc dừng việc tạo log
2 Tác dụng của Log
Log ghi lại liên tục các thông báo về hoạt động của cả hệ thống hoặc của các dịch
vụ được triển khai trên hệ thống và file tương ứng Log file thường là các file văn bảnthông thường dưới dạng “clear text” tức là bạn có thể dễ dàng đọc được nó, vì thế cóthể sử dụng các trình soạn thảo văn bản (vi, vim, nano ) hoặc các trình xem văn bảnthông thường (cat, tailf, head ) là có thể xem được file log
Các file log có thể nói cho bạn bất cứ thứ gì bạn cần biết, để giải quyết các rắc rối
mà bạn gặp phải miễn là bạn biết ứng dụng nào, tiến trình nào được ghi vào log nào cụthể.Trong hầu hết hệ thống Linux thì /var/log là nơi lưu lại tất cả các log
Tác dụng của log là vô cùng to lớn, nó có thể giúp quản trị viên theo dõi hệ thốngcủa mình tôt hơn, hoặc giải quyết các vấn đề gặp phải với hệ thống hoặc service Điềunày đặc biệt quan trọng với các hệ thống cần phải online 24/24 để phục vụ nhu cầu củamọi người dùng
3 Giới thiệu về Syslog
Syslog là một giao thức client/server là giao thức dùng để chuyển log và thông điệpđến máy nhận log Máy nhận log thường được gọi là syslogd, syslog daemon hoặcsyslog server Syslog có thể gửi qua UDP hoặc TCP Các dữ liệu được gửi dạngcleartext Syslog dùng cổng 514
Syslog được phát triển năm 1980 bởi Eric Allman, nó là một phần của dự ánSendmail, và ban đầu chỉ được sử dụng duy nhất cho Sendmail Nó đã thể hiện giá trịcủa mình và các ứng dụng khác cũng bắt đầu sử dụng nó
Trang 5Syslog hiện nay trở thành giải pháp khai thác log tiêu chuẩn trên Unix-Linux cũngnhư trên hàng loạt các hệ điều hành khác và thường được tìm thấy trong các thiết bịmạng như router Trong năm 2009, Internet Engineering Task Forec (IETF) đưa rachuẩn syslog trong RFC 5424
Syslog ban đầu sử dụng UDP, điều này là không đảm bảo cho việc truyền tin Tuynhiên sau đó IETF đã ban hành RFC 3195 Reliable Delivery for syslog - đảm bảo tincậy cho syslog và RFC 6587 Transmission of Syslog Messages over TCP - Truyền tảithông báo syslog qua TCP Điều này có nghĩa là ngoài UDP thì giờ đây syslog cũng đã
sử dụng TCP để đảm bảo an toàn cho quá trình truyền tin
Trong chuẩn syslog, mỗi thông báo đều được dán nhãn và được gán các mức độnghiêm trọng khác nhau Các loại phần mềm sau có thể sinh ra thông báo: auth,authPriv, daemon, cron, ftp, dhcp, kern, mail, syslog, user, Với các mức độ nghiêmtrọng từ cao nhất trở xuống Emergency, Alert, Critical, Error, Warning, Notice, Info,and Debug
Một máy chủ syslog đại diện cho một điểm giám sát log trên một mạng , mà tất cảcác loại thiết bị bao gồm cả máy chủ Linux hoặc Windows đều có thể gửi các bảnghi log đến đó Bằng cách thiết lập một máy chủ syslog , bạn có thể lọc và củng cố cácbản ghi từ máy chủ và các thiết bị khác nhau vào một vị trí duy nhất, do đó bạn có thểxem và lưu trữ thông tin quan trọng dễ dàng hơn
Trên hầu hết các bản phân phối Linux , rsyslog đã cài đặt sẵn Cấu hình trong mộtkiến trúc client / server , rsyslog có thể đóng cả hai vai trò ; như một máy chủ syslogrsyslog có thể thu thập các bản ghi từ các thiết bị khác , và như là một client syslog ,rsyslog có thể truyền tải các bản ghi nội bộ của nó đến một máy chủ syslog từ xa
4 Các khái niệm cơ bản của syslog.
4.1 Facility
Giúp kiểm soát log đến dựa vào nguồn gốc được quy định như từ ứng dụng hay tiếntrình nào Syslog sử dụng facility để quy hoạch lại log, như vậy có thể coi facility là đạidiện cho đối tượng nào tạo ra thông báo (kernel, process, apps, )
5
Trang 6Các loại facility được sử dụng và quy định trong hệ thống Linux
auth Sử dụng cho những sự kiện bảo mật, liên quan đến xác thực
authpriv Các thông báo liên quan đến kiểm soát truy cập và bảo mật
console Được sử dụng để nắm bắt thông điệp mà thông thường sẽ được chuyển đến bảng
điều khiển hệ thống
cron Là một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chế
độ nền của hệ thống
daemon Sử dụng bởi các tiến trình hệ thống và các deamons khác (daemon là một chương
trình hoạt động liên tục, khác với các ứng trình bình thường ở chỗ, các ứng trình bình thường thường dừng lại sau khi hoàn tất một hoặc một chuỗi các thao táckern Các thông báo từ kernel
ftp Log liên quan đến dịch vụ ftp
mail Log liên quan đến hệ thống mail
lpr Hệ thống in ấn
mark Những thông báo được generated bởi bản thân syslog
news Hệ thống tin tức, liên quan đến giao thức Network News Protocol (NTP)
syslog Những thông báo được generated bởi bản thân syslog
user Thông báo về tiến trình người dùng thông thường
uucp Hệ thống con UUCP Unix-to-unix là một tập hợp các chương trình mức thấp cho
phép kết nối các máy Unix với nhau
local0 to
local7
Dự trữ cho sử dụng nội bộ
4.2 Priority
Mức độ quan trọng của log message được chỉ định
debug Các messages ở chế độ debug
info Các messages mang thông tin
notice Các messages mang tính chất thông báo
Trang 7warning Các messages mang tính cảnh báo
err Các messges lỗi
crit Các messages nguy hiểm
alert Các messages về các hành động phải được thực hiện ngay
emerg Các messages khi hệ thống không thể dung được nữa
4.3 Selector và Action
Selector là sự kết hợp giữa facilities và level (facility.level), tức khi một event xảy
ra nó sẽ xem có match bất kì selector nào hay không, nếu có thì hành động tương ứngnhư khi cấu hình sẽ được thực thi
Action đại diện cho địa chỉ của messages tương ứng với facility.level Action có thể
là một tên file, một host name đứng trước kí tự @, hoặc một danh sách người dungngăn cách bằng dấu phẩy, hoặc một dấu *
Bên cạnh đó, có 2 cách thức ghi log cơ bản:
- [Program] -> [log_file]
- [Program] -> syslog -> [log_file]
4.4 Các câu lệnh hỗ trợ xem file log
more More [file] Dùng xem toàn bộ nội dung của
thư mục
Đối với câu lệnh này, nội dungđược xem theo từng trang, dung dấu
“cách” để chuyển trangtail tail [file] In ra 10 dòng cuối cùng của nội
Trang 8dung filetail -f tail –f [file] Dung để xem ngay khi có log đến Đây là câu lệnh dùng phổ biến nhất,
giúp ta có thể xem ngay log mớiđến và in ra 10 dòng cuố icùngtrong nội dung file đó
4.5 Chi tiết file cấu hình của Rsyslog
Trong CENTOS, file cấu hình là /etc/rsyslog.conf File này chứa cả các rule về log
Rule trong file cấu hình ở máy server
Trang 9Trong UBUNTU, file cấu hình là /etc/rsyslog.conf nhưng các rule được địnhnghĩa riêng trong /etc/rsyslog.d/50-default.conf File rule này được khai báo include từfile cấu hình
Cơ bản trong file cấu hình của syslog cho chúng ta thấy được nơi lưu trữ của đốivới các tiến trình của hệ thống, lấy ví dụ như hình sau:
Trong syslog nhưng rule trên được chia làm 2 trường:
- Trường 1: Trường Selector (ô số 1) chỉ ra nguồn tạo ra log và mức cảnh báo của
log đó, trong trường selector có 2 thành phần và được tách nhau bằng dấu “.”
- Trường 2: Trường action (ô số 2) chỉ ra nơi lưu log của tiến trình đó Có 2 loại là
lưu tại file trong localhost hoặc gửi đến IP của máy chủ Log
Rule trong file config ở máy client
9
Trang 10Một số lưu ý với các dòng lệnh sau:
Trang 11CHƯƠNG 2: XÂY DỰNG MÔ HÌNH VÀ
CÁC CÔNG CỤ DÙNG ĐỂ XÂY DỰNG MÔ HÌNH
1 Xây dựng mô hình
Máy Server Hệ điều hành: Centos IP: 192.168.217.139
Máy Client Hệ điều hành: Ubuntu IP: 192.168.217.140
2 Các bước cài đặt
2.1 Cài đặt Server – Hệ điều hành Centos
Bước 1: Sử dụng phần mềm VMWare để tạo máy Server
11
Trang 12Bước 2: Chọn ngôn ngữ sử dụng trong quá trình cài đặt
Bước 3: Cài đặt TimeZone
Trang 13Bước 4: Chọn mốc thời gian trên bản đồ và nhấn “Done”
Bước5: Quay lại màn hình mặc định và chọn icon “Keyboard”
13
Trang 14Bước 6: Nhấp vào dấu cộng để thêm keyboard theo ngôn ngữ muốn dùng
Trang 15Bước 7: Chọn loại ngôn ngữ cần thêm và chọn “Add”
Bước 8: Sau khi thêm keyboard, tùy chọn ưu tiên keyboard đó và nhấn “Done”
15
Trang 16Bước 9: Quay về màn hình chính, chọn “INSTALLATION DESTINATION” icon
Bước10:Chọnđĩa càiđặt.Nhấpvàobiểutượngđĩa bạnmuốncài đặt
và nhấpvào nút
"Done"
Trang 17ở phía trên bên trái để tiếp tục Nếu bạn muốn tùy chỉnh bố cục phân vùng, hãy đánhdấu hộp "I will configure partitioning" và tiếp tục.
Bước 11: Quay về màn hình mặc định và chọn “NETWORK & HOSTNAME”
17
Trang 18Bước 12: Nhập bất kỳ tên máy chủ bạn thích trong trường "Hostname" và nhấp vào nút
"On" ở phía trên bên phải để enable mạng
Trang 19Bước 13: Nhấp “Done” để hoàn thành
19
Trang 20Bước 14: Chọn “Begin Installation”
Trang 21Bước 15: Cài đặt bắt đầu và yêu cầu thiết lập mật khẩu gốc và tạo ra một người dùng thông thường Nhấp vào mỗi biểu tượng và di chuyển đến cấu hình
21
Trang 23Bước 16: Trên cài đặt mật khẩu gốc, nhập mật khẩu bạn muốn và nhấp vào nút "Done"
để kết thúc
Bước 17: Trên cài đặt ngườidùng phổbiến, nhập bất kỳ tên người dùng và mật khẩu mà bạn muốn và nhấp vào nút "Xong"
để hoàn thành
23
Trang 25Bước 18: Sau khi cài đặt xong chọn nút “Reboot”
Bước 19: Sau khi reboot, đăng nhập bằng user và password đã cài đặt Cài đặt hoàn tất
25
Trang 262.2 Cài đặt máy Client - Ubuntu
Trang 27Bước 3: Chọn ngôn ngữ cho tiến trình cài đặt
27
Trang 28Bước 4: Chọn vị trí địa lý
Bước 5: Chọn cấu hình bàn phím mặc định
Trang 29Bước 6: Chọn ngôn ngữ mặc định nguồn gốc quốc gia
Bước 7: Chọn ngôn ngữ mặc định cho bàn phím
29
Trang 30Bước 8: Tại thời điểm này hệ thống sẽ phát hiện phần cứng để tìm một ổ đĩa CD-ROM
Bước 9: Tại bước này, cài đặt sẽ phát hiện và tải bất kỳ thành phần bổ sung nào
Trang 31Bước 11: Chọn tên máy chủ như bạn muốn:
Bước 12: Chọn tên user
31
Trang 32Bước 13:Chọn password
Bước 14:Chọn không chọn mã hóa thư mục chính
Trang 33Bước 15: Điều chỉnh thời gian
và múi giờ
33
Trang 34Bước 16: Tại thời điểm này, cài đặt đang phát hiện đĩa và phần cứng khác
Bước 17:
Ở giai đoạn này
là bạn đã phân vùng đĩa của bạn, chọn mặcđịnh
Trang 35Bước 18:Chọn phân vùng
Bước 19:Chọn
“Yes” để bắt đầu ghi đè thay đổi
cấu hình LVM
35
Trang 36Bước 20: Chọn “Yes” để thực sự thay đổi ổ đĩa
Trang 37Bước 21: Tại thời điểm này, cài đặt đang sao chép dữ liệu
Bước 22: Tại thời điểm này, cài đặt cấu hình Apt Sources.List
37
Trang 38Bước 23: Chọn “Tiếp tục”
Bước 24: Chọn những phần mềm để cài đặt
Trang 39Bước 25: Chọn “I choose the automatic method”
Bước 26: Chọn “Continue”
39
Trang 40Bước 27: Hoàn tất Cleaning up
Bước 28: Cài đặt Grub
Trang 41Bước 29: Chọn “Yes” để cài đặt grub vào Master Boot Record
Bước 30: Cài đặt hoàn tất
41
Trang 422.3 Cài
đặt Rsyslog trên 2 máy Client và Server
Ở máy Server:
- Dùng câu lệnh yum –y install rsyslog để cài đặt
Ở máy client:
- Dùng câu lệnh apt-get install rsyslog để cài đặt
2.4 Xuất log đến máy chủ
Cấu hình ở máy server:
- Dùng câu lệnh vi /etc/rsyslog.conf để mở file config
- Dùng câu lệnh systemctl restart rsyslog để khởi động lại dịch vụ
- Dùng câu lệnh tail -10 /var/log/secure để xem thông tin log
Cấu hình ở máy client
Trang 43- Dùng câu lệnh nano /etc/rsyslog.conf để mở file config
# for exmaple, output logs for "authpriv.*" to remote host
authpriv.* @@dlp.srv.world:514
# line 73: uncomment all
$ActionQueueFileName fwdRule1 # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
$ActionQueueType LinkedList # run asynchronously
$ActionResumeRetryCount -1 # infinite retries if host is down
- Dùng câu lệnh restart rsyslog để khởi động lại dịch vụ
Nếu muốn phân chia ra từng host, từng ngày thì ta cấu hình trong file config của server như sau
# add: define logfiles
- Dùng câu lệnh yum –y install mariadb-server để cài đặt
- Dùng câu lệnh vi /etc/my.cnf để vào file cấu hình và thêm dòng lệnh [mysqld]
character-set-server=utf8
- Khởi động lại dịch vụ và enable dịch vụ bằng 2 câu lệnh
systemctl start mariadb - systemctl enable mariadb
- Cài đặt ban đầu cho MariaDB
o Dùng câu lệnh mysql_secure_installation để bắt đầu cấu hình
o Set root password ? [Y/n] y
o Remove anonymous users ? [Y/n] y
43
Trang 44o Remove test database ? [Y/n] y
o Reload privilege tables ? [Y/n] y
- Kết nối đến cơ sở dữ liệu bằng user root
o Dùng câu lệnh mysql –u root –p để truy cập
o Để show user list dùng lệnh select user,host,password from mysql.user;
o Để show danh sách cơ sở dữ liệu dùng lệnh show databases;
2.6 Cấu hinh để lưu log vào cơ sở dữ liệu
Bước 1: Cài đặt và cấu hình MariaDB
Bước 2: Tạo user và database cho rsyslog
- Dùng câu lệnh yum –y install rsyslog-mysql
- Dùng câu lệnh cat /usr/share/doc/rsyslog-mysql-*/created.sql | mysql -u root -p
- Dùng lệnh mysql –u root –p để truy cập vào cơ sở dữ liệu
- Dùng lệnh grant all privileges on Syslog.* to root@;localhost’ identified by
‘1234567’; để tạo user dùng để truy cập vào cơ sở dữ liệu
- Dùng lệnh flush privileges
Bước 3: Cấu hình trong file config ở server
- Dùng lệnh vi /etc/rsyslog.conf
- Thêm vào dòng lệnh $ModLoad ommysql
- Thêm vào dòng lệnh authpriv.* :ommysql:localhost,Syslog,root,1234567
- Khởi động lại dịch vụ
Bước 4: Sau khi cấu hình xong,truy cập vào cơ sở dữ liệu
- Dùng lệnh mysql –u root –p Syslog để mở cơ sở dữ liệu
- Dùng lệnh show tables; để xem các bảng
- Dùng lệnh select ReceivedAt,Facility,Priority,FromHost,Message from
SystemEvents; để xem chi tiết log
2.7 Cài đặt và cấu hình Httpd
Bước 1:
- Dùng lệnh yum –y install httpd để cài đặt
- Dùng lệnh rm –f /etc/httpd/conf.d/welcome.conf để xóa trang welcome
Bước 2: Dùng lệnh vi /etc/httpd/conf/httpd.conf để mở file cấu hình và thay đổi các câulệnh sau đây
- ServerAdmin root@localhost
- ServerName 192.168.217.138:80