ELK入门

架构演变

1.ES安装

单节点安装

#下载
mkdir /data   &&  cd /data
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.0-linux-x86_64.tar.gz
#创建elsearch用户,Elasticsearch不支持root用户运行
useradd zbb
#解压安装包
tar xf  elasticsearch-7.16.0-linux-x86_64.tar.gz

#修改配置文件
vim  elasticsearch-7.16.0/config/elasticsearch.yml
network.host: 0.0.0.0 #设置ip地址,任意网络均可访问
node.name: node-1
cluster.initial_master_nodes: ["node-1"]

#1:修改jvm启动参数
vim conf/jvm.options
-Xms128m #根据自己机器情况修改
-Xmx128m
#2:一个进程在VMAs(虚拟内存区域)创建内存映射最大数量
vim /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p #配置生效

#3
vim /etc/security/limits.conf
*      soft    nofile  70000
*      hard    nofile  70000
查看是否生效
ulimit -n
#如果不生效
#/etc/systemd/system.conf里的这个值控制的DefaultLimitNOFILE
#授权

chown -R zbb.zbb   /data/

#启动
su - zbb
cd bin
./elasticsearch 或 ./elasticsearch -d #后台启动

ES集群

# node-1
#设置集群名字
cluster.name: search-7
#节点名字
node.name: node-1
node.master: true
#node-1 节点仅仅是一个 master 节点,它不是一个数据节点。
node.data: false
node.ingest: false
network.host: 0.0.0.0
http.port: 9200
#传输层用于集群中节点之间的所有内部通信,与远程集群节点的所有通信
transport.port: 9300
discovery.seed_hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"] #集群节点
cluster.initial_master_nodes: ["node-1"]  
#初始的候选 master 节点列表 
#在新版 7.x 的 ES 中,对 ES 的集群发现系统做了调整,不再有 discovery.zen.minimum_master_nodes 这个控制集群脑裂的配置,转而由集群自主控制,并且新版在启动一个新的集群的时候需要有 cluster.initial_master_nodes 初始化集群主节点列表。如果一个集群一旦形成,你不该再设置该配置项,应该移除它。该配置项仅仅是集群第一次创建时设置的!集群形成之后,这个配置也会被忽略的!
#该配置项并不是需要每个节点设置保持一致,设置需谨慎,如果其中的主节点关闭了,可能会导致其他主节点也会关闭。因为一旦节点初始启动时设置了这个参数,它下次启动时还是会尝试和当初指定的主节点链接,当链接失败时,自己也会关闭!
#因此,为了保证可用性,预备做主节点的节点不用每个上面都配置该配置项!保证有的主节点上就不设置该配置项,这样当有主节点故障时,还有可用的主节点不会一定要去寻找初始节点中的主节点!


# node-2
cluster.name: search-7
node.name: node-2
node.master: true
node.data: true
node.ingest: false
network.host: 0.0.0.0
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
 
#node-3
cluster.name: search-7
node.name: node-3
node.master: true
node.data: true
node.ingest: false
network.host: 0.0.0.0
http.port: 9202
transport.port: 9302
discovery.seed_hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]

#注意不要有空格

2.Kafka+zookper

下载安装包

wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.13-2.8.1.tgz
tar xf   kafka_2.13-2.8.1.tgz

kafaka2版本之后自带zk模块

安装JDK

https://www.cnblogs.com/zdqc/p/9413703.html#auto-id-2

vim  config/zookeeper1.properties
vim  config/zookeeper2.properties
vim  config/zookeeper3.properties

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/1/
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2988:3988
server.3=127.0.0.1:2898:3898


#注意端口不能一样 
mkdir -p /data/zookeeper/{1,2,3}/
echo 1 > /data/zookeeper/1/myid
echo 2 > /data/zookeeper/2/myid
echo 3 > /data/zookeeper/3/myid

启动

nohup bin/zookeeper-server-start.sh config/zookeeper1.properties > zk1.log 2>&1 &
nohup bin/zookeeper-server-start.sh config/zookeeper2.properties > zk2.log 2>&1 &
nohup bin/zookeeper-server-start.sh config/zookeeper3.properties > zk3.log 2>&1 &

9.2配置kafka

启动zookeeper以后,然后启动kafka服务器,配置kafka的config/server.properties

server.properties配置中需要关注以下几个参数:

# The id of the broker. This must be set to a unique integer for each broker.
# 表示broker的编号,如果集群中有多个broker,则每个broker的编号需要设置的不同
broker.id=1

# listeners=PLAINTEXT://0.0.0.0:9092
# broker对外提供的服务入口地址
listeners=PLAINTEXT://localhost:9092

# 设置存放消息日志的地址
# A comma separated list of directories under which to store log files
log.dirs=/data/kafka/logs/kafka-logs

# kafka所需的zookeeper的集群地址
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183

启动

nohup   bin/kafka-server-start.sh   config/server.properties  &

9.3.kafka测试

创建topic,服务器启动后,我们需要创建一个主题(topic)用于消息的发送和接受。这一步将创建一个名称为test的topic,该topic只有一个分区(partition),且该partition也只有一个副本(replica)处理消息。

注意:为了要创建topic,要保证刚才启动的zookeeper和kafka的终端不被关闭。打开一个新的终端。

然后topic创建成功了,使用命令查看该topic的状态,还可以通过--describe展示主题的更多具体信息 ,--delete删除

#创建主题
./bin/kafka-topics.sh --create  --zookeeper localhost:2181 --partitions 1 --replication-factor 1 --topic kafkatest
#查看详细
./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic kafkatest
#删除主题
#./bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic kafkatest
#查看所有有的主题
#./bin/kafka-topics.sh  --list --zookeeper   localhost:2181 

发送消息

kafka默认提供了脚本工具可以不断的接受标准输入并将他们发送到kafka的某个topic上面,用户在控制台终端下启动该命令,输入一行文本数据,然后该脚本将改行文本封装成一条kafka消息发送给指定的topic。打开新的终端,执行命令。

--bootstrap-server指定了连接kafka集群的地址,--topic指定了生产者发送消息的主题。

#./bin/kafka-console-producer.sh --broker-list  localhost:9092 --topic  kafkatest
#./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092  --topic  kafkatest  --from-beginning

3.安装nginx

yum install nginx -y

5.Filebeat

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.16.0-linux-x86_64.tar.gz
tar xf  filebeat-7.16.0-linux-x86_64.tar.gz

vim  filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log   
  fields:
    log_topics: test1
- type: log
  enabled: true
  paths:
    - /var/log/nginx/error.log
  fields:
    log_topics: test2


output.kafka:
   hosts: "127.0.0.1:9092"
   topic: '%{[fields][log_topics]}'
   
#启动


nohup ./filebeat -e -c filebeat.yml &

加工字段

详见官网

删除字段

processors
  - drop_fieleds:
      fields: ["log"]

6.安装logstash

wget  https://artifacts.elastic.co/downloads/logstash/logstash-7.16.0-linux-x86_64.tar.gz
input{
  kafka{
    bootstrap_servers => "127.0.0.1:9092"
    consumer_threads => 5
    decorate_events => true
    topics_pattern  => "test.*"
    auto_offset_reset => "latest"
}
}
      
      
      
output {
   elasticsearch {
         hosts => ["127.0.0.1:9200"]
         index => "%{[fields][log_topics]}"
}
}
   stdout {
        codec => rubydebug
    }

 index =>  "%{[@metadata][kafka][topic]}-%{+YYYY-MM-dd}"

启动

nohup  bin/logstash -f config/logstash.conf &

logstash集群配置

一机多实例,同一个配置文件,启动时只需更改数据路径
./bin/logstash -f test.conf --path.data=/usr/local/logdata/
多台机器
logstash配置文件group_id 相同即可

grok详细介绍

https://www.cnblogs.com/zdqc/p/15693563.html

2.kabana安装

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.16.0-linux-x86_64.tar.gz
tar xf kibana-7.16.0-linux-x86_64.tar.gz
#修改配置文件
vim config/kibana.yml
server.host: "0.0.0.0" #对外暴露服务的地址
elasticsearch.url: "http://127.0.0.1:9200" #配置Elasticsearch
i18n.locale: "zh-CN"

#启动
nohup ./bin/kibana  &
#通过浏览器进行访问

http://xxx:5601

创建索引

查看数据

选择只展示的字段

创建大盘

posted @   追梦nan  阅读(342)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-10-28 Form组件
2019-10-28 中间件
2019-10-28 跨域
2019-10-28 ORM中的锁和事务
2019-10-28 cookie和session
2019-10-28 之Ajax
架构演变1.ES安装2.Kafka+zookper9.2配置kafka9.3.kafka测试3.安装nginx5.Filebeat6.安装logstash2.kabana安装
点击右上角即可分享
微信分享提示