1.Elasticsearch搭建
1.下载elasticsearch
下载地址 :https://www.elastic.co/cn/downloads/past-releases#elasticsearch
选择对应版本,注意linux服务器的cpu内核!!cpu内核对应不上可能导致安装失败!!
我这边是linux aarch64,强烈建议推荐下载7.10.0版本,其余版本问题比较多。
在服务器输入命令 uname –a 查看服务器内核版本
2.解压Elasticsearch
tar -zxvf elasticsearch-7.10.0-linux-aarch64.tar.gz
3.修改Elasticsearch的配置文件
cd elasticsearch-7.10.0/config/
vim elasticsearch.yml
由于默认的配置文件全注释掉了,所以直接在文件末尾添加。
注意:不同的版本对应的配置可以不一致,对照一下注释掉的文档是否包含以下配置。
如果需要部署集群,集群需要同样的集群名
cluster.name: my-application
每个node的名字需要唯一
node.name: node-1
注意一定要是路径后面加上/var/lib/elasticsearch/nodes,要不然无法加入集群,单机不需要
path.data: /var/lib/elasticsearch/nodes
path.logs: /var/log/elasticsearch
配置服务器的内网地址,有文档配置的0.0.0.0或localhost,但是后面出现了问题,暂未研究什么原因
network.host: 172.31.242.204
配置端口号,默认9200
http.port: 9200
配置集群节点,多个服务器[“node-1”, “node-2”]
cluster.initial_master_nodes: [“node-1”]
discovery.seed_hosts: [“192.168.0.146”, “192.168.0.147”, “192.168.0.148”]
解决跨域
http.cors.enabled: true
http.cors.allow-origin: “*”
注意:启动时,不可以使用root用户。
进入Elasticsearch上级这里我们创建一个elk用户
创建elk组
groupadd elk
useradd elk (用户名) -g elk (组名) -p elk (密码)
给新创建用户文件夹执行权限
chown -R elk: elk/usr/local/elasticsearch-7.10.0
切换elk用户
su elk
进入bin目录
sh elasticsearch &
启动成功后,访问 http://172.31.242.204:9200/,得到以下截图,表示启动成功。
2.Kibana搭建
kibana作为ElastciSearch的数据查询展示界面,集成了很多的功能,本文主要讲述如下部署kibana。
- 下载kibana。注意kibana版本要和elasticsearch保持一致!
下载地址:https://www.elastic.co/cn/downloads/past-releases#kibana
解压Kibana
tar -zxvf kibana-7.10.0-linux-aarch64.tar.gz
修改Kibana的配置文件
cd kibana-7.10.0/config/
vim kibana.yml
注意,ip改成自己服务器对应ip
端口
server.port: 5601
指定本机ip让外部能访问
server.host: “172.31.242.204”
请求数据指向的elasticsearch服务器
elasticsearch.hosts: [“http://172.31.242.204:9200”]
配置完启动kibana,进入bin目录执行
sh kibana &
访问http://172.31.242.204:5601/, 得到以下页面,代表启动成功。
3.Logstash搭建
下载Logstash
https://www.elastic.co/cn/downloads/past-releases#logstash
解压Logstash
tar -zxvf logstash-7.10.0-linux-aarch64.tar.gz
要测试Logstash安装成功,运行最基本的Logstash管道。 执行以下的命令
bin/logstash -e ‘input { stdin { } } output { stdout {} }’
e标志使您可以直接从命令行指定配置。
通过在命令行指定配置,可以快速测试配置,而无需在迭代之间编辑文件。
示例中的管道从标准输入stdin获取输入,并以结构化格式将输入移动到标准输出stdout。
启动Logstash后,等到看到“Pipeline main started”,然后在命令提示符下输入hello world,显示的如下:
hello world
{
“host” => “VM_0_13_centos”,
“message” => “hello world”,
“@version” => “1”,
“@timestamp” => 2019-07-02T06:26:28.684Z
}
返回这种数据就证明软件安装成功。
配置logstash,抓取指定日志文件输出到elasticsearch 修改logstash的安装目录的config目录下的logstash-sample.conf文件
cd logstash-7.10.0/config/
vim logstash-sample.conf
将多个日志文件输出到elasticsearch
input {
file {
path => [“/iflytek4/server/elk/elasticsearch-7.10.0/logs/my-application.log”]
start_position => “beginning”
type => “log1”
}
file {
path => “/iflytek2/tinsheng/service-test/ts-service-5.0/logs/ts-service.log”
start_position => “beginning”
type => “log2”
}}
output {
if [type] == “log1” {
elasticsearch {
hosts => [“http://172.31.242.204:9200”]
index => “ces1-%{+YYYY.MM}”
}
} else if [type] == “log2” {
elasticsearch {
hosts => [“http://172.31.242.204:9200”]
index => “ces2-%{+YYYY.MM}”
}
}}
在bin目录下执行命令,后台执行Logstash
nohup ./logstash -f …/config/logstash-sample.conf &
4.elk基本使用
如何使用kibana,查看Logstash抓取的日志
索引管理
索引模式
按照步骤新增索引
点击discover
可以看到自己创建的对应索引,并且可以根据时间、内容模糊搜索日志