一、确认Java环境
安装之前我们先确认下系统中是否安装过java:rpm -qa | grep java(安装1.8.0或以上版本)
ELK的离线安装包链接:https://pan.baidu.com/s/1SMctoX22BZVg-H9Qp2rwPg
提取码:1012
二、安装Elasticsearch
#此次安装的ELK版本都为7.12.0
1、安装elasticsearch:rpm -ivh elasticsearch-7.12.0-x86_64.rpm
查看es的安装路径(正常安装在/usr/share/elasticsearch/):rpm -ql elasticsearch
2、配置elasticsearch:
修改ES数据和日志存储路径:
# 创建目录,用于存储elasticsearch数据
mkdir -p /data/elasticsearch/datadir
# 修改目录权限
chown -R elasticsearch:elasticsearch /data/elasticsearch/datadir
# 创建日志目录
mkdir -p /data/elasticsearch/logdir
# 修改目录权限
chown -R elasticsearch:elasticsearch /data/elasticsearch/logdir
3、修改elasticsearch配置文件:
vi /etc/elasticsearch/elasticsearch.yml
# 集群名称,按照自己的需求调整
cluster.name: my-elk
# 节点名称
node.name: node-1
# 设置data存储目录
path.data: /data/elasticsearch/datadir
# 设置logs日志的目录
path.logs: /data/elasticsearch/logdir
# 设置内存不使用交换分区
bootstrap.memory_lock: false
# 设置允许所有ip可以连接该elasticsearch,这里根据项目需求自行修改
network.host: 0.0.0.0
# 开启监听的端口,默认为9200
http.port: 9200
discovery.seed_hosts:["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
4、限制elastic内存(默认使用至少总内存的50%):
vi /etc/elasticsearch/jvm.options
# 取消注释,建议修改为总内存的1/4
-Xms8G
-Xmx8G
5、启动elasticsearch:
# 启动前需添加权限,否则会报错;还需修改/etc/passwd,修改方式在下方
chown -R elasticsearch:elasticsearch /etc/elasticsearch/
# 启动服务
systemctl start elasticsearch
# 查看运行状态
systemctl status elasticsearch
# 设置开机启动
systemctl enable elasticsearch
注意:如果是通过SSH远程登录的服务器,启动ES服务时会报错,原因是部署ES时创建的elasticsearch用户默认是禁止shell登录的,通过切换用户命令su - elasticsearch可以看到提示:this account is currently not avaliable。
解决方案:vi /etc/passwd,将elasticsearch用户的shell从“/sbin /nologin”修改为“/bin/bash”即可。
修改成功后,再次启动服务即可成功。
6、运行测试:
查看ES运行状态,出现以下信息说明服务启动成功:curl http://localhost:9200(详见图片)
如果elastic占用磁盘空间过多,可查询索引所占用磁盘空间:
curl -XGET 'http://10.127.0.12:9200/_cat/indices?v',
删除其中占用空间过大的索引,例如:
curl -XDELETE 'http://10.127.0.12:9200/signal-sutpc_signal_cloud_dev_foshan_udp-relation'。
但是不要删除全部索引,因为部分index记录了ELK的配置,若删除全部index,则相当于把ELK给卸载了。
三、安装Logstash
1、安装logstash:rpm -ivh logstash-7.12.0-x86_64.rpm
修改logstash数据和日志存储路径:
# 创建目录,用于存储logstash数据
mkdir -p /data/logstash/datadir
# 修改目录权限
chown -R logstash:logstash /data/logstash/datadir
# 创建日志目录
mkdir -p /data/logstash/logdir
# 修改目录权限
chown -R logstash:logstash /data/logstash/logdir
2、修改logstash配置文件:vi /etc/logstash/logstash.yml
# 设置data存储目录
path.data: /data/logstash/datadir
# 设置配置文件目录
path.config: /etc/logstash/conf.d
# 设置日志存储目录
path.logs: /data/logstash/logdir
# 创建配置文件logstash.conf
vi /etc/logstash/conf.d/logstash.conf
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => "127.0.0.1:9200"
index => "%{productName}-%{env}-%{appName}"
}
}
3、启动logstash:
# 启动服务
systemctl start logstash
# 查看运行状态
systemctl status logstash
# 设置开机启动
systemctl enable logstash
4、查看logstash运行状态:
# 创建一个软连接
ln -s /usr/share/logstash/bin/logstash /bin/
# 执行logstash的命令
logstash -e 'input { stdin { } } output { stdout {} }'
执行完上面命令后会出现等待用户输入的提示:“The stdin plugin is now waiting for input:”,
这时我们输入测试内容:Jason(详见图片)
四、安装Kinaba
1、安装kibana:
rpm -ivh kibana-7.12.0-x86_64.rpm(默认安装路径:/usr/share/kibana/)
2、修改kibana配置文件:vi /etc/kibana/kibana.yml
# 端口,默认5601
server.port: 5601
# 允许所有ip访问
server.host: "0.0.0.0"
# 配置elasticsearch地址
elasticsearch.hosts: ["http://localhost:9200"]
kibana.index: ".kibana"
# 汉化设置
i18n.locale: "zh-CN"
3、启动kibana服务:
# 启动服务
systemctl start kibana
# 查看运行状态
systemctl status kibana
# 设置开机启动
systemctl enable kibana
4、访问kibana:http://ip:5601(创建kibana索引,去"发现"中查看是否命中,如命中了,则表示部署成功)