JDK 环境准备
实战环境
Centos7
关闭Iptables
关闭Selinux
安装JDK
Logstash 依赖java
下载链接
https://www.oracle.com/java/technologies/downloads/#java11
解压安装包
tar -zxf jdk-11.0.18_linux-x64_bin.tar.gz -C /usr/local/
配置环境变量
cat >> /etc/profile << "EOF"
export JAVA_HOME=/usr/local/jdk-11.0.18
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
EOF
#加载环境变量
source /etc/profile
#验证版本
java -version
Kibana 安装
下载
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.16.1-linux-x86_64.tar.gz
解压安装包
tar -zxf kibana-7.16.1-linux-x86_64.tar.gz -C /usr/local/
mv /usr/local/kibana-7.16.1-linux-x86_64 /usr/local/kibana-7.16.1
ls /usr/local/kibana-7.16.
环境变量配置:
cat >> /etc/profile << "EOF"
export PATH=$PATH:/usr/local/kibana-7.16.1/bin
EOF
source /etc/profile
修改Kibana配置kibana.yml
vim /usr/local/kibana-7.16.1/config/kibana.yml
#简单使用,只修改下面两个选项即可
server.port: 5601
server.host: "0.0.0.0"
创建Kibana 用户、授予Kibana 权限,并启动服务
#添加kibana用户,禁止ssh登录
useradd -s /sbin/nologin kibana
#授权
chown -R kibana:kibana /usr/local/kibana-7.16.1/
#切换kibana 用户,验证版本
su - kibana -s /bin/bash
kibana --version
#启动服务
nohup kibana >/tmp/kibana.log 2>&1 &
#查看端口是否监听
netstat -lntp |grep 5601
#服务没问题后退出当前用户
exit
Elasticsearch 安装
下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.1-linux-x86_64.tar.gz
解压安装包
tar -zxf elasticsearch-7.16.1-linux-x86_64.tar.gz -C /usr/local/
ls /usr/local/elasticsearch-7.16.1/
环境变量设置
cat >> /etc/profile << "EOF"
export PATH=$PATH:/usr/local/elasticsearch-7.16.1/bin
EOF
source /etc/profile
修改 Elasticsearch配置文件
vim /usr/local/elasticsearch-7.16.1/config/elasticsearch.yml
#只需修改添加下面几个选项即可
#可自定义数据存储路径(注意授权)
path.data: data
#可自定义日志存在路径(注意授权)
path.logs: logs
#监听的ip根据自己的情况修改,我的服务都部署在一台机器,所以监听127.0.0.1
network.host: 127.0.0.1
http.port: 9200
#开启密码认证
xpack.security.enabled: true
#集群模式,single-node 是单节点
discovery.type: single-node
修改ES JVM的内存限制
vim /usr/local/elasticsearch-7.16.1/config/jvm.options
#建议调至当前可用内存的一半
-Xms2g
-Xmx2g
创建elastic 用户、授予elastic 权限,并启动服务
#添加elastic用户,禁止ssh登录
useradd -s /sbin/nologin elastic
#授权
chown -R elastic:elastic /usr/local/elasticsearch-7.16.1/
#切换 elastic 用户,验证版本
su - elastic -s /bin/bash
elasticsearch --version
#启动服务
elasticsearch -d
#查看端口是否监听
netstat -lntp |grep 9200
#服务没问题后退出当前用户
exit
Elasticsearch 设置密码
/usr/local/elasticsearch-7.16.1/bin/elasticsearch-setup-passwords interactive
输入:y
输入自定义密码:elk@2023
验证密码
curl -u elastic:elk@2023 127.0.0.1:9200
修改 Kibana 配置,添加 es 密码认证
vim /usr/local/kibana-7.16.1/config/kibana.yml
elasticsearch.hosts: ["http://127.0.0.1:9200"]
elasticsearch.username: "elstic"
elasticsearch.password: "elk@2023"
重启 Kibana
su - kibana -s /bin/bash
#停止服务重新启动
ps -ef |grep -w kibana-7.16.1 |grep -v grep | awk '{print $2}' |xargs kill
nohup kibana >/tmp/kibana.log 2>&1 &
#查看端口是否监听
netstat -lntp |grep 5601
#观察日志有无错误输出
tailf /tmp/kibana.log
#服务没问题后退出当前用户
exit
访问 Kibana
Logstash 安装
下载
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.16.1-linux-x86_64.tar.gz
加压安装包
tar -zxf logstash-7.16.1-linux-x86_64.tar.gz -C /usr/local/
ll /usr/local/logstash-7.16.1/
设置环境变量
cat >> /etc/profile << "EOF"
export PATH=$PATH:/usr/local/logstash-7.16.1/bin
EOF
source /etc/profile
Logstash JVM的内存限制
vim /usr/local/logstash-7.16.1/config/jvm.options
#建议调至当前可用内存的一半
-Xms1g
-Xmx1g
查看版本
[root@VM-5-163-centos ~]# logstash --version
Using bundled JDK: /usr/local/logstash-7.16.1/jdk
logstash 7.16.1
Logstash 不强制使用普通用户启动,如需普通用户启动,可以参考前面创建用户步骤
测试采集 nginx 日志
创建 logstash config配置文件
cat > /usr/local/logstash-7.16.1/config/logstash.conf << "EOF"
input {
file {
path => "/usr/local/nginx/logs/access.log"
}
}
filter {
grok {
match => {
"message" => '(?<remote_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) - - \[(?<timestamp>\S+ \+\d+)\] "(?<method>[A-Z]+) (?<request>\S+) HTTP/\d.\d" (?<status>\d+) (?<bytes>\d+) "[^"]+" "(?<agent>[^"]+)"'
}
remove_field => ["message","@version","path"]
}
date {
match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
target => "@timestamp"
}
}
output {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
user => "elastic"
password => "elk@2023"
index => "logstash-%{+YYYY.MM.dd}"
}
}
EOF
启动logstash
logstash -f /usr/local/logstash-7.16.1/config/logstash.conf
Kibana 查看ES 是否已经有Logstash 的 index
添加索引
实验完成