ที่เก็บนี้เลิกใช้แล้ว เราได้ย้ายรหัสบิลด์ไปยังที่เก็บ OpenNMS ตอนนี้การเผยแพร่และสร้างเวิร์กโฟลว์ได้ถูกรวมเข้าด้วยกันเป็นส่วนหนึ่งของเวิร์กโฟลว์ CI/CD ของเรา
เราจะเก็บถาวรที่เก็บนี้ด้วย Horizon 25 และจะไม่เก็บที่เก็บนี้อีกต่อไป
bleeding เวอร์ชันขอบเลือดออกทุกวันของ Horizon 24 โดยใช้ OpenJDK 1124.1.0 การเปิดตัว Horizon ที่เสถียรครั้งสุดท้ายโดยใช้ OpenJDK 11 ที่เก็บนี้ให้สแน็ปช็อตสำหรับ Horizon เป็นภาพนักเทียบท่า ภาพให้บริการตรวจสอบ Horizon Core และเว็บแอปพลิเคชัน
ขอแนะนำให้ใช้ docker-compose เพื่อสร้างสแต็คบริการโดยใช้อิมเมจ PostgreSQL อย่างเป็นทางการ ในกรณีที่คุณมีฐานข้อมูล PostgreSQL อยู่แล้วคุณสามารถให้การกำหนดค่าฐานข้อมูลในไฟล์ .opennms.env และ .postgres.env ไฟล์สภาพแวดล้อมมิฉะนั้นผู้ใช้และฐานข้อมูลจะถูกสร้างขึ้น
ข้อมูลเป็นค่าเริ่มต้นยังคงอยู่บนโฮสต์ Docker ของคุณโดยใช้ไดรเวอร์ระดับเสียงในเครื่องสำหรับข้อมูลต่อไปนี้:
# PostgreSQL database
psql.data :
driver : local
# OpenNMS Horizon RRD files, logs and generated PDF reports
opennms.data :
driver : local
# OpenNMS Horizon configuration files
opennms.etc :
driver : local จำเป็นต้องแก้ไขไฟล์การกำหนดค่า OpenNMS Horizon ด้วยตนเองคุณสามารถเพิ่มไฟล์การกำหนดค่าของคุณเองได้โดยให้ไดเรกทอรี etc-overlay เมื่อเริ่มต้นไฟล์เขียนทับการกำหนดค่าเริ่มต้น
- ./etc-overlay:/opt/opennms-etc-overlayหากคุณต้องการให้คุณ เปิดการกำหนดค่า Horizon บนโฮสต์ Docker ของคุณในไดเรกทอรีเฉพาะคุณสามารถติดตั้งไดเรกทอรีด้วยการกำหนดค่าของคุณเช่นนี้:
volumes :
- ./myHorizonConfig:/opt/opennms/etc ในกรณีที่ไดเรกทอรีว่างเปล่ามันจะเริ่มต้นด้วยการกำหนดค่า pristine เริ่มต้นจาก /opt/opennms/share/etc-pristine
สำคัญ: ดูแลเกี่ยวกับการกำหนดค่าที่สามารถเปลี่ยนแปลงได้ผ่านเว็บ UI ซึ่งยังคงอยู่ในระบบไฟล์เช่น users.xml , groups.xml , surveillance-categories.xml , snmp-config.xml ฯลฯ
git clone https://github.com/opennms-forge/docker-horizon-core-web.git
cd docker-horizon-core-web
docker-compose up -dเว็บแอปพลิเคชันถูกเปิดเผยบนพอร์ต TCP 8980 คุณสามารถเข้าสู่ระบบกับ ผู้ดูแล ระบบเริ่มต้นด้วย ผู้ดูแล ระบบรหัสผ่าน โปรดเปลี่ยนรหัสผ่านเริ่มต้นเป็นรหัสผ่านที่ปลอดภัยทันที
เพื่อขอความช่วยเหลือสำหรับตัวเลือกคอนเทนเนอร์ที่มีอยู่ทั้งหมดเพียงแค่รัน:
docker run --rm opennms/horizon-core-web เป็นไปได้อย่างง่ายดายที่จะเพิ่มตัวเลือก Java เพื่อควบคุมพฤติกรรมของ JVM สำหรับการปรับแต่งประสิทธิภาพหรือการดีบัก ตัวแปรสภาพแวดล้อม JAVA_OPTS ถูกส่งผ่านตามคำสั่ง Java และสามารถใช้เพื่อขยายหรือเขียนทับตัวเลือก JVM
สำคัญ: เพื่อให้การควบคุมคำสั่งไบนารี Java มากขึ้นในตัวเลือก Docker-entrypoint.sh และ Java ใน opennms.conf จะ ไม่ได้ รับการประเมิน กระบวนการ Java มี PID 1 และ
ใช้ในไฟล์สภาพแวดล้อม:
env_file :
- .java.env
cat .java.env
JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinalใช้ในนิยามสภาพแวดล้อมการบริการนักเทียบท่า:
opennms :
container_name : opennms.core.web
image : opennms/horizon-core-web:latest
environment :
- JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinal ในการควบคุมและแยกการใช้ทรัพยากรของกระบวนการใช้คุณสมบัติเคอร์เนล cgroups (กลุ่มควบคุม) ด้วยการรวมกันของ Java มีบางสิ่งเพิ่มเติมที่จะดูแลเกี่ยวกับ ขนาดกองสูงสุด และ จำกัด การใช้หน่วยความจำของภาชนะ
โดยค่าเริ่มต้น JVM ergonomics จะคำนวณ ขนาดกองสูงสุด ตามหน่วยความจำโฮสต์ Docker และไม่ใช่โดยหน่วยความจำที่มีด้วย cgroups
เพื่อให้แน่ใจว่า JVM จะคำนวณ ขนาดฮีปสูงสุด ที่ถูกต้องคุณมีสองตัวเลือก:
-Xmx ดูส่วนด้านบน ตัวเลือกชุด JavaJAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap ในขณะที่ Java SE 8U131 JVM เป็นนักเทียบท่าที่รับรู้ด้วย Docker CPU จำกัด อย่างโปร่งใส ตราบใดที่ -XX:ParallelGCThreads หรือ -XX:CICompilerCount , JVM จะใช้ขีด จำกัด CPU ของ Docker เป็น CPU จำนวนและคำนวณจำนวน GC และ JIT Compiler Threads เหมือนกับการทำงานบนโลหะเปลือย
สคริปต์จุดเริ่มต้นใช้เพื่อควบคุมพฤติกรรมการเริ่มต้น:
-f: Apply overlay configuration if exist and just start OpenNMS Horizon
-h: Show help
-i: If necessary initialize database, create pristine configuration, do an upgrade and apply the overlay config but do * not * start OpenNMS Horizon
-s: Same as -i but start OpenNMS Horizon, this should be your default
-n: Initialize Newts on Cassandra and the PostgreSQL database, do * not * start OpenNMS Horizon
-c: Same as -n but start OpenNMS Horizon, this should be your default when you want to use Newts on Cassandra
-t: Just test you configuration หากคุณต้องการบังคับใช้การอัปเดตให้สร้างไฟล์ A /opt/opennms/etc/do-upgrade เริ่มต้นด้วย -i หรือ -s จะเรียกใช้คำสั่ง install -dis หนึ่งครั้งเพื่ออัปเดตการกำหนดค่าและสคีมาฐานข้อมูล
ตัวเลือกทั้งหมดที่ทำการอัพเกรดหรือเริ่ม OpenNMS Horizon ตรวจสอบว่าการกำหนดค่านั้นถูกต้องและผ่านการทดสอบการกำหนดค่า
หากคุณต้องการรักษาไฟล์การกำหนดค่าที่กำหนดเองนอก OpenNMS คุณสามารถใช้ไดเรกทอรี ETC-Overlay ไฟล์ทั้งหมดในไดเรกทอรีนี้จะถูกคัดลอกไปยัง/opt/opennms/ฯลฯ ในคอนเทนเนอร์ที่ทำงานอยู่ คุณสามารถติดตั้งไดเรกทอรีท้องถิ่นเช่นนี้:
volumes :
- ./etc-overlay:/opt/opennms-etc-overlay หากคุณเพียงต้องการรักษาไฟล์การกำหนดค่าที่กำหนดเองสำหรับคอนเทนเนอร์แอปพลิเคชัน Jetty คุณสามารถใช้ไดเรกทอรี Jetty-Overlay ไฟล์ทั้งหมดในไดเรกทอรีนี้จะถูกคัดลอกไปยัง/opt/opennms/jetty-webapps/opennms/web-inf ในคอนเทนเนอร์ที่กำลังทำงานอยู่ คุณสามารถติดตั้งไดเรกทอรีท้องถิ่นเช่นนี้:
volumes :
- ./jetty-overlay:/opt/opennms-jetty-webinf-overlay ในการซ้อนทับไฟล์การกำหนดค่า/โครงสร้างไดเรกทอรีโดยพลการคุณสามารถใช้ไดเรกทอรี OpenNMS-Overlay เนื้อหาของไดเรกทอรีนี้จะถูกคัดลอกไปยัง/opt/opennms/ในคอนเทนเนอร์ที่ทำงาน คุณสามารถติดตั้งไดเรกทอรีท้องถิ่นเช่นนี้:
volumes :
- ./opennms-overlay:/opt/opennms-overlay ภาพนี้อนุญาตให้ทดสอบไฟล์การกำหนดค่าหากเป็น XML ที่ถูกต้องและหากสามารถโหลดได้เมื่อเริ่มต้น มันจะดำเนินการโดยอัตโนมัติเมื่อเริ่มต้น แต่ยังสามารถดำเนินการเป็นคำสั่ง shot shot ได้
รับเอาต์พุตการใช้งานของตัวทดสอบการกำหนดค่าด้วย:
docker run --rm opennms/horizon-core-web:latest -tตัวอย่างบางส่วนวิธีใช้ตัวทดสอบการกำหนดค่ากับภาพนี้:
ทดสอบไฟล์การกำหนดค่าทั้งหมด:
docker run --rm opennms/horizon-core-web:latest -t -a
ทดสอบเพียงไฟล์กำหนดค่าเฉพาะที่มี verbose output -v :
docker run --rm opennms/horizon-core-web:latest -t -v snmp-config.xml
ทดสอบไฟล์การกำหนดค่าด้วยไดเรกทอรี ETC-Overlay:
docker run --rm -v $(pwd)/etc-overlay:/opt/opennms-etc-overlay opennms/horizon-core-web:latest -t -v snmp-config.xml
POSTGRES_HOST : โฮสต์ฐานข้อมูล PostgreSQL, ค่าเริ่มต้น: databasePOSTGRES_PORT : พอร์ตเพื่อเข้าถึงฐานข้อมูล PostgreSQL, ค่าเริ่มต้น: 5432POSTGRES_USER : ผู้ใช้ Admin PostgreSQL, ค่าเริ่มต้น: postgresPOSTGRES_PASSWORD : รหัสผ่านผู้ดูแลระบบ PostgreSQL, ค่าเริ่มต้น: postgresOPENNMS_DBNAME : ชื่อฐานข้อมูลสำหรับ OpenNMS Horizon, ค่าเริ่มต้น: opennmsOPENNMS_DBUSER : ผู้ใช้เพื่อเข้าถึงฐานข้อมูล OpenNMS Horizon, Default: opennmsOPENNMS_DBPASS : รหัสผ่านสำหรับผู้ใช้ฐานข้อมูล OpenNMS Horizon, ค่าเริ่มต้น: opennmsOPENNMS_KARAF_SSH_HOST : การฟังที่อยู่สำหรับพอร์ต KARAF SSH, ค่าเริ่มต้น: 0.0.0.0OPENNMS_KARAF_SSH_PORT : พอร์ต SSH สำหรับ KARAF, ค่าเริ่มต้น: 8101ใช้คลัสเตอร์คาสซานดรา:
${OPENNMS_CASSANDRA_HOSTNAMES} : ชื่อโฮสต์หรือที่อยู่ IP ของคลัสเตอร์ Cassandra รายการที่คั่นด้วยเครื่องหมายจุลภาคก็ยอมรับได้เช่นกัน${OPENNMS_CASSANDRA_KEYSPACE} : ชื่อพื้นที่เพื่อคงข้อมูลประสิทธิภาพในค่าเริ่มต้น: newts${OPENNMS_CASSANDRA_PORT} : พอร์ตคาสซานดรา, ค่าเริ่มต้น: 9042${OPENNMS_CASSANDRA_USERNAME} : ชื่อผู้ใช้ที่เข้าถึงคาสซานดรา${OPENNMS_CASSANDRA_PASSWORD} : การเข้าถึงรหัสผ่าน Cassandra โดยค่าเริ่มต้นอิมเมจ OpenNMS Horizon จะทำงานโดยใช้ RRDTool สำหรับการจัดเก็บข้อมูลประสิทธิภาพ อย่างไรก็ตาม OpenNMS Horizon ยังสามารถกำหนดค่าให้ทำงานบน Cassandra โดยใช้ Schema Series Newts
ตัวเลือกการกำหนดค่าสามารถพบได้ในส่วน ตัวแปรสภาพแวดล้อม opennms-cassandra-helm.yml มีให้ซึ่งแสดงวิธีการเรียกใช้ OpenNMS Horizon ด้วยโหนด Cassandra เดี่ยวขนาดเล็กบนเครื่องเดียวกัน
MIRROR_HOST : เซิร์ฟเวอร์ที่มีแพ็คเกจ RPM, ค่าเริ่มต้น: yum.opennms.orgOPENNMS_VERSION : เวอร์ชันของไฟล์ OpenNMS Horizon RPM, ค่าเริ่มต้น: stable