本人新手,本文记录简单的ELKB单机部署,ELKB分别指elasticsearch、logstash、kibana、filebeat,用的当前官网最新版本7.2.0,日志用的Nginx产生的日志。
Nginx可以参考我这篇:Nginx 安装配置,我本次用的Nginx和这篇文章是一样的,包括前端。
环境:Centos7 先将常用环境配置好(CentOS 初始环境配置),jdk版本为1.8
下载地址:https://www.elastic.co/cn/downloads/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.0.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.2.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.0-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.2.0-linux-x86_64.tar.gz
tar -xzf logstash-7.2.0.tar.gz
tar -xzf kibana-7.2.0-linux-x86_64.tar.gz
tar -xzf filebeat-7.2.0-linux-x86_64.tar.gz
elasticsearch和kibana 要求以非root用户启动,不信可以自己试试~
groupadd elk
useradd elk -g elk
chown -R elk:elk elasticsearch-7.2.0
chown -R elk:elk kibana-7.2.0-linux-x86_64
创建数据和日志文件夹,并修改权限
mkdir -pv /data/elk/{data,logs}
chown -R elk:elk /data/elk/
vim elasticsearch-7.2.0/config/elasticsearch.yml
path.data: /data/elk/data
path.logs: /data/elk/logs
其他配置项根据自己需求修改
su - elk
cd elasticsearch-7.2.0
nohup bin/elasticsearch &
查看启动日志,看是否有异常,如果有,根据提示修改
tail -f nohup.out
测试,如下证明启动成功
$ curl 127.0.0.1:9200
{
"name" : "ambari.master.com",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "WlKMJOBcTduH9FGLKj7N2w",
"version" : {
"number" : "7.2.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "508c38a",
"build_date" : "2019-06-20T15:54:18.811730Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
root下
cd logstash-7.2.0/
cp config/logstash-sample.conf ./
可以自己看一下这个配置文件里的内容,根据自己的需求修改,本次使用默认
nohup bin/logstash -f logstash-sample.conf &
看一下启动日志是否成功
su - elk
cd kibana-7.2.0-linux-x86_64
vim config/kibana.yml
修改host,这样可以在其他机器上的浏览器,用ip+端口去访问kibana
server.host: "0.0.0.0"
启动,Kibana也不能用root用户启动
nohup bin/kibana &
在浏览器里,输入yourip:5601 访问成功即代表启动成功
root下
cd filebeat-7.2.0-linux-x86_64
下面主要是将filebeat.inputs的enabled改为true,paths改为需要采集的日志文件,这里使用的Nginx的日志,然后将output.elasticsearch注释掉,output.logstash打开,也就是用filebeat将日志采集传给logstash,然后再由logstash传给elasticsearch,而不是默认的直接传,注意:当然还有其他默认的注释的我没有贴出来
filebeat.inputs:
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /var/log/nginx/*.log
filebeat.config.modules:
# Glob pattern for configuration loading
path: ${path.config}/modules.d/*.yml
# Set to true to enable config reloading
reload.enabled: false
# Period on which files under path should be checked for changes
#reload.period: 10s
#==================== Elasticsearch template setting ==========================
setup.template.settings:
index.number_of_shards: 1
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]
# Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"
#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
# Configure processors to enhance or manipulate events generated by the beat.
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
启动
nohup ./filebeat -e -c filebeat.yml &
启动好了之后,在浏览器里访问前端页面(Nginx作为服务器),这样使Nginx产生访问日志,之后再按下面图片的顺序进行操作
点击Discover
如果配置正确,并且有Nginx日志产生,那么就会出现如标1的显示,然后再按步骤填写2,出现3,再点击4~
再点击Discover,就会看到Nginx的日志了
创建新的测试日志,当然你有现成的日志文件,比如后端Springboot的日志,可以直接用这个文件就可以了
mkdir -p /data/test/log
echo 'test1' >> /data/test/log/test.log
echo '测试中文' >> /data/test/log/test.log
然后修改filebeat的配置文件,添加第二个数据源
- type: log
enabled: true
paths:
- /data/test/log/*.log
然后重启filebeat,再刷新kibana,即可看到新的日志
到此,顺利完成了简单的第一步,后续可以自己个性化修改配置等,等我学习有了进展,再更新~
二个数据源
- type: log
enabled: true
paths:
- /data/test/log/*.log
然后重启filebeat,再刷新kibana,即可看到新的日志
[外链图片转存中…(img-XUna0yJo-1578485756426)]
到此,顺利完成了简单的第一步,后续可以自己个性化修改配置等,等我学习有了进展,再更新~