← Back to list

Simpan Waktumu Dengan Memastikan Akurasi Jam di Server

Sebelum membuang waktu Anda melakukan pelacakan masalah dengan melihat satu-per-satu baris kode, saya sarankan Anda mengecek konfigurasi…

Haidlir Naqvi · 2021-03-07 07:10 · 0 claps · 2.7 min read
#servers #monitoring #clock #distributed-systems
Open on Medium ↗

Simpan Waktumu Dengan Memastikan Akurasi Jam di Server

Permasalahan di sebuah proyek merupakan sebuah keniscayaan dan bagian dari dinamika proyek. Termasuk pula terjadi di proyek teknologi informasi khususnya pengembangan perangkat lunak. Beberapa kali saya menemui persoalan yang membuat saya takjub, berpikir dalam, dan menghabiskan waktu yang lumayan untuk menemukan akar penyebabnya (debugging). Kejadian yang sama berulang kali mengakibatkan munculnya insting yang mempercepat analisa persoalan di proyek selanjutnya. Akar masalah tersebut adalah tidak sinkronnya jam atau waktu di sebuah perangkat keras, sebagai contoh adalah server. Terdengar lucu dan tidak penting ya kan. Walaupun demikian di tulisan ini, saya ingin berbagi pengalaman saya tersebut, sehingga bermanfaat bagi pembaca juga.

Photo by sara rahmani on Unsplash

Photo by sara rahmani on Unsplash

Latar Belakang Cerita

Apakah Anda pernah menyimpan catatan kejadian (log) dan melakukan pembacaan data (query) di kemudian hari namun hasilnya tidak sesuai dengan yang Anda harapkan?. Apakah Anda pernah melakukan korelasi catatan kejadian (log) dari sistem terdistribusi yang tidak menggambarkan runtutan proses yang sesuai?. Apakah Anda pernah mengembangkan challenge token atau one time password (OTP) namun terkadang gagal ketika pengguna memasukannya sebelum waktu kadaluarsa?. Apakah Anda pernah gagal ketika melakukan aktivasi lisensi secara daring (online) dari sebuah perangkat lunak yang dipasang di laptop Anda seperti yang dikeluhkan di forum ini dan ini?. Apakah Anda pernah mengawasi (monitoring) data telemetry dari infrastruktur yang Anda kelola namun tidak sesuai dengan kondisi realita saat ini?.

Saya beruntung pernah mengalami kejadian-kejadian di atas. Jadi sebelum membuang waktu Anda melakukan pelacakan masalah dengan melihat satu-per-satu baris kode, saya sarankan Anda mengecek konfigurasi waktu di setiap server Anda atau bahkan di laptop Anda.

Apakah Waktu Memang Harus Akurat ?

Mungkin tidak semua sistem harus dilengkapi dengan konfigurasi jam atau waktu yang tepat. Dari pengalaman saya, beberapa sifat sistem yang diharuskan untuk memiliki waktu yang tersinkron antara lain (1) sistem yang digelar dalam beberapa komponen terpisah dan saling berkomunikasi, (2) sistem yang menyimpan data baik secara tersentralisasi maupun terdistribusi, (3) sistem keamanan yang melibatkan variabel waktu di dalamnya, dan (4) sistem monitoring dan telemetry. Bila diperhatikan mungkin sifat dasar dari setiap sistem tadi adalah sistem yang terdistribusi. Realitanya, sistem terdistribusi hari ini sudah menjadi sistem yang paling sering diimplementasikan dengan semakin masifnya Internet. Jadi sebelum Anda memasang atau menggelar perangkat lunak di sebuah server, pastikan bahwa jam atau waktu di server tersebut telah sinkron.

Apakah Jam di Server Dapat Tidak Akurat?

Murphy’s law menyatakan “Anything that can go wrong will go wrong”. Ada kalanya sebuah server atau bahkan laptop kita menyimpan jam dan waktu yang tidak akurat. Tidak akurat di sini dapat berarti lebih lambat ataupun lebih cepat dibanding waktu realita maupun server lainnya. Banyak istilah untuk fenomena ini, seperti *clock drift dan [clock skew](https://en.wikipedia.org/wiki/Clock_skew#On_a_network). Kejadian ini seingat saya bisa terjadi juga karena battery BIOS yang telah habis. Dapat pula ketidakakurasian disebabkan karena referensi sumber waktu yang salah juga. Jadi banyak sekali kemungkinan penyebab tidak akurasinya jam atau waktu di server*.

Solusi dari Solusi

Salah satu upaya yang dapat dilakukan adalah melakukan sinkronisasi waktu secara berkala dari sumber yang terpercaya. Cara yang paling umum adalah mengaktifkan sinkronisasi di server kita menggunakan network time protocol atau biasa dipanggil NTP. Untuk kebanyakan kasus hal ini berhasil menjadi jawaban.

Namun ada kondisi di mana NTP tidak dapat dimanfaatkan. Misalkan port untuk komunikasi NTP ditutup karena alasan keamanan. Layer 4 port NTP dapat dimanfaatkan untuk menguatkan volume serangan DDOS seperti yang dijelasakan di sini dan sini. Saya pernah menggelar sebuah perangkat lunak di salah satu penyedia layanan virtualisasi di Jakarta yang memiliki kebijakan menutup port NTP.

Persoalannya tidak berhenti di situ, karena jam dan waktu di VM yang disediakan pun terlambat sekian menit. Selain itu, ketika dikonfigurasi secara manual, jam dan waktu yang telah sesuai tersebut akan berubah lagi menjadi terlambat beberapa saat kemudian untuk alasan yang belum diketahui. Saya bersyukur komunitas open source menyediakan opsi lain seperti htpdate yang melakukan sinkronisasi waktu memanfaatkan timestamp dari respon HTTP. Selain itu, bilamana Anda punya banyak dana, mencoba memasang atomic clock di setiap server dan datacenter seperti yang dilakukan oleh penyedia layanan komputasi awan ini sepertinya hal yang menarik juga.


메타데이터
post_id
419fc358632
slug
simpan-waktumu-dengan-memastikan-akurasi-jam-di-server-419fc358632
url
https://medium.com/@haidlir/simpan-waktumu-dengan-memastikan-akurasi-jam-di-server-419fc358632
canonical_url
https://medium.com/@haidlir/simpan-waktumu-dengan-memastikan-akurasi-jam-di-server-419fc358632
author_url
https://medium.com/@haidlir
status
ok
fetched_at
2026-07-28 11:37:51