1. บทนำ
GitHub: https://github.com/codecentric/spring-boot-admin
เอกสารอย่างเป็นทางการ: http://codecentric.github.io/spring-boot-admin/1.5.7/ (เอกสารนี้เป็นเอกสารที่มีเวอร์ชัน 1.5.7)
แอปพลิเคชันลงทะเบียนกับไคลเอนต์สปริงบูตผู้ดูแลระบบของเรา (ผ่าน HTTP) หรือถูกค้นพบโดยใช้ Spring Cloud ® (เช่น Eureka, กงสุล)
เอกสารอย่างเป็นทางการระบุว่าการใช้การตรวจสอบสปริงบูตผู้ดูแลระบบต้องใช้บริการเซิร์ฟเวอร์สปริงบูตผู้ดูแลระบบและบริการที่ตรวจสอบอื่น ๆ เป็นไคลเอนต์ผู้ดูแลระบบสปริงบูตหรือบริการตรวจสอบจะดำเนินการผ่านการลงทะเบียนบริการและส่วนประกอบการค้นหาเช่น Eureak และกงสุลในสปริงคลาวด์ ด้วยวิธีนี้ไม่จำเป็นต้องตั้งค่าบริการตรวจสอบที่เกี่ยวข้องเป็นลูกค้าโดยเจตนาเพียงลงทะเบียนในยูเรก้าหรือกงสุล
หมายเหตุ: บทความนี้ขึ้นอยู่กับ Spring Cloud Eureka เป็นองค์ประกอบการค้นพบการลงทะเบียนบริการเพื่อรับรู้การตรวจสอบบริการ บริการของยูเรก้ามีอยู่ล่วงหน้า นอกจากนี้: หากคุณไม่ได้ใช้ยูเรก้าคุณต้องแนะนำขวดไคลเอนต์ในบริการที่ถูกตรวจสอบ สำหรับรายละเอียดโปรดดูเอกสารอย่างเป็นทางการด้านบน -
2. สร้างบริการเซิร์ฟเวอร์สปริงบูตผู้ดูแลระบบ
ก่อนอื่นสร้างโครงการ Boot Spirng ซึ่งสามารถสร้างได้อย่างรวดเร็วผ่าน http://start.spring.io/
1. เพิ่มการพึ่งพาเซิร์ฟเวอร์สปริงบูตผู้ดูแลระบบ
pom.xml
<การพึ่งพา> <การพึ่งพา> <roupId> de.codecentric </groupId> <ratifactId> Spring-Boot-Admin-Starter-Server </ArtifactId> <Sersion> 1.5.7 </Serve> </การพึ่งพา> </การพึ่งพา
2. เพิ่ม @EnableAdminServer คำอธิบายประกอบเพื่อเปิดใช้งานการตรวจสอบ
@configuration@enableautoconfiguration@enableadminserverpublic คลาส Springbootadminapplication {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (springbootadminapplication.class, args); -3. ลงทะเบียนเซิร์ฟเวอร์ผู้ดูแลระบบสปริงสปริงไปยังยูเรก้า
เพิ่มการพึ่งพา Eureka
pom.xml
<การพึ่งพา> <roupId> org.springframework.cloud </groupId> <ratifactid> Spring-Cloud-Starter-Eureka </artifactid> </serdency>
เพิ่ม @EnableDiscoveryClient เพื่อเปิดใช้งานการค้นหาบริการ
@configuration@enableautoconfiguration@enablecoverycelient@enableadminserverpublic คลาส springbootadminapplication {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (springbootadminapplication.class, args); -เพิ่มการกำหนดค่าการลงทะเบียนบริการ Eureka
ยูเรก้า: อินสแตนซ์: LeaserEnewalIntervalinseconds: 10 ไคลเอนต์: RegistryFetchIntervalseconds: 5 ServiceUrl: DefaultZone: http://10.1.3.54:8761/eureka/# ปิดการรักษาความปลอดภัยของนักแสดงการบูตฤดูใบไม้ผลิ
เริ่มโครงการและเยี่ยมชม IP: พอร์ตเพื่อเข้าสู่หน้าจัดการ
ดังที่แสดงในภาพ:
รายการที่แสดงในรูปคือบริการทั้งหมดที่ลงทะเบียนกับยูเรก้าและรายการจะถูกตรวจสอบโดยการลงทะเบียนเซิร์ฟเวอร์สปริงบูตผู้ดูแลระบบไปยังยูเรก้า
3. การตั้งค่าการกำหนดค่า
1. เข้าสู่ UI
บริการการจัดการผู้ดูแลระบบไม่มีมาตรการรักษาความปลอดภัยใด ๆ และทุกคนสามารถเข้าถึงได้โดยการรู้ IP และพอร์ตซึ่งไม่ปลอดภัยมากและ Spring Boot Admin ยังมีหน้าเข้าสู่ระบบ ต้องใช้กับความปลอดภัยของฤดูใบไม้ผลิ
เพิ่ม Spring Boot Admin Admin UI การพึ่งพา:
<Effercing> <roupID> de.Codecentric </groupId> <ratifactId> Spring-Boot-Admin-Server-Ui-Login </artifactId> <erson
เพิ่มการพึ่งพาความปลอดภัยของฤดูใบไม้ผลิ:
<การพึ่งพา> <roupID> org.springframework.boot </roupId> <ratifactid> Spring-Boot-Starter-Security </artifactid> </deperency>
เพิ่มรหัสกำหนดค่าลงในคลาสเริ่มต้นโครงการ:
แพ็คเกจ com.aspire.springbootadmin; นำเข้า de.codecentric.boot.admin.config.enableadminserver นำเข้า org.springframework.boot.springapplication; นำเข้า org.springframework.boot.autoconfigure org.springframework.cloud.client.discovery.enablediscoveryclient นำเข้า org.springframework.context.annotation.configuration; นำเข้า org.springframework.security.config.annotation.web.builders.httpsecurity; org.springframework.security.config.annotation.web.configuration.websecurityconfigureradapter;@การกำหนดค่า@enableautoconfiguration@enableiscoveryclient@enableadminserverpublic คลาส Springbootadminaptive springapplication.run (Springbootadminapplication.class, args); } @Configuration ระดับสาธารณะระดับสแตติก SecurityConfig ขยาย WebSecurityConfigurerAdapter {@Override ป้องกันการกำหนดค่าการกำหนดค่า (httpsecurity http) โยนข้อยกเว้น {// หน้าด้วยแบบฟอร์มการเข้าสู่ระบบจะทำหน้าที่เป็น /login.html http.formlogin (). loginpage ("/login.html"). loginProcessingUrl ("/ล็อกอิน"). permitall (); // UI ทำโพสต์/ออกจากระบบบน logout http.logout (). logoutUrl ("/logout"); // UI ในปัจจุบันไม่รองรับ CSRF http.csrf (). disable (); // คำขอสำหรับหน้าเข้าสู่ระบบและสินทรัพย์คงที่ได้รับอนุญาต http.authorizeRequests () .AntMatchers ("/login.html", "/**/*.css", "/img/**",/บุคคลที่สาม ** ") .permitall (); // ... และคำขออื่น ๆ จะต้องได้รับอนุญาต http.authorizeRequests (). antmatchers ("/**"). การรับรองความถูกต้อง (); // เปิดใช้งานเพื่อให้ลูกค้าสามารถรับรองความถูกต้องผ่าน HTTP BASIC สำหรับการลงทะเบียน http.httpbasic (); -เพิ่มไฟล์การกำหนดค่า
ความปลอดภัย: ผู้ใช้: ชื่อ: รหัสผ่านผู้ดูแลระบบ: 123123 พื้นฐาน: เปิดใช้งาน: FALSE
หน้าเข้าสู่ระบบจะปรากฏขึ้นเมื่อเข้าถึงอีกครั้ง
ป้อนชื่อผู้ใช้และรหัสผ่านที่กำหนดค่าในการกำหนดค่าและคลิกเข้าสู่ระบบเพื่อเข้าสู่ระบบหลังจากป้อนจะมีปุ่มออกพิเศษบนแถบการนำทาง หลังจากคลิกคุณจะกลับไปที่หน้าเข้าสู่ระบบ
2. ข้อมูลเวอร์ชันแอปพลิเคชันไคลเอนต์
ในการแสดงเวอร์ชันในรายการแอปพลิเคชันให้ใช้ปลั๊กอิน build-info ของ Maven และเพิ่มปลั๊กอินในไฟล์ pom.xml
<สร้าง> <plugin> <plugin> <mlugin> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Maven-Plugin </artifactid> <การดำเนินการ> <Execution> <goals>
ดังที่แสดงในรูป: หากไม่มีการเพิ่มอะไรจะไม่ปรากฏขึ้น
3. แอปพลิเคชันไคลเอนต์ JMX การจัดการถั่ว
ในการโต้ตอบกับ JMX-beans ในอินเทอร์เฟซผู้ดูแลระบบคุณต้องรวม Jolokia ไว้ในแอปพลิเคชันของคุณ เพิ่มการพึ่งพา POM:
<Ederency> <roupId> org.jolokia </roupId> <ratifactid> jolokia-core </artifactid> </dercendency>
หลังจากเพิ่มแล้วคุณจะเห็นเมนู JMX ในเมนู Detial แอปพลิเคชันที่ตรวจสอบแล้ว
4. แอปพลิเคชันไคลเอนต์เพิ่มบันทึกบันทึก
การกำหนดค่าในคุณสมบัติของแอปพลิเคชันไคลเอนต์มีดังนี้:
การบันทึก: เส้นทาง:/xxx/xxx/xxx/
ระบุเส้นทางเอาต์พุตบันทึกจากนั้นบันทึกสามารถแสดงได้:
5. การสนับสนุน Hystrix UI
สปริงบูตผู้ดูแลระบบยังสามารถรวมการแสดงผล Hystrix หลักฐานคือลูกค้าต้องเปิดใช้งาน Hystrix
การเพิ่มการพึ่งพาในสปริงบูตเซิร์ฟเวอร์
<Ederency> <sderctId> de.codecentric </groupId> <ratifactId> Spring-Boot-Admin-Server-Ui-Hystrix </artifactId> <erson
เพิ่มโหนดปลายทางในไฟล์การกำหนดค่าเซิร์ฟเวอร์
คัดลอกรหัสดังต่อไปนี้: Spring.boot.admin.routes.endpoints: Env, Metrics, Trace, Dump, Jolokia, Info, Configprops, ติดตาม, Logfile, Refresh, Flyway, Liquibase, Heapdump, Activiti, Hystrix.stream
คลิกเพื่อเปิดไคลเอ็นต์ Hystrix คลิกเมนู Hystrix เพื่อดูข้อมูล Hystrix
6. การสนับสนุน UI Turbine
สปริงบูตผู้ดูแลระบบยังสามารถรวมการแสดงผลกังหัน
เข้าร่วมการพึ่งพา:
<Effercy> <mergiED> de.Codecentric </groupId> <ratifactId> Spring-Boot-Admin-Server-UI-Turbine </artifactId> <erson
กำหนดค่าคลัสเตอร์และตำแหน่งของกังหัน กลุ่มเป็นกลุ่มเดียวกันที่กำหนดค่าไว้ในบริการ Turbin ตำแหน่งจำเป็นต้องระบุชื่อบริการกังหันที่ลงทะเบียนในยูเรก้า ตัวอย่างเช่นชื่อบริการกังหันของคุณคือ Turbine-Server และการกำหนดค่าดังที่แสดงด้านล่าง (อันที่จริงเซิร์ฟเวอร์สปริงบูตผู้ดูแลระบบสามารถถือได้ว่าเป็นบริการกังหันหากมีบริการกังหันมาก่อนมันสามารถกำหนดค่าได้โดยตรงที่นี่หากไม่มีบริการกังหันให้เพิ่มการพึ่งพาที่เกี่ยวข้องกับกังหันและการกำหนดค่าให้กับสปริง
Spring.boot.admin.turbine: กลุ่ม: สถานที่เริ่มต้น: Turbine-Server
ในที่สุดเพิ่มจุดสิ้นสุดของ turbine.stream ในไฟล์การกำหนดค่า
คัดลอกรหัสดังต่อไปนี้: Spring.boot.admin.routes.endpoints: Env, Metrics, Trace, Dump, Jolokia, Info, Configprops, ติดตาม, Logfile, Refresh, Flyway, Liquibase, Heapdump, Activiti, Hystrix.stream, Turbine.stream
ส่วนต่อประสาน
จะมีแท็บกังหันเพิ่มเติมในแถบการนำทางและคุณสามารถดูข้อมูลกังหันได้โดยคลิก
7. การแจ้งเตือนทางอีเมล
Spring Boot Admin ยังรองรับการแจ้งเตือนทางอีเมล
เพิ่มการพึ่งพา
<การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Mail </artifactid>
เพิ่มการกำหนดค่าอีเมลฤดูใบไม้ผลิ (ฉันจำหลุมเล็ก ๆ ที่นี่ฉันเริ่มใช้กล่องจดหมาย QQ แต่ฉันไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ SMTP ของกล่องจดหมาย QQ ได้ฉันตรวจสอบเหตุผลเพราะ Tencent ห้าม IP อินทราเน็ตของ บริษัท แต่ไม่มีปัญหาในการเชื่อมต่อกับเครือข่าย 4G)
ฤดูใบไม้ผลิ: เมล: โฮสต์: mmmail.aspire-tech.com รหัสผ่าน: xxxxx พอร์ต: 25 ชื่อผู้ใช้: xxxx
เพิ่มการกำหนดค่า Mail Admin Mail
Boot: Admin: Notify: Mail: ถึง: [email protected] จาก: [email protected] เปิดใช้งาน: จริง
เอฟเฟกต์ดังแสดงในรูป จะมีการแจ้งเตือนทางอีเมลเมื่อบริการตรวจสอบเริ่มหรือหยุด
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น