en
שפה
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
תרגום AI
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

מכונה וירטואלית קלה (VM)

מבוא

תיעוד זה מיועד למכונות וירטואליות (VM) המסופק על ידי Easy Software עבור לקוחות שקנו פתרון שרת. זה תקף עבור מחשבי VM שנוצרו לאחר 1 במרץ 2022.

זה עשוי לשמש גם כהשראה של סביבת השרת שלך, אבל במקרה כזה אין ערבויות בשל מגוון הרכיבים והטכנולוגיות האפשריים שבהם אתה עשוי להשתמש.

ה-VM מוגדר רק עבור אתרים קטנים (כ-10 משתמשים עובדים בו זמנית). VM הוא כמעט מוכן לייצור אבל דורש מנהל מנוסה כדי להתקין VM בסביבה שלך, להגדיר גיבוי, ניטור, רשת, מדיניות אבטחה וכו'. Easy Software לא יכולה לקחת אחריות על הפעלת ה-VM הזה בסביבה הייעודית שלך, ה-VM הוא דוגמה לאופן שבו האפליקציה יכולה להתארח.
README זה מתייחס ל"אפליקציה", אותה ניתן להחליף ב-"Easy Project" או "Easy Redmine".

צעדים ראשונים

מכיוון שה-VM נוצר בנקודת זמן מסוימת, ייתכן שחלק מהרכיבים כבר שיחררו כמה תיקונים או תיקוני אבטחה בזמן שאתה פורס אותו.
לכן תמיד כדאי להתחיל עם גיבוי ואחריו עדכון של מערכת ההפעלה. זה יתקין את תיקוני האבטחה האחרונים ויעדכן רכיבים מיושנים.

תיאור VM

מערכת ההפעלה היא דביאן במהדורת 64 סיביות.

ברירות המחדל החשובות הן:

  • מערכת ההפעלה זמינה על ידי SSH דרך יציאה 22
  • חומת האש לא מוגדרת (זה תלוי במנהלי המערכת)
  • הדיסק הוא ~100 GB
    • /boot 512M
    • / 30 גרם
    • /home 60G
    • להחליף 4G
    • כדי להגדיל את הדיסק, השתמש ב-LVM הזמין
  • האפליקציה מקשיבה ב-HTTPS אך עם אישור חתום בעצמך, אז עליך להחליף אותו בהקדם האפשרי (פרטים נוספים בהמשך)
  • האפליקציה פועלת ב- /home/easy/[application_name]/current.

כניסה ללינוקס:

  • שם משתמש: קל
  • סיסמה: e4syPwd-

אנא שנה אותו בהקדם האפשרי. לשם כך הפעל פקודה פסח בטרמינל

כניסה ל-Mysql:
פשוט השתמש בפקודה mysql your_app_name (יש להחליף את כל הנקודות או המקפים בשם האפליקציה בקו תחתון. דוגמה: שם האפליקציה שלך צריך להיות שם_האפליקציה שלך)

כניסה לאפליקציה:
ברירת המחדל לכניסה (במקרה של מסד נתונים "נקי") הוא

  • שם משתמש: admin
  • סיסמה: מנהל

ברירת המחדל של ההתחברות עבור ה-VM עם ה- נתוני הדגמה היא:

  • שם משתמש: מנהל
  • סיסמה: easy848


במקרה של מסד נתונים מאפליקציית הענן שלך, הסיסמאות נשארות כפי שהיו לך.

מבנה בית האפליקציה

.
├── גיבויים # סקריפט גיבוי שומר נתונים שם
└── $APP_NAME
    ├── application.pid           
    ├── application.sock # nginx משתמש בשקע זה
    ├── תצורה
    │ ├── # תצורות יישומים שנוצרו מראש  
    │ ├── # (מסד נתונים, דיוור, סודות, שרת אפליקציות וכו'...)
    │ └── ...
    ├── שוטף
    │ ├── config # כל תצורות היישום
    │ │ ├── configuration.yml # הגדר כאן תצורת דואר יוצא
    │ │ ├── database.yml # גישה למסד נתונים מוגדרת כאן
    │ │ └── ...
    │ ├── קבצים # נתוני יישום קבועים
    │ ├── יומן # יומני יישומים
    │ ├── קבצים סטטיים # ציבוריים
    │ └── גרסה # גרסת יישום
    └── public_html -> /home/easy/$APP_NAME/current

הפעלה מחדש של האפליקציה היא פשוט באמצעות "systemctl restart puma@[application_name]" כמו sudo

אחריות הלקוח

ה-VM פועל על הגרסה המומלצת האחרונה של דביאן. המערכת דורשת תחזוקה נפוצה כמו:

  • עדכונים שוטפים
  • ניטור משאבים (שטח פנוי, שימוש בזיכרון, עומס, ...)
  • גיבוי נתונים לדיסק עצמאי
  • מדיניות אבטחה

עדכונים

בצע עדכוני אבטחה של המערכת לעתים קרובות. אנו ממליצים לעשות זאת לפחות פעם בשבוע. לפני העדכון אנא ודא שהגיבוי האחרון זמין ופועל.

תיעוד רשמי כיצד להפעיל רק עדכוני אבטחה https://wiki.debian.org/UnattendedUpgrades

ניטור משאבים

ל- Easy Software יש ניסיון טוב עם Prometheus. לכן, ה-node_exporter הוא חלק מה-VM מאז ה-1.3. 2022.

התיעוד הרשמי מאוד בסיסי עבור Node Exporter ו-Prometheus נמצא בכתובת https://prometheus.io/docs/guides/node-exporter/ לוח המחוונים הטוב ביותר להתחלה מהירה של גראנה נמצא בכתובת https://grafana.com/grafana/dashboards/1860

בהתאם לשימוש שלך, עליך לכוון את הגדרות משאבי ה-VM, למשל להגדיל את כמות ה-RAM או מספר הליבות שסופקו ל-VM. כל התצורות הללו צריכות להיעשות באופן קבוע על ידי מנהל הסביבה הווירטואלית שלך.

יצואן צומת מאזין ביציאה 9100.

השבת node_exporter

ניתן להשבית את node_exporter על ידי הפעלת:

systemctl stop node_exporter.service
systemctl השבת את node_exporter.service
מסיכת systemctl node_exporter.service

זה מונע התחלת ייצוא הצמתים לאחר האתחול הבא...

אם אתה זקוק לתמיכה מלאה בסביבה מ-Easy Software (אופטימיזציית אבטחה וביצועים, גיבוי, ניטור וכו'), אנו ממליצים לעבור לפתרונות הענן שלנו.

גיבויי נתונים

הגיבוי המוגדר מראש שקיים ב-VM הוא דוגמה עובדת, שצריך להתאים לתשתית שלך ויש לנטר. אנא זכור שגיבוי מתאים צריך להיות:

  • נבדק לאחר סיום תהליך הגיבוי (בדוק לפחות את גודל הגיבוי)
  • נשמר במקום בטוח
  • מרוחק מסביבת הריצה (לפחות בעיר אחרת)
  • שוחזר מדי פעם כדי לבדוק את יכולתך לבצע התאוששות

האפליקציה מאחסנת נתונים בשני מקומות, אז אל תשכחו לגבות את שניהם.

DB

גיבוי מסד נתונים יכול להתבצע בקלות רבה בצורה לא נכונה. הדרך הטובה והבטוחה ביותר כיצד לבצע גיבויים של מסד הנתונים של mysql היא באמצעות dump של מסד נתונים כפי שניתן לראות בסקריפט לדוגמה. זה עושה גיבויים עצמאיים של גרסאות, שניתן לשחזר בשלמותם או מאפשר לך לקבל רק חלק מהנתונים הישנים.

דוגמא:

mysqldump --add-drop-tables --routines --triggers --flush-logs $DATABASE_NAME > path/to/file_where_db_will_be_stored.sql

העתקת קבצים מ-/var/lib/mysql היא דרך שגויה לשמור גיבויים של DB.

קבצים

כל קובץ/קובץ מצורף שהועלה באפליקציה מאוחסן ב /home/easy/$APP_NAME/current/files. יש לגבות את כל התוכן של ספרייה זו. במקרה זה, אתה יכול פשוט להעתיק את התוכן.

מדיניות אבטחה

ה-VM מכיל מפתחות SSH עבור מהנדסי Easy Software ב-home/easy/.ssh/authorized_keys. כמו כן, הכללים עבור חומת האש iptables ב-/etc/iptables מאפשרים גישה לכתובת IP של Easy Software.

שתי המדיניות הללו נועדו לתמיכה מרחוק בסופו של דבר על ידי הצוות שלנו לפי בקשתך. מדיניות הגישה נמצאת בשליטה מלאה שלך.

משימות אוטומטיות

כל המשימות האוטומטיות מתוזמנות על ידי CRON ו-Sidekiq, שמתחיל עבודות מתוזמנות כל 5 מ'. אנו ממליצים לא להפעיל עבודות אלה במרווחים קצרים יותר בשל דרישות הביצועים הגבוהות שלהן. כדי לבצע שינויים כלשהם, אתה יכול לערוך אותם על ידי הפעלת הפקודה למטה תחת User easy

-e crontab

תיעוד מפורט עבור cron
https://www.easyredmine.com/resources/redmine-installation/common-troubles/cron-not-working-helpdesk-emails-alerts-repeating-tasks-etc-are-not-automatically-processed

העבר נתונים ל-VM זה

כיצד לייבא נתוני אפליקציה או Redmine ישנים יותר (SOURCE) ל-VM (TARGET). זה עובד ברוב המקרים, אך ייתכן שהליך זה לא יעבוד במקרה שאתה משתמש בתוספים של צד שלישי במופע Redmine המקורי שלך.

1. מתוך (המקור) שלך צור קובץ dump MySQL:

mysqldump --opt easy > backup.sql

2. העבר את backup.sql אל (TARGET)

3. עבור אל תיקיית האפליקציות ב- (TARGET)

cd /home/easy/[application_name]/current

4. צור מחדש (TARGET) מסד נתונים

bundle exec rake db:drop db:create RAILS_ENV=ייצור DISABLE_DATABASE_ENVIRONMENT_CHECK=1

5. ייבוא ​​backup.sql

mysql [db_name] < backup.sql

6. העבר קבצים מצורפים וקבצים אחרים מ-(SOURCE)[redmine]/קבצים אל (TARGET)/home/easy/[application_name]/current/files

7. ריצה:

צרור exec מגרפה easyproject: להתקין RAILS_ENV = ייצור

8. הפעל מחדש את היישום

sudo systemctl הפעל מחדש את puma@[application_name]

פתרון בעיות

חסר sidekiq

בחלק מהמכונות קובץ sidekiq@.service אינו נוסף. אנא בדוק את התיקייה /etc/systemd/system אם מוצג קובץ sidekiq@.service. אם לא - נא להוסיף אותו. זה צריך להכיל את הבא:


[יחידה]
Description=שירות SIDEKIQ עבור %i
After=redis.service
PartOf=puma@%i.service unicorn@%i.service

[שֵׁרוּת]
סוג = פשוט
PIDFile=/home/easy/%i/sidekiq.pid

סביבה = RAILS_ENV = ייצור
סביבה=MALLOC_ARENA_MAX=2

משתמש = קל
Group=www-data
WorkingDirectory=/home/easy/%i/public_html

ExecStart=/usr/local/rvm/bin/rvm ברירת מחדל do bundle exec sidekiq -e production
ExecReload=/bin/kill -s TSTP $MAINPID

הפעל מחדש = תמיד

[להתקין]
WantedBy=multi-user.target puma@%i.service unicorn@%i.service

לאחר יצירת הקובץ הפעל

sudo systemctl daemon-reload

הפעל מחדש את פומה

גיבויי MYSQL מכוונים למסד נתונים שגוי

כדי לתקן בעיה זו, פתח את הקובץ /usr/local/bin/mysql-backups.sh והחלף את שם ה-DB "קל" ל-DB של האפליקציה (בדרך כלל זה זהה לשם האפליקציה אבל יש להחליף את כל המקפים והנקודות בקו תחתון)

נסה את Easy Redmine תוך 30 יום ניסיון חינם

תכונות מלאות, מוגנת SSL, גיבויים יומיים, במיקום הגיאוגרפי שלך