博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
supervisor---elasticsearch 采坑回顾
阅读量:5882 次
发布时间:2019-06-19

本文共 1507 字,大约阅读时间需要 5 分钟。

supervisor 是一个可以管理进程的软件,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。比如我们要用它管理elasticsearch  就可以把管理es的专属用户密码  写入配置文件。

  1.  网上有很多supervisor的安装教程,也比较简单。这里就不再赘述。开始使用的时候需要先看一看 配置文件 路径:/etc/supervisord.conf  。

  

  因为我们可能会用  supervisor 管理很多进程 写在一个文件会很大,所以通常需要 每一个 进程独立出一个 以 .ini 为后缀的配置文件 单独管理。

  按照配置文件默认的加载路径  supervisord.d/ 下创建了  elasticsearch.ini  文件。

  

  command=/usr/local/elasticsearch-6.6.1/bin/elasticsearch ; 运行程序的命令

  autorestart=true ; 程序意外退出是否自动重启
  autostart=true ; 是否自动启动
  stderr_logfile=/var/log/supervisor/elasticsearch_err.log ; 错误日志文件
  stdout_logfile=/var/log/supervisor/elasticsearch_out.log ; 输出日志文件
  environment=JAVA_HOME=/usr/local/jdk1.8.0_201 ; 进程环境变量
  user=ela ; 进程执行的用户身份
  password=ela
  stopsignal=INT
  startsecs=10 ; 自动重启间隔

  写入上图中的配置信息(当时没有写  environment  JAVA_HOME 的配置)

       所以   执行  supervisorctl  reload  、 supervisorctl  restart  elasticsearch    总是失败。

 

       2、开始排错  (在坑里的感觉真不好)

    

  第一个直觉就是去查看  supervisor的日志了  以为  elasticsearch  根本就没启动 也不会输出 日志

      

  

  所以一直在查    exit status 1; not expected   elasticsearch entered FATAL state, too many start retries too quickly   这个问题  ,然后  会发现管理很多其他的  进程  出错时也会  报这种错  也试了很多  搜到的  解决方法  ,但是结果肯定都不适用。

 

  3、出坑  

       找解决方法找的  都眼疼了  。  偶然的契机我去  看了眼   elasticsearch.ini  配置文件中  指定的   输出日志    和 错误 输出日志  。惊奇的发现   人家已经默默滴  记录了好多日志啦(手动捂脸) 。

  

   所以  直接打开  error  日志

  

  所以  真相浮出水面  直接去配置文件添加    JAVA_HOME  环境变量   再重新reload  、 start   终于运行了。

     

转载于:https://www.cnblogs.com/kim-yang/p/10832150.html

你可能感兴趣的文章
JS(JavaScript)的初了解7(更新中···)
查看>>
svn文件管理器的使用
查看>>
Ansible playbook 使用
查看>>
for/foreach/linq执行效率测试
查看>>
js /jquery停止事件冒泡和阻止浏览器默认事件
查看>>
长春理工大学第十四届程序设计竞赛(重现赛)I.Fate Grand Order
查看>>
好作品地址
查看>>
[翻译]Protocol Buffer 基础: C++
查看>>
runloop与线程的关系
查看>>
[Bzoj2246]迷宫探险(概率+DP)
查看>>
详解消息队列的设计与使用
查看>>
使用Sqoop从mysql向hdfs或者hive导入数据时出现的一些错误
查看>>
控制子窗口的高度
查看>>
处理 Oracle SQL in 超过1000 的解决方案
查看>>
Alpha线性混合实现半透明效果
查看>>
chkconfig 系统服务管理
查看>>
一个简单的运算表达式解释器例子
查看>>
ORACLE---Unit04: SQL(高级查询)
查看>>
Entity Framework Code First 模式-建立多对多联系
查看>>
[LeetCode] Reverse Lists
查看>>