STEP1: 安装前的准备
安装docker并配置镜像加速,参考步骤如下:
安装Docker
安装Portainer
了解版本差异
STEP2: 安装Elastic套件
参考下文安装es, kibana
Exception in thread "main" java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/jvm.options
# 遇到上述启动报错信息,可先不带挂载启动容器,将容器中的配置文件拷贝到外部后,删除镜像重新执行挂载启动,注意外部目录需要读写权限,建议777
docker cp 175109ebc27d:/usr/share/elasticsearch/config/ /home/ajay/volumn/es/data安装Kibana,过程中出现问题,可参考下面的帖子
配置启动logstash
a. 创建挂载目录logstash,然后在logstash目录下新增logstash.yml及logstash.conf,ip相应调整
logstash.yml内容如下
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: 172.19.0.1:9200logstash.conf内容如下
input {
beats {
port => 5044
}
}
# filter {
# Only matched data are send to output.
# }
output {
elasticsearch {
hosts => ["http://172.19.0.1:9200"] # ElasticSearch host, can be array.
index => "test-%{+YYYYMMdd}" # The index to write data to.
}
stdout { codec => json_lines }
}
#input:输入
#beats是我们后面要启动的filebeat,filebeat通过port:5678将收集的日志发送给logstash
#filter:过滤
#output:输出b. 以挂载方式启动logstash
docker run -d \
-p 5044:5044 --net elbk-net \
--name logstash -p 5066:5066 -p 5067:5067 \
-v /home/ajay/volumn/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \
-v /home/ajay/volumn/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
logstash:7.16.3配置启动filebeat
整体思路为:将需要采集的日志文件挂载到容器内,启动filebeat容器,由容器进程操作挂载后的日志文件并传输给logstash
a. 假设需要采集的日志文件路径为/home/ajay/application/test.log, 则创建filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /home/ajay/application/logs/test.log
output.logstash:
hosts: ["192.168.21.128:5044"]
#paths:测试日志的存放位置
#hosts:你的ip地址,5044端口是与上面启动的logstash对应b. 假设需要采集的日志文件路径为/usr/application/test.log,docker启动filebeat脚本如下:
docker run \
-v /home/ajay/application/logs:/usr/application/logs:rw \
-v /home/ajay/volumn/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro \
-e setup.kibana.host=172.19.0.1:5601 -d \
--name filebeat --net elbk-net \
docker.elastic.co/beats/filebeat:7.16.3此处尤其需要注意filebeat.yml后的:ro,表示该文件挂载到镜像内,必须去除写权限
该文件如果带有写权限,则会出现以下报错:
Exiting: error loading config file: config file ("filebeat.yml") can only be writable by the owner but the permissions are "-rwxrwxrwx" (to fix the permissions use: 'chmod go-w /usr/share/filebeat/filebeat.yml')Nginx日志采集与监控