内容纲要
ELK 是什么?
- 是 ElasticSearch、Logstash、Kibana 三个开源软件的组合
- 具备数据收集、存储、分析功能
- 适合实时数据分析和检索的场景
- 具有分布式特性
- 易扩展
ELK 功能
- ElasticSearch
- 存储
- 索引
- Logstash
- 收集
- 处理
- Kibana
- 可视化
- 统计分析
- Beat(扩展组件)
- MetricBeat
- 收集各种主机信息(CPU、内存……),详见官网
- Filebeat
- 轻量级日志收集组件
简单架构
op0=>operation: Data(Log)
op1=>operation: MetricBeat
op2=>operation: Redis
op3=>operation: Logstash
op4=>operation: ElasticSearch
op5=>operation: Kibana
op0(right)->op2
op1(right)->op4
op2(right)->op3
op3(right)->op4
op4(right)->op5
使用
使用 Docker 安装 ELK
参考 http://github.com/deviantony/docker-elk.git
注意 ↓
- Kibana 中文设置
`$ vim kibana/config/kibana.yml`
- 新增中文配置 ↓↓↓
- i18n.locale: "zh-CN"
注意 ↓
- ElasticSearch 默认需要 4G 内存;可以通过设置 ES_JAVA_OPTS 来修改
- 如:`ES_JAVA_OPTS="-Xms512m -Xmx512m"`
使用 Docker 安装 MetricBeat
获取配置文件
- 下载
$ wget http://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.4.1-linux-x86_64.tar.gz
- 解压
$ tar zxvf metricbeat-7.4.1-linux-x86_64.tar.gz
- 提取
metricbeat.yml modules.d
使用 Docker Compose
$ vim docker-compose.yml
version: '2'
services:
metricbeat:
image: docker.elastic.co/beats/metricbeat:7.4.1
container_name: metricbeat
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc:/hostfs/proc:ro
- /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
- /:/hostfs:ro
- ./metricbeat/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml:ro
- ./metricbeat/modules.d:/usr/share/metricbeat/modules.d:ro
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro
user: "root"
command: -system.hostfs=/hostfs -e
restart: always
docker exec -it metricbeat metricbeat modules enable system