Menggunakan New Relic untuk Memantau Server Anda
This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.
() translation by (you can also view the original English article)
Aplikasi yang berjalan tidak hanya sekumpulan kode, kode juga harus berjalan di suatu tempat. Saya berbicara tentang server produksi Anda. Sama pentingnya untuk memastikan bahwa kotak produksi Anda berperilaku sendiri untuk memastikan bahwa kode aplikasi Anda berkinerja baik. Anda dapat mengatur sistem seperti Nagios untuk membantu Anda dengan ini, tetapi ini bisa sangat rumit untuk dikerjakan, membutuhkan infrastruktur yang signifikan dari mereka sendiri dan bisa total berlebihan (kecuali kebutuhan infrastruktur Anda sangat rumit). New Relic menyediakan alternatif yang kurang lengkap tetapi sangat sederhana ketika datang ke pemantauan infrastruktur.
Jika Anda telah membaca beberapa artikel kami sebelumnya tentang New Relic, Anda harus benar di rumah dengan cara Dasbor New Relic berfungsi. Dasbor pemantauan server menggunakan konsep yang sama. Jika Anda sudah menggunakan New Relic, Anda dapat mulai menerima data tentang kinerja server Anda dengan sangat cepat. Meskipun sebelumnya Anda belum mengatur New Relic, mungkin layak menggunakannya hanya untuk pemantauan server. Keenam atau lebih dasbor yang disediakan New Relic dapat secara signifikan menunda (atau bahkan menghapus sepenuhnya) kebutuhan akan solusi pemantauan infrastruktur berfitur lengkap.
Mengapa Saya Perlu Layanan untuk Memonitor Kotak di Semua?
Tergantung pada kebutuhan aplikasi Anda, Anda mungkin memiliki komponen web, basis data, cache, pencarian, penyeimbang beban, dll. Beberapa di antaranya mungkin berbagi kotak yang sama. Tapi, setelah aplikasi Anda melampaui ukuran tertentu, Anda akan mulai menempatkan beberapa di kotak mereka sendiri. Ketika Anda hanya memiliki satu hal server produksi yang mudah. Anda SSH ke dalam kotak itu, jalankan beberapa perintah shell dan dapatkan ide yang bagus tentang kesehatan dari satu server itu. Seiring bertambahnya jumlah kotak, ini bisa menjadi sedikit tugas. Akan sangat berguna jika Anda bisa memiliki cara untuk mengetahui tentang kesehatan semua kotak Anda sekaligus. Inilah masalah yang ditangani oleh dasbor server Relik Baru. Anda mendapatkan snapshot kesehatan semua server produksi Anda sekaligus.
Tentu saja, memeriksa kesehatan semua server Anda secara manual bukanlah hal yang paling efisien untuk dilakukan. Ketika ada yang salah, Anda ingin mencari tahu segera setelah itu terjadi, bukan pada saat Anda memutuskan untuk memeriksanya. Kebanyakan sistem pemantauan infrastruktur memiliki cara untuk mengirim peringatan ketika bagian-bagian tertentu dari server yang dipantau gagal (mis., Disk penuh, menggunakan terlalu banyak RAM dll). Relik Baru tidak berbeda. Anda dapat menggunakan infrastruktur kebijakan peringatan yang sangat fleksibel untuk mengirim pemberitahuan kegagalan dengan cara apa pun yang Anda suka, seperti email, kait web, dll.
Terakhir, masalah infrastruktur seringkali tidak muncul tiba-tiba, konteks historis adalah penting. RAM akan perlahan-lahan dimakan selama berjam-jam sebelum kotak mulai gagal, disk akan terisi selama berhari-hari sebelum hal-hal datang ke kepala. Spot memeriksa server Anda tidak memberi Anda konteks historis yang Anda butuhkan untuk mencegah masalah terjadi. Jika Anda hanya memeriksa penggunaan disk ketika sudah agak penuh, Anda dapat melakukan sesuatu. Jika tidak, Anda hanya belajar tentang masalah ketika kotak Anda mati. Relic Baru mengumpulkan data dan mengirimkannya kembali ke server mereka sepanjang waktu, jadi dasbor semuanya tentang konteks historis. Ini membuatnya sangat mudah untuk mendahului kelas-kelas masalah tertentu.
Ini Bekerja dalam Kehidupan Nyata
Biarkan saya memberi tahu Anda beberapa cerita. Kami menggunakan Relik Baru di Tuts+ untuk pemantauan kinerja aplikasi dan pemantauan server. Beberapa bulan yang lalu saya sedang menelepon, ketika kotak kami mulai bermasalah setiap beberapa menit. Mereka tidak cukup jatuh, tetapi aplikasi akan tampil sangat buruk untuk waktu yang singkat. Saya masuk ke kotak dan menemukan bahwa penggunaan memori sangat tinggi. Jadi saya me-reboot server satu per satu dan semuanya tampak baik-baik saja untuk sementara waktu. Tetapi beberapa jam kemudian semuanya mulai terjadi lagi. Ini berbau seperti kebocoran memori.
Jadi saya masuk ke New Relic untuk melihat grafik. Benar saja, salah satu yang kami lakukan sebelumnya telah memperkenalkan kebocoran memori ke dalam aplikasi. Butuh beberapa jam untuk semua memori untuk dikonsumsi oleh aplikasi pada titik mana ia akan masuk ke dalam hiruk-pikuk pengumpulan sampah putus asa, menyebabkan segala macam masalah lucu. Melihat grafik memori pada semua kotak, jelas terlihat apa yang terjadi. Pada saat itu kami tidak memiliki peringatan apa pun (kami lakukan sekarang), jadi kami tidak menyadari masalah tersebut hingga menyebabkan masalah lain terwujud. Namun, mampu membandingkan semua kotak satu sama lain, serta memiliki konteks historis, biarkan saya dengan mudah mendiagnosis masalah, mulai memperbaiki dan tidur tepat waktu malam itu.
Ini satu lagi. Baru-baru ini ada pemadaman di pusat data AWS tempat Tuts+ dihosting. Ketika segala sesuatunya selesai, kami melakukan reboot semua kotak untuk memastikan tidak ada masalah yang mengganggu. Tetapi ketika kotak-kotak itu kembali, aplikasi itu sebentar-sebentar akan mengembalikan 500 tanggapan atau berkinerja sangat buruk beberapa waktu. Ini mungkin masalah dengan satu atau lebih dari server, yang sangat menjengkelkan untuk mendiagnosis ketika Anda memiliki banyak kotak. Sekali lagi, melihat New Relic memungkinkan kami memunculkan masalah dengan sangat cepat. Salah satu kotak kami kembali dengan proses jahat yang menghabiskan banyak CPU, menyebabkan aplikasi pada kotak itu berkinerja buruk. Kotak lain dipengaruhi oleh beberapa jenis kesalahan AWS yang menyebabkan penggunaan disk IO kotak itu menjadi 100%. Kami mengambil kotak itu dari load balancer kami, menyingkirkan proses jahat di sisi lain dan aplikasi mulai berkinerja baik lagi.
Grafik New Relic menyediakan benar-benar berguna dan saya tidak ingin melakukannya tanpa mereka, jadi biarkan saya menunjukkan bagaimana untuk mendapatkan pemantauan server dan berjalan.
Memasang Agen Pemantau Server Relik Baru
Pada dasarnya semuanya bermuara pada masuk ke server Anda dan menginstal daemon monitoring New Relic server (nrsysmond
). Jika Anda sudah membaca artikel New Relic untuk PHP, prosedurnya hampir sama. Seperti biasa, mari kita asumsikan kita ada di Ubuntu.
Hal pertama yang harus dilakukan adalah mengimpor kunci repositori New Relic:
1 |
wget -O - https://download.newrelic.com/548C16BF.gpg | sudo apt-key add - |
Sekarang kita menambahkan New Relic repositori itu sendiri ke sistem:
1 |
sudo sh -c 'echo "deb http://apt.newrelic.com/debian/ newrelic non-free" > /etc/apt/sources.list.d/newrelic.list' |
Sekarang kita hanya menggunakan apt
:
1 |
sudo apt-get update
|
2 |
sudo apt-get install newrelic-sysmond |
Setelah selesai menginstal, Anda akan mendapatkan pesan yang bagus seperti ini:
1 |
*********************************************************************
|
2 |
*********************************************************************
|
3 |
***
|
4 |
*** Can not start the New Relic Server Monitor until you insert a |
5 |
*** valid license key in the following file: |
6 |
***
|
7 |
*** /etc/newrelic/nrsysmond.cfg
|
8 |
***
|
9 |
*** You can do this by running the following command as root: |
10 |
***
|
11 |
*** nrsysmond-config --set license_key=<your_license_key_here> |
12 |
***
|
13 |
*** No data will be reported until the server monitor can start. |
14 |
*** You can get your New Relic key from the 'Configuration' section |
15 |
*** of the 'Support' menu of your New Relic account (accessible at |
16 |
*** https://rpm.newrelic.com). |
17 |
***
|
18 |
*********************************************************************
|
19 |
*********************************************************************
|
Ayo lakukan apa yang dikatakannya. Pertama, mari masuk ke dalam pengaturan akun New Relic kami untuk mencari kunci lisensi kami (itu akan berada di sebelah kanan):

Sekarang mari jalankan perintah:
1 |
nrsysmond-config --set license_key=<your_license_key_here> |
Jika Anda memeriksa file konfigurasi sekarang: /etc/newrelic/nrsysmond.cfg
. Anda akan melihat kunci lisensi Anda di sana. Kami siap memulai agen:
1 |
/etc/init.d/newrelic-sysmond start |
Anda sekarang dapat memeriksa daftar proses Anda untuk memastikannya berjalan:
1 |
ps -ef | grep nrsys |
2 |
newrelic 10087 1 0 09:25 ? 00:00:00 /usr/sbin/nrsysmond -c /etc/newrelic/nrsysmond.cfg -p /var/run/newrelic/nrsysmond.pid |
3 |
newrelic 10089 10087 0 09:25 ? 00:00:00 /usr/sbin/nrsysmond -c /etc/newrelic/nrsysmond.cfg -p /var/run/newrelic/nrsysmond.pid |
4 |
ubuntu 10100 9734 0 09:25 pts/1 00:00:00 grep --color=auto nrsys |
Sesuai agen PHP, ada dua proses. Salah satunya adalah proses monitor dan yang kedua adalah pekerja. Pekerja benar-benar melakukan pekerjaan berkomunikasi dengan server Relik Baru, proses pemantauan hanya mengamati pekerja dan jika pekerja meninggal, karena alasan apa pun, itu akan menelurkan yang baru.
Kami juga dapat memeriksa log untuk memastikan tidak ada kesalahan saat memulai:
1 |
cat /var/log/newrelic/nrsysmond.log
|
2 |
2014-05-25 09:25:02 [10089/main] always: New Relic Server Monitor version 1.4.0.471/C+IA started - pid=10089 background=true SSL=true ca_bundle=<none> ca_path=<none> host=ip-10-196-10-195 |
3 |
2014-05-25 09:25:03 [10089/main] info: RPM redirect: collector-102.newrelic.com(50.31.164.202) port 0 (0 means default port) |
Semuanya terlihat baik-baik saja, dan Anda seharusnya mulai melihat data muncul di UI Relik Baru.
Mengkonfigurasi Agen Pemantauan Server
Sebagian besar waktu Anda tidak perlu mengkonfigurasi hal lain di luar kunci lisensi, tetapi jika Anda perlu menaikkan level log atau mengkonfigurasi proxy, itu pasti mungkin. Semuanya tinggal di /etc/newrelic/nrsysmond.cfg
. File ini sangat baik dikomentari dan cukup jelas. Jika Anda mengubah apa pun, ingatlah untuk restart daemon:
1 |
/etc/init.d/newrelic-sysmond restart |
Hanya ada satu hal yang halus ketika datang untuk mengonfigurasi pemantauan server dan itulah nama server, seperti yang akan terlihat di dasbor New Relic. Secara default, New Relic akan mengambil nama host dari kotak dan menjadikan nama server di dasbor (yaitu, output dari perintah hostname
). Saya sarankan Anda tetap seperti ini. Jika Anda juga menggunakan New Relic untuk pemantauan aplikasi, menjaga nama host, sebagai output oleh perintah hostname
, sebagai nama server akan memastikan bahwa New Relic dapat dengan benar mengetahui aplikasi mana yang berjalan pada kotak mana dan menghubungkan semuanya dengan benar di UI.
Jika Anda benar-benar harus, Anda dapat mengubah nama server karena akan muncul di UI dengan mengatur parameter hostname=
di file konfigurasi: /etc/newrelic/nrsysmond.cfg
. Anda harus me-restart daemon agar ini berlaku. Anda juga dapat memodifikasi nama server secara langsung di UI yang tidak akan mempengaruhi daemon.
Menggunakan Dasbor Pemantauan Server
Hal pertama yang Anda lihat ketika mengklik tautan Servers di sebelah kiri adalah snapshot dari semua server Anda dan metrik kunci untuk semuanya (CPU, Disk, Memory, IO).



Halaman ini dapat membiarkan Anda melihat apakah satu atau lebih dari kotak Anda jelas berperilaku buruk. Di sini Anda juga dapat mengganti nama server atau menambahkan tag ke dalamnya, jika perlu.
Jika kita mengklik salah satu server, kami datang ke dasbor server utama:



Ada enam metrik utama di sini:
- Penggunaan CPU
- Penggunaan Memory
- Pemanfaatan Disk IO
- Jaringan IO
- Load average
- Process List
Ini akan memberi Anda gambaran singkat tentang server tertentu. Anda dapat menelusuri setiap grafik untuk mendapatkan informasi lebih lanjut. Misalnya, Anda dapat menelusuri grafik CPU untuk melihat proses mana yang menggunakan CPU:



Atau Anda dapat menelusuri grafik disk untuk melihat tingkat IO Anda, perincian membaca dan menulis, serta mendapatkan perkiraan berapa lama sebelum disk Anda penuh.



Bagian yang terbaik adalah Anda dapat menggunakan operasi yang sama pada semua grafik ini sebanyak yang Anda bisa pada grafik tingkat aplikasi. Jadi, Anda dapat memperbesar pada jendela lima menit untuk melihat lonjakan penggunaan CPU lebih dekat, atau Anda dapat melihat tren tujuh hari dalam penggunaan memori.
Bagian yang terbaik adalah, grafik sederhana untuk dipahami, Anda tidak kewalahan dengan metrik dan Anda dapat membandingkan kotak yang mirip satu sama lain. Ini dapat membantu Anda mendiagnosis 99% masalah umum yang mungkin Anda hadapi dengan infrastruktur Anda.
Mengatur Peringatan Pemantauan Server
Relic Baru baru-baru ini melakukan banyak pekerjaan untuk meningkatkan kemampuan memperingatkan mereka. Kebijakan lansiran adalah apa yang telah mereka temukan di seluruh sistem mereka (mis. Ada kebijakan lansiran aplikasi untuk aplikasi dan kebijakan lansiran server untuk kotak). Ini mungkin sedikit membingungkan pada awalnya, tetapi cukup sederhana setelah Anda menguasainya. Ada dua konsep utama, kebijakan dan saluran. Dalam hal peringatan server, ia berfungsi seperti ini:
Kami membuat kebijakan dan menetapkan beberapa server untuk itu:



Anda juga membuat saluran (mis. Email, webhook) yang mana peringatan dapat dikirim:



Anda kemudian menetapkan saluran ke kebijakan. Sejak saat itu, tergantung pada pengaturan untuk saluran (mis. Peristiwa kritis pertama, semua peristiwa penting, hanya downtime). Anda akan mendapat notifikasi di saluran itu.
Satu-satunya yang membingungkan tentang kebijakan peringatan adalah di mana menemukannya. Mereka tinggal di bawah Tools->Alert Policies:



Anda kemudian harus mengklik Servers di menu di bagian atas, untuk menemukan kebijakan peringatan server.
Kesimpulan
Jika Anda sudah menggunakan solusi pemantauan infrastruktur seperti Nagios dan itu bekerja dengan baik untuk Anda, maka Anda mungkin tidak mendapatkan terlalu banyak tambahan dari pemantauan server New Relic (meskipun grafik dan tren historis cukup bagus). Namun, jika Anda tidak memantau infrastruktur Anda sama sekali atau solusi Anda saat ini tidak bekerja untuk Anda, pasti memberikan New Relic a try. Bagi saya, ini telah menjadi alat pertama yang saya kunjungi ketika saya mencurigai ada yang salah dengan server saya. Dan cukup sering, itu akan memberi tahu saya bahwa masalah sedang terjadi sebelum situasi menjadi kritis. Sebagai pengembang, itulah jenis alat yang kita semua inginkan dalam gudang senjata kita.