ELK 原理部署过程
一图胜千言
- 基础架构
- 工作原理
- Logstash工作原理
- Logstash工作流程
- ELK整体部署图
ELK 安装配置简化过程
1 基本配置vim /etc/hosts192.168.2.61 master-node192.168.2.62 data-node1192.168.2.63 data-node2wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.rpmrpm -ivh elasticsearch-6.0.0.rpmelasticsearch.ymljvm.optionslog4j2.propertiesvim /etc/elasticsearch/elasticsearch.yml cluster.name: master-node # 集群中的名称node.name: master # 该节点名称node.master: true # 意思是该节点为主节点node.data: false # 表示这不是数据节点network.host: 0.0.0.0 # 监听全部ip,在实际环境中应设置为一个安全的iphttp.port: 9200 # es服务的端口号discovery.zen.ping.unicast.hosts: ["192.168.2.61", "192.168.2.62", "192.168.2.63"] # 配置自动发现scp /etc/elasticsearch/elasticsearch.yml data-node1:/tmp/scp /etc/elasticsearch/elasticsearch.yml data-node2:/tmp/cp /tmp/elasticsearch.yml /etc/elasticsearch/elasticsearch.ymlsystemctl start elasticsearch.servicecurl '192.168.2.61:9200/_cluster/health?pretty'curl '192.168.2.61:9200/_cluster/state?pretty'
2 kibana配置wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-x86_64.rpmrpm -ivh kibana-6.0.0-x86_64.rpmvim /etc/kibana/kibana.ymlserver.port: 5601 # 配置kibana的端口server.host: 192.168.2.61 # 配置监听ip# 配置es服务器的ip,如果是集群则配置该集群中主节点的ipelasticsearch.url: "http://192.168.2.61:9200" # 配置kibana的日志文件路径,不然默认是messages里记录日志 logging.dest: /var/log/kibana.log touch /var/log/kibana.log; chmod 777 /var/log/kibana.logsystemctl start kibanahttp://192.168.2.61:5601/
3 logstash配置192.168.2.62wget https://artifacts.elastic.co/downloads/logstash/logstash-6.0.0.rpmrpm -ivh logstash-6.0.0.rpmvim /etc/logstash/conf.d/syslog.conf input { # 定义日志源syslog {type => "system-syslog" # 定义类型port => 10514 # 定义监听端口}}output { # 定义日志输出stdout {codec => rubydebug # 将日志输出到当前的终端上显示}}cd /usr/share/logstash/bin检查配置./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit配置kibana服务器的ip以及配置的监听端口vim /etc/rsyslog.conf#### RULES ####*.* @@192.168.2.62:10514systemctl restart rsyslog指定配置文件,启动logstashcd /usr/share/logstash/bin./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conflogstash收集nginx日志
vim /etc/logstash/conf.d/nginx.conf input {file { # 指定一个文件作为输入源path => "/var/log/nginx/access.log" # 指定文件的路径start_position => "beginning" # 指定何时开始收集type => "nginx" # 定义日志类型,可自定义}
}
filter { # 配置过滤器grok {match => { "message" => "%{IPORHOST:http_host} %{IPORHOST:clientip} - %{USERNAME:remote_user} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:http_verb} %{NOTSPACE:http_request}(?: HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\" %{NUMBER:response} (?:%{NUMBER:bytes_read}|-) %{QS:referrer} %{QS:agent} %{QS:xforwardedfor} %{NUMBER:request_time:float}"} # 定义日志的输出格式}geoip {source => "clientip"}
}
output {stdout { codec => rubydebug }elasticsearch {hosts => ["192.168.2.61:9200"]index => "nginx-test-%{+YYYY.MM.dd}"}
}cd /usr/share/logstash/bin
./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/nginx.conf --config.test_and_exitcd /etc/nginx/http_virtual_host.d
vim elk.conf
server {listen 80;server_name elk.test.com;location / {proxy_pass http://192.168.2.61:5601;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}access_log /tmp/elk_access.log main2;
}vim
log_format main2 '$http_host $remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$upstream_addr" $request_time';
nginx -t
nginx -s reload
配置hosts 192.168.2.62 elk.eichong.comls /var/log/nginx/access.log
wc -l !$
重启logstash服务,生成日志的索引
systemctl restart logstash重启完成后,在es服务器上检查是否有nginx-test开头的索引生成
curl '192.168.2.61:9200/_cat/indices?v'nginx-test索引已经生成了,那么这时就可以到kibana上配置该索引
managent index patterns create index patterns
discover
http://192.168.2.61:5601/status 查看状态
最新版本yum安装
001 elasticsearchrpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/elasticsearch.repo[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-mdyum install elasticsearch -y002 kibana
vim /etc/yum.repos.d/kibana.repo[kibana-6.x]
name=Kibana repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-mdyum install kibana -y003 logstash
vim /etc/yum.repos.d/logstash.repo[logstash-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
主要配置文件
001 elasticsearch
cat /etc/elasticsearch/elasticsearch.yml |grep ^[^#]cluster.name: my-elk
node.name: master
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["172.19.1.216", "172.19.1.217"]002 kibana
cat /etc/kibana/kibana.yml |grep ^[^#]server.port: 5601
server.host: "172.19.1.216"
elasticsearch.url: "http://172.19.1.216:9200"
logging.dest: /var/log/kibana.log # 文件需创建并授权003 logstash
汉化
https://github.com/anbai-inc/Kibana_Hanization
其他优秀博客
https://www.cnblogs.com/kevingrace/p/5919021.html
http://blog.51cto.com/zero01/2079879
ELK 原理部署过程相关推荐
- 开源实时日志分析ELK平台部署
开源实时日志分析ELK平台部署 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷 ...
- Microsoft SQL Server数据库部署过程
介绍 (Introduction) Database deployments are critical tasks that can affect negative in on performance ...
- 【微信小程序控制硬件④】 深度剖析微信公众号配网 Airkiss 原理与过程,esp8266如何自定义回调参数给微信,实现绑定设备第一步!(附带源码)
[微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...
- 综合架构网站服务概念原理/部署安装(三)
网站服务防盗链优化设置 什么是盗链概念:盗取链接 == 消耗网站流量资源 1.用户访问 B 盗链网站(图片A) 消耗图片资源 A网站流量 占用A网站带宽 云主机:网络通讯计费模式 固定带宽计费 ...
- ELK日志分析系统(二)之ELK搭建部署
文章目录 引言 一.Elasticsearch 集群部署(在Node1上操作) 1.准备环境 2.部署安装Elasticsearch软件 3.配置Elasticsearch主配置文件 4.创建数据存放 ...
- linux crontab scrapy,python3 scrapy+Crontab部署过程
背景 最近有时间想学习下python3+scrapy,于是决定写一个小程序来练练手. 开发环境:MacOS High Sierra(10.13.1)+python3+scrapy. 开发工具:PyCh ...
- [项目过程中所遇到的各种问题记录]部署篇——项目部署过程中那些纠结的问题-SQLServer...
前一篇文章说了些有关IIS的,这篇则是说SQLServer的,相比IIS来说,SQLServer的配置过程中问题就少了许多,而且都比较有针对性,下面开始记录: 注:由于实际项目的开发都是基于SQL20 ...
- SharePoint 2007部署过程详细图解之一:准备
Microsoft Office SharePoint Server 2007(简称MOSS 2007)可以构建企业门户站点,并实现团队协作.内容管理.工作流.商业智能等强大功能,是微软2007 Of ...
- 预发布环境,Tag发布机制和可重复的部署过程
导读:作者吕毅在blog.lvscar.info发表了本篇文章,文中分享了Joel Test .预发布环境.Tag发布机制以及可重复的部署过程等.内容如下: 周末聚会,无意间聊起建筑行业.自己是搞软件 ...
最新文章
- Entity Framework Core 2.0的新特性
- sigmoid函数求导与自然指数
- Android ART GC之GrowForUtilization的分析
- ASP.NET Core Web API + Identity Server 4 + Angular 6 实战小项目视频
- mysql外键约束创建及删除_MySQL中的外键的创建,约束和删除
- 转:pysqlite笔记
- cordova+vue 项目打包成Android(apk)应用
- UIScrollView加约束
- 公司聚餐完毕,明日启程回家过年
- Win2003下架构Mrtg服务器
- 在pascal环境下学习record
- 我的Python成长之路---第三天---Python基础(9)---2016年1月16日(雾霾)
- javascript div 弹出可拖动窗口
- 程序员需要学些什么?程序员好考吗?
- IO-同步、异步、阻塞、非阻塞
- 二叉搜索树的操作题集
- 祝贺中国推送联盟初测成功
- 差速轮和舵轮的纯跟踪算法
- vue-网页Logo标题及矢量图标
- 【jQwidgets】jqxComboBox
热门文章
- LeetCode 257. Binary Tree Paths (二叉树路径)
- 修改ECSHOP后台的商品列表里显示该商品品牌
- java使用内部类的好处及其初始化
- C#中的复制在unity中使用
- c语言程序改错输入5结果为15,《C语言程序设计教学课件》程序改错(自我总结).doc...
- 实数在java中的表示,java - 如何在Z3(Java)中从模型中获取实数值作为小数(双精度)? - SO中文参考 - www.soinside.com...
- matlab 求向量的交集_从零开始的matlab学习笔记——(16)函数绘图
- python 操作excel神器_【转】多图+代码 | 详解Python操作Excel神器openpyxl的各种操作!...
- ggplot2 | 使用小提琴图+箱形图+抖动图展示数据分布情况
- 软件测试适合女生学吗?