2016-07-30 56 views
10

Gần đây tôi đã nâng cấp máy của mình từ Ubuntu 14.04 thành 16.04. Tôi đang gặp sự cố khi sử dụng dịch vụ elasticsearch. Tôi installedelasticsearch sử dụng:Không thể khởi động elasticsearch dưới dạng dịch vụ trong ubuntu 16.04

sudo apt-get install elasticsearch 

Bây giờ sudo service elasticsearch status lệnh cho tôi kết quả này:

elasticsearch.service - LSB: Starts elasticsearch 
    Loaded: loaded (/etc/init.d/elasticsearch; bad; vendor preset: enabled) 
    Active: active (exited) since Sat 2016-07-30 18:28:13 BDT; 1h 19min ago 
    Docs: man:systemd-sysv-generator(8) 
Main PID: 7988 (code=exited, status=1/FAILURE) 
    CGroup: /system.slice/elasticsearch.service 

Jul 30 18:28:13 dimik elasticsearch[10266]: [warning] /etc/init.d/elasticsearch: No java runtime was found 
Jul 30 18:28:13 dimik systemd[1]: Started LSB: Starts elasticsearch. 
Jul 30 18:28:46 dimik systemd[1]: Started LSB: Starts elasticsearch. 
Jul 30 18:35:30 dimik systemd[1]: Started LSB: Starts elasticsearch. 
Jul 30 19:04:36 dimik systemd[1]: Started A search engine. 
Jul 30 19:07:48 dimik systemd[1]: Started A search engine. 
Jul 30 19:27:01 dimik systemd[1]: Started A search engine. 
Jul 30 19:27:51 dimik systemd[1]: Started A search engine. 
Jul 30 19:28:54 dimik systemd[1]: Started A search engine. 
Jul 30 19:29:18 dimik systemd[1]: Started LSB: Starts elasticsearch. 

Mặc dù Java được cài đặt trong máy tính của tôi và tôi có thể bắt đầu các máy chủ sử dụng lệnh này.

sudo /usr/share/elasticsearch/bin/elasticsearch 

Tôi bị kẹt ở đây. Bất kỳ trợ giúp sẽ được đánh giá cao.

Sửa

Sau khi thiết lập JAVA_HOME cho root lỗi:

elasticsearch.service - LSB: Starts elasticsearch 
    Loaded: loaded (/etc/init.d/elasticsearch; bad; vendor preset: enabled) 
    Active: active (exited) since Sat 2016-07-30 18:28:13 BDT; 3h 32min ago 
    Docs: man:systemd-sysv-generator(8) 
Main PID: 7988 (code=exited, status=1/FAILURE) 
    CGroup: /system.slice/elasticsearch.service 

Jul 30 18:35:30 dimik systemd[1]: Started LSB: Starts elasticsearch. 
Jul 30 19:04:36 dimik systemd[1]: Started A search engine. 
Jul 30 19:07:48 dimik systemd[1]: Started A search engine. 
Jul 30 19:27:01 dimik systemd[1]: Started A search engine. 
Jul 30 19:27:51 dimik systemd[1]: Started A search engine. 
Jul 30 19:28:54 dimik systemd[1]: Started A search engine. 
Jul 30 19:29:18 dimik systemd[1]: Started LSB: Starts elasticsearch. 
Jul 30 20:02:07 dimik systemd[1]: Started LSB: Starts elasticsearch. 
Jul 30 20:20:21 dimik systemd[1]: Started LSB: Starts elasticsearch. 
Jul 30 21:59:21 dimik systemd[1]: Started LSB: Starts elasticsearch. 
+0

Lokks như javapath không được thiết lập cho thư mục gốc – Jens

+0

đường Java được thiết lập như tôi có thể thấy. 'echo $ JAVA_HOME' mang lại đường dẫn –

+0

Ngoài ra nếu bạn làm sudo echo $ JAVA_HOME? – Jens

Trả lời

24

Tôi tìm thấy giải pháp cho vấn đề này. Giải pháp này tạo thành chuỗi thảo luận này- Can’t start elasticsearch with Ubuntu 16.04 trên trang web của đàn hồi.

It seems that to get Elasticsearch to run on 16.04 you have to set START_DAEMON to true on /etc/default/elasticsearch . It comes commented out by default, and uncommenting it makes Elasticsearch start again just fine.

Be sure to use systemctl restart instead of just start because the service is started right after installation, and apparently there's some socket/pidfile/something that systemd keeps that must be released before being able to start the service again.

+0

Không hoạt động đối với chúng tôi. Tuy nhiên, chúng tôi có thể chạy thủ công bằng '/ usr/share/elasticsearch/bin/elasticsearch'. Hm. –

+0

Một cái gì đó chỉ bị hỏng về gói Ubuntu. Ngay cả khi cho phép daemon và thiết lập quyền, nó không bắt đầu thông qua systemd. Bạn phải đi đến elastic.co để có được gói làm việc. Không có tệp nhật ký và tệp pid trống và không có đầu ra journalctl, làm cho việc gỡ lỗi rất khó. –

2
  1. mở tập tin /etc/init.d/elasticsearch trong trình soạn thảo, Nhận xét bên dưới dòng

    . /usr/share/java-wrappers/java-wrappers.sh 
    find_java_runtime openjdk8 oracle8 openjdk7 oracle7 openjdk6 sun6 default 
    

    Set JAVA_HOME bằng tay như sau:

    export JAVA_HOME="/usr" 
    
  2. dịch vụ elasticsearch bắt đầu

+0

Bên cạnh các hướng dẫn bulletpoint, bạn cũng nên xây dựng nó sẽ giúp giải quyết vấn đề như thế nào. –

+0

Tôi đã đăng một giải pháp. Câu trả lời của bạn không giải thích điều đó hoặc đưa ra một giải pháp thay thế tốt hơn. –

4

Sự cố nằm trên tệp nhật ký, "Không tìm thấy thời gian chạy java."

Jul 30 18:28:13 dimik elasticsearch[10266]: [warning] /etc/init.d/elasticsearch: No java runtime was found 

Đây là giải pháp của tôi cho vấn đề.

  1. Kiểm tra elasticsearch tập tin init

    sudo nano /etc/init.d/elasticsearch

tìm kiếm

. /usr/share/java-wrappers/java-wrappers.sh 
find_java_runtime openjdk8 oracle8 openjdk7 oracle7 openjdk6 sun6 default 
export JAVA_HOME 
  1. Kiểm tra tệp java-wrappers.sh

    sudo nano/usr/share/java-trình bao bọc/trình bao bọc java.sh

Bây giờ bạn có thể thấy cảnh báo đến từ

#Displays a warning 
java_warning() { 
    echo "[warning] $0: [email protected]" >&2; 
} 
  1. Bằng cách nào đó, các thư mục java không được liệt kê trong các tập tin jvm-list.sh

Bây giờ hãy chỉnh sửa tệp jvm-list.sh

sudo nano /usr/lib/java-wrappers/jvm-list.sh 

Chỉnh sửa dòng thêm các tập tin thư mục java của bạn, trong trường hợp của tôi thêm/usr/lib/jvm/java-8-oracle *

__jvm_oracle8="/usr/lib/jvm/jdk-8-oracle-* /usr/lib/jvm/jre-8-oracle-* /usr/lib/jvm/java-8-oracle*" 
  1. Bây giờ khởi động lại dịch vụ và kiểm tra elasticsearch dịch vụ

    sudo systemctl khởi động lại elasticsearch
    sudo tình trạng systemctl elasticsearch
    curl -X GET "http://localhost:9200"

Hy vọng điều này sẽ giúp

+0

Điều này đã giúp ích. Tôi không chắc chắn tại sao '/ usr/lib/jvm/java-8-oracle' không có trong tệp jvm-list.sh của tôi, nhưng đó là nguyên nhân gây ra sự cố của tôi. –

0

Vấn đề của tôi khác, tôi bắt đầu sử dụng elasticsearch theo cách thủ công như người dùng root, vì vậy một số tệp đã được tạo nhưng người dùng elasticsearch không thể viết trên đó.

Bạn có thể thử nghiệm chạy bằng tay elasticsearch:

sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch \ 
-Des.default.config=/etc/elasticsearch/elasticsearch.yml \ 
-Des.default.path.home=/usr/share/elasticsearch \ 
-Des.default.path.logs=/var/log/elasticsearch \ 
-Des.default.path.data=/var/lib/elasticsearch \ 
-Des.default.path.work=/tmp/elasticsearch \ 
-Des.default.path.conf=/etc/elasticsearch 

Để khắc phục trên máy tính của tôi, tôi đã phải làm:

rm -rf /var/log/elasticsearch/* 
rm -rf /var/lib/elasticsearch/* 
Các vấn đề liên quan