2015-05-12 32 views
7

Chúng tôi đang thiết lập máy chủ MongoDB cho môi trường sản xuất trên cá thể Amazon EC2, nhưng không thể khởi động dịch vụ. Tôi đã theo dõi this tài liệu để thiết lập. Dưới đây là các bước, tôi đã lấy cho việc thiết lập máy chủ:Không thể khởi động dịch vụ MongoDB 3.0.2 trên CentOS 7

gia tăng sau để /etc/yum.repos.d/mongodb-org-3.0.repo

[mongodb-org-3.0] 
name=MongoDB Repository 
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/ 
gpgcheck=0 
enabled=1 

Và cài đặt MongoDB 3.0.2 sử dụng sudo yum install -y mongodb-org-3.0.2

Created ba phân vùng cho dữ liệu, tạp chí & nhật ký:

sudo mkdir /mongo 
sudo mkdir /mongo/data 
sudo mkdir /mongo/log 
sudo mkdir /mongo/journal 

Tạo hệ thống tệp cho ba phân đoạn riêng biệt:

sudo mkfs.ext4 /dev/xvdb 
sudo mkfs.ext4 /dev/xvdc 
sudo mkfs.ext4 /dev/xvdd 

nhập Created trong fstab để khởi động lại:

echo '/dev/xvdb /mongo/data ext4 defaults,auto,noatime,noexec 0 0 
/dev/xvdc /mongo/journal ext4 defaults,auto,noatime,noexec 0 0 
/dev/xvdd /mongo/log ext4 defaults,auto,noatime,noexec 0 0' | sudo tee -a /etc/fstab 

Và gắn kết các phân vùng:

sudo mount /mongo/data 
sudo mount /mongo/journal 
sudo mount /mongo/log 

Với các điều khoản và liên kết

sudo chown mongod:mongod /mongo/data /mongo/journal /mongo/log 
sudo ln -s /mongo/journal /mongo/data/journal 

Configuredtạo& đọc cài đặt trước như được đưa ra trong liên kết tài liệu ở trên. quyền xác minh và phân vùng:

[[email protected] ~]$ df -h 
Filesystem  Size Used Avail Use% Mounted on 
/dev/xvda1  8.0G 1.3G 6.8G 16%/
devtmpfs  3.6G  0 3.6G 0% /dev 
tmpfs   3.5G  0 3.5G 0% /dev/shm 
tmpfs   3.5G 57M 3.4G 2% /run 
tmpfs   3.5G  0 3.5G 0% /sys/fs/cgroup 
/dev/xvdc  7.8G 36M 7.3G 1% /mongo/journal 
/dev/xvdb  150G 51M 149G 1% /mongo/data 
/dev/xvdd  3.9G 16M 3.6G 1% /mongo/log 

Quyền:

[[email protected] ~]$ ll/
total 32 
lrwxrwxrwx. 1 root root  7 Sep 29 2014 bin -> usr/bin 
dr-xr-xr-x. 4 root root 4096 Sep 29 2014 boot 
drwxr-xr-x. 17 root root 2860 May 11 12:11 dev 
lrwxrwxrwx. 1 root root  7 Sep 29 2014 lib -> usr/lib 
lrwxrwxrwx. 1 root root  9 Sep 29 2014 lib64 -> usr/lib64 
drwxr-xr-x. 2 root root  6 Jun 10 2014 mnt 
drwxr-xr-x. 5 mongod mongod 41 May 11 05:06 mongo 
drwxr-xr-x. 21 root root 660 May 11 12:47 run 
lrwxrwxrwx. 1 root root  8 Sep 29 2014 sbin -> usr/sbin 

Bên /mongo

[[email protected] ~]$ ll /mongo/ 
total 12 
drwxr-xr-x. 3 mongod mongod 4096 May 11 07:33 data 
drwxr-xr-x. 3 mongod mongod 4096 May 11 07:31 journal 
drwxr-xr-x. 3 mongod mongod 4096 May 11 08:58 log 

Sau khi thay đổi các cấu hình bên trong /etc/mongodb.conf

logpath=/mongo/log/mongod.log 
dbpath=/mongo/data 

và khi tôi đang làm: sudo service mongod start, tôi nhận được lỗi này:

Starting mongod (via systemctl): Job for mongod.service failed. See 'systemctl status mongod.service' and 'journalctl -xn' for details. 
                  [FAILED] 

ghi thêm:

[[email protected] ~]$ sudo systemctl status mongod.service 

mongod.service - SYSV: Mongo is a scalable, document-oriented database. 
    Loaded: loaded (/etc/rc.d/init.d/mongod) 
    Active: failed (Result: exit-code) since Tue 2015-05-12 04:42:10 UTC; 42s ago 
    Process: 22881 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=1/FAILURE) 

May 11 04:42:10 ip-xx-xx-xx-xx.local runuser[22887]: pam_unix(runuser:session): session opened for user mongod by (uid=0) 
May 11 04:42:10 ip-xx-xx-xx-xx.localdomain runuser[22887]: pam_unix(runuser:session): session closed for user mongod 
May 11 04:42:10 ip-xx-xx-xx-xx.local mongod[22881]: Starting mongod: [FAILED] 
May 11 04:42:10 ip-xx-xx-xx-xx.local systemd[1]: mongod.service: control process exited, code=exited status=1 
May 11 04:42:10 ip-xx-xx-xx-xx.local systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database.. 
May 11 04:42:10 ip-xx-xx-xx-xx.local systemd[1]: Unit mongod.service entered failed state. 

Tôi đã theo các bài báo và bài đăng trên blog và StackExchange câu trả lời khác nhau nhưng không nhận bất kỳ giải pháp nào. Tui bỏ lỡ điều gì vậy?

Cập nhật: Nếu tôi đang chạy trực tiếp dịch vụ từ người dùng thông thường như sau: sudo mongod --logpath ~/mongod.log --dbpath ~/mongodata, thì dịch vụ này sẽ bắt đầu chính xác.

Chúng tôi đã thử thay đổi đường dẫn của tệp pid thành một thư mục khác, điều đó cũng không giúp ích gì.

+0

Có thể là liên kết này hữu ích https://groups.google.com/forum/#!topic/mongodb-user/fwpzEkFv7E4. – achuth

+0

Cảm ơn bạn @achuth vì đã dành thời gian. Mặc dù, tôi đã cạn kiệt liên kết mà bạn cung cấp, nhưng điều đó cũng không hoạt động. Ngoài ra, giải pháp đó là bắt buộc khi chúng tôi có kích thước nhỏ của thư mục 'journal'. Nhưng chúng tôi có 8 GB cho điều đó. –

+0

bạn sẽ đăng các câu lệnh trong mongod.log. Bạn có bắt đầu mongodb là root hay khác không? – achuth

Trả lời

1

Trong trường hợp, bất cứ ai gặp phải vấn đề tương tự với MongoDB khởi động, đây là chủ đề của ý kiến ​​https://jira.mongodb.org/browse/SERVER-18439. Điều này được lên lịch để được sửa trong 3.1.

+0

Bạn có làm việc này không? Vé vẫn cho thấy là chưa được giải quyết, và tôi đang chạy vào một vấn đề trông bề ngoài tương tự trong một ví dụ centos7 khá sạch sẽ. – TZHX

+0

Giống như tôi đã đề cập trong câu hỏi, tôi đã chạy MongoDB bằng lệnh khi dịch vụ không hoạt động. Sau đó, chúng tôi chưa nâng cấp máy chủ hoặc MongoDB. @TZHX –

4

Tôi đoán bạn đang chạy một hương vị của Linux sử dụng SELinux (RHEL hoặc CentOS 7, có lẽ?)

Nếu vậy, vấn đề là bạn không có một chính sách dễ dãi trên thư mục /mongo/ của bạn cho phép truy cập vào daemon (như dịch vụ mongod)

Từ Wikipedia:.

SELinux can potentially control which activities a system allows each user, process and daemon, with very precise specifications. However, it is mostly used to confine daemons[citation needed] like database engines or web servers that have more clearly defined data access and activity rights. This limits potential harm from a confined daemon that becomes compromised. Ordinary user-processes often run in the unconfined domain, not restricted by SELinux but still restricted by the classic Linux access rights

Để kiểm tra xem đây có phải là vấn đề hay không, hãy thử điều này tại shell:

sudo setenforce 0

Điều này nên tắt chính sách SELinux và cho phép dịch vụ chạy.

Đối với một giải pháp lâu dài hơn, hãy xem https://wiki.centos.org/HowTos/SELinux

+0

Cảm ơn bạn @Lee vì đã trả lời câu hỏi này. Tôi đã thử giải pháp của bạn trước đây nhưng không hoạt động. Đó là vấn đề với MongoDB và Centos7, vui lòng xem https://jira.mongodb.org/browse/SERVER-18439?focusedCommentId=915785&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-915785 –

2

Tôi đã gặp sự cố này và thực sự đã tìm thấy giải pháp cho tôi.

Tóm lại, mongodb 3.2 sử dụng người dùng 'mongod' trong khi các phiên bản cũ hơn sử dụng 'mongodb'. Một số tệp và thư mục được sở hữu bởi 'mongodb' (người dùng cũ). Một khi tôi chmod'd họ cho người dùng 'mongod', tôi đã có thể sử dụng systemctl để kiểm soát quá trình mongod.

Cụ thể hơn, đó là tệp "/ var/log/mongodb/*" có quyền sở hữu người dùng sai.

[email protected]<HOST>:# ls -alh /var/log/mongodb 
total 664K 
drwxr-xr-x 2 mongod mongod 4.0K Oct 27 12:08 . 
drwxr-xr-x. 22 root root 4.0K Oct 27 11:51 .. 
-rw-r--r-- 1 mongodb mongodb 3.8K Oct 27 11:48 mongod.log 
-rw-r--r-- 1 mongodb mongodb 19K Apr 14 2016 mongod.log.2016-04-14T18-29-34 
-rw-r--r-- 1 mongodb mongodb 2.8K Apr 14 2016 mongod.log.2016-04-14T18-30-13 
-rw-r--r-- 1 mongodb mongodb 12K Apr 14 2016 mongod.log.2016-04-14T22-27-27 
-rw-r--r-- 1 mongodb mongodb 11K Apr 14 2016 mongod.log.2016-04-14T22-29-12 
-rw-r--r-- 1 mongodb mongodb 5.6K Apr 18 2016 mongod.log-20160418.gz 
-rw-r--r-- 1 mongodb mongodb 0 Apr 18 2016 mongod.log.2016-09-09T17-33-48 
-rw-r--r-- 1 mongodb mongodb 3.6K Sep 9 11:34 mongod.log.2016-09-09T17-34-52 
-rw-r--r-- 1 mongodb mongodb 23K Sep 9 11:49 mongod.log.2016-09-09T17-49-49 
-rw-r--r-- 1 mongodb mongodb 5.0K Sep 9 11:55 mongod.log.2016-09-09T17-55-15 
-rw-r--r-- 1 mongodb mongodb 5.0K Sep 9 12:02 mongod.log.2016-09-09T18-02-26 
-rw-r--r-- 1 mongodb mongodb 5.0K Sep 9 12:13 mongod.log.2016-09-09T18-13-17 
-rw-r--r-- 1 mongodb mongodb 5.0K Sep 9 12:25 mongod.log.2016-09-09T18-25-01 
-rw-r--r-- 1 mongodb mongodb 5.2K Sep 9 12:47 mongod.log.2016-09-09T18-47-54 
-rw-r--r-- 1 mongodb mongodb 5.0K Sep 9 12:52 mongod.log.2016-09-09T18-52-16 
-rw-r--r-- 1 mongodb mongodb 5.0K Sep 9 12:54 mongod.log.2016-09-09T18-54-49 
-rw-r--r-- 1 mongodb mongodb 5.0K Sep 9 13:01 mongod.log.2016-09-09T19-01-22 
-rw-r--r-- 1 mongodb mongodb 3.0K Sep 9 13:03 mongod.log.2016-09-09T19-03-21 
-rw-r--r-- 1 mongodb mongodb 215K Sep 9 14:25 mongod.log.2016-09-09T20-25-59 
-rw-r--r-- 1 mongodb mongodb 281K Sep 10 03:42 mongod.log-20160910 
-rw-r--r-- 1 mongodb mongodb 0 Sep 10 03:42 mongod.log.2016-10-27T17-42-42 
-rw-r----- 1 mongod mongod  0 Sep 29 22:03 mongod.log.rpmnew 

Lưu ý rằng chủ sở hữu của thư mục là 'mongodb' (người dùng cũ).

+0

Ồ! chính xác. Đây có thể là vấn đề nhưng tôi không thể kiểm tra điều này vì tôi không còn quyền truy cập vào máy chủ đó nữa. Nhưng cảm ơn vì cập nhật và thời gian. Nó sẽ giúp người dùng khác. –

Các vấn đề liên quan