bài trước chúng ta đã biết được Chrony là một dịch vụ đồng bộ thời gian trên nhiều hệ điều hành khác nhau như Linux, FreeBSD, NetBSD, macOS, and Solaris. Tốc độ tốt hơn, nhiều ưu điểm hơn, quản trị và thao tác dễ dàng hơn. Bài viết sau sẽ hướng dẫn các bạn cấu hình Chrony trên CentOS/RHEL 7

Mục lục


1. Mô hình chuẩn bị

2. Chuẩn bị trước khi cài đặt

3. Cài đặt Chrony trên cả 2 Server

4. Cấu hình Chrony làm NTP Server

5. Cấu hình Chrony Client

6. Các câu lệnh kiểm tra bổ sung

7. Tổng kết

1. Mô hình chuẩn bị

Chuẩn bị mô hình kết nối

Sử dụng 2 Server cho mô hình:
– CentOS 7 (1810)
– Có kết nối Internet
– Đăng nhập thao tác với user root

2. Chuẩn bị trước khi cài đặt

Cấu hình timezone.

timedatectl set-timezone Asia/Ho_Chi_Minh

Kiểm tra timezone sau khi cài đặt.

timedatectl 

Cấu hình allow Firewalld.

firewall-cmd --add-service=ntp --permanent 
firewall-cmd --reload 

Cấu hình disable SElinux.

sudo setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=permissive/SELINUX=disabled/g' /etc/sysconfig/selinux

3. Cài đặt Chrony trên cả 2 Server

Đối với CentOS/RHEL7 mặc dù trình đồng bộ và quản lý thời gian hiện tại mặc định là Chrony thay vì NTPD nhưng đa số Chrony lại không được tích hợp sẵn trong hệ điều hành lúc chúng ta cài đặt.

Truy cập vào SSH vào cả 2 Server. Sau đó chúng ta tiến hành cài đặt Chrony.

yum install -y chrony

Sau khi cài đặt chúng ta tiến hành start Chrony và cho phép khởi động cùng hệ thống.

systemctl enable --now chronyd

Kiểm tra  dịch vụ đang hoạt động.

systemctl status chronyd

Kết quả:

[root@localhost ~]# systemctl status chronyd 
 ● chronyd.service - NTP client/server
    Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
    Active: active (running) since T6 2019-08-02 22:15:42 +07; 1 weeks 1 days ago
      Docs: man:chronyd(8)
            man:chrony.conf(5)
   Process: 3012 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
   Process: 2975 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
  Main PID: 3011 (chronyd)
    CGroup: /system.slice/chronyd.service
            └─3011 /usr/sbin/chronyd
 Th08 02 22:15:41 localhost systemd[1]: Starting NTP client/server…
 Th08 02 22:15:42 localhost chronyd[3011]: chronyd version 3.2 starting (+CMD…)
 Th08 02 22:15:42 localhost chronyd[3011]: Frequency -17.803 +/- 0.316 ppm re…t
 Th08 02 22:15:42 localhost systemd[1]: Started NTP client/server.
 Th08 02 22:15:52 localhost chronyd[3011]: Selected source 103.101.161.201
 Hint: Some lines were ellipsized, use -l to show in full.

Mặc định trên CentOS/RHEL7 file cấu hình của Chrony nằm ở /etc/chrony.conf, tiến hành kiểm tra file cấu hình.

cat /etc/chrony.conf | egrep -v '^$|^#'

Trong đó:

  • server Xác định các NTP Server bạn muốn sử dụng.
  • prefer Đối với nhiều NTP Server chúng ta có thể chỉ đinh ưu tiên kết nối từ NTP Server nào trước thay vì để hệ thống tự lựa chọn VD: server 2.centos.pool.ntp.orf iburst prefer
  • driftfile  File lưu trữ  tốc độ mà đồng hồ hệ thống tăng / giảm thời gian.
  • makestep Cho phép đồng hồ hệ thống không cập nhật trong 3 bản cập nhật đầu tiên nếu độ lệch của nó nó lơn hơn 1s.
  • rtcsync Cho phép đồng bộ hóa kernel của đồng hồ thời gian thực (RTC).
  • logdir Vị trí file log

Các cấu hình bổ sung:

  • hwtimestamp Cho phép đánh dấu thời gian phần cứng trên tất cả các interface hỗ trợ nó.
  • minsources Tăng số lượng tối thiểu các nguồn có thể chọn cần thiết để điều chỉnh đồng hồ hệ thống
  • allow Cho phép Client truy cập NTP từ mạng cục bộ.
  • keyfile Tệp có chứa mật khẩu để xác thực kết nối giữa Client và Server cho phép chronyc đăng nhập vào chronyd và thông báo cho chronyd về sự hiện diện của liên kết với Internet.
  • generatecommandkey Tạo mật khẩu ngẫu nhiên tự động khi bắt đầu chronyd đầu tiên. VD: keyfile /etc/chrony.keys generatecommandkey
  • log Log file

4. Cấu hình Chrony làm NTP Server

Chrony cho phép chúng ta cấu hình Server thành một NTP Server. Việc này phù hợp cho các mô hình mạng LAN có nhiều máy kết nối. Thay vì phải tốn thời gian đồng bộ từ Internet thì chúng ta có thể cấu hình 1 Server làm NTP Server Local và các máy còn lại sẽ đồng bộ thời gian từ NTP Server này về.

Để lựa chọn pool đồng bộ thời gian chúng ta có thể truy cập vào NTP Pool để lựa chọn NTP Server. Ở đây chúng ta giữ nguyên đồng bộ từ centos.pool.ntp.org.

Tại Server 10.10.10.61 là Server sẽ làm NTP Server.  Chúng ta sẽ cấu hình bổ sung cấu hình cho phép các máy Client 10.10.10.62 phía trong có thể đồng bộ thời gian từ Server này.

sed -i 's|#allow 192.168.0.0/16|allow 10.10.10.0/24|g' /etc/chrony.conf

Trong đó 10.10.10.0/24 chính là dải IP Local mà chúng ta cho phép các Client kết nối vào NTP Server này để đồng bộ thời gian.

Kiểm tra lại file cấu hình.

Restart lại dịch vụ để cập nhật cấu hình.

systemctl restart chronyd

Sử dụng chronyc để kiểm tra đồng bộ.

Kiểm tra đồng bộ sử dụng timedatectl.

Set đồng bộ thời gian cho đồng hồ của BIOS (Đồng hồ phần cứng) hwclock.

hwclock --systohc

Kiểm tra đồng bộ của datehwclock đảm bảo đồng bộ

5. Cấu hình Chrony Client

Thực chất sau khi cài đặt và khởi động Chrony thì Server này đã tự động đồng bộ thời gian về từ một trong những NTP Server thuộc pool centos.pool.ntp.org

Bây giờ thay vì đồng bộ thời gian từ Internet chúng ta sẽ đồng bộ từ NTP Server chúng ta cấu hình phía trên.

Tại Server 10.10.10.62 chỉnh sửa cấu hình chrony.

sed -i 's|server 0.centos.pool.ntp.org iburst|server 10.10.10.61 iburst|g' /etc/chrony.conf
sed -i 's|server 1.centos.pool.ntp.org iburst|#|g' /etc/chrony.conf
sed -i 's|server 2.centos.pool.ntp.org iburst|#|g' /etc/chrony.conf
sed -i 's|server 3.centos.pool.ntp.org iburst|#|g' /etc/chrony.conf

Kiểm tra cấu hình

Khởi động lại Chrony để cập nhật cấu hình.

systemctl restart chronyd

Sử dụng chronyc kiểm tra đồng bộ.

Kiểm tra đồng bộ sử dụng timedatectl.

Set đồng bộ thời gian cho đồng hồ của BIOS (Đồng hồ phần cứng) hwclock.

hwclock --systohc

Kiểm tra đồng bộ của datehwclock đảm bảo đồng bộ.

6. Các câu lệnh kiểm tra bổ sung

Kiểm tra verify kết nối

chronyc tracking
chronyc sources -v
chronyc sourcestats

Stop Chrony và kiểm tra

systemctl stop chronyd

Kiểm tra

chronyc tracking

7. Tổng kết

Bài viết đã hướng dẫn cơ bản các bạn cài đặt cấu hình đồng bộ thời gian trên CentOS/RHEL 7 sử dụng Chrony. Việc chuyển đổi sử dụng từ NTPD sang Chrony không hệ phức tạp vì Chrony rất thuận tiện trong quá trình cấu hình và thao tác.

Các bài viết liên quan:

Chronyd dịch vụ thay thế NTPD trên Unix
Cài đặt Chrony trên Ubuntu 18.04