一、ELK下载
需要下载Elasticsearch、Kibana,版本要一致
我自己的版本是8.15.0
es7之前需要下载版本对应的jdk:https://www.elastic.co/support/matrix#matrix_jvm
二、防火墙
#Elasticsearch
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent
#Kibana
firewall-cmd --zone=public --add-port=5601/tcp --permanent
firewall-cmd --reload
三、创建ELK用户
#创建ELK用户组和用户
groupadd elk
useradd -r -g elk elk
#创建elk目录
mkdir -p /usr/local/elk
#赋予权限
chown elk:elk -R /usr/local/elk
#切换elk用户 Elasticsearch、Kibana无法使用root用户启动
su elk
三、上传解压
将下载好的ELK组件上传到服务器,我存放的路径 /usr/download
cd /usr/download
#解压
tar -zxvf elasticsearch-8.15.0-linux-x86_64.tar.gz
tar -zxvf kibana-8.15.0-linux-x86_64.tar.gz
#移动
mv /usr/download/elasticsearch-8.15.0 /usr/local/elk/elasticsearch
mv /usr/download/kibana-8.15.0 /usr/local/elk/kibana
四、Elasticsearch
1.环境配置
vim /etc/profile
将下面的内容复制追加在文件末尾
#es
export ES_JAVA_HOME=/usr/local/elk/elasticsearch/jdk
export ES_HOME=/usr/local/elk/elasticsearch
export PATH=$ES_JAVA_HOME:$ES_HOME:$PATH
环境配置生效
source /etc/profile
2.配置文件
cd /usr/local/elk/elasticsearch/config
#备份原配置文件
cp elasticsearch.yml elasticsearch.yml.bak
cp jvm.options jvm.options
-
elasticsearch.yml
#开启远程访问 network.host: 0.0.0.0 #指定节点为单节点 discovery.type: single-node #关闭security安全认证 xpack.security.enabled: false
-
jvm.options
调整jvm内存大小,看自己的机器配置调整
3.启动es
cd /usr/local/elk/elasticsearch/bin
#启动过程有点缓慢
./elasticsearch
#后台启动
./elasticsearch -d
浏览器访问 ip:9200
4.Elasticvue浏览器插件(可视化),
在谷歌应用搜索
添加节点
连接
五、Kibana
1.配置文件
cd /usr/local/elk/kibana/config/
#备份
cp kibana.yml kibana.yml.bak
vim kibana.yml
修改部分如下:
#指定kibana服务器监听的端口号
server.port: 5601
#指定kibana服务器绑定的主机地址
server.host: "0.0.0.0"
#指定kibana连接到的elasticsearch实例的访问地址
elasticsearch.hosts: ["http://127.0.0.1:9200"]、
#将kibana的界面语言设置为简体中文
i18n.locale: "zh-CN"
2.启动
cd /usr/local/elk/kibana/bin
./kibana
#后台启动
nohup ./kibana &
浏览器访问 ip:5601
六、开机自启
Elasticsearch
1.编写停止脚本
vi /usr/local/elk/elasticsearch/bin/stop.sh
内容如下:
#!/bin/bash
echo "elasticsearch stop......"
ps -ef | grep elasticsearch | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -9
2.编写重启脚本
vi /usr/local/elk/elasticsearch/bin/reload.sh
内容如下:
#!/bin/bash
echo "elasticsearch reload....."
echo "step 1 try stop elasticsearch ......"
ps -ef | grep elasticsearch | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -9
echo "step 2 try start elasticsearch ......"
/usr/local/elk/elasticsearch/bin/elasticsearch -d
3.测试脚本
#授权
chmod +x /usr/local/elk/elasticsearch/bin/stop.sh
chmod +x /usr/local/elk/elasticsearch/bin/reload.sh
cd /usr/local/elk/elasticsearch/bin
停止:./stop.sh
重启:./reload.sh
Kibana
1.编写启动脚本
vi /usr/local/elk/kibana/bin/start.sh
内容如下:
#!/bin/bash
echo "kibana start......"
nohup /usr/local/elk/kibana/bin/kibana > /dev/null 2>&1 &
2.编写停止脚本
vi /usr/local/elk/kibana/bin/stop.sh
内容如下:
#!/bin/bash
echo "kibana stop......"
kill -s 9 $(lsof -t -i :5601)
3.编写重启脚本
vi /usr/local/elk/kibana/bin/reload.sh
内容如下:
#!/bin/bash
echo "kibana reload....."
echo "step 1 try stop kibana ......"
kill -s 9 $(lsof -t -i :5601)
echo "step 2 try start kibana ......"
nohup /usr/local/elk/kibana/bin/kibana > /dev/null 2>&1 &
4.测试脚本
#授权
chmod +x /usr/local/elk/kibana/bin/stop.sh
chmod +x /usr/local/elk/kibana/bin/start.sh
chmod +x /usr/local/elk/kibana/bin/reload.sh
cd /usr/local/elk/kibana/bin
停止:./stop.sh
启动:./start.sh
重启:./reload.sh
编写systemctl脚本
-
Elasticsearch
vi /lib/systemd/system/elasticsearch.service
内容如下
#启动顺序与依赖关系 [Unit] #配置文件的描述信息 Description=elasticsearch #在那个服务后面启动 一般是network.target syslog.target守护进程需要 After=network.target #启动行为 [Service] #以守护进程的方式启动 Type=forking #哪一个分组的用户来启动 User=elk Group=elk #服务启动时要执行的命令:执行的命令的路径 [命令的参数] ExecStart=/usr/local/elk/elasticsearch/bin/elasticsearch -d #服务停止时要执行的命令 ExecStop=/usr/local/elk/elasticsearch/bin/stop.sh #服务重启时要执行的命令 ExecReload=/usr/local/elk/elasticsearch/bin/reload.sh #只有当服务异常退出时才重启 Restart=on-failure #私有的临时目录 PrivateTmp=true #表示如何安装配置文件。 [Install] #表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行 WantedBy=multi-user.target
-
Kibana
vi /lib/systemd/system/kibana.service
内容如下
#启动顺序与依赖关系 [Unit] #配置文件的描述信息 Description=kibana #在那个服务后面启动 一般是network.target syslog.target守护进程需要 After=network.target elasticsearch.service #当前服务依赖其它服务,如果它们没有完全启动,则此服务也不会启动 Requires=elasticsearch #启动行为 [Service] #以守护进程的方式启动 Type=forking #哪一个分组的用户来启动 User=elk Group=elk #服务启动时要执行的命令:执行的命令的路径 [命令的参数] ExecStart=/usr/local/elk/kibana/bin/start.sh #服务停止时要执行的命令 ExecStop=/usr/local/elk/kibana/bin/stop.sh #服务重启时要执行的命令 ExecReload=/usr/local/elk/kibana/bin/reload.sh #只有当服务异常退出时才重启 Restart=on-failure #私有的临时目录 PrivateTmp=true #表示如何安装配置文件。 [Install] #表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行 WantedBy=multi-user.target
重新加载systemctl脚本
systemctl daemon-reload
开启开机自启
systemctl enable elasticsearch
systemctl enable kibana
重启验证
reboot
systemctl --no-pager status --full elasticsearch
systemctl --no-pager status --full kibana