10-28質量監控ELK
阿新 • • 發佈:2018-10-28
-c n) path 文字 search 否則 https 發現 配置文件
質量監控平臺ELK
1.安裝方法:
- ELK鏡像 https://store.docker.com/community/images/sebp/elk
- 文檔:https://elk-docker.readthedocs.io/
- 方法1: docker pull sebp/elk
- 方法2: docker pull registry.docker-cn.com/sebp/elk
2..啟動elk
sysctl -w vm.max_map_count=262144
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -d --name elk sebp/elk
3交互頁面直接輸入日誌
此時會將input的內容,當作日誌輸出
方法1:進入elk終端,進入日誌輸入命令行
```#shell
docker exec -it e4d3aa4921b6 /bin/bash
/opt/logstash/bin/logstash --path.data /tmp/logstash/data -e ‘input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }‘
此時輸入任意文字
在Kibana中進入DIscover,然後Create index pattern,寫入他所發現的索引,設置時間字段就可以創建了
檢索
方法2:不進入終端,直接進入日誌輸入命令行
docker run -it --name logstash --rm logstash --path.data /tmp/logstash/data -e ‘input { stdin { type=> "doc"} } output { elasticsearch { hosts => ["172.16.40.200"] } }‘
註意:此處一定要填寫IP,不能填寫localhost或者127.0.0.1,否則錯誤如下
4.批量傳入本地數據
4.1新建配置文件conf/csv.conf,註意IP地址:ifconfig en0
input { file { path => "/data/*.csv" start_position => beginning } } filter { csv{ columns =>[ "log_time", "user", "api", "status", "version"] } date { match => ["log_time", "yyyy-MM-dd HH:mm:ss"] timezone => "Asia/Shanghai" } } output { elasticsearch { hosts => ["172.16.40.200:9200"] index => "logstash-seveniruby-%{+YYYY.MM.dd}" } }
4.2創建數據:data/demo.csv
2018-10-28 11:29:00,chenshanju,topics.json,200,7.4
2018-10-28 11:29:01,chenshanju,topics.json,200,7.4
2018-10-28 11:29:02,chenshanju,topics/3.json,200,7.4
2018-10-28 11:30:01,chenshanju,topics/4.json,200,7.4
2018-10-28 11:30:20,chenshanju,topics/1.json,200,7.4
2018-10-28 11:40:20,chenshanju,topics/5.json,200,7.4
4.3 執行
docker run -it --name logstash --rm -v $PWD/conf:/conf -v /Users/chenshanju/Desktop/docker/data/:/data logstash -f /conf/csv.conf
4.4註意
data和conf在同意目錄下,命令也在該目錄下執行
4.4持續日誌
另開終端,執行以下腳本
#註意:此腳本不要忘記傳入user
while true
do
version=$([ $((RANDOM%5)) -ge 1 ] && echo debug || echo test)
version=${version}_3.$((RANDOM%3))
userList=(chenshanju chenyi csj java python)
user=${userList[$((RANDOM%5))]}
api=api/$((RANDOM%5)).json
status=$((RANDOM%5))00
ip=192.168.0.1$((RANDOM%5))$((RANDOM%5))
echo $(date +"%Y-%m-%d %H:%M:%S"),${user},${ip},${api},${status},${version} | tee -a $(
date +%Y%m%d%H%M).csv
sleep 0.$((RANDOM%5))
done
FAQ:
1.elk啟動成功,但傳入data時失敗。因為elk需要4G內存,但我給docker只提供了2G。將內存調整為4G即可
10-28質量監控ELK