Обзор журнала системного анализа ELK
ELK是Elasticsearch、Logstash、Kibana的简称
Elasticsearch是实时全文搜索和分析引擎
Logstash是一个用来搜集、分析、过滤日志的工具
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据
Log Server
提高安全性
集中存放日志
缺陷:对日志的分析困难
Система анализа лог-ELK
收集数据:LogstashAgent
建立索引:ElasticSearchCluster
数据可视化:KilbanaServer
Войти Обработка Шаг
1.将日志进行集中化管理
2.将日志格式化( Logstash )并输出到Elasticsearch
3.对格式化后的数据进行索引和存储( Elasticsearch )
4.前端数据的展示( Kibana )
Elasticsearch Введение
Elasticsearch Обзор
提供了一个分布式多用户能力的全文搜索引擎
концепция Elasticsearch
接近实时
集群
节点
索引:索引(库)-->类型(表)-->文档(记录)
分片和副本
Logstash Введение
一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输出
数据输入、数据加工(如过滤,改写等)以及数据输出
LogStash основных компонентов
Shipper
Indexer
Broker
Search and Storage
Web Interface
Kibana Кай 绍
一个针对Elasticsearch的开源分析及可视化平台
搜索、查看存储在Elasticsearch索引中的数据
通过各种图表进行高级数据分析及展示
Основная функция Kibana
Elasticsearch无缝之集成
整合数据,复杂数据分析
让更多团队成员受益
接口灵活,分享更容易
配置简单,可视化多数据源
简单数据导出
Развертывание системного журнала анализа ELK
Описание Требования
配置ELK日志分析群集
使用Logstash收集日志
使用Kibana查看分析日志
Установка окружающей среды
全部关闭防火墙
Node1、Node2节点内存分配4G,Apache节点分配1G内存
通过VMware虛拟网络Vmnet8连接
Имя хоста | IP-адрес | Основное программное обеспечение |
---|---|---|
сервер Node1 | 192.168.142.152 | Elasticsearch, Kibana |
сервер Node2 | 192.168.142.153 | Elasticsearch |
сервер Apache | 192.168.142.155 | Logstash |
Шаг 1: сервер узла Настройка ES 1
1. Выключите функции брандмауэра и безопасности
systemctl stop firewalld.service
setenforce 0
2. Измените файл конфигурации хоста
vim /etc/hosts
192.168.142.152 node1
192.168.142.153 node2
3. Комплект удаленного монтажа ресурсов
mount.cifs //192.168.142.1/elk /mnt
4. Установить пакет
cd /mnt
rpm -ivh elasticsearch-5.5.0.rpm
5. Load System Services
systemctl daemon-reload
6. загрузитесь с запуском служб
systemctl enable elasticsearch.service
7. Резервное копирование файлов конфигурации
cd /etc/elasticsearch/
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
8. Измените основной конфигурационный файл elasticsearch
vim /etc/elasticsearch/elasticsearch.yml
#第17行,取消注释并修改集群名称
cluster.name: my-elk-cluster
#第23行,取消注释修改节点名字
node.name: node1
#第33行,取消注释修改数据存放路径
path.data: /data/elk_data
#第37行,取消注释修改日志存放路径
path.logs: /var/log/elasticsearch/
#第43行,取消注释并修改,取消在不启动时锁定内存
bootstrap.memory_lock: false
#第55行,取消注释并修改地址,放入所有的地址(0.0.0.0代表所有地址)
network.host: 0.0.0.0
#第59行,取消注释,放开服务端口
http.port: 9200
#第68行,取消注释修改节点名称
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
9. Создайте путь хранения базы данных
mkdir -p /data/elk_data
10. Путь хранения базы данных авторизации
chown elasticsearch:elasticsearch /data/elk_data/
elasticsearch служба 11. Turn
systemctl start elasticsearch.service
12. Обзор состояния портовых услуг
netstat -ntap | grep 9200
tcp6 0 0 :::9200 :::* LISTEN 96970/java
13. Установка среды сборки
yum install gcc gcc-c++ make -y
14. Пакеты узла декомпрессии узел
cd /mnt
tar zxvf node-v8.2.1.tar.gz -C /opt
узел 15. Размещение
cd /opt/node-v8.2.1/
./configure
16. компиляции и установки
make && make install
Шаг два: передний конец рамы монтажного phantomjs
1. Распакуйте пакет phantomjs
cd /mnt
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src
2. Каталог Изменить, чтобы увидеть phantomjs команды
cd /usr/local/src/phantomjs-2.1.1-linux-x86_64//bin
ls
phantomjs
3. Скопируйте каталог в системный каталог
cp phantomjs /usr/local/bin/
Шаг 3: Установите средства визуализации данных elasticsearch головкой
1. Извлеките пакет elasticsearch головки
cd /mnt
tar zxvf elasticsearch-head.tar.gz -C /usr/local/src
2. Установка визуализации elasticsearch головки данные инструменты
CD / USR / местные / Пульт SRC / elasticsearch головки /
NPM установки
3. Измените основной конфигурационный файл elasticsearch
vim /etc/elasticsearch/elasticsearch.yml
#末行添加以下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
elasticsearch Service 4. Включите
systemctl restart elasticsearch.service
5. Начало работы в фоновом режиме
npm run start &
6. Проверьте состояние порта службы
netstat -ntap | grep 9100
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN 50105/grunt
[root@node1 elasticsearch-head]# netstat -ntap | grep 9200
tcp6 0 0 :::9200 :::* LISTEN 96970/java
Шаг четвертый: ES узел сконфигурирован как сервер 2 узла 1, описанная выше операция многократно выполняется для !!!
Шаг 5: Используйте ваш браузер и введите URL 192.168.142.152:9100 и соединение адрес другого узла, кластер проверить состояние здоровья
Шаг шестой: Создать индекс
Назад к обзору вы можете увидеть созданный индекс!
Шаг 7: Настройка сервера Apache, установить logstash оплаченный сбор журналов
#安装Apache服务
yum install -y httpd
#远程挂载资源包
mount.cifs //192.168.142.1/elk /mnt
#切换到挂载点
cd /mnt
#安装logstash
rpm -ivh logstash-5.5.1.rpm
#开机自启动logstash服务
systemctl enable logstash.service
#启动logstash服务
systemctl start logstash.service
#建立命令软链接到系统
ln -s /usr/share/logstash/bin/logstash /usr/local/bin
#切换日志目录
cd /var/log
#授予他人读取权限
chmod o+r messages
#查看权限
ll
#切入logstash配置目录
cd /etc/logstash/conf.d/
#编辑文件
vim system.conf
#写入以下内容,用以收集系统日志
input {
file{
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch {
#地址指向node1节点
hosts => ["192.168.142.152:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}
#重启服务
systemctl restart logstash.service
Шаг восемь: Просмотр информации журнала собраны
Шаг 9: Зад NODE1 установка узла kibana
#切入挂载点
cd /mnt
#安装kibana
rpm -ivh kibana-5.5.1-x86_64.rpm
#切入kibana目录
cd /etc/kibana/
#备份kibana.yml文件
cp kibana.yml kibana.yml.bak
#修改kibana.yml文件
vim kibana.yml
#取消第2行的注释,放开5601端口
server.port: 5601
#取消第7行的注释并修改地址,放入所有的地址(0.0.0.0代表所有地址)
server.host: "0.0.0.0"
#取消第21行的注释并指向node1节点的url
elasticsearch.url: "http://192.168.142.152:9200"
#取消第30行注释,放开kibana首页
kibana.index: ".kibana"
#启动kibana服务
systemctl start kibana.service
Шаг 10: данные kibana шоу журнала испытаний, использовать браузер для доступа 192.168.142.152:5601
Шаг одиннадцатый: Все файлы стыковка журнала Apache Apache хостов (работает на сервере Apache)
#编辑Apache日志配置文件
vim apache_log.conf
input {
file{
path => "/etc/httpd/logs/access_log"
type => "access"
start_position => "beginning"
}
file{
path => "/etc/httpd/logs/error_log"
type => "error"
start_position => "beginning"
}
}
output {
if [type] == "access" {
elasticsearch {
hosts => ["192.168.142.152:9200"]
index => "apache_access-%{+YYYY.MM.dd}"
}
}
if [type] == "error" {
elasticsearch {
hosts => ["192.168.142.152:9200"]
index => "apache_error-%{+YYYY.MM.dd}"
}
}
}
#重启服务,稍等片刻!
logstash -f apache_log.conf