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
就会展示到你日志中的日志
如何汉化
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 &
访问
查看 日志 就可以看到你所更新的日志了
具体详细参数可以看官方文档。
到此搭建完毕
https://www.yuque.com/docs/share/8a820cf3-c1cf-4755-940a-2a093913bf19?#(密码:baf9) 《elk搭建》