准备安装包和安装环境

elasticsearch-7.17.10-linux-x86_64.tar.gz  # https://www.elastic.co/downloads/past-releases/elasticsearch-7-17-10
logstash-7.17.10-linux-x86_64.tar.gz     # https://www.elastic.co/downloads/past-releases/logstash-7-17-10
kibana-7.17.10-linux-x86_64.tar.gz     # https://www.elastic.co/downloads/past-releases/kibana-7-17-10
jdk1.8.0_351.tar.gz               #jdk8版本以上

安装jdk

本次安装使用的是rpm包

yum localinstall -y  jdk-8u351-linux-x64.rpm

查看版本

[root@bogon ~]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

查看rpm安装的java路径

[root@bogon ~]# rpm -ql jdk1.8 
/usr
/usr/java
/usr/java/jdk1.8.0_351-amd64
/usr/java/jdk1.8.0_351-amd64/.java
/usr/java/jdk1.8.0_351-amd64/.java/.systemPrefs
...

通过命令可以看到安装在/usr/java/jdk1.8.0_351-amd64路径下;

配置环境变量:

vi /etc/profile
...
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
....
# 添加以下内容
export JAVA_HOME=/usr/java/jdk1.8.0_351-amd64
export JRE_HOME=/usr/java/jdk1.8.0_351-amd64/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

重新加载配置:

source /etc/profile

javac 测试java是否安装配置成功.

安装es

确定安装路径,本次安装路径/usr/local/elk/

mkdir /usr/local/elk  #创建目录,方便管理
tar -zxvf elasticsearch-7.17.10-linux-x86_64.tar.gz -C /usr/local/elk  #解压
cd /usr/local/elk  #进入
mv elasticsearch-7.17.10 elasticsearch  #重命名
adduser es  #创建用户
echo 1234 |passwd --stdin es  #更改密码
mkdir /usr/local/elk/elasticsearch/data  #创建数据存放目录
chown -R es:es /usr/local/elk/elasticsearch  #将ES所解压的目录授予此对应的用户

centos系统配置

编辑vi /etc/security/limits.conf,追加以下内容;

# 设置当前ES用户的最大文件数(这里也可以使用*,表示所有的用户)
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096

修改配置文件sysctl.conf:

# vi /etc/sysctl.conf
vm.max_map_count=655360

执行命令使修改生效:

sysctl -p

配置ES

# vim /usr/local/elk/elasticsearch/config/elasticsearch.yml

cluster.name: my-application  
node.name: node_01
path.data: /usr/local/elk/elasticsearch/data
path.logs: /usr/local/elk/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
cluster.initial_master_nodes: ["node_01"]

添加es服务

#  vim /usr/lib/systemd/system/elasticsearch.service

[Unit]
Description=elasticsearch
After=network.target

[Service]
Type=forking
#启动用户
User=es
#jdk位置
Environment="PATH=/usr/java/jdk1.8.0_351-amd64/bin"
#启动指令
ExecStart=/usr/local/elk/elasticsearch/bin/elasticsearch -d
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65536
# 指定此进程可以打开的最大进程数
LimitNPROC=65536
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

启动es

systemctl daemon-reload  #重新加载
systemctl enable elasticsearch.service   #开机自启动
systemctl start elasticsearch.service   #启动服务
systemctl status elasticsearch.service  #查看服务状态

查看启动是否成功

ss -ntl |grep 9200
LISTEN 0 128 :::9200 :::*

查看防火墙配置允许外部访问

firewall-cmd --state
running

# 对外开放端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent
firewall-cmd --reload

安装logstash

tar -zxvf logstash-7.17.10-linux-x86_64.tar.gz -C /usr/local/elk/  #解压
cd /usr/local/elk/  #进入
mv logstash-7.17.10 logstash  #重命名

创建日志搜索配置文件

# vim /usr/local/elk/logstash/bin/config.conf

input {

file {
path => "/var/log/messages"  #日志目录
type => "messages_log_192.168.52.129"  #自定义名称
start_position => "beginning"  #默认
}

file {
path => "/var/log/secure"  #日志目录
type => "secure_log_192.168.52.129" #自定义名称
start_position => "beginning"
}
}

output {
if [type] == "messages_log_192.168.52.129"{
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "messages_log_192.168.52.129-%{+YYYY.MM.dd}"
}
}
}


启动

# vim /usr/local/logstash/bin/startup.sh     #启动脚本
nohup /usr/local/logstash/bin/logstash -f config.conf >/dev/null 2>&1 &
chmod +x /usr/local/logstash/bin/startup.sh  #添加支持权限
sh /usr/local/logstash/bin/startup.sh      #启动

安装kibana

tar zxvf kibana-7.17.10-linux-x86_64.tar.gz -C /usr/local/elk  #解压
cd /usr/local/elk  #进入
mv kibana-7.17.10-linux-x86_64/ kibana #重命名

编辑配置文件

# vim /usr/local/elk/kibana/config/kibana.yml

server.port: 5601  #启动端口
server.host: "192.168.52.129"  #kibana地址
elasticsearch.hosts: ["http://192.168.52.129:9200"]  #es地址
kibana.index: ".kibana"  #默认
i18n.locale: "zh-CN"    #开启中文

启动kibana

# vim /usr/local/elk/kibana/bin/startup.sh
nohup /usr/local/elk/kibana/bin/kibana --allow-root &
chmod +x /usr/local/elk/kibana/bin/startup.sh  #添加启动脚本
sh /usr/local/elk/kibana/bin/startup.sh      #启动

访问kinbana