准备:关闭防火墙,关闭selinux,更改主机名,主机名与ip地址映射,机器重启,免密码登录,时钟同步,安装jdk
参考了此文档:
https://www.cnblogs.com/chong-zuo3322/p/13371329.html
https://www.cnblogs.com/eeexu123/p/11608669.html
【安装elasticsearch集群】
一、修改三台主机的hosts和hostname。
三台主机IP分别为:
192.168.56.104 debian1
192.168.56.106 debian3
192.168.56.107 debian4
二、安装openjdk
这里没有安装jdk(甲骨文收费了),其实openjdk一样用
apt-cache search jdk
查看apt安装支持哪些版本
apt-get install openjdk-11-jdk openjdk-11-jre
三、下载ES的安装包
https://www.elastic.co/cn/downloads/elasticsearch
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.1-linux-x86_64.tar.gz
四、修改服务器配置环境
1)、切换到root用户:
2)、修改 /etc/security/limits.conf 文件,在后面添加
* soft nofile 65537
* hard nofile 65537
* soft nproc 65537
* hard nproc 65537
* hard memlock unlimited
* soft memlock unlimited
3)、修改 /etc/sysctl.conf 文件,在后面添加
vm.max_map_count=262144
4)、立即生效命令:
sudo sysctl -p
5)、修改 /etc/systemd/system.conf 文件,在后面添加
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity
6)、重启服务器
7)、依次设置3台服务器
五、创建es文件夹,将下载的es安装包解压到此文件夹下
sudo mkdir /es
sudo mv elasticsearch-7.9.1-linux-x86_64.tar.gz /es
sudo tar -zxvf elasticsearch-7.9.1-linux-x86_64.tar.gz
cd elasticsearch-7.9.1
mkdir datas
其他2台服务器依次设置
六、创建elastic用户
sudo useradd elastic
sudo passwd elastic
修改/etc/sudoers,增加其管理员权限
sudo chown -R elastic:elastic /es
其他2台服务器依次设置
七、修改config/elasticsearch.yml配置文件
切换到elastic用户,执行./bin/elasticsearch启动
如果有报错,根据情况调整即可。
我这里主要是参数写错了,根据提示修改就好了。
如果提示Exception in thread "main" java.nio.file.AccessDeniedException
则再次执行sudo chown -R elastic:elastic /es即可。
八、从浏览器中依次访问ES的9201端口,即可判定服务是否正常启动。
http://192.168.56.106:9201/
访问集群信息
http://192.168.56.106:9201/_cat/health?v
九、Chrome安装elasticsearch head
https://www.cnblogs.com/bu-dong/p/11578027.html
【安装kibana】
一、下载安装包
https://www.elastic.co/cn/downloads/kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.9.1-linux-x86_64.tar.gz
二、解压修改配置文件启动即可
配置文件路径:./config/kibana.yml
启动文件:./bin/kibana
备注:server.host只能填写IP地址,填写别名,无法正常访问,有点奇怪。
三、浏览器中访问
http://192.168.56.104:5601/
【安装Filebeat】
一、下载安装包
https://www.elastic.co/cn/downloads/beats/filebeat
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.1-linux-x86_64.tar.gz
二、解压缩后,修改配置文件
其实安装可以根据kibana页面上面的提示进行即可
配置文件就是当前目录的filebeat.yml
output.elasticsearch:
hosts: ["<es_url>"]
username: "elastic"
password: "<password>"
setup.kibana:
host: "<kibana_url>"
启用和配置nginx模块
./filebeat modules enable nginx
修改nginx配置文件 modules.d/nginx.yml
填写一下access和error日志的路径即可
启动文件:
./filebeat setup
./filebeat -e #这个命令可以看到启动后的详细信息。
注意:日志文件可能不允许其他用户读,所以要给相应的权限。比如
chmod a+r access.log error.log
然后查看nginx日志模板即可看到数据
【安装supervisor】
参考此文档:https://www.cnblogs.com/lege/p/4228984.html
https://blog.csdn.net/u012129607/article/details/81354113
一、安装
sudo apt-get install supervisor
二、配置
cd /etc/supervisor
# supervisord.conf是supervisor的主配置文件,定义服务名称以及接口等;
在主配置文件 supervisord.conf 中添加如下配置,即可支持web浏览器界面管理。但是个人建议不要使用,命令行足够了。
[inet_http_server]
port = 192.168.56.104:9001
username = supervisor
password = 123456
# conf.d目录,存放supervisor监管的进程配置信息,一个进程有一个对应的配置文件。
在conf.d目录下创建配置文件 elasticsearch.conf ;正确的内容如下(注意创建日志文件目录和授权访问)
{正确的配置}
[program:elasticsearch]
user=elastic
command=sh /es/elasticsearch-7.9.1/bin/elasticsearch
autostart=true
directory=/es/elasticsearch-7.9.1/bin
autorestart=true
startsecs=5
startretries=100
redirect_stderr=true
stdout_logfile=/var/log/supervisor/es/access.log
stderr_logfile=/var/log/supervisor/es/error.log
这里耽误了很长时间,主要还是不熟悉supervisor的使用。
[错误的配置1]
user=elastic
command="/etc/supervisor/conf.d/elasticsearch.py"
autostart=true
directory=/es/elasticsearch-7.9.1/bin
autorestart=true
startsecs=5
startretries=100
redirect_stderr=true
stdout_logfile=/var/log/supervisor/es/access.log
stderr_logfile=/var/log/supervisor/es/error.log
这样写会始终提示第一行后面有\n字符,搞的我各种去这个字符,无果
[错误的配置2]
[program:elasticsearch.py]
user=elastic
command="/etc/supervisor/conf.d/elasticsearch.py"
autostart=true
directory=/es/elasticsearch-7.9.1/bin
autorestart=true
startsecs=5
startretries=100
redirect_stderr=true
stdout_logfile=/var/log/supervisor/es/access.log
stderr_logfile=/var/log/supervisor/es/error.log
不可执行,这时候可以登录到web管理界面,有一定的提示,比较容易排除问题
三、下载ES的安装包
/usr/bin/python2 /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
上面2个命令都是启动supervisord服务的
修改配置文件后需要重新reload
supervisorctl reload
命令行输入supervisorctl就可以看到守护的进程
【supervisor维护elasticsearch、kibana、Filebeat】
在conf.d目录下创建配置文件 elasticsearch.conf ;正确的内容如下(同时注意创建日志文件目录和授权访问)
{elasticsearch正确的配置}
[program:elasticsearch]
user=elastic
command=sh /es/elasticsearch-7.9.1/bin/elasticsearch
autostart=true
directory=/es/elasticsearch-7.9.1/bin
autorestart=true
startsecs=5
startretries=100
redirect_stderr=true
stdout_logfile=/var/log/supervisor/es/access.log
stderr_logfile=/var/log/supervisor/es/error.log
注意:在维护elasticsearch服务时,会报这样一个错误“elasticsearch-env: line 122: syntax error near unexpected token `<'”(通过查看日志文件可知)
解决方法是修改elasticsearch-env文件的第122行:
done < <(env)
【<改成三连,括号改成单引号】
done <<<'env'
{kibana正确的配置}
[program:kibana]
user=elastic
command=sh /es/kibana-7.9.1-linux-x86_64/bin/kibana
autostart=true
directory=/es/kibana-7.9.1-linux-x86_64/bin
autorestart=true
startsecs=5
startretries=100
redirect_stderr=true
stdout_logfile=/var/log/supervisor/kibana/access.log
stderr_logfile=/var/log/supervisor/kibana/error.log
{Filebeat正确的配置}
[program:filebeat_nginx]
user=elastic
command=/es/filebeat-7.9.1-linux-x86_64/filebeat setup -e
autostart=true
directory=/es/filebeat-7.9.1-linux-x86_64
autorestart=true
startsecs=5
startretries=100
redirect_stderr=true
stdout_logfile=/var/log/supervisor/filebeat_nginx/access.log
stderr_logfile=/var/log/supervisor/filebeat_nginx/error.log