ansible部署EFK
修改自己不确定的配置文件前,先准备备份,防患于未然!!!
Environment:{
目前测试准备三台2m2g虚拟机 详情概略图见EFK的架构图
https://www.cnblogs.com/security-guard/
1、装filebeat 用于客户端web界面 172
2、安装logstash 139
3、安装elasticsearch kibana 128
}
检测环境,确保均安装jdk环境

返回jdk环境数据

查看环境

移动压缩包到指定目录

解压准备好的zookeeper kafka

输入本机id,此步骤由于机器少,一次修改即可



开启 zookeeper服务并查看,现在本机器测试

可见是跟班角色


机器查看到状态,第一步完成
二、搭建kafka
vim /usr/local/kafka/config/server.properties
id号为前面echo的ID


各机器添加主机
需要配置的文件如下


启动kafka,首先进行测试,发现绝对路径不能实现kafka的启动


稍等片刻,查看端口,发现端口监听,kafka启动成功

三、以下操作为单机操作
1、创建主题topic
cd /usr/local/kafka/bin/
创建wg007的主题
./kafka-topics.sh --create --zookeeper 192.168.189.172:2181 --replication-factor 2 --partitions 3 --topic wg007
查看本机器有哪些主题
./kafka-topics.sh --list --zookeeper 192.168.189.172:2181
效果图

模拟生产者,会有小输入框 " > "

效果如下:


由于命令过长,添加脚本用以方便



四、创建yum源,用以下载filebeat
vim /etc/yum.repo.d/filebeat.repo
***加入以下内容
[filebeat-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
添加以上内容即可yum直接下载filebeat

下一步配置filebeat的配置文件


批注:

cd /etc/filebeat
vim filebeat.yml
修改以下内容 enabled: true paths:
- /var/log/nginx/*.log //写这个路径的前提是安装nginx output.kafka:
enabled: true
# Array of hosts to connect to.
hosts: ["192.168.18.140:9092","192.168.18.141:9092","192.168.18.142:9092"]
topic: nginx_log1 //写这个nginx_log1 的前提是有nginx_log1的topic 上面有生产者的脚本
安装nginx
yum -y install epel*
yum -y install nginx
启动filebeat,nginx
systemctl start filebeat
systemctl enable filebeat
systemctl start nginx
给nginx生产数据,此步骤采用ab压力测试,首先下载压测工具" httpd-tools "
yum -y install httpd-tools
ab -n1000 -c 200 http://127.0.0.1/cccc //这条命令可以多执行几次
可以在安装filebeat的服务器上测试一下nginx的服务
curl -I 192.168.18.140:80

创建nginx_log1 的主题 topic

在模拟消费者的服务器上 如果可以显示一下内容 表示成功了
./kafka-console-consumer.sh --bootstrap-server 192.168.18.141:9092 --topic nginx2(这里的topic的名字一定要和filebeat的配置文件里的一致) --from-beginning
这一步的效果显示如下,通俗易懂的说法就是,模拟生产者做nginx压力测试,模拟消费者的服务器会看到nginx的日志

进行即时检测本操作的同步一致性
./kafka-console-consumer.sh --bootstrap-server 192.168.189.139:9092 --topic nginx_log1 --from-beginning

五、 现在开始收集多个日志 system nginx secure 和日志 编辑filebeat的配置文件
修改自己不确定的配置文件前,先准备备份,防患于未然!!!
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
fields:
log_topics: nginx_log1 - type: log
enabled: true
paths:
- /var/log/messages
fields:
log_topics: messages - type: log
enabled: true
paths:
- /var/log/secure
fields:
log_topics: secure//这个是收集secure的topicoutput.kafka:
enabled: true
hosts: ["192.168.189.172:9092","192.168.189.139:9092","192.168.189.128:9092"]
topic: nginx_log1 #processors:
# - add_host_metadata: ~
# - add_cloud_metadata: ~
注意:创建三个topic 就是上面的配置文件提到的topic 可以使用上面的脚本创建topic 重启filebeat
systemctl restart filebeat

六、接下来在第二台机器安装logstash 在第三台机器安装ES集群(elasticsearch和kibana)
安装logstash在第二台
rpm -ivh logstash-6.6.0.rpm
安装 kibana 和elasticsearch
rpm -ivh elasticsearch-6.6.2.rpm
rpm -ivh kibana-6.6.2-x86_64.rpm
配置elasticsearch文件
vim /etc/elasticsearch/elasticsearch.yml
############################
network.host: 192.168.18.142
http.port: 9200
启动elasticsearch
systemctl restart elasticsearch
配置kibana的配置文件
vim /etc/kibana/kibana.yml
######################
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.18.142:9200"] 然后启动kibana
systemctl restart kibana

七、现在开始 编写logstash的三个配置文件 cd /etc/logstash/conf.d
cd /etc/logstash/conf.d
在此路径下创建我们之前创建的主题topic的相对配置文件

nginx配置文件
vim nginx.conf
input {
kafka {
bootstrap_servers => ["192.168.189.172:9092,192.168.189.139:9092,192.168.189.128:9092"]
group_id => "logstash"
topics => "nginx_log1"
consumer_threads =>
}
}
filter {
grok {
match => { "message" => "%{NGINXACCESS}" }
}
}
output {
elasticsearch {
hosts => "192.168.189.128:9200"
index => "nginx_log-%{+YYYY.MM.dd}"
}
}
secure配置文件
vim secure.conf
input {
kafka {
bootstrap_servers => ["192.168.189.172:9092,192.168.189.139:9092,192.168.189.128:9092"]
group_id => "logstash"
topics => "secure"
consumer_threads =>
}
}
output {
elasticsearch {
hosts => "192.168.189.128:9200"
index => "secure_log-%{+YYYY.MM.dd}"
}
}
messages配置文件
vim messages.conf
input {
kafka {
bootstrap_servers => ["192.168.189.172:9092,192.168.189.139:9092,192.168.189.128:9092"]
group_id => "logstash"
topics => "messages"
consumer_threads =>
}
}
output {
elasticsearch {
hosts => "192.168.189.128:9200"
index => "_log-%{+YYYY.MM.dd}"
}
}
添加管道
vim /etc/logstash/pipelines.yml
- pipeline.id: messages
path.config: "/etc/logstash/conf.d/messages.conf"
- pipeline.id: nginx
path.config: "/etc/logstash/conf.d/nginx.conf"
- pipeline.id: secure
path.config: "/etc/logstash/conf.d/secure.conf"
正则匹配
cd /usr/share/logstash/vendor/bundle/jruby/2.3./gems/logstash-patterns-core-4.1./patterns
vim nginx_access
URIPARAM1 [A-Za-z0-$.+!*'|(){},~@#%&/=:;_?\-\[\]]*
NGINXACCESS %{IPORHOST:client_ip} (%{USER:ident}|- ) (%{USER:auth}|-) \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} (%{NOTSPACE:request}|-)(?: HTTP/%{NUMBER:http_version})?|-)" %{NUMBER:status} (?:%{NUMBER:bytes}|-) "(?:%{URI:referrer}|-)" "%{GREEDYDATA:agent}"
重启logstash systemctl restart logstash
可以在第二台机器上查看模拟消费者的状态 messages的
执行下面的命令可以显示出日志内容就是成功
cd /usr/local/kafka/bin/./kafka-console-consumer.sh --bootstrap-server 192.168.18.141:9092 --topic nginx_log1 --from-beginning

ansible部署EFK的更多相关文章
- 001.Ansible部署RHCS存储集群
一 前期准备 1.1 前置条件 至少有三个不同的主机运行monitor (MON)节点: 至少三个直接存储(非外部SAN硬件)的OSD节点主: 至少两个不同的manager (MGR)节点: 如果使用 ...
- 使用Ansible部署etcd 3.2高可用集群
之前写过一篇手动搭建etcd 3.1集群的文章<etcd 3.1 高可用集群搭建>,最近要初始化一套新的环境,考虑用ansible自动化部署整套环境, 先从部署etcd 3.2集群开始. ...
- docker-compose 部署 EFK
信息: Docker版本($ docker --version):Docker版本18.06.1-ce,版本e68fc7a 系统信息($ cat /etc/centos-release):CentOS ...
- ansible部署,规划
部署管理服务器 第一步:先检查有没有ssh服务 [root@iZm5eeyc1al5vzh8bo57zyZ ~]# rpm -qf /etc/init.d/sshd openssh-server-5. ...
- CentOS7.5 -- Ansible部署与应用
第1章 Ansible概述 Ansible是一个配置管理系统configuration management system python 语言是运维人员必须会的语言 ansible 是一个基于pyth ...
- 使用ansible部署CDH 5.15.1大数据集群
使用ansible离线部署CDH 5.15.1大数据集群 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在此之前,我之前分享过使用shell自定义脚本部署大数据集群,不管是部署CD ...
- SSH与ansible 部署方法与核心模块简介
SSH与ansible 部署方法 部署环境 管理服务器 172.16.1.61 NFS服务器 172.16.1.31 备份服务器 172.16.1.41 1检查SSH服务是否运行并开启服务 netst ...
- 003 ansible部署ceph集群
介绍:在上一次的deploy部署ceph,虽然出了结果,最后的结果并没有满足最初的目的,现在尝试使用ansible部署一遍,看是否会有问题 一.环境准备 ceph1充当部署节点,ceph2,ceph3 ...
- 在kubernetes1.17.2上结合ceph部署efk
简绍 应用程序和系统日志可以帮助我们了解集群内部的运行情况,日志对于我们调试问题和监视集群情况也是非常有用的.而且大部分的应用都会有日志记录,对于传统的应用大部分都会写入到本地的日志文件之中.对于容器 ...
随机推荐
- 【数据结构与算法】线性表操作(C语言)
#include <stdio.h> #include <stdlib.h> #define OK 1 #define NO 0 #define MAXSIZE 20 type ...
- 【chromium】 渲染显示相关概念
DRM(Direct Rendering Manager) DRM 由两个部分组成:一是 Kernel 的子系统,这个子系统对硬件 GPU 操作进行了一层框架封装.二是提供了一个 libdrm 库,里 ...
- Python 3 + Selenium 3 实现汉堡王客户调查提交
用Python 3 + Selenium 3实现汉堡王客户调查的自动填写,可以用来作为 python selenium的入门学习实现脚本,列举了几个比较不太好弄的知识点. 上代码: from sele ...
- sqlserver读取日志以及复制
首选,在事务日志中,到底有多少是需要复制的?使用以下命令,可以确定事务日志中被标志为复制的命令有多少. USE test GO SELECT count(*) FROM ::fn_dblog(NULL ...
- 一起来学习.net core程序使用中介者模式:MediatR插件
中介者模式是一种常见的设计模式,旨再降低程序的耦合性,因为传统的三层模式层层之间需要显示的调用,必须上层依赖下层,耦合性很高,为了解耦,将所有的指令单独放在一个位置处理,其他位置均通过这个位置来间接的 ...
- @interface __ annotation 子类可以继承到父类上的注解吗--有结论了
博客分类: Java/J2se 作者:赵磊 博客:http://elf8848.iteye.com 不了解注解基础知识的请先看<JDK 5 Annotation\注解\注释\自定义注解> ...
- Sqoop import导入表时报错java.lang.ClassNotFoundException: org.json.JSONObject
报错原因:sqoop缺少java-json.jar包. 解决方案:一. 下载java-json.jar包地址:https://download.csdn.net/download/qq_2213643 ...
- 一张图看懂SharpSocket
SharpSocket提供了很多接口和类,他们被良好地组织在一起,通过下面的图片,可以瞬间看懂整个类库的脉络.通过调用各个接口的方法,完成socket通信的功能.
- 根据语义来选择:value-like传副本, pointer-like传引用
★ (一个成员)变量的 创建.初始化.赋值 “默认值”:内置类型的局部变量.内置类型的成员变量(未设置=initval;) 没有默认值! 若创建时不指定值,则不进行初始化.则其值未定义!!! “指定 ...
- drf之视图类与路由
视图 Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 2个视图基类 APIView rest_framework.v ...