搭建ELK实现日志采集

之前在公司搭建了一套ELK一直没用,前两天公司突然要使用了,因为Linux接口没有对外暴露,所以需要修改端口,两个月没管,突然对服务一脸懵逼,为了防止再次忘记,所以把搭建过程记录下来。

1.搭建 Elasticsearch

 下载对应版本,这里用7.5.1:https://www.elastic.co/cn/downloads/elasticsearch,ELK下载路径都一样,所以以下不再阐述

如果是Linux系统,需要注意:

(a)设置内核参数 vim /etc/sysctl.conf

fs.file-max=65536
vm.max_map_count=262144

sysctl -p 刷新下配置,sysctl -a查看是否生效!如果不成功的 执行以下命令

rm -f /sbin/modprobe 
ln -s /bin/true /sbin/modprobe
rm -f /sbin/sysctl 
ln -s /bin/true /sbin/sysctl  

(b)设置资源参数 vi /etc/security/limits.conf

* soft nofile 65536
* hard nofile 131072
* soft nproc  2048
* hard nproc  4096

(c)修改进程数 vi /etc/security/limits.d/20-nproc.conf

*          soft    nproc     4096

注意:配置完成后,重新打开一个窗口,且不能用root用户启动

接下来把下载好的ES解压到本地,修改config中elasticsearch.yml文件,MAC也可不修改直接用默认

  # 配置es的集群名称, es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来    区分不同的集群。
  cluster.name: my-es
  # 节点名称
  node.name: node-39
  # 设置绑定的ip地址还有其它节点和该节点交互的ip地址
  network.host: 0.0.0.0
  # 指定http端口,你使用head、kopf等相关插件使用的端口
  http.port: 9200
  # 设置节点间交互的tcp端口,默认是9300
  transport.tcp.port: 9300
  #设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
  #discovery.zen.ping.unicast.hosts: ["1.1.4.2:9300", "1.1.4.3:9300", "1.1.4.5:9300"] 
  #如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失
  #discovery.zen.minimum_master_nodes: 3
  cluster.initial_master_nodes: ["node-39"]
  http.cors.enabled: true
  http.cors.allow-origin: "*"
  #某些系统需要 是因为centos6.x操作系统不支持SecComp,而elasticsearch 5.5.2默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
  bootstrap.memory_lock: false
  bootstrap.system_call_filter: false

然后可以直接启动 ./bin/elasticsearch 后台启动后面加 -d

打开浏览器访问 http://你的ip:9200/查看是否能够正常访问

2.搭建 Kibana

解压到本地后修改config中Kibana文件,MAC也可不修改直接用默认

#端口
server.port:15601
#允许外网访问
server.host: "0.0.0.0"
#配置ES地址
elasticsearch.hosts: ["http://localhost:9200"]

然后可以直接启动 ./bin/kibana 后台启动 nohup ./bin/kibana &

打开浏览器访问 http://你的ip:15601/查看是否能够正常访问

在Linux系统搭建过程中也会遇到问题,问题出在设置参数那里,不过已顺利通过百度解决

扩展Linux命令:

1、查看服务器端口是否被占用

>lsof  -i:8081

2、查看服务器所有端口

>netstat -ntlp

3、查看服务器是否开放某端口

tcp端口:>netstat -ntpl

udp端口:>netstat -nupl

3.搭建 Logstash

解压直接在根目录下创建my-logstash.conf

input {
        file {
                type => "log"
                path => ["/apps/svr/server/*/log.file"]
                start_position => "end"
                ignore_older => 0
                codec=> multiline {
                        pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}"
                        negate => true
			auto_flush_interval => 5
                        what => "previous"
                }
        }
        beats {
            port => 5044
        }
}
output {
        if [type] == "log" {
                elasticsearch {
                        hosts => ["http://127.0.0.1:9200"]
                        index => "logstash-%{+YYYY.MM}"
                        #user => es
                        #password => es2018
                }
        }
}

如果本机内存不够可修改 jvm.options

启动logstash指定conf. ./bin/logstash -f my-logstash.conf 

4.搭建 FileBeat

解压后在根目录创建filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - 日志路径/*.log
  multiline:
    pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
    negate: true
    match: after
    max_lines: 1000
    timeout: 3s
output.elasticsearch:
  hosts: ["127.0.0.1:9200"]
  index: "log-%{+yyyy.MM.dd}"
setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"

启动filebeat指定yml   ./filebeat -e -c filebrat.yml

logstash、filebeat 任选其一。至此,ELK环境搭建完毕

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要远程采集日志,需要在目标服务器上安装一个日志采集代理,如Logstash或Filebeat。然后,将代理配置为将日志发送到Elasticsearch集群中的一个或多个节点。 以下是大致步骤: 1. 在目标服务器上安装Logstash或Filebeat 2. 配置代理以获取要采集日志 3. 配置代理以将日志发送到Elasticsearch集群中的节点 4. 在Elasticsearch中创建适当的索引模板和搜索查询以检索日志 具体来说,可以按照以下步骤进行操作: 1. 安装Logstash或Filebeat 对于Logstash,可以按照官方文档中的指南进行操作。对于Filebeat,也可以按照官方文档中的指南进行操作。 2. 配置代理 在Logstash或Filebeat中,需要配置输入和输出。输入是指要采集日志文件或数据源,输出是指将日志发送到Elasticsearch集群中的节点。 例如,在Filebeat中,可以使用以下配置: ``` filebeat.inputs: - type: log enabled: true paths: - /var/log/myapp/*.log output.elasticsearch: hosts: ["http://es-node1:9200", "http://es-node2:9200"] ``` 这将采集`/var/log/myapp/*.log`中的日志,并将其发送到`es-node1`和`es-node2`节点上的Elasticsearch。 3. 创建索引模板和搜索查询 在Elasticsearch中,需要创建一个适当的索引模板以确保日志正确地解析和存储。还可以创建搜索查询以检索和过滤日志。 例如,可以使用以下示例索引模板: ``` PUT _template/myapp_logs { "index_patterns": ["myapp-*"], "settings": { "number_of_shards": 1 }, "mappings": { "properties": { "timestamp": { "type": "date" }, "message": { "type": "text" }, "tags": { "type": "keyword" } } } } ``` 此模板指定了一个索引模式,即`myapp-*`,并定义了索引中的字段。还可以创建搜索查询以检索和过滤日志。 总之,远程采集日志需要配置日志采集代理,并将其配置为将日志发送到Elasticsearch集群中的节点。然后,在Elasticsearch中创建索引模板和搜索查询以检索日志

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值