GNU/Linux >> Belajar Linux >  >> Linux

5 alasan sysadmin menyukai systemd

Seperti yang diketahui oleh administrator sistem, ada banyak hal yang terjadi di komputer modern. Aplikasi berjalan di latar belakang, peristiwa otomatis menunggu untuk dipicu pada waktu tertentu, file log ditulis, laporan status dikirimkan. Secara tradisional, proses yang berbeda ini telah dikelola dan dipantau dengan kumpulan alat Unix untuk efek yang besar dan dengan efisiensi yang besar. Namun, komputer modern beragam, dengan layanan lokal yang berjalan bersama aplikasi dalam container, akses mudah ke cloud dan cluster tempat mereka menjalankan, proses waktu nyata, dan lebih banyak data untuk diproses daripada sebelumnya.

Memiliki metode terpadu untuk mengelolanya merupakan harapan bagi pengguna dan kemewahan yang berguna bagi sysadmin yang sibuk. Untuk tugas nontrivial ini, daemon sistem, atau systemd , dikembangkan dan diadopsi dengan cepat oleh semua distribusi Linux utama.

Selengkapnya tentang sysadmin

  • Aktifkan blog Sysadmin
  • Perusahaan Otomatis:panduan untuk mengelola TI dengan otomatisasi
  • eBook:Kemungkinan Otomatisasi untuk SysAdmins
  • Kisah dari lapangan:Panduan administrator sistem untuk otomatisasi TI
  • eBook:Panduan Kubernetes untuk SRE dan sysadmin
  • Artikel sysadmin terbaru

Tentu saja, systemd bukan satu-satunya cara untuk mengelola sistem Linux. Ada banyak sistem init alternatif, termasuk sysvinit, OpenRC, runit, s6, dan bahkan BusyBox, tetapi systemd memperlakukan Linux sebagai kumpulan data terpadu, yang dimaksudkan untuk dimanipulasi dan ditanyakan secara konsisten dengan alat yang kuat. Untuk administrator sistem yang sibuk dan banyak pengguna, kecepatan dan kemudahan systemd adalah fitur penting. Berikut lima alasannya.

Manajemen boot

Mem-boot komputer Linux bisa menjadi peristiwa yang sangat langka, jika Anda menginginkannya. Tentu saja di dunia server, waktu aktif sering dihitung dalam tahun bukannya berbulan-bulan atau berminggu-minggu. Laptop dan desktop cenderung dimatikan dan di-boot cukup sering, meskipun ini kemungkinan besar akan ditangguhkan atau dihibernasi seperti halnya dimatikan. Either way, waktu sejak acara boot terbaru dapat berfungsi sebagai semacam manajer sesi untuk pemeriksaan kesehatan komputer. Ini adalah cara yang berguna untuk membatasi data apa yang Anda lihat saat memantau sistem Anda atau mendiagnosis masalah.

Jika Anda tidak dapat mengingat kapan terakhir kali Anda mem-boot komputer Anda, Anda dapat membuat daftar sesi boot dengan alat logging systemd, journalctl :

$ journalctl --list-boots
-42 7fe7c3... Fri 2020-12-04 05:13:59 - Wed 2020-12-16 16:01:23
-41 332e99... Wed 2020-12-16 20:07:39 - Fri 2020-12-18 22:08:13
[...]
-1 e0fe5f... Mon 2021-03-29 20:47:46 - Mon 2021-03-29 21:59:29
 0 37fbe4... Tue 2021-03-30 04:46:13 - Tue 2021-03-30 10:42:08

Sesi boot terbaru muncul di bagian bawah daftar, sehingga Anda dapat menyalurkan output ke tail hanya untuk sepatu bot terbaru.

Angka di sebelah kiri (42, 41, 1, dan 0 dalam contoh ini) adalah nomor indeks untuk setiap sesi boot. Dengan kata lain, untuk melihat log hanya untuk sesi boot tertentu, Anda dapat menggunakan nomor indeksnya sebagai referensi.

Log ulasan

Melihat log adalah metode penting untuk mengekstrapolasi informasi tentang sistem Anda. Log menyediakan riwayat sebagian besar aktivitas yang dilakukan komputer Anda tanpa pengawasan langsung Anda. Anda dapat melihat kapan layanan diluncurkan, kapan pekerjaan berwaktu berjalan, layanan apa yang berjalan di latar belakang, aktivitas mana yang gagal, dan banyak lagi. Salah satu langkah pemecahan masalah awal yang paling umum adalah meninjau log, yang mudah dilakukan dengan journalctl :

$ journalctl --pager-end

--pager-end (atau -e singkatnya) opsi memulai tampilan log Anda di akhir journalctl output, jadi Anda harus menggulir ke atas untuk melihat peristiwa yang terjadi sebelumnya.

Systemd memelihara "katalog" kesalahan dan pesan yang diisi dengan catatan kesalahan, solusi yang mungkin, petunjuk ke forum dukungan, dan dokumentasi pengembang. Ini dapat memberikan konteks penting untuk peristiwa log, yang sebaliknya bisa menjadi blip yang membingungkan di lautan pesan, atau lebih buruk lagi, bisa sama sekali tidak diperhatikan. Untuk mengintegrasikan pesan kesalahan dengan teks penjelasan, Anda dapat menggunakan --catalog (atau -x singkatnya) opsi:

$ journalctl --pager-end --catalog

Untuk lebih membatasi keluaran log yang perlu Anda lewati, Anda dapat menentukan sesi boot mana yang ingin Anda lihat lognya. Karena setiap sesi boot diindeks, Anda dapat menentukan sesi tertentu dengan --boot opsi dan lihat hanya log yang berlaku untuknya:

$ journalctl --pager-end --catalog --boot 42

Anda juga dapat melihat log untuk unit systemd tertentu. Misalnya, untuk memecahkan masalah dengan layanan secure shell (SSH), Anda dapat menentukan --unit sshd untuk hanya melihat log yang berlaku untuk sshd daemon:

$ journalctl --pager-end \
--catalog --boot 42 \
--unit sshd

Manajemen layanan

Tugas pertama untuk systemd adalah mem-boot komputer Anda, dan umumnya melakukannya dengan cepat, efisien, dan efektif. Tetapi tugas yang tidak pernah selesai adalah manajemen layanan. Secara desain, systemd memastikan bahwa layanan yang ingin Anda jalankan memang mulai dan terus berjalan selama sesi Anda. Ini sangat kuat, karena secara teori bahkan layanan yang mogok dapat dimulai ulang tanpa campur tangan Anda.

Antarmuka Anda untuk membantu systemd mengelola layanan adalah systemctl memerintah. Dengan itu, Anda dapat melihat file unit yang mendefinisikan layanan:

$ systemctl cat sshd
# /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.target
Wants=sshd-keygen.target

[Service]
Type=notify
EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config
EnvironmentFile=-/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

Sebagian besar file unit ada di /usr/lib/systemd/system/ tetapi, seperti banyak konfigurasi penting, Anda dianjurkan untuk memodifikasinya dengan perubahan lokal. Ada antarmuka untuk itu juga:

$ systemctl edit sshd

Anda dapat melihat apakah suatu layanan sedang aktif:

$ systemctl is-active sshd
active
$ systemctl is-active foo
inactive

Demikian pula, Anda dapat melihat apakah suatu layanan gagal dengan is-failed .

Memulai dan menghentikan layanan sangat intuitif:

$ systemctl stop sshd
$ systemctl start sshd

Dan mengaktifkan layanan untuk memulai saat boot sangatlah mudah:

$ systemctl enable sshd

Tambahkan --now opsi untuk mengaktifkan layanan untuk memulai saat boot atau memulainya untuk sesi Anda saat ini.

Pengatur waktu

Dulu, ketika Anda ingin mengotomatiskan tugas di Linux, alat kanonik untuk pekerjaan itu adalah cron . Masih ada tempat untuk perintah cron, tetapi ada juga beberapa alternatif yang menarik. Misalnya, anacron command adalah sistem serbaguna seperti cron yang mampu menjalankan tugas yang seharusnya terlewatkan selama waktu henti.

Acara terjadwal tidak lebih dari layanan yang diaktifkan pada waktu tertentu, jadi systemd mengelola fungsi seperti cron yang disebut timer. Anda dapat membuat daftar pengatur waktu aktif:

$ systemctl list-timers
NEXT                          LEFT      
Tue 2021-03-30 12:37:54 NZDT  16min left [...]
Wed 2021-03-31 00:00:00 NZDT  11h left [...]
Wed 2021-03-31 06:42:02 NZDT  18h left [...]

3 timers listed.
Pass --all to see loaded but inactive timers, too.

Anda dapat mengaktifkan pengatur waktu dengan cara yang sama seperti Anda mengaktifkan layanan:

$ systemctl enable myMonitor.timer

Target

Target adalah komponen utama terakhir dari matriks systemd. Target didefinisikan oleh file unit, sama seperti layanan dan timer. Target juga dapat dimulai dan diaktifkan dengan cara yang sama. Apa yang membuat target unik adalah mereka mengelompokkan file unit lain dengan cara yang signifikan secara arbitrer. Misalnya, Anda mungkin ingin boot ke konsol teks alih-alih desktop grafis, jadi multi-user target ada. Namun, multi-user targetnya hanya graphical target tanpa file unit desktop sebagai dependensi.

Singkatnya, target adalah cara mudah bagi Anda untuk mengumpulkan layanan, timer, dan bahkan target lainnya bersama-sama untuk mewakili status yang diinginkan untuk mesin Anda.

Faktanya, dalam systemd, reboot, power-off, atau tindakan mematikan hanyalah target lain.

Anda dapat membuat daftar semua target yang tersedia menggunakan list-unit-files opsi, membatasinya dengan --type opsi disetel ke target :

$ systemctl list-unit-files --type target

Mengambil kendali dengan systemd

Linux modern menggunakan systemd untuk manajemen layanan dan introspeksi log. Ini menyediakan segalanya mulai dari sistem Linux pribadi hingga server perusahaan dengan mekanisme modern untuk pemantauan dan perawatan yang mudah. Semakin sering Anda menggunakannya, semakin banyak sistem yang dapat diprediksi dan intuitif dengan nyaman, dan semakin Anda menemukan bagaimana bagian-bagian berbeda dari sistem Anda saling berhubungan.

Untuk lebih mengenal systemd, Anda harus menggunakannya. Dan agar nyaman menggunakannya, unduh lembar contekan kami dan sering-seringlah merujuknya.


Linux
  1. 10 alasan untuk mencintai Linux pada tahun 2021

  2. 5 alasan mengapa saya suka coding di Linux

  3. Sysadmin Linux:6 alasan Anda harus menulis artikel teknis

  1. Mengubah ukuran partisi boot

  2. Mengapa partisi boot ext2 100MB direkomendasikan untuk linux?

  3. menggunakan pengatur waktu systemd, bukan cron

  1. Boot Non-grafis Dengan Systemd?

  2. Cara:Mengelola Log Sistem dengan Journalctl

  3. Cara men-debug proses boot systemd di CentOS/RHEL 7 dan 8