4321255 发表于 2016-12-1 09:06:40

使用supervisord 管理ELK进程

看教程安装ELK时,发现了supervisord这个简单好用的进程管理工具,他支持web和文本两种方式,下面我们就来说一说具体的使用。更加详细的配置文件说明大家可以自行百度。
#安装

1
2
# yum -y install python-setuptools#安装easy_install 这个命令的软件包
# easy_install supervisor         #安装supervisor




#生成配置文件

1
# echo_supervisord_conf > /etc/supervisord.conf




#启动

1
2
# supervisord                     #也可以[ -c +配置文件路径 ] 指定配置文件
# supervisorctl reload            #修改了配置文件需要此操作重载、重启supervisord的服务




#关闭

1
2
3
4
$ ps aux | grep superv
root       12030.00.7 2007487156 ?      Ss   09:15   0:03 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
tomcat   21470.00.0 103248   864 pts/0    S+   11:03   0:00 grep superv
$ sudo kill -9 1203




#配置文件说明,这个英文注释都有说明。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

file=/tmp/supervisor.sock    ; 指定socket文件的位置,当没有此文件时需要先
;chmod=0700                  ; 启动supervisord 再执行supervisorctl
;chown=nobody:nogroup      ;
;username=user               ;
;password=123                ;

         ; 开启web管理功能,默认是关闭的,也应该关闭
port=192.168.182.131:9001    ; 也应该关闭,不然不安全,这里我们为了演示
username=user                ; 先打开此功能
password=123               ;

                ; 这个主要是定义supervisord服务器端的一些参数,必须设置
logfile=/tmp/supervisord.log ; supervisord日志文件的位置,如果不设置日志在当前位置下
logfile_maxbytes=50MB      ; 当日志超过50M的时候会生成一个新的日志文件。当限制为0
                           ; 的时候不会限制文件的大小
logfile_backups=10         ; 日志文件保持的数量,supervisor在启动程序时会自动创建10个
                           ; backup文件,用于logrotate,当设置为0的时候,表示不限制
                           ; 文件的数量
loglevel=info                ; 日志级别,默认info,非必须设置
pidfile=/tmp/supervisord.pid ;
nodaemon=false               ;
minfds=1024                  ; 这个是最少系统空闲的文件描述符,低于这个值supervisord将不
                           ; 会启动。/proc/sys/fs/file-max查看,默认1024,非必须设置
minprocs=200               ; 最小可用的进程描述符,低于这个值supervisor也不会启动。
                           ; ulimit -u 可以查看,默认不用修改

      ; 添加elasticsearch服务
command = /home/tomcat/elasticsearch/bin/elasticsearch ;启动程序路径可以带参数
autostart = true
startsecs = 5
autorestart = true
startretries = 3            ; 其他的就不写了,配置文件里也有英文解释
user = tomcat               ; 以哪个用户启动
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /home/tomcat/logs/elasticsearch_super.log


directory = /home/tomcat/logstash/bin/
command = /home/tomcat/logstash/bin/logstash -f /home/tomcat/testlog.conf
autostart = true
startsecs = 5
autorestart = true
startretries = 3
user = tomcat
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /home/tomcat/logs/logstash_super.log


directory = /home/tomcat/kibana/bin/
command = /home/tomcat/kibana/bin/kibana
autostart = true
startsecs = 5
autorestart = true
startretries = 3
user = tomcat   
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /home/tomcat/logs/kibana_super.log


                              ; 组管理非常方便,我们可以start|stop|status
programs=elasticsearch,logstash,kibana   ; elk:* 来启动或关闭所有此组的服务,非必须开启。

                              ; 当我们要管理很多进程的时候,写在一个文件里面就
files = /etc/supervisor/*.conf         ; 有点大了。此时可以把配置文件写到多个文件中
                                       ; 然后include过来




#supervisord有两种执行命令的方式,可以直接命令行:


1
2
3
4
$ sudo supervisorctl status
elk:elasticsearch                RUNNING   pid 1430, uptime 0:48:51
elk:kibana                     RUNNING   pid 1432, uptime 0:48:51
elk:logstash                     RUNNING   pid 1431, uptime 0:48:51




#也可以进入子shell(ctrl + c退出子shell):

1
2
3
4
5
6
7
8
9
10
11
12
$ sudo supervisorctl
elk:elasticsearch                RUNNING   pid 1430, uptime 0:51:57
elk:kibana                     RUNNING   pid 1432, uptime 0:51:57
elk:logstash                     RUNNING   pid 1431, uptime 0:51:57
supervisor> stop elk:*
elk:kibana: stopped
elk:elasticsearch: stopped
elk:logstash: stopped
supervisor> status
elk:elasticsearch                STOPPED   Nov 30 10:29 AM
elk:kibana                     STOPPED   Nov 30 10:29 AM
elk:logstash                     STOPPED   Nov 30 10:29 AM




#最后看看web界面吧(感觉不够安全还是慎用为好)

#浏览器输入http://ip:port

#然后就可以管理你的服务进程了

页: [1]
查看完整版本: 使用supervisord 管理ELK进程