ELK 部署

主节点

俩台服务器, 这是主服务器

安装 JAVA 环境

yum list java*
yum list java-1.8*
yum install java-1.8.0-openjdk* -y
java -version


配置防火墙规则

firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --add-port=9300/tcp --permanent
firewall-cmd --add-port=5601/tcp --permanent
firewall-cmd --reload


安装GPG key

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch


更新YUM 包

yum clean all
yum makecache


安装 Elasticsearch

# 1 下载
wget https://artifacts.elastic.co/packages/7.x/yum/7.2.0/elasticsearch-7.2.0-x86_64.rpm
# 2 安装
rpm -ivh elasticsearch-7.2.0-x86_64.rpm
# 3 确认
rpm -qi elasticsearch
# 4 启动
systemctl daemon-reload
systemctl start elasticsearch
## 开机启动
systemctl enable elasticsearch
#5 测试
curl localhost:9200


配置 Elasticsearch

vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-application
node.name: master
network.host: 0.0.0.0
ttp.port: 9200
cluster.initial_master_nodes: ["master", "node-2"]
# 重启 es
systemctl stop elasticsearch
systemctl start elasticsearch
# 浏览器访问
http://ip:9200


 

安装 Kibana

wget  https://artifacts.elastic.co/packages/7.x/yum/7.2.0/kibana-7.2.0-x86_64.rpm
rpm -ivh kibana-7.2.0-x86_64.rpm


确认 Kibana 信息

rpm -qi kibana
systemctl start kibana
systemctl enable kibana


测试访问

curl localhost:5601 -L


修改配置文件

vim /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]


启动 Kibana

systemctl stop kibana
systemctl start kibana
# 浏览器访问
http://ip:5601


 

安装 Logstash

wget https://artifacts.elastic.co/packages/7.x/yum/7.2.0/logstash-7.2.0.rpm
rpm -ivh logstash-7.2.0.rpm


确认安装信息

rpm -qi logstash


启动 Logstash

注意, 这里 JAVA 如果还没有安装 就不会成功, 会抱错的

systemctl start logstash
# 查看运行状态
systemctl status logstash
ps -ef | grep logstash
netstat -nlpt


做一个 简单的 测试

systemctl stop logstash
# input 输入, output 输出
# 回车之后 卡顿状态 随机输入一点字符 在回车
/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'


 

# 案例 2
# 注意 , 需要在 /root 目录下创建一个 test.log 文件
cat test.conf
input {
file {
path => ["/root/test.log"]
sincedb_path => "/dev/null"
start_position => "beginning"
}
}
filter {
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
}
}
# 执行命令
cd /root
/usr/share/logstash/bin/logstash -f test.conf


 

查看索引

​http://192.168.56.101:9200/_cat/indices?v​​ index

查看数据

​http://192.168.56.101:9200/logstash-2020.07.20-000001/_search​​ (这里就有你 test.log 中的日志文件)

访问 URL

​http://192.168.56.101:5601​

 

就会展示到你日志中的日志

 ELK 搭建部署_数据

 

 

 

如何汉化

vi /etc/kibana/kibana.yml
i18n.locale: "zh-CN"
# 重启.
systemctl restart kibana


添加密码

# 随机生成
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
# 手动添加
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
# vi /etc/kibana/kibana.yml
elasticsearch.username: "xxx"
elasticsearch.password: "xxx"


访问

注意手动添加密码 访问 kibana 出现 403 使用 es 的密码

到这里就结束。

 

 

从节点搭建

需要有 JAVA 环境

引入 GPG

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch


更新 Yum 包

yum clean all
yum makecache


安装 Logstash

systemctl stop firewalld
systemctl disable firewalld
wget  https://artifacts.elastic.co/packages/7.x/yum/7.2.0/logstash-7.2.0.rpm


配置

input {
file {
# 可以使用 * 号
# 比如想用 /home/logs/*.log  所有日志
path => "/xxx/xxx/xxx.log"
# 生成随机文件, 这里直接交给黑洞文件
sincedb_path => "/dev/null"
start_position => "beginning"    #logstash 从什么位置开始读取文件数据,默认是结束位置,也就是说 logstash 进程会以类似 tail -F 的形式运行。            如果你是要导入原有数据,把这个设定改成"beginning",logstash 进程就从头开始读取,类似 less +F 的形式运行。
stat_interval => "2"  #logstash 每隔多久检查一次被监听文件状态(是否有更新) ,默认是 1 秒。
}
}
filter {
}
output {
elasticsearch {
hosts => ["http://masterIP:9200"]
# 如果程序以及跑通之后, 没有数据。 就要携带密码和账号了
user => "xxxx"
password => "xxx"
}
}


启动

# 后台启动
/usr/share/logstash/bin/logstash -f xxxx.conf &>/dev/null &


访问

​http://masterIP:5601​

查看 日志 就可以看到你所更新的日志了

具体详细参数可以看官方文档。

 

到此搭建完毕

 https://www.yuque.com/docs/share/8a820cf3-c1cf-4755-940a-2a093913bf19?#(密码:baf9) 《elk搭建》