Symfony 및 Graylog로 로그 관리
Symfony로 로깅 - Graylog
Docker 작성 구성
Graylog는 데이터를 저장하고 인덱싱하기 위해 elasticsearch와 mongodb가 필요합니다.
docker-compose 파일을 만들어 보겠습니다.
version: '3.7'
services:
#[...]
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
environment:
- node.name=elasticsearch
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- discovery.type=single-node
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata:/usr/share/elasticsearch/data
ports:
- 9200:9200
mongodb:
image: "mongo:4.2"
restart: always
graylog:
image: "graylog/graylog:4.3.2"
depends_on:
- elasticsearch
- mongodb
entrypoint: "/usr/bin/tini -- wait-for-it elasticsearch:9200 -- /docker-entrypoint.sh"
environment:
GRAYLOG_PASSWORD_SECRET: somepasswordpepper
# to generate a password hash, type: echo -n admin | shasum -a 256
GRAYLOG_ROOT_PASSWORD_SHA2: 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
GRAYLOG_HTTP_BIND_ADDRESS: "0.0.0.0:9001"
GRAYLOG_HTTP_EXTERNAL_URI: "http://localhost:9001/"
GRAYLOG_ELASTICSEARCH_HOSTS: "http://elasticsearch:9200"
GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog"
ports:
- "5044:5044/tcp" # Beats
- "5140:5140/udp" # Syslog
- "5140:5140/tcp" # Syslog
- "5555:5555/tcp" # RAW TCP
- "5555:5555/udp" # RAW TCP
- "9001:9001/tcp" # Server API
- "12201:12201/tcp" # GELF TCP
- "12201:12201/udp" # GELF UDP
- "13301:13301/tcp" # Forwarder data
- "13302:13302/tcp" # Forwarder config
volumes:
esdata:
프로젝트에 Monolog 설치
Monolog 번들은 Monolog를 Symfony에 통합하며 slack, elasticsearch 및 Graylog와 같은 많은 핸들러와 함께 제공됩니다.
composer require symfony/monolog-bundle
php에 gelf 구현 설치
composer require graylog2/gelf-php
이제/config/packages/dev/monolog.yaml로 이동합니다.
보시다시피 2개의 핸들러가 있습니다.
- "스트림"은 모든 로그를 파일에 씁니다.
- "콘솔"을 사용하면 -vvv 옵션을 사용하여 작업을 실행할 때 터미널에서 로그를 볼 수 있습니다.
이제 새 핸들러를 추가하여 모든 로그를 graylog로 보냅니다.
monolog:
handlers:
# [...]
graylog:
type: gelf
publisher:
hostname: "%env(GRAYLOG_HOST)%"
port: "%env(GRAYLOG_PORT)%"
level: debug
그런 다음 이 2개의 새 환경 변수를 .env 파일에 추가합니다.
#[...]
GRAYLOG_HOST=localhost
GRAYLOG_PORT=12201
graylog에서 새 입력 구성
http://localhost:9001/으로 이동한 다음 admin/admin 자격 증명으로 연결합니다.
그런 다음 시스템/입력으로 이동하여 "GELF UDP"를 선택한 다음 시작 입력을 클릭합니다.
테스트
웹사이트로 이동한 다음 graylog 대시보드로 돌아가면 이제 모든 로그를 볼 수 있습니다 :)
Reference
이 문제에 관하여(Symfony 및 Graylog로 로그 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/keized/manage-logs-with-symfony-and-graylog-ei2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
version: '3.7'
services:
#[...]
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
environment:
- node.name=elasticsearch
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- discovery.type=single-node
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata:/usr/share/elasticsearch/data
ports:
- 9200:9200
mongodb:
image: "mongo:4.2"
restart: always
graylog:
image: "graylog/graylog:4.3.2"
depends_on:
- elasticsearch
- mongodb
entrypoint: "/usr/bin/tini -- wait-for-it elasticsearch:9200 -- /docker-entrypoint.sh"
environment:
GRAYLOG_PASSWORD_SECRET: somepasswordpepper
# to generate a password hash, type: echo -n admin | shasum -a 256
GRAYLOG_ROOT_PASSWORD_SHA2: 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
GRAYLOG_HTTP_BIND_ADDRESS: "0.0.0.0:9001"
GRAYLOG_HTTP_EXTERNAL_URI: "http://localhost:9001/"
GRAYLOG_ELASTICSEARCH_HOSTS: "http://elasticsearch:9200"
GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog"
ports:
- "5044:5044/tcp" # Beats
- "5140:5140/udp" # Syslog
- "5140:5140/tcp" # Syslog
- "5555:5555/tcp" # RAW TCP
- "5555:5555/udp" # RAW TCP
- "9001:9001/tcp" # Server API
- "12201:12201/tcp" # GELF TCP
- "12201:12201/udp" # GELF UDP
- "13301:13301/tcp" # Forwarder data
- "13302:13302/tcp" # Forwarder config
volumes:
esdata:
composer require symfony/monolog-bundle
composer require graylog2/gelf-php
monolog:
handlers:
# [...]
graylog:
type: gelf
publisher:
hostname: "%env(GRAYLOG_HOST)%"
port: "%env(GRAYLOG_PORT)%"
level: debug
#[...]
GRAYLOG_HOST=localhost
GRAYLOG_PORT=12201
Reference
이 문제에 관하여(Symfony 및 Graylog로 로그 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/keized/manage-logs-with-symfony-and-graylog-ei2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)