es在linux环境安装遇到问题
1、启动失败日志
ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
原因分析:
看提示可知:缺少默认配置,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.initial_master_nodes中的一个参数.
discovery.seed_hosts: 集群主机列表
discovery.seed_providers: 基于配置文件配置集群主机列表
cluster.initial_master_nodes: 启动时初始化的参与选主的node,生产环境必填
处理办法:修改配置文件,添加参数即可
vim config/elasticsearch.yml
#添加配置
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
2、启动失败日志:
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案:
在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
执行/sbin/sysctl -p 立即生效
3、启动报错日志
future versions of Elasticsearch will require Java 11; your Java version from [/opt/softs/jdk1.8.0_124/jre] does not meet this requirement
解决方案:可以安装一个JDK11;也可以直接使用es包里面自己的JDK
4、权限问题:
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) ~[elasticsearch-5.6.2.jar:5.6.2]
不能用root用户:
方案一:需要创建新的用户
adduser nandao
passwd nandao
chown -R nandao:nandao /usr/local/elk
chmod 770 /usr/local/
创建后:
方案二:修改elaticsearch配置,使其可以允许root用户启动:
#在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下
./elasticsearch -Des.insecure.allow.root=true
#或者 用vi打开elasicsearch执行文件,在变量ES_JAVA_OPTS使用前添加以下命令
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
此方案不一定靠谱,有时候执行也报错:
5、后台运行:
#启动es服务 -d表示后台运行
./elasticsearch -d
然后测试是否成功:
curl 127.0.0.1:9200
6、线上下载:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-linux-x86_64.tar.gz.sha512
tar -zxvf elasticsearch-7.9.3-linux-x86_64.tar.gz
7、切换用户报错:
su 命令报错 su: Permission denied
一般是普通用户切换root用户报错,解决方案:
解决方案:查看su
的PAM
认证配置 cd /etc/pam.d 然后 cat su,
su 的PAM配置文件中有auth required pam_wheel.so use_uid
根据上一句的说明可以知道要使用su
命令则该用户必须在wheel
用户组中,而我的普通用户没有在wheel
用户组中。有两种方法可以解决这个问题,一是注释该行,二是将普通用户加入wheel
组。上图我是注释掉了此行配置,然后再切换root用户时输入正确密码就可以正常切换了。
8、监控检查:GET _cat/health 状态为 yellow
1672375298 04:41:38 elasticsearch yellow 1 1 12 12 0 0 6 0 - 66.7%
kibana+elasticsearch使用ik分词器发现同一个请求,有时会报错,有时成功
原因是单节点状态下无法分配replicas节点,所以单节点下需要将replicas设置为0.
GET /_cluster/health
查看结果:"unassigned_shards" : 5,
解决过程:
设置现有的index的副本数量为0个
PUT /_settings
{
"index": {
"number_of_replicas": 0
}
}
设置新建的index副本数量为0个,(创建模板匹配所有index,并设置副本数量为0)
PUT /_template/template_log
{
"index_patterns": [
"*"
],
"order": 0,
"settings": {
"number_of_replicas": 0
}
}
9、
10、