שרתים ומסדי נתונים | mongodb השתגע!
-
יש לי nodebb על השרת, שהוא כמובן מבוסס על mongodb.
הכל התחיל לאחר שהחלטתי להתקין איזה משהו על mysql, הרצתי אותו, והוא עבד מצוין, חיברתי אותו לnginx, והכל פיקס, שני האתרים עובדים! גם של המונגו וגם של הmysql...
היום פתחתי את האתר nodebb ולהפתעתי הרבה ראיתי שהוא לא מחובר (לא ניתן לגשת לאתר זה)...
כצעד ראשון ניגשתי לכתובת הip של השרת, ושם חיכה לי הפתעה... מסך אפאצי! כנראה שתוך כדי התקנה או משהו, התקנתי בלי משים לב אפאצי. עכשיו היה הכל מובן, נכנסתי לssh כיביתי את אפאצי, הדלקתי nginx. והופ, רענון.
אח, צרות מגיעות בצרורות! מסך 502 Bad Gateway הוא בדרך כלל מורה על שגיאה במסד נתונים, לפי נסיוני, לא חיכיתי הרבה זמן, חזרתי לssh והרצתי ./nodebb setup ביודעי שתיכף יתחבר למסד, וזה יתחיל לרוץ...
אבל מה? לפתע הופיע שגיאה, שהוא לא מצליח להתחבר למסד נתונים!
הרצתי mongo, וזה התגובה:MongoDB shell version v3.6.8 connecting to: mongodb://127.0.0.1:27017 2023-06-03T23:20:30.600+0200 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused 2023-06-03T23:20:30.602+0200 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : connect@src/mongo/shell/mongo.js:257:13 @(connect):1:6
חשבתי שזה קשור להתנגשות mysql, אז כיבתי אותו, וזה עדיין לא עבד...
עשיתי הפעלה מחדש לשרת...
מאז, אני 4 שעות על זה, יש לי כבר שיחה ארוכה כאורך הגלות עם gpt, באיזור ה40 כרטיסיות פתוחות...
הנה הפלט של sudo service mongodb status● mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sat 2023-06-03 23:19:32 CEST; 2s ago Docs: man:mongod(1) Process: 9849 ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS (code=exited> Main PID: 9849 (code=exited, status=100) יונ 03 23:19:32 vmi693782.contaboserver.net systemd[1]: Started An object/document-oriented database. יונ 03 23:19:32 ****.contaboserver.net systemd[1]: mongodb.service: Main process exited, code=exited, status=100/n> יונ 03 23:19:32 ****.contaboserver.net systemd[1]: mongodb.service: Failed with result 'exit-code'.
אני מחפש פתירון שעות, המסד נתונים חשוב ביותר! השקעתי בו חודשים רבים.
נכנסתי ל/var/lib/mongodb
והעתקתי את כל החומר.
מראייה שלי, אני מבין שהבעיה היא שהוא מחפש איזה תיקייה של data של הmongo. ולא מוצא, אני ניסיתי את הדברים הבאים וכלום לא עזר:
https://stackoverflow.com/questions/45691032/mongod-service-start-exits-with-code-100
https://askubuntu.com/questions/919108/error-unit-mongodb-service-is-masked-when-starting-mongodb
https://stackoverflow.com/questions/48092353/failed-to-start-mongod-service-unit-mongod-service-not-foundחייב עזרה בדחיפות! מסד נתונים חשוב מאוד!! אני לא יודע אם החומר נמחק, או שסתם אי אפשר לגשת אליו אבל בתיקיה
/var/lib/mongodb
יש לי את החומר הבא:
לכאורה ממה שהבנתי מדובר בחומרים של המסד נתונים, חשבתי שאם אמחק את mongodb ואתקין מחדש, ואחר כך אכניס את החומרים שהיו אז זה יתגבה אוטומטי.
זקוק ואשמח לעזרה! בתודה מראש!
מציין את אלו שאולי יוכלו לעזור.
@A0533057932 @שמואל -
@LEVI-H כתב בשרתים | mongodb השתגע! 502 Bad Gateway:
לכאורה ממה שהבנתי מדובר בחומרים של המסד נתונים, חשבתי שאם אמחק את mongodb ואתקין מחדש, ואחר כך אכניס את החומרים שהיו אז זה יתגבה אוטומטי.
עדיף לא לגעת לפני שאתה יודע מה ההשלכות.
הפקודהmongo
היא רק מעטפת שורת הפקודה (הישנה), ולא מנוע הדאטהבייס עצמו ולכן השגיאה מכילה רק את התסמינים ולא הבעיה עצמה.
מה הפלט כשאתה מקלידmongod
?
ולסיום, תמיד חשוב לעשות גיבוי כל תקופה... ותמחק את "502 Bad Gateway" מהכותרת, זה לא קשור לבעיה שהיא במונגו אלא השגיאה כיוון שנודביבי לא פועל, כיוון שמונגו לא פועל... -
@צדיק-תמים כתב בשרתים ומסדי נתונים | mongodb השתגע! 502 Bad Gateway:
mongod
2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] MongoDB starting : pid=17204 port=27017 dbpath=/data/db 64-bit host=vmi693782.contaboserver.net 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] db version v3.6.8 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] git version: 8e540c0b6db93ce994cc548f000900bdc740f80a 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] allocator: tcmalloc 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] modules: none 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] build environment: 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] distarch: x86_64 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] target_arch: x86_64 2023-06-03T23:53:18.660+0200 I CONTROL [initandlisten] options: {} 2023-06-03T23:53:18.682+0200 I - [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 2023-06-03T23:53:18.682+0200 I STORAGE [initandlisten] 2023-06-03T23:53:18.682+0200 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 2023-06-03T23:53:18.682+0200 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem 2023-06-03T23:53:18.682+0200 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=3466M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),cache_cursors=false,compatibility=(release="3.0",require_max="3.0"),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress), 2023-06-03T23:53:19.492+0200 I STORAGE [initandlisten] WiredTiger message [1685829199:492664][17204:0x7f1356e5dac0], txn-recover: Main recovery loop: starting at 1/22272 2023-06-03T23:53:19.547+0200 I STORAGE [initandlisten] WiredTiger message [1685829199:547686][17204:0x7f1356e5dac0], txn-recover: Recovering log 1 through 2 2023-06-03T23:53:19.585+0200 I STORAGE [initandlisten] WiredTiger message [1685829199:585532][17204:0x7f1356e5dac0], txn-recover: Recovering log 2 through 2 2023-06-03T23:53:19.611+0200 I STORAGE [initandlisten] WiredTiger message [1685829199:611394][17204:0x7f1356e5dac0], txn-recover: Set global recovery timestamp: 0 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** WARNING: This server is bound to localhost. 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** Remote systems will be unable to connect to this server. 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** Start the server with --bind_ip <address> to specify which IP 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** addresses it should serve responses from, or with --bind_ip_all to 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** bind to all interfaces. If this behavior is desired, start the 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] ** server with --bind_ip 127.0.0.1 to disable this warning. 2023-06-03T23:53:19.684+0200 I CONTROL [initandlisten] 2023-06-03T23:53:19.777+0200 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data' 2023-06-03T23:53:19.777+0200 I NETWORK [initandlisten] waiting for connections on port 27017
אין מה לומר, אתה באמת צדיק תמים!
-
@LEVI-H בלוג של mongod שצירפת נראה שמסופק רק הזהרות כלליות (כדוגמת המלצה לשימוש בXFS לטובת שיפור הביצועים וכד׳)
לכאורה הבעיה נעוצה איפשהוא בחיבור, אם תשתף אותנו בכלי עזר לMySQL שניסית להתקין לכאורה זה יעזור, יתכן שהכלי מתקין תוכנה של צד ג׳/מתנגש ברשת וכו׳.נסה לעשות Kill לPid 9849, לחילופין תבדוק שאין חומת אש או משהו כזה שהתקנת/הותקן שחוסם את הגישה לMongoDB (תוכל לוודא בקלות שאכן פורט 27017 נגיש עם Telnet או Nmap וכד׳)
תנסה לבדוק גם האם באמצעות localhost:27017 אפשר להתחבר, ולא באמצעות 127.0.0.1:27017 (אולי באמצעות סקריפט פשוט עם mongoose וכד׳), תתפלא, אבל זה פתר לי בעבר בעיה דומה.לחילופין הייתי ממליץ שתצרף את קובץ התצורה הראשי של מונגו (מאוחסן בדיפולט ב/etc/mongod.conf), או את קובץ הלוג (מאוחסן בדיפולט ב/var/log/mongodb/) זה גם יוכל לעזור מאוד..
-
@צדיק-תמים כתב בשרתים ומסדי נתונים | mongodb השתגע! 502 Bad Gateway:
@LEVI-H לא מופיעות שגיאות בפלט שהבאת
זה הפלט המלא?כן
-
@יושב-אהלים אני ינסה
-
@יושב-אהלים כתב בשרתים ומסדי נתונים | mongodb השתגע! 502 Bad Gateway:
@LEVI-H בלוג של mongod שצירפת נראה שמסופק רק הזהרות כלליות (כדוגמת המלצה לשימוש בXFS לטובת שיפור הביצועים וכד׳)
לכאורה הבעיה נעוצה איפשהוא בחיבור, אם תשתף אותנו בכלי עזר לMySQL שניסית להתקין לכאורה זה יעזור, יתכן שהכלי מתקין תוכנה של צד ג׳/מתנגש ברשת וכו׳.נסה לעשות Kill לPid 9849, לחילופין תבדוק שאין חומת אש או משהו כזה שהתקנת/הותקן שחוסם את הגישה לMongoDB (תוכל לוודא בקלות שאכן פורט 27017 נגיש עם Telnet או Nmap וכד׳)
תנסה לבדוק גם האם באמצעות localhost:27017 אפשר להתחבר, ולא באמצעות 127.0.0.1:27017 (אולי באמצעות סקריפט פשוט עם mongoose וכד׳), תתפלא, אבל זה פתר לי בעבר בעיה דומה.לחילופין הייתי ממליץ שתצרף את קובץ התצורה הראשי של מונגו (מאוחסן בדיפולט ב/etc/mongod.conf), זה גם יוכל לעזור מאוד..
mongo.conf
# mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data. storage: dbPath: /var/lib/mongodb journal: enabled: true # engine: # wiredTiger: # where to write logging data. systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log # network interfaces net: port: 27017 bindIp: 127.0.0.1 # how the process runs processManagement: timeZoneInfo: /usr/share/zoneinfo #security: security: authorization: enabled #operationProfiling: #replication: #sharding: ## Enterprise-Only Options: #auditLog: #snmp:
-
@יושב-אהלים כתב בשרתים ומסדי נתונים | mongodb השתגע! 502 Bad Gateway:
נסה לעשות Kill לPid 9849, לחילופין תבדוק שאין חומת אש או משהו כזה שהתקנת/הותקן שחוסם את הגישה לMongoDB (תוכל לוודא בקלות שאכן פורט 27017 נגיש עם Telnet או Nmap וכד׳)
יש מצב לפירוט?
-
@יושב-אהלים @צדיק-תמים
יש איזה פלט שיעזור לכם להבין מה הבעיה? -
@LEVI-H כמו שכבתי לך, נסה לצרף את קובץ הלוג (לכאורה אמור להספיק 100 השורות האחרונות שלו...). הנה פירוט כיצד לבצע את זה:
sudo tail -n 100 /var/log/mongodb/mongod.log
כמו גם אשמח אם תצרף את כל התהליכים של MongoDB שרצים ברקע.
אפשר לעשות את זה עם הכלי ps aux. משהו כזה:sudo ps aux | grep mongo
-
@יושב-אהלים כתב בשרתים ומסדי נתונים | mongodb השתגע! 502 Bad Gateway:
sudo tail -n 100 /var/log/mongodb/mongod.log
הקוד הזה לא מביא פלט...
-
זה נקרא בקונטאבו Snapshot. זה אמנם לא גיבוי, אבל זה נקודת שחזור שאפשר לחזור אליה בכל מקרה של כשל (כמות הנקודות שחזור שניתן להחזיק בו זמנית מוגבלת לפי סוג החבילה שרכשת).
במידה ויצרת ידנית אחד כזה בתקופה שלפני התקלה - תוכל לחזור אליה בכל עת.בכ״א, קובץ הלוג שעדיין לא צורף לכאן, יוכל להיות התחלה מצויינת לפתרון הבעיה.
-
@יושב-אהלים איזה קובץ בדיוק? אני ישלח לך...
-
@LEVI-H קובץ הלוג של MongoDB.
תוכל לצרף כאן את 100 השורות האחרונות שלו באמצעות:sudo tail -n 100 /var/log/mongodb/mongod.log
לחילופין אם הפקודה לא עובדת, תדפיס את הקובץ עם Cat, ותצרף את השורות האחרונות
sudo cat /var/log/mongodb/mongod.log
במידה והקובץ לא קיים, כנראה שאין לMongo הרשאות לכתוב לו/אין תיקיה כזאת, מה שאומר שאין לוג, וקשה מאוד יהיה לדבג את הבעיה.
-
@יושב-אהלים יש שני קבצים בשם ששלחת, אחד, שצריך הרשאות רוט, והשני, שלא צריך. דקה אני ישלח צילום מסך מתוכנת ftp שתבין...
תראו:
יש םה כמה קבצים כפולים, (נראה לי עם הרשאות שונות). כולם אותם שמות.
יש גם כמה ארכיונים, אםשר גם לראות בגודל הקובץ. יש את אלה הכבדים, שהם כנראה המקוריים, ויש את אלה הקטנים...