目錄
一、準備階段
二、實驗階段
1.配置kibana主機
2.配置elasticsearch主機
3.配置logstash主機
4.配置/etc/filebeat/filebeat.yml
三、驗證
1.開啟Filebeat
2.在logstash查看
3.瀏覽器訪問kibana
一、準備階段
1.準備四臺主機kibana、es、logstash、filebeat
2.在四臺主機分別安裝kibana、elasticsearch、logstash、filebeat
3.在elasticsearch、logstash兩臺主機安裝java
4.在filebeat主機安裝nginx
二、實驗階段
1.配置kibana主機
(1)修改kibana主機的hosts文件
????????vim /etc/hosts
(2)修改/etc/kibana/kibana.yml文件
- 開啟端口和定義服務監聽地址
- 開啟節點
- 定義 Elasticsearch 節點地址
- 開啟并定義 Kibana 系統數據的存儲索引名稱
- 修改kibana語言
2.配置elasticsearch主機
(1)修改elasticsearch主機的hosts文件
????????vim /etc/hosts
(2)修改/etc/elasticsearch/elasticsearch.yml文件
- 開啟集群名稱和節點配置
- 開啟監聽
- 開啟候選節點名稱
(3)啟動elasticsearch
3.配置logstash主機
(1)修改logstash主機的hosts文件
????????vim /etc/hosts
(2)將 Logstash 的可執行文件路徑映射到系統的通用可執行目錄中
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
(3)在/etc/logstash/conf.d/下隨機 vim 一個?后綴.conf的文件(名稱任意起)
- 配置該文件
input {
? ? ? ? file {
? ? ? ? ? ? ? ? path => "/var/log/messages"
? ? ? ? ? ? ? ? start_position => "beginning"
? ? ? ? }
? ? ? ? beats {
? ? ? ? ? ? ? ? port => 5044
? ? ? ? }
}
filter {
? if [host][name] {
? ? mutate { add_field => { "hostname" => "%{[host][name]}" } }
? }
? else if [agent][hostname] {
? ? mutate { add_field => { "hostname" => "%{[agent][hostname]}" } }
? }
? else {
? ? mutate { add_field => { "hostname" => "%{host}" } }
? }
}
output {
? if [hostname] == "logstash" {
? ? ? ? elasticsearch {
? ? ? ? ? ? ? ? hosts => ["192.168.33.134:9200"]
? ? ? ? ? ? ? ? index => "system-log-%{+YYYY.MM.dd}"
? ? ? ? }
? }
? else if [hostname] == "filebeat" {
? ? ? ? elasticsearch {
? ? ? ? ? ? ? ? hosts => ["192.168.33.134:9200"]
? ? ? ? ? ? ? ? index => "filebeat-log-%{+YYYY.MM.dd}"
? ? ? ? }
? }
? stdout {
? ? ? ? codec => rubydebug
? }
}
4.配置/etc/filebeat/filebeat.yml
- 開啟日志
- 關閉elasticsearch
- 開啟logstash
三、驗證
1.開啟Filebeat
systemctl start filebeat
2.在logstash查看
logstash -f /etc/logstash/conf.d/sys.conf?
3.瀏覽器訪問kibana
四、添加收集nginx的日志
1.修改Filebeat主機的/etc/filebeat/filebeat.yml文件
- 添加nginx日志
2.重啟filebeat,開啟nginx
3.修改logstash主機/etc/logstash/conf.d/pipline.conf文件
input {
? ? ? ? file {
? ? ? ? ? ? ? ? path => "/var/log/messages"
? ? ? ? ? ? ? ? start_position => "beginning"
? ? ? ? }
? ? ? ? beats {
? ? ? ? ? ? ? ? port => 5044
? ? ? ? }
}
filter {
? if [host][name] {
? ? mutate { add_field => { "hostname" => "%{[host][name]}" } }
? }
? else if [agent][hostname] {
? ? mutate { add_field => { "hostname" => "%{[agent][hostname]}" } }
? }
? else {
? ? mutate { add_field => { "hostname" => "%{host}" } }
? }
}
output {
? if [hostname] == "logstash" {
? ? ? ? elasticsearch {
? ? ? ? ? ? ? ? hosts => ["192.168.33.134:9200"]
? ? ? ? ? ? ? ? index => "system-log-%{+YYYY.MM.dd}"
? ? ? ? }
? }
? else if [hostname] == "web1" {
? ? if "system" == [tags] {
? ? ? ? ?elasticsearch {
? ? ? ? ? ? ? ? hosts => ["192.168.33.134:9200"]
? ? ? ? ? ? ? ? index => "web1-log-%{+YYYY.MM.dd}"
? ? ? ? ?} ? ? ? ?
? ? }
? ? if "nginx-access" in [tags] {
? ? ? ? ?elasticsearch {
? ? ? ? ? ? ? ? hosts => ["192.168.33.134:9200"]
? ? ? ? ? ? ? ? index => "web1-nginx-access-log-%{+YYYY.MM.dd}"
? ? ? ? ?} ? ? ? ?
? ? }
? ? if "nginx-error" in [tags] {
? ? ? ? ?elasticsearch {
? ? ? ? ? ? ? ? hosts => ["192.168.33.134:9200"]
? ? ? ? ? ? ? ? index => "web1-nginx-error-log-%{+YYYY.MM.dd}"
? ? ? ? ?} ? ? ? ?
? ? }
? }
? stdout {
? ? ? ? codec => rubydebug
? }
}
4.收集日志
logstash -f /etc/logstash/conf.d/pipline.conf?