环境搭建
Grafana 搭建
docker search grafana
docker pull grafana/grafana
docker run -d -p 3000:3000 --name grafana grafana/grafana
Loki 搭建
创建宿主机目录
mkdir -p /usr/local/glp/loki/index
mkdir -p /usr/local/glp/loki/chunks
chmod -R 777 /usr/local/glp/loki/index
chmod -R 777 /usr/local/glp/loki/chunks
创建loki 配置文件
mkdir /usr/local/glp/loki-config.yaml
loki-config.yaml内容
auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 3110
grpc_server_max_recv_msg_size: 1073741824 #grpc最大接收消息值,默认4m
grpc_server_max_send_msg_size: 1073741824 #grpc最大发送消息值,默认4m
ingester:
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 5m
chunk_retain_period: 30s
max_transfer_retries: 0
max_chunk_age: 20m #一个timeseries块在内存中的最大持续时间。如果timeseries运行的时间超过此时间,则当前块将刷新到存储并创建一个新块
schema_config:
configs:
- from: 2021-01-01
store: boltdb
object_store: filesystem
schema: v11
index:
prefix: index_
period: 168h
storage_config:
boltdb:
directory: /opt/loki/index #存储索引地址
filesystem:
directory: /opt/loki/chunks
limits_config:
enforce_metric_name: false
reject_old_samples: true
reject_old_samples_max_age: 168h
ingestion_rate_mb: 30 #修改每用户摄入速率限制,即每秒样本量,默认值为4M
ingestion_burst_size_mb: 15 #修改每用户摄入速率限制,即每秒样本量,默认值为6M
chunk_store_config:
#max_look_back_period: 168h #回看日志行的最大时间,只适用于即时日志
max_look_back_period: 0s
table_manager:
retention_deletes_enabled: false #日志保留周期开关,默认为false
retention_period: 0s #日志保留周期
安装loki
docker search loki
docker pull grafana/loki
docker run -d \
--name loki \
--privileged=true \
-v /usr/local/glp/loki:/mnt/config \ #挂载配置文件目录
-v /usr/local/glp/loki/index:/opt/loki/index \ #挂载宿主机索引目录
-v /usr/local/glp/loki/chunks:/opt/loki/chunks \
-p 3100:3100 \
grafana/loki \
-config.file=/mnt/config/loki-config.yaml # 使用挂载的配置文件
Promtail搭建
创建promtail 配置文件
mkdir /usr/local/glp/promtail
vi /usr/local/glp/promtail/promtail-config.yaml
promtail-config.yaml配置内容如下
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
#连接Loki的地址
clients:
- url: http://192.168.124.111:3100/loki/api/v1/push
scrape_configs:
- job_name: system
pipeline_stages: # 描述如何对目标日志进行结构化
static_configs: #静态配置允许指定一个目标列表和标签集
- targets: # 这是 Prometheus 服务发现代码所要求的,但并不适用于Promtail,它只能查看本地机器上的文件。因此,它应该只有 localhost 的值,或者可以完全移除它,Promtail 会使用 localhost 的默认值。
- localhost
labels:
#标签,用于后面的查询
job: demo
#容器内存储的日志文件路径 创建容器的时候需要此目录和宿主机的日志目录挂载
__path__: /var/log/*.log
启动容器
docker run -d \
--name promtail \
--privileged=true \
-v /usr/local/glp/promtail:/mnt/config \ #配置文件目录
-v /root/demo/log:/var/log \ # 挂载宿主机的日志目录到容器内 让容器可读 宿主机目录:上面配置 __path__ 指定的容器内目录
# -v /usr/local/joyoh/log:/var/log \ #可以挂载多个日志目录
grafana/promtail \
-config.file=/mnt/config/promtail-config.yaml #使用挂载的配置文件
界面配置
打开Grafana安装路径 http://192.168.124.111:3100
初始账户密码为 :admin/admin