1. ELK 系统是什么

ELK 是一套日志中心解决方案,其三个字母分别表示:

* Elasticsearch:负责日志存储及检索
* Logstash:负责日志收集、过滤及格式化
* Kibana:数据看板,负责日志展示及数据可视化
Elasticsearch 是自带搜索引擎的数据库。

2. ELK 系统常见用途

1. 网络监控

可以用来监控网络设备。

2. 应用监控

实时监控业务:如访问量、终端类型
分析业务:可以调取日志分析平均每秒请求数、峰谷请求数、API 请求数等,用于系统扩容的参考。

3. 特殊用途

分析用户画像。

3. Docker 容器化应用日志中心

除了应用镜像外,ELK 对应的镜像分别是 logstash、elasticsearch、kibana 三个。

1. 开启 Docker 宿主机的 rsyslog 服务

编辑服务的配置文件:
vi /etc/rsyslog.conf
开启下面的三个参数,让 rsyslog 加载 imtcp 模块并监听 514 端口,然后将 rsyslog 收集到的数据转发到 4560 端口:
$ModLoad imtcp $InputTcpServerRun 514 *.* @@localhost:4560
重启 rsyslog 服务,并查看 514 端口是否监听成功:
systemctl restart rsyslog netstat -ntpl
2. 部署 ELK

部署 ElasticSearch 服务
docker run -d -p 9200:9200 -v \ ~/elasticsearch/data
:/usr/share/elasticsearch/data \ --name elasticsearch elasticsearch
部署完成后可以访问宿主机的 9200 端口验证服务是否部署成功。成功时会输出 JSON 格式的版本信息。

部署 Logstash 服务

在 ~/logstash/ 目录下创建 logstash.conf 配置文件,将 Logstash 服务配置为从本地的 rsyslog
服务获取应用日志数据,然后转发到 Elasticsearch 数据库。配置文件内容如下:
input { syslog { type => "rsyslog" prot => 4560 } } output { elasticsearch {
hosts => ["elasticsearch:9200" ] } }
启动 Logstash 容器:
docker run -d -p 4560:4560 \ -v ~/logstash/logstash.conf:/etc/logstash.conf \
--link elasticsearch:elasticsearch \ --name logstash logstash \ logstash-f
/etc/logstash.conf
部署 Kibana 服务
docker run -d -p 5601:5601 \ --link elasticsearch:elasticsearch \ -e
ELASTICSEARCH_URL=http://elasticsearch:9200 \ --name kibana kibana
启动应用程序产生日志

注意,启动应用程序的容器时,需要设置将日志转发到 syslog 服务中。
docker run -d -p 80:80 \ --log-driver syslog \ --log-opt syslog-address=tcp:
//localhost:514 \ --log-opt tag="nginx" \ --name nginx nginx
3. 测试

产生应用日志

打开浏览器,并多次访问 localhost:80 来让应用程序生产日志。

打开 Kibana 可视化界面

在 localhost:5601 页面中,查看日志信息。可以在查询框中输入 program=nginx 查询特定日志。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信