ELK集群架构

elk集群架构 ELK综合练习

  1. elastic(类似数据库存储数据的) 对外端口9200 内部通信9300
    tar -xf elasticsearch-7.10.0-linux-x86_64.tar.gz -C /usr/local/
    创建elstic用户
    chown -R elastic.elastic /usr/local/elasticsearch-7.10.0
    在每个节点上设置系统内核参数
    设置内存映射
    sysctl -w vm.max_map_count=262144 > /etc/sysctl.conf
    sysctl -p
    设置一下文件句柄 /etc/security/limits.conf
  • soft nofile 65536

  • hard nofile 131072

  • soft nproc 2048

  • hard nproc 4096
    在每个集群中配置如下参数
    /usr/local/elasticsearch-7.10.0/config/elasticsearch.yml

    cluster.name: elk
    node.name: ela1
    node.data: true
    network.host: 0.0.0.0
    http.port: 9200

    discovery.seed_hosts:
    - 192.168.136.130
    - 192.168.136.133:9300
    - 192.168.136.137
    cluster.initial_master_nodes: [“ela1”, “ela2”, “ela3”]
    后面两台配置文件只修改node.name: ela2 ela3
    切换用户去执行启动
    su - elastic
    cd /usr/local/elasticsearch-7.10.0
    ./bin/elasticsearch -d -p /tmp/elasticsearch.pid
    -d 指定后台运行
    -p 指定运行文件(方便kill掉)
    查看集群健康状态
    curl -X GET “localhost:9200/_cat/health?v”
    查看集群节点信息
    curl -X GET “localhost:9200/_cat/nodes?v”

如果使用root执行启动文件或者配置没问题尝试 集群有问题的按照此步骤做一遍

找到进程

[elastic@ela1 elasticsearch-7.10.0]$ jdk/bin/jps
8244 Jps
7526 Elasticsearch

杀死进程

[elastic@ela1 elasticsearch-7.10.0]$ kill -9 7526

删除零时文件

[elastic@ela1 elasticsearch-7.10.0]$ rm -rf /tmp/elasticsearch-*

删除数据目录中的所有文件

[elastic@ela1 elasticsearch-7.10.0]$ rm -rf data/*

删除 keystore 文件

[elastic@ela1 elasticsearch-7.10.0]$ rm -rf config/elasticsearch.keystore

重新启动进程

[elastic@ela1 elasticsearch-7.10.0]$ bin/elasticsearch -d -p /tmp/elk.pid

部署单个elasticsearch https://blog.csdn.net/qq_22648091/article/details/110219679
如果之前用root用户执行过启动则需要删除执行的文件
查看是否root用户执行 ls -l config/
rm -rf config/elasticsearch.keystore

  1. Logstash (日志过滤器)端口9600
    tar xf logstash-7.10.0-linux-x86_64.tar.gz -C /usr/local/
    在目录下vim first-pipeline.conf 用-f指定这个文件
    input {
    #stdin { }
    beats {
    port => 5044
    }
    }

filter {
grok {
match => { “message” => “%{COMBINEDAPACHELOG}”}
remove_field => [ “message” ]
}
geoip {
source => “clientip”
}
}

output {
stdout {
codec => rubydebug
}
if [event][dataset] == “nginx.access” {
elasticsearch {
# 这里是输出到 elasticsearch 集群中
hosts => [“192.168.136.130:9200”,“192.168.136.133:9200”,“192.168.136.137:9200”]

    # 创建索引,索引好比是MySQL 数据库中的表名称
    index => "nginx-access-%{+YYYY.MM.dd}"
}

} else if [event][dataset] == “nginx.error” {
elasticsearch {
# 这里是输出到 elasticsearch 集群中
hosts => [“192.168.136.130:9200”,“192.168.136.133:9200”,“192.168.136.137:9200”]
# manage_template => false

    # 创建索引,索引好比是MySQL 数据库中的表名称
    index => "nginx-error-%{+YYYY.MM.dd}"
}

}
}
行如下命令可以测试配置文件(在目录下)
bin/logstash -f first-pipeline.conf --config.test_and_exit

-f 用于指定管道配置文件。
运行如下命令启动 Logstatsh
bin/logstash -f first-pipeline.conf --config.reload.automatic
–config.reload.automatic 会在你修改管道配置文件后自动加载,而不必重新启动 Logstash。

3.Filebeat (日志收集)端口号5044
tar xzvf filebeat-7.10.1-linux-x86_64.tar.gz -C /usr/local/
查看可以启用的模块列表
./filebeat modules list
启用 nginx 模块
例如,下面的命令启用 nginx 的配置模块:
./filebeat modules enable nginx
配置 nginx 模块 modules.d/nginx.yml 文件内容:

  • module: nginx
    access:

    开启搜集访问日志

    enabled: true

    var.paths:

    error:

    开启搜集错误日志

    enabled: true
    #var.paths:
    ingress_controller:
    #它可以在K8S环境中用于解析nginx日志的入口,默认禁用此选项
    enabled: false
    #var.paths:

默认路径
/var/log/nginx/assecc.log
/var/log/nginx/error.log
var.paths 接收的值是一个数组,可以使用如下方式配置。

  • module: nginx
    access:

    开启搜集访问日志

    enabled: true
    var.paths: ["/var/log/nginx/access.log*"]

vi /usr/local/filebeat-7.10.0-linux-x86_64/filebeat.yml
第189行注释去掉 5044端口开放
第176行注释 9200端口关闭
./filebeat启动 启动会卡住不动
nohup ./filebeat & 后台启动

验证
向日志文件中输入日志
echo ‘10.9.29.211 - - [29/Dec/2020:17:43:09 +0800] “GET /35949/bundles/plugin/uptime/uptime.plugin.js HTTP/1.1” 200 5869 “http://10.9.12.250:8080/app/home” “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 QBCore/4.0.1301.400 QQBrowser/9.0.2524.400 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat” “-”’ >> /var/log/nginx/access.log

echo ‘2020/12/29 15:25:10 [warn] 3380#3380: *161 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/5/00/0000000005 while reading upstream, client: 10.9.29.234, server: localhost, request: “GET /35949/bundles/plugin/data/data.plugin.js HTTP/1.1”, upstream: “http://127.0.0.1:5601/35949/bundles/plugin/data/data.plugin.js”, host: “10.9.12.250:8080”, referrer: “http://10.9.12.250:8080/app/home”’ >> /var/log/nginx/error.log

Logstash 的终端应有相应的输出
验证Elasticsearch是否创建了索引
[root@lvs ~]# curl -X GET “192.168.136.130:9200/_cat/indices”
green open logstash-2020.12.29-000001 ZJCk7R4xQyCAulrSg2QR2Q 1 1 2 0 58.7kb 29.3kb
green open nginx-access-2020.12.29 xVFMBC3oSc6j2gbTnN_XyQ 1 1 1 0 57.5kb 28.7kb
green open nginx-error-2020.12.29 hTPuBQjZQ_iyJeuTbvxBDg 1 1 1 0 57.4kb 28.7kb

logstash-2020.12.29-000001 是原来的
nginx-access-2020.12.29 和 nginx-error-2020.12.29 是新建立的。

必须先起5044 后起9600 他们是一个pid kill一个两个进程都没了
如果先起9600 附带的5044也会起来 因为配置文件有5044那样是没有效果的
不会处理日志转到集群中 必须先让5044起然后让他卡在那 再执行起9600的命令才会处理追加的日志

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值