安装Elasticsearch
参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/targz.html#targz-enable-indices
基本步骤下载包,解压,官网提示:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.3-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.3-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-8.15.3-linux-x86_64.tar.gz.sha512
tar -xzf elasticsearch-8.15.3-linux-x86_64.tar.gz
其中shasum指令可能不存在,可以通过yum install perl-Digest-SHA安装后运行,可以选择跳过wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.3-linux-x86_64.tar.gz.sha512
和shasum -a 512 -c elasticsearch-8.15.3-linux-x86_64.tar.gz.sha512 ,主要用于文件安全校验。
解压完后,由于启动es不能使用root用户,需要提前创建普通用户如www。
同时修改es目录所有者为www:chown -R www:www ./elasticsearch-8.15.3
cd elasticsearch-8.15.3/
切换www用户,执行./bin/elasticsearch
执行完成时记得记录下命令行打印的账号密码及enrollment_token(这个有效期30分钟,用于kibana首次登录使用,30分钟都不一定下载完kibana,除非你提前准备,这个token后面可以通过指令重新生成无所谓),可以通过如下指令重新生成enrollment token
./bin/elasticsearch-create-enrollment-token -s kibana --url "https://127.0.0.1:9200"
es后台运行:
./bin/elasticsearch -d -p pid
测试es运行状况:
curl --cacert $ES_HOME/config/certs/http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200
这里的 $ES_HOME和$ELASTIC_PASSWORD是提前设置的环境变量es安装目录和es密码。
正常返回如下:
由于在虚拟机linux(192.168.1.112)安装的本地访问不到192.168.1.112:9200端口,开放端口:
#添加9200端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
#重载
firewall-cmd --reload#查看是否添加成功
firewall-cmd --list-all
再使用浏览器访问192.168.1.112:9200,正常返回数据。
安装Kibana
参考文档:Install Kibana from archive on Linux or macOS | Kibana Guide [8.15] | Elastic
这里我直接选择的下载解压:
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.15.3-linux-x86_64.tar.gz
tar -zxvf kibana-8.15.3-linux-x86_64.tar.gz
修改所有者:chown -R www:www ./kibana-8.15.3
#运行kibana:
#切换到www用户
cd kibana-8.15.3/
./bin/kibana
启动完成后,通过安装links,在linux使用links访问localhost:5601正常,但是本地通过ip:5601访问不了,即使是通过firewall-cmd添加了5601也不能访问。
于是添加了nginx做层转发:
安装nginx后,配置nginx:
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:5601; # 转发到本地的5601端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启动nginx,本地访问192.168.1.112即可访问到kibana。首次登录需要输入前面安装es时得到的enrollment token。输入es账号密码登录成功。
补充:
es提供了守护进程运行指令,但是kibana没找到相关指令,将kibana服务添加到systemctl:
nano /etc/systemd/system/kibana.service
添加内容:
[Unit]
Description=Kibana Service
After=network.target
[Service]
ExecStart=/kibana安装目录/bin/kibana
User=www
Group=www
Restart=always
[Install]
WantedBy=multi-user.target
kibana安装目录替换成自己的安装目录,保存。
systemctl daemon-reload
systemctl start kibana
systemctl status kibana
systemctl start kibana启动时间较长,有可能通过ps查看进程查不到,等待一段时候后再查看。
最后可以尝试通过postman使用restful方式192.168.1.112:9200相关接口给es添加数据,然后在kibana上进行查看管理。