安装elasticsearch(centos7)
云主机上需设置root密码
sudo passwd root 回车后出入密码两次
jdk11页面
https://www.oracle.com/technetwork/java/javase/downloads/index.html
https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html
安装jdk
mkdir /opt/downloads
jdk11
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /opt/downloads http://download.oracle.com/otn-pub/java/jdk/11.0.2+9/f51449fcd52f4d52b93a989c5c56ed3c/jdk-11.0.2_linux-x64_bin.rpm
rpm -ivh /opt/downloads/jdk-11.0.2_linux-x64_bin.rpm
yum install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64
jdk1.8
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /opt/downloads https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.rpm
rpm -ivh /opt/downloads/jdk-8u201-linux-x64.rpm
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
查看是否安装成功
java -version
安装elasticsearch
下载和安装前切换用户,root用户无法执行es
cat /etc/passwd 查看所有用户的列表
cat /etc/group 查看用户组
groupadd elasticsearch
userdel -r elasticsearch
useradd -s /bin/bash -g elasticsearch elasticsearch
添加权限
vim /etc/sudoers
root下添加 elasticsearch ALL=(ALL) ALL
:x!强制保存
另:避免输密码可以用 elasticsearch ALL=(ALL) NOPASSWD: ALL
passwd elasticsearch ***** 设置你的密码
sudo chown -R elasticsearch /opt/downloads;sudo chgrp -R elasticsearch /opt/downloads;sudo chown -R elasticsearch /var/lib/rpm;sudo chgrp -R elasticsearch /var/lib/rpm;
sudo chown -R elasticsearch /opt/downloads/elasticsearch-7.5.0-x86_64.rpm;sudo chgrp -R elasticsearch /opt/downloads/elasticsearch-7.5.0-x86_64.rpm;
su elasticsearch
https://www.elastic.co/cn/downloads/elasticsearch
cd /opt/downloads
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /opt/downloads https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.0-x86_64.rpm
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /opt/downloads https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.0-linux-x86_64.tar.gz
sudo rpm -ivh /opt/downloads/elasticsearch-7.5.0-x86_64.rpm
卸载sudo rpm -e elasticsearch
配置elasticsearch
vim /etc/elasticsearch/elasticsearch.yml
修改network.host的值
network.host: 192.168.x.x 自身ip,限制为内网访问
network.host: 0.0.0.0 也可以不限制ip
http.port: 9200
添加action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
取消注释
node.name: node-1
取消注释 bootstrap.memory_lock: true
修改cluster.initial_master_nodes: ["node-1"]
若是单机版加入discovery.type: single-node
如果要安装xpack需要添加
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
# ======================== Elasticsearch Configuration ========================= # # NOTE: Elasticsearch comes with reasonable defaults for most settings. # Before you set out to tweak and tune the configuration, make sure you # understand what are you trying to accomplish and the consequences. # # The primary way of configuring a node is via this file. This template lists # the most important settings you may want to configure for a production cluster. # # Please consult the documentation for further information on configuration options: # https://www.elastic.co/guide/en/elasticsearch/reference/index.html # # ---------------------------------- Cluster ----------------------------------- # # Use a descriptive name for your cluster: # cluster.name: elasticsearch-cluster # # ------------------------------------ Node ------------------------------------ # # Use a descriptive name for the node: # node.name: node-1 # # Add custom attributes to the node: # #node.attr.rack: r1 # # ----------------------------------- Paths ------------------------------------ # # Path to directory where to store the data (separate multiple locations by comma): # path.data: /var/lib/elasticsearch # # Path to log files: # path.logs: /var/log/elasticsearch # # ----------------------------------- Memory ----------------------------------- # # Lock the memory on startup: # #bootstrap.memory_lock: true # # Make sure that the heap size is set to about half the memory available # on the system and that the owner of the process is allowed to use this # limit. # # Elasticsearch performs poorly when the system is swapping the memory. # # ---------------------------------- Network ----------------------------------- # # Set the bind address to a specific IP (IPv4 or IPv6): # network.host: 192.168.0.101 # # Set a custom port for HTTP: # http.port: 9200 transport.tcp.port: 9300 # # For more information, consult the network module documentation. # # --------------------------------- Discovery ---------------------------------- # # Pass an initial list of hosts to perform discovery when this node is started: # The default list of hosts is ["127.0.0.1", "[::1]"] # #discovery.seed_hosts: ["host1", "host2"] discovery.seed_hosts: ["192.168.0.101"] # # Bootstrap the cluster using an initial set of master-eligible nodes: # #cluster.initial_master_nodes: ["node-1", "node-2"] cluster.initial_master_nodes: ["node-1"] # # For more information, consult the discovery and cluster formation module documentation. # # # ---------------------------------- Gateway ----------------------------------- # # Block initial recovery after a full cluster restart until N nodes are started: # #gateway.recover_after_nodes: 3 # # For more information, consult the gateway module documentation. # # ---------------------------------- Various ----------------------------------- # # Require explicit names when deleting indices: # #action.destructive_requires_name: true # http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type http.cors.allow-credentials: true node.master: true node.data: true xpack.security.enabled: true xpack.security.transport.ssl.enabled: true #xpack.security.transport.ssl.verification_mode: certificate #xpack.security.transport.ssl.keystore.path: elastic-certificates.p12 #xpack.security.transport.ssl.truststore.path: elastic-certificates.p12 #xpack.security.http.ssl.enabled: true #xpack.security.http.ssl.keystore.path: elastic-certificates.p12 #xpack.security.http.ssl.truststore.path: elastic-certificates.p12 #xpack.security.http.ssl.client_authentication: optional
关闭防火墙或在防火墙设置端口穿透
执行/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
不需要执行 bin/elasticsearch-keystore create
如果es是root用户安装的,文件归属于,root组和root用户,需要改变归属。
cat /etc/passwd 查看所有用户的列表
cat /etc/group 查看用户组
groupadd elasticsearch
userdel -r elasticsearch
useradd -s /bin/bash -g elasticsearch elasticsearch
sudo chown -R elasticsearch /usr/share/elasticsearch;sudo chgrp -R elasticsearch /usr/share/elasticsearch;sudo chown -R elasticsearch /etc/elasticsearch;sudo chgrp -R elasticsearch /etc/elasticsearch;sudo chown -R elasticsearch /etc/sysconfig/elasticsearch;sudo chgrp -R elasticsearch /etc/sysconfig/elasticsearch;sudo chown -R elasticsearch /var/log/elasticsearch;sudo chgrp -R elasticsearch /var/log/elasticsearch
vim /usr/lib/systemd/system/elasticsearch.service
加入LimitMEMLOCK=infinity
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
生成安全证书必须切换回root
su
/usr/share/elasticsearch/bin/elasticsearch-certutil ca -out elastic-stack-ca.p12 -pass ""
/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
回车 回车 回车
mv /usr/share/elasticsearch/elastic-certificates.p12 /etc/elasticsearch/
mv /usr/share/elasticsearch/elastic-stack-ca.p12 /etc/elasticsearch/
chown -R elasticsearch:elasticsearch /etc/elasticsearch/elastic-certificates.p12
chown -R elasticsearch:elasticsearch /etc/elasticsearch/elastic-stack-ca.p12
将配置中的注释去掉
#xpack.security.transport.ssl.verification_mode: certificate
#xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
#xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
重启
sudo systemctl start elasticsearch.service
日志
sudo journalctl -u elasticsearch.service --since "30 min ago"
测试是否正常运行
curl http://localhost:9200/
关闭命令
netstat -anltp|grep 9200
显示LISTEN xxxx/java
kill -9 xxxx
安装Elasticsearch-head
先查看是否安装git
git --version
安装git
yum install -y git
卸载为
yum remove git
安装Elasticsearch-head
cd /opt
git clone git://github.com/mobz/elasticsearch-head.git
修改配置
vim /opt/elasticsearch-head/Gruntfile.js
在原有的connect:server:options节点上加上hostname: '*',
修改es配置
vim /etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
安装node和npm
查看安装最新版本命令:https://github.com/nodesource/distributions
curl -sL https://rpm.nodesource.com/setup_12.x | bash -
yum install -y nodejs
查看安装的版本
node -v
npm -v
cd /opt/elasticsearch
安装grunt和grunt-cli
sudo npm install -g grunt
sudo npm install -g grunt-cli
安装模块依赖
npm install -g
npm install grunt --save #安装grunt到模块中并保存
后台启动head
cd /opt/elasticsearch-head
nohup npm run start &
回车返回到shell
守护进程启动
vim /lib/systemd/system/elasticsearch-head.service
[Unit]
Description=Elasticsearch-head
After=network.target syslog.target
[Service]
Type=simple
WorkingDirectory=/opt/elasticsearch-head
ExecStart=/usr/bin/npm run start
Restart=always
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
或
[Unit]
Description=Elasticsearch-head
After=network.target syslog.target
[Service]
Type=simple
WorkingDirectory=/opt/elasticsearch-head
ExecStart=/opt/elasticsearch-head/node_modules/grunt/bin/grunt server
Restart=always
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
chmod 777 /lib/systemd/system/elasticsearch-head.service
systemctl enable elasticsearch-head.service
systemctl daemon-reload
运行
systemctl start elasticsearch-head.service
客户端浏览器打开x.x.x.x:9100
若显示未连接修改http://y.y.y.y:9200为es服务器ip:port
关闭
netstat -anltp|grep 9100
显示LISTEN xxxx/grunt
kill -9 xxxx
安装IK Analysis插件
/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.0/elasticsearch-analysis-ik-7.1.0.zip
重启es服务
sudo systemctl restart elasticsearch.service
守护进程启动文件浏览
vim /usr/lib/systemd/system/elasticsearch.service
[Unit]
Description=Elasticsearch
Documentation=http://www.elastic.co
Wants=network-online.target
After=network-online.target
[Service]
Type=notify
RuntimeDirectory=elasticsearch
PrivateTmp=true
Environment=ES_HOME=/usr/share/elasticsearch
Environment=ES_PATH_CONF=/etc/elasticsearch
Environment=PID_DIR=/var/run/elasticsearch
Environment=ES_SD_NOTIFY=true
EnvironmentFile=-/etc/sysconfig/elasticsearch
WorkingDirectory=/usr/share/elasticsearch
User=elasticsearch
Group=elasticsearch
ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet
# StandardOutput is configured to redirect to journalctl since
# some error messages may be logged in standard output before
# elasticsearch logging system is initialized. Elasticsearch
# stores its logs in /var/log/elasticsearch and does not use
# journalctl by default. If you also want to enable journalctl
# logging, you can simply remove the "quiet" option from ExecStart.
StandardOutput=journal
StandardError=inherit
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65535
# Specifies the maximum number of processes
LimitNPROC=65535
# Specifies the maximum size of virtual memory
LimitAS=infinity
# Specifies the maximum file size
LimitFSIZE=infinity
LimitMEMLOCK=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=0
# SIGTERM signal is used to stop the Java process
KillSignal=SIGTERM
# Send the signal only to the JVM rather than its control group
KillMode=process
# Java process is never killed
SendSIGKILL=no
# When a JVM receives a SIGTERM signal it exits with code 143
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
# Built for packages-7.5.0 (packages)