Saya tertarik pada topik DevOps baru -baru ini, jadi saya mempelajari proyek open source yang terkait dengan monitor dan dibalik ke artikel di Medium. Dalam proyek yang sebenarnya, saya melihat kolega dalam kelompok DevOps menggunakan pemantauan yang sama, jadi saya ingin menikmatinya dan belajar tentang pemantauan visualisasi.
Konfigurasi layanan yang dipantau
Ada proyek Spring-Boot secara lokal dan juga bergantung pada Jolokia (terutama untuk mengekspos JMX MBeans melalui HTTP)
Konfigurasi proyek juga sangat diperlukan
Titik Akhir: Diaktifkan: True JMX: Diaktifkan: True Jolokia: Diaktifkan: Truemanagement: Keamanan: Diaktifkan: Salah
Kunjungi URL untuk melihat apakah tidak apa -apa
http: // localhost: 8080/jolokia/baca/org.springframework.boot: name = metricsendpoint, type = endpoint/data
Membangun sistem pemantauan
Jika Anda dapat melihat data, itu berarti konfigurasi sisi server baik -baik saja. Bagaimana kita membangun telegraf + influxdb + grafana? Tiga komponen ini bekerja bersama dengan cara ini. Telegraf sebenarnya mengumpulkan informasi. Misalnya, kunjungi URL di atas setiap 10 detik untuk mendapatkan metrik, simpan data yang dikumpulkan dalam influxdb, dan kemudian Grafana melakukan visualisasi data.
Tetapi jika terlalu merepotkan untuk menginstalnya secara manual, tolong bantu Github universal dan temukan proyek yang sangat bagus (https://github.com/samuelebistoletti/docker-statsd-influxdb-grafana), langsung garpu dan memodifikasi beberapa konfigurasi untuk melayani proyek Anda. Jika Anda tidak memahami konfigurasi yang relevan, Anda dapat menjalankannya terlebih dahulu dan kemudian masuk melalui SSH untuk mengetahuinya.
ssh root@localhost -p 22022
Dalam hal konfigurasi, hal utama adalah untuk memodifikasi Telegraf, karena terhubung ke berbagai proyek. Jenis informasi apa yang perlu Anda kumpulkan, seperti CPU, Disk, Net, dll., Harus dilengkapi di Telegraf. Untuk kesederhanaan, saya hanya mengatur tiga input.
# /etc/telegraf/telegraf.conf. "org.springframework.boot: name = metricsendpoint, type = endpoint" atribut = "data" [[inputs.jolokia.metrics]] name = "tomcat_max_threads" mbean = "tomcat: name =/" http-nio-8080/" "MaxThreads" [[inputs.jolokia.metrics]] name = "tomcat_current_threads_busy" mbean = "tomcat: name =/" http-nio-8080/", type = threadpool" atribut = "currentThreadsbusy"
Bahkan, ini adalah metrik standar musim semi dan utas Tomcat.
Setelah selesai, restart layanan /etc/init.d/telegraf restart
Lihat data pemantauan
Kami mengunjungi influxdb untuk melihat apakah ada data http: // localhost: 3004/, dan beralih database ke telegraf. Masukkan perintah berikut untuk mencoba
Tampilkan pengukuran select * dari jolokiaselect * dari cpuselect * dari memselect * dari diskio
Misalnya, jika Anda memasukkan SELECT * FROM jolokia , Anda dapat melihat data apa yang diekspos oleh Spring-Boot. Dari kolom waktu, juga dapat dilihat bahwa telegraf dikumpulkan setiap 10 detik. Jika terlalu sering, itu juga akan menjadi tekanan pada server.
Di atas pada dasarnya mencakup beberapa metrik CPU, memori dan penyimpanan.
Bahkan, Anda juga dapat mengonfigurasi konfigurasi terkait jaringan. Jika Anda tertarik, Anda dapat melihat telegraf.conf resmi, yang berisi contoh mengkonfigurasi [[inputs.net]].
Visualisasi Data
Setelah data tersedia, langkah selanjutnya adalah visualisasi.
Ikuti github yang disebutkan di atas untuk memasukkan http: // localhost: 3003/,
Menggunakan wizard Klik pada Tambah data Sourcoose nama untuk sumbernya dan menandai itu sebagai bidang informasi yang default sebagai Typechoose Direct sebagai bidang yang tersisa di Access.
Setelah menambahkan influxdb, buat dasbor baru dan dengan cepat tambahkan beberapa grafik.
Untuk demonstrasi, saya menambahkan tiga, menggunakan tiga set pernyataan kueri berikut untuk membuat tiga grafik
SELECT MEAN(usage_system) + MEAN(usage_user) AS cpu_total FROM cpu WHERE $timeFilter GROUP BY time($interval)SELECT means("total") as "total" FROM "mem" WHERE $timeFilter GROUP BY time($interval) fill(null)SELECT means("used") as "used" FROM "mem" WHERE $timeFilter GROUP BY time($interval) fill(null)SELECT rata -rata ("metrics_heap.used") sebagai "heap_usage" dari "jolokia" di mana $ timefilter grup demi waktu ($ interval) mengisi (nol)Yang pertama adalah penggunaan CPU; Yang kedua adalah penggunaan memori, garis hijau adalah total, garis kuning digunakan; Yang ketiga adalah penggunaan tumpukan JVM yang disediakan oleh JoloKia, dan Anda dapat melihat situasi GC.
Saya juga telah mengkonfigurasi koleksi Tomcat sekarang, dan juga sempurna untuk melihat situasi utas Tomcat.
Pilih rata -rata ("tomcat_max_threads") dari "jolokia" di mana $ timefilter grup demi waktu ($ interval) mengisi (null) pilih rata -rata ("tomcat_current_threads_busy") dari "jolokia" di mana $ timefilter grup demi waktu ($ interval) isi (null))ringkasan
Di atas adalah pemantauan boot pegas yang diperkenalkan oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!