ฉันสนใจหัวข้อของ DevOps เมื่อเร็ว ๆ นี้ดังนั้นฉันจึงศึกษาโครงการโอเพนซอร์สที่เกี่ยวข้องกับการตรวจสอบและพลิกเป็นบทความเกี่ยวกับสื่อ ในโครงการจริงฉันเห็นเพื่อนร่วมงานในกลุ่ม DevOps โดยใช้การตรวจสอบที่คล้ายกันดังนั้นฉันจึงต้องการสนุกกับมันและเรียนรู้เกี่ยวกับการตรวจสอบการสร้างภาพข้อมูล
การกำหนดค่าบริการที่ตรวจสอบ
มีโครงการสปริงบู๊ตในพื้นที่และยังอาศัย Jolokia (ส่วนใหญ่จะเปิดเผย JMX MBeans ผ่าน HTTP)
การกำหนดค่าโครงการยังขาดไม่ได้
จุดสิ้นสุด: เปิดใช้งาน: TRUE JMX: เปิดใช้งาน: True Jolokia: เปิดใช้งาน: TruEmanagement: ความปลอดภัย: เปิดใช้งาน: FALSE
เยี่ยมชม URL เพื่อดูว่ามันโอเคหรือไม่
http: // localhost: 8080/jolokia/read/org.springframework.boot: name = metricsendpoint, type = endpoint/data
สร้างระบบการตรวจสอบ
หากคุณสามารถดูข้อมูลได้หมายความว่าการกำหนดค่าฝั่งเซิร์ฟเวอร์นั้นใช้ได้ เราจะสร้าง Telegraf + InfluxDB + Grafana ได้อย่างไร? องค์ประกอบทั้งสามนี้ทำงานร่วมกันด้วยวิธีนี้ Telegraf รวบรวมข้อมูลจริง ตัวอย่างเช่นเยี่ยมชม URL ด้านบนทุก ๆ 10 วินาทีเพื่อรับตัวชี้วัดจัดเก็บข้อมูลที่รวบรวมไว้ใน InfluxDB จากนั้น Grafana จะสร้างภาพข้อมูล
แต่ถ้ามันลำบากเกินไปที่จะติดตั้งด้วยตนเองโปรดช่วย GitHub Universal และค้นหาโครงการที่ดีมาก (https://github.com/samuelebistoletti/docker-statsd-influxdb-grafana) โดยตรงและปรับเปลี่ยนการกำหนดค่าบางอย่างเพื่อให้บริการโครงการของคุณ หากคุณไม่เข้าใจการกำหนดค่าที่เกี่ยวข้องคุณสามารถเรียกใช้โดยตรงก่อนจากนั้นไปที่ SSH เพื่อค้นหา
ssh root@localhost -p 22022
ในแง่ของการกำหนดค่าสิ่งสำคัญคือการปรับเปลี่ยน Telegraf เนื่องจากเชื่อมต่อกับโครงการที่แตกต่างกัน ข้อมูลประเภทใดที่คุณต้องรวบรวมเช่น CPU, Disk, Net ฯลฯ จะต้องติดตั้งใน Telegraf เพื่อความเรียบง่ายฉันตั้งค่าอินพุตสามอินพุตเท่านั้น
# /etc/Telegraf/Telegraf.conf [[ondinputs.jolokia]] บริบท = "/jolokia" homputs.jolokia.servers]] name =" springbootapp "host =" {address ip} "พอร์ต =" 8080 "[inputs.jolokia.metrics] "org.springframework.boot: name = metricsendpoint, type = endpoint" attribute = "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"ในความเป็นจริงมันเป็นตัวชี้วัดมาตรฐานสปริงบูตและเธรด Tomcat
หลังจากเสร็จสิ้นให้รีสตาร์ทบริการ /etc/init.d/telegraf restart
ดูข้อมูลการตรวจสอบ
เราเยี่ยมชม InfluxDB เพื่อดูว่ามีข้อมูล http: // localhost: 3004/และเปลี่ยนฐานข้อมูลเป็นโทรเลขหรือไม่ ป้อนคำสั่งต่อไปนี้เพื่อลอง
แสดง masurementSelect * จาก jolokiaSelect * จาก cpuselect * จาก memselect * จาก diskio
ตัวอย่างเช่นหากคุณป้อน SELECT * FROM jolokia คุณสามารถดูว่าข้อมูลใดที่เปิดเผยโดย Spring-Boot จากคอลัมน์เวลาจะเห็นได้ว่ามีการรวบรวมโทรเลขทุก ๆ 10 วินาที หากบ่อยเกินไปมันก็จะเป็นแรงกดดันบนเซิร์ฟเวอร์
โดยทั่วไปข้างต้นครอบคลุมการวัดบางอย่างของ CPU หน่วยความจำและที่เก็บข้อมูล
ในความเป็นจริงคุณยังสามารถกำหนดค่าการกำหนดค่าที่เกี่ยวข้องกับเครือข่าย หากคุณสนใจคุณสามารถดู Telegraf.conf อย่างเป็นทางการซึ่งมีตัวอย่างของการกำหนดค่า [[inputs.net]]
การสร้างภาพข้อมูล
เมื่อข้อมูลพร้อมใช้งานขั้นตอนต่อไปคือการสร้างภาพข้อมูล
ติดตาม GitHub ที่กล่าวถึงข้างต้นเพื่อป้อน http: // localhost: 3003/,
การใช้ตัวช่วยสร้างคลิกที่เพิ่มข้อมูล sourcechoose ชื่อสำหรับแหล่งที่มาและตั้งค่าสถานะเป็น defaultchoose influxdb เป็น typechoose โดยตรงเป็นเขตข้อมูลที่เหลืออยู่ดังต่อไปนี้และคลิกที่เพิ่มโดยไม่ต้องเปลี่ยน fieldsurl อื่น ๆ : http: // localhost: 8086database: telegrafuser: telegrafuser
หลังจากเพิ่ม InfluxDB ให้สร้างแดชบอร์ดใหม่และเพิ่มกราฟสองสามอย่างอย่างรวดเร็ว
สำหรับการสาธิตฉันเพิ่มสามโดยใช้คำสั่งแบบสอบถามสามชุดต่อไปนี้เพื่อแสดงผลสามแผนภูมิ
เลือกค่าเฉลี่ย (usage_system) + ค่าเฉลี่ย (usage_user) เป็น cpu_total จาก CPU โดยที่ $ timefilter กลุ่มตามเวลา ($ Interval) หมายถึง ("ทั้งหมด") เป็น "ทั้งหมด" จาก "mem" โดยที่ $ timefilter กลุ่มตามเวลา ค่าเฉลี่ย ("metrics_heap.used") เป็น "heap_usage" จาก "jolokia" โดยที่ $ timefilter Group ตามเวลา ($ Interval) เติม (null)คนแรกคือการใช้งาน CPU อันที่สองคือการใช้หน่วยความจำเส้นสีเขียวคือทั้งหมดใช้เส้นสีเหลือง อันที่สามคือการใช้ JVM Heap ที่จัดทำโดย Jolokia และคุณสามารถเห็นสถานการณ์ GC
ตอนนี้ฉันได้กำหนดค่าคอลเล็กชั่น Tomcat และมันก็เหมาะที่จะดูสถานการณ์เธรดของ Tomcat
เลือกค่าเฉลี่ย ("tomcat_max_threads") จาก "jolokia" โดยที่ $ timefilter Group ตามเวลา ($ Interval) เติม (null) เลือกค่าเฉลี่ย ("tomcat_current_threads_busy") จาก "jolokia" โดยที่ $ timefilter Group ตามเวลาสรุป
ด้านบนคือการตรวจสอบการบูตสปริงที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!