logo资料库

Centos7搭建ELK+filebeat.docx

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
Centos7搭建Elasticsearch + Logstash + filebeat + Kib
Centos7 搭建 Elasticsearch + Logstash + filebeat + Kibana Elasticsearch + Logstash + filebeat + Kibana 一、什么是 ELK ELK 是 Elasticsearch + Logstash + Kibana 这种架构的简写。这是一种日志分平台析的架 构。 二、ELK 常见的几种架构 1 Elasticsearch + Logstash + Kibana 这是一种最简单的架构。这种架构,通过 logstash 收集日志,Elasticsearch 分析日志, 然后在 Kibana(web 界面)中展示。 2 与上一种架构相比,这种架构增加了一个 filebeat 模块。filebeat 是一个轻量的日志收集 代理,用来部署在客户端,优势是消耗非常少的资源(较 logstash), 所以生产中,往往会 采取这种架构方式。当 logstash 出现故障, 会造成日志的丢失。 3 Elasticsearch + Logstash + filebeat + redis(也可以是其他中间件,比如 kafka) + Kibana 这种架构是上面那个架构的完善版,通过增加中间件,来避免数据的丢失。当 Logstash 出 现故障,日志还是存在中间件中,当 Logstash 再次启动,则会读取中间件中积压的日志。 比较推荐这种方式。 说明: logstash 节点和 elasticsearch 节点可以根据日志量伸缩数量, filebeat 部署在 每台需要收集日志的服务器上。 下面介绍一下第二种方式 Elasticsearch + Logstash + filebeat + Kibana 1、搭建 ELK-ElasticSearch7.5 JDK1.8!!! 新建用户 useradd es 修改用户可创建文件数目 vi /etc/security/limits.conf # 然后添加如下内容 es soft nproc 50000 es hard nproc 50000 es soft nofile 65535 es hard nofile 65535 修改最大内存限制 vi /etc/sysctl.conf # 添加下面的配置 vm.max_map_count=655360 # 保存好后执行命令 sysctl -p 下载安装包并解压 # 进入安装目录 cd /opt
# 下载该文件 wget 'https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-linux -x86_64.tar.gz' # 解压该文件 tar -zxf elasticsearch-7.5.1-linux-x86_64.tar.gz # 给文件夹改变权限 chown -R es:es elasticsearch-7.5.1 # 进入 es 用户 su es 修改配置文件(config 目录下的 elasticsearch.yml) #配置 es 的集群名称,默认是 elasticsearch,es 会自动发现在同一网段下的 es,如果在 同一网段下有多个集群,就可以用这个属性来区分不同的集群。 cluster.name: cluster #节点名称 node.name: node-1 #设置索引数据的存储路径 path.data: /opt/elasticsearch-7.5.1/node/data #设置日志的存储路径 path.logs: /opt/elasticsearch-7.5.1/node/logs #设置当前的 ip 地址,通过指定相同网段的其他节点会加入该集群中 network.host: 0.0.0.0 #设置对外服务的 http 端口 http.port: 9200 #设置节点之间交互的端口号 transport.tcp.port: 9300 #设置集群中 master 节点的初始列表,可以通过这些节点来自动发现新加入集群的节点 discovery.seed_hosts: ["127.0.0.1:9300"] #设置集群节点达到什么数量再启动本地恢复 gateway.recover_after_nodes: 1 启动 #执行启动,并后台运行 ./bin/elasticsearch & 检查是否安装成功 浏览器登录刚才服务器 ip 加端口 9200,能访问成功,既是启动成功。 看看是否节点显示正常 浏览器输入 ip:9200/_cat/nodes?v 2、搭建 ELK-logstash7 https://artifacts.elastic.co/downloads/logstash/logstash-7.0.0.tar.gz tar -xzvf logstash-7.0.0.tar.gz mv logstash-7.0.0.tar.gz /usr/local/logstash wget
读取文件直接发送到 es 修改/usr/local/logstash/config/logstash-sample.conf input { #beats { # port => 5044 #} file { path => "/var/log/httpd/access_log" start_position => beginning } } output { elasticsearch { hosts => ["http://localhost:9200"] index => "%{[@metadata][logstash]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" #user => "elastic" #password => "changeme" } } 检查配置文件是否正确:(假设当前目录为/usr/local/logstash/config/) ../bin/logstash -t -f logstash-sample.conf 启动: ../bin/logstash -f logstash-sample.conf 加载本文件夹所有配置文件启动: ../bin/logstash -f ./ 或后台启动: nohup ../bin/logstash -f config/ & 常用命令参数 -f:通过这个命令可以指定 Logstash 的配置文件,根据配置文件配置 logstash -e:后面跟着字符串,该字符串可以被当做 logstash 的配置(如果是“” 则默认使用 stdin 作为输入,stdout 作为输出) -l:日志输出的地址(默认就是 stdout 直接在控制台中输出) -t:测试配置文件是否正确,然后退出。 读取 filebeat 发送到 es filebeat 端配置请参照本文开头的[安装 filebeat]一文中的 logstash 相关部分 创建 /usr/local/logstash/config/logstash-filebeats.conf input { beats { port => 5044 }
} output { elasticsearch { hosts => ["http://localhost:9200"] "%{[@metadata][logstash-filebeats]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" index => #user => "elastic" #password => "changeme" } } 3、搭建 ELK-kibana7 官网下载:https://www.elastic.co/cn/downloads/kibana 安装 tar -zxvf kibana-7.3.2-linux-x86_64.tar.gz cd kibana-7.3.2-linux-x86_64 修改 kibana 相关配置 vim kibana.yml 修改 server.host: "0.0.0.0" elasticsearch.hosts: ["http://xxxx:9200"] 重启 elasticsearch,然后启动 kibana 最开始我们通过 root 用户来启动 kibana 会发现提示不应该使用 root 用户来运行它的,如 果想用 root 来运行,必须明确指明--allow-root 来运行,这是 kibana 的安全保护机制, 所以我们尽可能的不要使用 root 来启动 kibana,当我们使用 RPM 方式安装 kibana 的时候, 就 默 认 给 我 们 创 建 了 名 为 kibana 的 用 户 , 我 们 应 当 像 管 理 Elasticsearch 那 样 通 过 systemctl 来管理 kibana sudo systemctl daemon-reload sudo systemctl enable kibana.service 如果需要域名可以部署 nginx 做一下代理 xxxx:5601 server { 80; listen server_name elk.ktyiqiao.com; rewrite ^(.*) https://$server_name$1 permanent; } server { listen 443 ssl; ssl_certificate /data/ssl/ktyiqiao.com.pem; ssl_certificate_key /data/ssl/ktyiqiao.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3 DES:!MD5; ssl_prefer_server_ciphers on; ssl_session_timeout 10m;
ssl_session_cache builtin:1000 shared:SSL:10m; ssl_buffer_size 1400; add_header Strict-Transport-Security max-age=15768000; ssl_stapling on; ssl_stapling_verify on; location / { proxy_pass http://xxxx:5601$request_uri; auth_basic "登陆验证"; auth_basic_user_file /etc/nginx/htpasswd; #/etc/nginx/htpasswd 是密码文件,路径自定义 } } https 更安全还有登陆验证! 4、安装 filebeat 1、安装 filebeat 本次采用 yum 安装,需要配置 yum 源 cd /etc/yum.repos.d vim 文件名.repo 然后将下述内容添加到文件中,保存退出 [filebeat] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=0 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md yum 安装 filebeat yum -y install filebeat rpm -qa filebeat 安装好之后可用 whereis filebeat 查看下安装情况,方便找配置文件 配置 filebeat filebeat 配置文件: filebeat.yml find / -name filebeat.yml vim /etc/filebeat/filebeat.yml 需要修改的地方如下 filebeat.inputs: - type: log enabled: true paths: - /xxxx/logs/*.log multiline.pattern: '^\[' multiline.negate: true multiline.match: after
output.logstash: # The Logstash hosts hosts: ["xxxx:5044"] 配置好之后启动 filebeat cd /usr/share/filebeat/bin 后台启动 filebeat 如果直接启动运行会报错: loading config file: stat filebeat.yml: no such file or direct 是因为未找到配置文件所致,这里采取简单的方法:在运行时直接加上配置文件路径 ./filebeat -e -c /etc/filebeat/filebeat.yml 注意:filebeat 没有监听端口,主要看日志和进程 后台方式启动 filebeat: ./filebeat -e -c filebeat.yml >/dev/null 2>&1 & 将所有标准输出及标准错误输 出到/dev/null 空设备,即没有任何输出 ./filebeat -e -c filebeat.yml > filebeat.log & 停止 filebeat:查找进程 ID 并 kill 掉: ps -ef |grep filebeat
kill -9 进程号 另 https://blog.csdn.net/maquealone/article/details/93200288 就此 Elasticsearch + Logstash + filebeat + Kibana 搭建完毕! filebeat 外 用 法 可 以 参 考
分享到:
收藏