当前位置: 首页 > news >正文

ELFK日志分析平台,架构和通信

整个架构,加上跳板机,总共12台机器

技术方案:

1.  配置nfs服务器,为web集群提供共享网络文件系统

# 部署 NFS 服务
[root@nfs ~]# dnf install -y nfs-utils
[root@nfs ~]# vim /etc/exports
/var/webroot    192.168.1.0/24(rw,no_root_squash)

 2. web集群开机自动挂载nfs共享目录

 tail  /etc/fstab192.168.1.10:/var/webroot   /var/www/html   nfs   defaults,_netdev,nolock  1  1

web集群采用apache httpd,并配置filebeat,采集本地日志数据,调试日志,通过网络自动发送给logstash

3. 启动es集群

[root@es-0001 ~]# dnf install -y elasticsearch
[root@es-0001 ~]# vim /etc/elasticsearch/elasticsearch.yml
17:  cluster.name: my-es
23:  node.name: es-0001
56:  network.host: 0.0.0.0
70:  discovery.seed_hosts: ["es-0001", "es-0002", "es-0003"]
74:  cluster.initial_master_nodes: ["es-0001", "es-0002", "es-0003"][root@es-0002 ~]# dnf install -y elasticsearch
[root@es-0002 ~]# vim /etc/elasticsearch/elasticsearch.yml
17:  cluster.name: my-es
23:  node.name: es-0002
56:  network.host: 0.0.0.0
70:  discovery.seed_hosts: ["es-0001", "es-0002", "es-0003"]
74:  cluster.initial_master_nodes: ["es-0001", "es-0002", "es-0003"[root@es-0002 ~]# curl http://es-0001:9200/_cat/nodes?pretty- es-0001* es-0002-----------------------------
#  ansible集群扩容
...

4. es主机上部署好head插件,通过 head 插件管理 elasticsearch 集群 

# 在 es-0001 上安装 web 服务,并部署插件
[root@es-0001 ~]# dnf install -y nginx
[root@es-0001 ~]# systemctl enable --now nginx
[root@es-0001 ~]# tar zxf head.tar.gz -C /usr/share/nginx/html/[root@es-0001 ~]# vim /etc/nginx/default.d/myesproxy.conf 
location ~* ^/es/(.*)$ {proxy_pass http://127.0.0.1:9200/$1;auth_basic "Es admin";auth_basic_user_file /etc/nginx/auth-user; 
}
[root@es-0001 ~]# dnf install -y httpd-tools
[root@es-0001 ~]# htpasswd -cm /etc/nginx/auth-user admin
New password: 
Re-type new password: 
Adding password for user admin
[root@es-0001 ~]# systemctl reload nginx

5. 安装部署logstash服务器,拿日志,格式化,发日志

[root@logstash ~]# cat /etc/logstash/conf.d/my.conf
input {beats {port => 5044}
}filter {if [fields][logtype] == "apache_log" {grok {match => { "message" => "%{HTTPD_COMBINEDLOG}" }remove_field => ["message"]}}
}output {# stdout { codec => "rubydebug" }if [fields][logtype] == "apache_log" {elasticsearch {hosts => ["http://es-0002:9200", "http://es-0003:9200"]index => "weblog-%{+YYYY.MM.dd}"}}
}

6.  web集群安装部署filebeat  

# 安装 filebeat 服务
[root@web-0001 ~]# dnf install -y filebeat
[root@web-0001 ~]# systemctl enable --now filebeat# 配置 filebeat
[root@web-0001 ~]# vim /etc/filebeat/filebeat.yml
25:  id: my-filestream-id # 如果同时配置多个收集器,id不能重复
28:  enabled: true # 打开收集模块
32:  - /var/log/httpd/access_log # 日志文件路径
135: # 注释掉 Elasticsearch 配置
137: # 注释掉 Elasticsearch 配置
148: output.logstash: # 设置输出模块
150:   hosts: ["192.168.1.27:5044"] # 输出给logstash
163: processors:
164:   - drop_fields:  # 删除冗余数据
165:      fields:
166:        - log
167:        - offset
168:        - agent
169:        - ecs
170: #   - add_host_metadata: 注释掉(收集主机信息)
171: #       when.not.contains.tags: forwarded 注释掉(判断是否为容器)
172: #   - add_cloud_metadata: ~  注释掉(收集 cloud 信息)
173: #   - add_docker_metadata: ~ 注释掉(收集 docker 信息)
174: #   - add_kubernetes_metadata: ~ 注释掉(收集 kubernetes 信息)[root@web-0001 ~]# rm -f /var/log/httpd/*
[root@web-0001 ~]# systemctl restart httpd filebeat

7. 安装部署kibana

[root@kibana ~]# dnf install -y kibana
[root@kibana ~]# vim /etc/kibana/kibana.yml
02:  server.port: 5601
07:  server.host: "0.0.0.0"
23:  server.publicBaseUrl: "http://192.168.1.26:5601"
32:  elasticsearch.hosts: ["http://es-0004:9200", "http://es-0005:9200"]
115: i18n.locale: "zh-CN"

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • itk c++ 3D医学图像刚性配准
  • 【AI学习笔记】初学机器学习西瓜书概要记录(一)机器学习基础知识篇
  • 小阿轩yx-案例:Prometheus监控kubernetes环境构建
  • R树(R-tree索引)
  • 数据结构与算法学习day21-回溯法
  • 好用的网页翻译插件
  • 01 Vim 编辑器的简单使用
  • 【CSS in Depth 2 精译_033】5.4 Grid 网格布局的显示网格与隐式网格(中)
  • uni-data-select 使用 localdata 传入数据出现 不回显 | 下拉显示错误的 解决方法
  • 什么是多模态大模型?
  • LNMP的简单安装(ubuntu)
  • 08 Shell Script条件判断
  • Vue3 Day1Day2-Vue3优势ref、reactive函数
  • vue 给循环列表的选中项加样式
  • 《仙境传说RO:新启航》游戏攻略,VMOS云手机辅助高效挂机助攻!
  • [数据结构]链表的实现在PHP中
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2017年终总结、随想
  • Android系统模拟器绘制实现概述
  • canvas 绘制双线技巧
  • ES6简单总结(搭配简单的讲解和小案例)
  • JAVA 学习IO流
  • MySQL数据库运维之数据恢复
  • Puppeteer:浏览器控制器
  • Python_网络编程
  • SpiderData 2019年2月23日 DApp数据排行榜
  • vagrant 添加本地 box 安装 laravel homestead
  • 半理解系列--Promise的进化史
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 从setTimeout-setInterval看JS线程
  • 区块链将重新定义世界
  • 如何解决微信端直接跳WAP端
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 听说你叫Java(二)–Servlet请求
  • 微信小程序:实现悬浮返回和分享按钮
  • HanLP分词命名实体提取详解
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​secrets --- 生成管理密码的安全随机数​
  • ​低代码平台的核心价值与优势
  • # 计算机视觉入门
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (42)STM32——LCD显示屏实验笔记
  • (Git) gitignore基础使用
  • (Qt) 默认QtWidget应用包含什么?
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (七)Knockout 创建自定义绑定
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)UDP基本编程步骤
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .cfg\.dat\.mak(持续补充)
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!