Giới thiệu

Giao thức NTP (Network Time Protocol – Giao thức đồng bộ thời gian mạng) là một giao thức để đồng bộ đồng hồ của các hệ thống máy tính thông qua mạng dữ liệu chuyển mạch gói với độ trễ biến đổi. Giao thức này được thiết kế để tránh ảnh hưởng của độ trễ biến đổi bằng cách sử dụng bộ đệm jitter. NTP cũng là tên gọi của phần mềm được triển khai trong dự án Dịch vụ NTP Công cộng (NTP Public Services Project). Xuất phát từ nhu cầu thời gian sử dụng cho Document, email, log file… Tất cả mọi thứ trên máy chủ đều dựa vào việc duy trì thời gian hệ thống chính xác và đó là mục đích của NTP

Cài đặt

Để cài đặt NTP bạn cần đăng nhập vào server với quyền root và có kết nối internet để cài đặt một số gói cần thiết. Ở đây mình sử dụng CentOS 7

Trong bài viết này mình sẽ sử dụng chronyd để quản lý và đồng bộ hóa thời gian hệ thống. Mặc định chronyd không được cài đặt trên bản CentOS Minimal

1. Login vào server với quyền root, cài đặt chronyd 

yum install -y chronyd

Khởi động chronyd

systemctl start chronyd

Kiểm tra trạng thái chronyd

systemctl status chronyd
Chronyd status

Khởi động chronyd cùng hệt thống

systemctl enabled chronyd

2. Kiểm tra hệ thống đã sử dụng NTP để đồng bộ thời gian

timedatectl | grep "NTP synchronized"

Sau khi kiểm tra nếu NTP synchronized: no, ta cần bật NTP bằng lệnh

timedatectl set-ntp yes

3. Cấu hình chronyd 

Mặc định chronyd sẽ sử dụng máy chủ public để có thể truy cập vào thời gian hệ thống. Để tối ưu hóa thời gian hệ thống chúng ta cần thay đổi một vài thông số, để cấu hình ta cần chỉnh sửa file chrony.conf

nano /etc/chrony.conf

Trong nội dung file, ta cần thay thế một số thông số sau

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

Lưu ý: Bạn có thể truy cập website http://www.pool.ntp.org/ để kiểm tra các máy chủ theo khu vực địa lý hiện tại. Sử dụng nhiều máy chủ sẽ tăng độ chính xác khi đồng bộ thời gian

Ở đây mình sử dụng máy chủ khu vực châu á

server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org

Sau khi chỉnh sửa, ta cần khởi động lại chronyd

systemctl restart chronyd

Để kiểm tra nguồn thời gian mà chrony sử dụng để đồng bộ thời gian dùng lệnh

chronyc sources
Chronyd source

Thông thường thời gian được sử dụng là UTC hoặc giờ thế giới, tức là thời gian chuẩn được sử dụng trên toàn thế giới. Từ đó ta cần tính được local time sử dụng múi giờ (time zone). Để tìm đúng múi giờ ta sử dụng lệnh sau

timedatectl list-timezones

Sau khi đã tìm thấy múi giờ, sử dụng lệnh sau để đặt, trong ví dụ này là TPHCM

timedatectl set-timezone Asia/Ho_Chi_Minh

Kiểm tra lại local time bằng lệnh

timedatectl | grep "Local time"

Sau cùng nếu mọi thứ đã chính xác, chúng ta có thể đồng bộ thời gian của phần cứng bằng lệnh

hwclock --systohc
Chia sẻ