实战之elasticsearch集群及filebeat server和logstash server

时间:2021-10-07 07:53:23

author:JevonWei

版权声明:原创作品

blog:http://119.23.52.191/


实战之elasticsearch集群及filebeat server和logstash server

环境

elasticsearch集群节点环境为172.16.100.120:9200,172.16.100.121:9200,172.16.100.122:9200
logstash server服务端为172.16.100.121
filebeat server服务端为172.16.100.121
httpd服务产生日志信息 172.16.100.121
redis服务端172.16.253.181
kibana服务端172.16.253.181
tomcat server端172.16.253.145

网络拓扑图

实战之elasticsearch集群及filebeat server和logstash server

elasticsearch集群构建如上,在此省略

filebeat server

下载filebeat程序包
https://www.elastic.co/downloads/beats/filebeat [root@node4 ~]# ls filebeat-5.5.1-x86_64.rpm
filebeat-5.5.1-x86_64.rpm

安装filebeat

[root@node4 ~]# yum -y install filebeat-5.5.1-x86_64.rpm
[root@node4 ~]# rpm -ql filebeat

编辑filebeat.yml文件

[root@node2 ~]# vim /etc/filebeat/filebeat.yml
- input_type: log
- /var/log/httpd/access_log* 指定数据的输入路径为access_log开头的所有文件
output.logstash: \\数据输出到logstash中
# The Logstash hosts
hosts: ["172.16.100.121:5044"] \\指定logstash服务端

启动服务

[root@node4 ~]# systemctl start filebeat

logstash server

安装java环境

[root@node2 ~]# yum -y install java-1.8.0-openjdk-devel

下载logstash程序

https://www.elastic.co/downloads/logstash

安装logstash程序

[root@node2 ~]# ll logstash-5.5.1.rpm
-rw-r--r--. 1 root root 94158545 Aug 21 17:06 logstash-5.5.1.rpm
[root@node4 ~]# rpm -ivh logstash-5.5.1.rpm

编辑logstash的配置文件

[root@node2 ~]# vim /etc/logstash/logstash.yml文件配置
path.data: /var/lib/logstash 数据存放路径
path.config: /etc/logstash/conf.d 配置文件的读取路径
path.logs: /var/log/logstash 日志文件的保存路径 [root@node2 ~]# vim /etc/logstash/jvm.options环境文件
-Xms256m 启用的内存大小
-Xmx1g

编辑/etc/logstash/conf.d/test.conf 文件

[root@node4 ~]# vim /etc/logstash/conf.d/test.conf
input {
beats {
port => 5044
}
} filter {
grok {
match => {
"message" => "%{COMBINEDAPACHELOG}"
}
remove_field => "message" \\只显示message字段的数据
}
} output {
elasticsearch {
hosts => ["http://172.16.100.120:9200","http://172.16.100.121:9200","http://172.16.100.122:9200"]
index => "logstash-%{+YYYY.MM.dd}"
action => "index"
}
}

测试/etc/logstash/conf.d/test.conf文件语法

[root@node2 ~]# /usr/share/logstash/bin/logstash -t -f /etc/logstash/conf.d/test.conf

执行/etc/logstash/conf.d/test.conf文件

[root@node2 ~]#/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf

客户端访问测试索引信息是否生成

[root@node5 ~]#curl -XGET '172.16.100.120:9200/_cat/indices'
green open logstash-2017.10.12 baieaGWpSN-BA28dAlqxhA 5 1 27 0 186.7kb 93.3kb

从redis插件读取采集数据

Redis

[root@node4 ~]# yum -y install redis
[root@node4 ~]# vim /etc/redis.conf
bind 0.0.0.0 监听所有地址
requirepass danran 设定密码为danran
[root@node4 ~]# systemctl restart redis

连接测试redis是否正常

[root@node4 ~]# redis-cli -h 172.16.253.181 -a danran
172.16.253.181:6379>

配置logstash server文件

[root@node2 ~]# vim /etc/logstash/conf.d/redis-input.conf
input {
redis {
host => "172.16.253.181"
port => "6379"
password => "danran"
db => "0"
data_type => "list" \\定义数据类型为列表格式
key => "filebeat" \\定义key为filebeat,与filebeat.yml定义key一致
}
} filter {
grok {
match => {
"message" => "%{COMBINEDAPACHELOG}"
}
remove_field => "message"
}
mutate {
rename => {"clientip" => "[httpd][clientip]" }
}
} output {
elasticsearch {
hosts => ["http://172.16.100.120:9200","http://172.16.100.121:9200","http://172.16.100.122:9200"]
index => "logstash-%{+YYYY.MM.dd}"
action => "index"
}
}

重启logstash server

[root@node2 ~]# systemctl restart logstash

配置filebeat的数据输出到redis

[root@node2 ~]# vim /etc/filebeat/filebeat.yml
- input_type: log
- /var/log/httpd/access_log* 指定数据的输入路径为access_log开头的所有文件 #-----------------------redis output --------------------------- output.redis:
hosts: ["172.16.253.181"] \\redis服务端
port: "6379"
password: "danran" \\redis密码
key: "filebeat" \\定义key,与redis-input.conf文件中input字段的key保存一致
db: 0 \\指定输出的数据库为0
timeout: 5

重启filebeat

[root@node2 ~]# systemctl restart filebeat

客户端访问httpd服务

[root@node1 ~]# curl 172.16.100.121
test page

登录redis数据库查看数据是否采集

[root@node4 ~]# redis-cli -h 172.16.253.181 -a danran

查看elasticsearch集群是否采集数据

实战之elasticsearch集群及filebeat server和logstash server

启用geoip插件

下载geoip程序安装

[root@node2 ~]# ll GeoLite2-City.tar.gz

-rw-r--r--. 1 root root 25511308 Aug 21 05:06 GeoLite2-City.tar.gz

[root@node2 ~]# cd GeoLite2-City_20170704/
[root@node2 GeoLite2-City_20170704]# mv GeoLite2-City.mmdb /etc/logstash/

配置logstash server文件

[root@node2 ~]# vim /etc/logstash/conf.d/geoip.conf
input {
redis {
host => "172.16.253.181"
port => "6379"
password => "danran"
db => "0"
data_type => "list" \\定义数据类型为列表格式
key => "filebeat" \\定义key为filebeat,与filebeat.yml定义key一致
}
} filter {
grok {
match => {
"message" => "%{COMBINEDAPACHELOG}"
}
remove_field => "message"
}
geoip {
source => "clientip" 指定客户端IP查找
target => "geoip"
database => "/etc/logstash/GeoLite2-City.mmdb" \\指定geoip数据库文件
}
} output {
elasticsearch {
hosts => ["http://172.16.100.120:9200","http://172.16.100.121:9200","http://172.16.100.122:9200"]
index => "logstash-%{+YYYY.MM.dd}"
action => "index"
}
}

测试redis-input.conf文件语法

[root@node2 ~]#  /usr/share/logstash/bin/logstash -t -f /etc/logstash/conf.d/redis-input.conf

指定配置文件启动logstash

[root@node2 ~]#  /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis-input.conf

客户端访问httpd

[root@node1 ~]# curl 172.16.100.121         test page

查看elasticsearch-head中信息,可根据IP地址查询区域

实战之elasticsearch集群及filebeat server和logstash server

模仿两条外部的访问日志信息

[root@node2 ~]# echo '72.16.100.120 - - [11/Oct/2017:22:32:21 -0400] "GET / HTTP/1.1" 200 10 "-" "curl/7.29.0"' >> /var/log/httpd/access_log 

[root@node2 ~]# echo '22.16.100.120 - - [11/Oct/2017:22:32:21 -0400] "GET / HTTP/1.1" 200 10 "-" "curl/7.29.0"' >> /var/log/httpd/access_log

查看elasticsearch-head中信息,可根据IP地址查询区域

实战之elasticsearch集群及filebeat server和logstash server

启用kibana插件

下载安装kibana

[root@node4 ~]# ls kibana-5.5.1-x86_64.rpm
kibana-5.5.1-x86_64.rpm
[root@node4 ~]# rpm -ivh kibana-5.5.1-x86_64.rpm

配置kibana.yml文件

[root@node4 ~]# vim /etc/kibana/kibana.yml
server.port: 5601 监听端口
server.host: "0.0.0.0" 监听地址
elasticsearch.url: "http://172.16.100.120:9200" 指定elasticsearch集群中的某个节点URL

启动服务

[root@node4 ~]# systemctl start kibana brandbot
[root@node4 ~]# ss -ntl 监听5601端口

配置logstash server数据采集文件

[root@node2 ~]# vim /etc/logstash/conf.d/geoip.conf
input {
redis {
host => "172.16.253.181"
port => "6379"
password => "danran"
db => "0"
data_type => "list" \\定义数据类型为列表格式
key => "filebeat" \\定义key为filebeat,与filebeat.yml定义key一致
}
} filter {
grok {
match => {
"message" => "%{COMBINEDAPACHELOG}"
}
remove_field => "message"
}
geoip {
source => "clientip" 指定客户端IP查找
target => "geoip"
database => "/etc/logstash/GeoLite2-City.mmdb" \\指定geoip数据库文件
}
} output {
elasticsearch {
hosts => ["http://172.16.100.120:9200","http://172.16.100.121:9200","http://172.16.100.122:9200"]
index => "logstash-%{+YYYY.MM.dd}"
action => "index"
}
}

测试redis-input.conf文件语法

[root@node2 ~]#  /usr/share/logstash/bin/logstash -t -f /etc/logstash/conf.d/redis-input.conf

指定配置文件启动logstash

[root@node2 ~]#  /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis-input.conf

elasticsearch-head中查看信息

实战之elasticsearch集群及filebeat server和logstash server

Web加载kibana

浏览器键入http://172.16.253.181:5601

实战之elasticsearch集群及filebeat server和logstash server

实战之elasticsearch集群及filebeat server和logstash server

图形显示访问数据统计

实战之elasticsearch集群及filebeat server和logstash server

实战之elasticsearch集群及filebeat server和logstash server

采集监控tomcat节点日志

安装tomcat服务

[root@node5 ~]# yum -y install tomcat tomcat-webapps tomcat-admin-webapps tomcat-docs-webapp
[root@node5 ~]# systemctl start tomcat
[root@node5 ~]# ss -ntl \\8080端口已监听

查看日志文件路径

[root@node5 ~]# ls /var/log/tomcat/localhost_access_log.2017-10-12.txt
/var/log/tomcat/localhost_access_log.2017-10-12.txt

安装filebeat

下载filebeat程序包
https://www.elastic.co/downloads/beats/filebeat [root@node4 ~]# ls filebeat-5.5.1-x86_64.rpm
filebeat-5.5.1-x86_64.rpm

安装filebeat

[root@node4 ~]# yum -y install filebeat-5.5.1-x86_64.rpm
[root@node4 ~]# rpm -ql filebeat

配置filebeat.yml文件

[root@node5 ~]# vim /etc/filebeat/filebeat.yml
- input_type: log
- /var/log/tomcat/*.txt 数据文件的采集路径
#---------------------------redis output ---------------------
output.redis:
hosts: ["172.16.253.181"]
port: "6379"
password: "danran"
key: "fb-tomcat"
db: 0
timeout: 5

启动filebeat服务

[root@node5 ~]# systemctl start filebeat

配置logstash server端数据采集配置文件

[root@node2 ~]# vim /etc/logstash/conf.d/tomcat.conf
input {
redis {
host => "172.16.253.181"
port => "6379"
password => "danran"
db => "0"
data_type => "list" \\定义数据类型为列表格式
key => "fb-tomcat" \\定义key为filebeat,与filebeat.yml定义key一致
}
} filter {
grok {
match => {
"message" => "%{COMMONAPACHELOG}"
}
remove_field => "message"
}
geoip {
source => "clientip" 指定客户端IP查找
target => "geoip"
database => "/etc/logstash/GeoLite2-City.mmdb" \\指定geoip数据库文件
}
} output {
elasticsearch {
hosts => ["http://172.16.100.120:9200","http://172.16.100.121:9200","http://172.16.100.122:9200"]
index => "logstash-tomcat-%{+YYYY.MM.dd}"
action => "index"
}
}

测试redis-input.conf文件语法

[root@node2 ~]#/usr/share/logstash/bin/logstash -t -f /etc/logstash/conf.d/tomcat.conf

重新启动logstash

[root@node2 ~]# systemctl restart logstash

elasticsearch-head中查看是否产生logstash-toncat索引信息

实战之elasticsearch集群及filebeat server和logstash server

配置kibana可视化查看索引数据

浏览器键入http://172.16.253.181:5601

实战之elasticsearch集群及filebeat server和logstash server的更多相关文章

  1. elasticsearch集群及filebeat server和logstash server

    elasticsearch集群及filebeat server和logstash server author:JevonWei版权声明:原创作品blog:http://119.23.52.191/ 实 ...

  2. Elasticsearch 运维实战之1 -- 集群规划

    规划一个可用于生产环境的elasticsearch集群. 集群节点划分 整个集群的节点分为以下三种主要类型 Master nodes -- 负责维护集群状态,不保存index数据, 硬件要求: 一般性 ...

  3. 升级 Elasticsearch 集群数量实战记录

    搜索引擎 升级 Elasticsearch 集群数量实战记录 现在线上有一个elasticsearch集群搜索服务有三台elasticsearch实例(es1.es2.es3),打算将其升级为5台(增 ...

  4. ElasticSearch实战系列一: ElasticSearch集群+Kinaba安装教程

    前言 本文主要介绍的是ElasticSearch集群和kinaba的安装教程. ElasticSearch介绍 ElasticSearch是一个基于Lucene的搜索服务器,其实就是对Lucene进行 ...

  5. 翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(5)

    数据操作与REST API(Data manipulation with REST API) ElasticSearch REST API可用于各种任务.多亏了它,我们可以管理索引,更改实例参数,检查 ...

  6. 【Elasticsearch全文搜索引擎实战】之集群搭建及配置

    文中Elasticsearch版本为6.0.1 1. 环境配置 把环境配置放在第一节来讲,是因为很多人按官网的Getting Started安装运行会有各种错误.其实都是因为一些配置不正确引起的. 首 ...

  7. Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构

    Zookeeper.Kafka集群与Filebeat+Kafka+ELK架构 目录 Zookeeper.Kafka集群与Filebeat+Kafka+ELK架构 一.Zookeeper 1. Zook ...

  8. ES2:ElasticSearch 集群配置

    ElasticSearch共有两个配置文件,都位于config目录下,分别是elasticsearch.yml和logging.yml,其中,elasticsearch.yml 用来配置Elastic ...

  9. CentOS下 elasticsearch集群安装

    1.进入root目录并下载elasticsearch cd /root wget https://download.elastic.co/elasticsearch/elasticsearch/ela ...

随机推荐

  1. 在Linux/Windows系统上编辑/etc/hosts文件

    Linux ubuntu16 open the terminal, input the command: sudo -i gedit /etc/hosts file click enter key, ...

  2. Python之路 day2 字典练习题之 三级菜单

    #Author:ersa ''' 程序: 三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 ''' menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{ ...

  3. Intellij IDEA14 下添加ExtJS提示支持

    前言: 虽然Interlij IDEA比起Eclipse对待EXT更为支持,但自己上手后总不能达到Intellij 开发ExtJS 应用指南(http://blog.csdn.net/s4640368 ...

  4. How to include cascading style sheets (CSS) in JSF

    In JSF 2.0, you can use <h:outputStylesheet /> output a css file. For example, <h:outputSty ...

  5. UI进阶 动画

    前言:所谓动画,即应用界面上展示的各种过渡效果,不过其实没有动画并不影响我们产品的功能实现 一.动画 1.动画可以达到的效果 传达状态 提高用户对直接操作的感知 帮助用户可视化操作的结果 2.使用动画 ...

  6. android init&period;rc 语法分析

    此文来自于对http://source.android.com/porting/index.html中bring up段的简译.其中有一处与源码的 system/core/init/readme.tx ...

  7. Python 第五天

    函数式编程 高阶函数 1.变量可指向函数 func = abs print(func(-1)) #1 2.函数可以作为参数传入另外的函数这也就是高阶函数 def add(x,y,func): prin ...

  8. 使用Identity Server 4建立Authorization Server &lpar;3&rpar;

    预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第二 ...

  9. pip 的简单使用

    pip3 install scrapy #安装包 pip3 uninstall scrapy #删除安装包 pip3 search 'packages_name'#搜索包 pip3 list  #列出 ...

  10. &period;net的mvc的fw版本为4&period;5发布到阿里云【云虚拟主机】上&period;

    注意:云虚拟主机和云服务器(ECS)不是同一个产品,请注意分别. 云服务器ECS: 云虚拟主机: 我用的是云虚拟主机也是第二个,版本是window server  声明:默认,已经把域名[已备案]绑定 ...