Logstash 가 CentOS Linux 8 에서 의 간단 한 설정 및 시작

8361 단어 ElasticsearchNginx
logstash 는 초보 자 에 게 가장 문제 가 되 기 쉬 우 므 로 SSH 2 개 를 켜 야 합 니 다. 하 나 는 명령 조작 입 니 다. 하 나 는 로 그 를 보고 잘못 보고 하지 않도록 해 야 합 니 다.
1. 설치
Elasticsearch 의 yum 소스 를 설정 하 였 습 니 다. 여기 서 직접 사용 할 수 있 습 니 다.
# dnf -y install --enablerepo=elasticsearch logstash

설치 완료 후 보기
# rpm -ql logstash|grep 'logstash/bin'

2. 설정
# mv /etc/logstash/logstash.yml /etc/logstash/logstash.yml.demo
# vi /etc/logstash/logstash.yml

내용 은 다음 과 같다.
http.host: "192.168.1.247"
path.data: /data/logstash
path.logs: /log/logstash

pipeline 파일 설정 (테스트 설정 일 뿐 메시지 정 보 를 가 져 옵 니 다)
프로필 도 잠시 만 들 지 않 아 도 됩 니 다. 영향 을 주지 않 습 니 다. 기본 적 인 상황 은 설정 이 없습니다. 시작 서 비 스 를 설정 하지 않 아 도 의미 가 없습니다!기본 설정 에 따라 pipeline 인 스 턴 스 파일 은 기본적으로 / etc / logstash / conf. d 디 렉 터 리 에 배치 되 어야 합 니 다. 이 디 렉 터 리 에 인 스 턴 스 파일 이 없 으 면 실제 상황 에 따라 새 인 스 턴 스 를 만 들 수 있 습 니 다. 이 컴퓨터 messages 정 보 를 처리 하 는 것 을 예 로 들 면 다음 과 같 습 니 다.
# vi /etc/logstash/conf.d/messages.conf

내용 은 다음 과 같다.
# Sample Logstash configuration for creating a simple
# Nginx -> Logstash -> Elasticsearch pipeline.
input {
    file {
        path => "/log/domain/localhost/access_json.log"
        codec => json
        start_position => "beginning"
        type => "nginx-log"
    }
}
output {
    if [type] == "nginx-log"{
        elasticsearch {
            hosts => ["192.168.1.241:9200", "192.168.1.242:9200", "192.168.1.243:9200"]
            index => "nginx-log-%{+YYYY.MM.dd}"
        }
    }
}

디 렉 터 리 와 서비스 관련:
# mkdir -p /data/logstash
# mkdir -p /log/logstash
# chown logstash.logstash -R /data/logstash
# chown logstash.logstash -R /log/logstash

# systemctl daemon-reload
# systemctl enable logstash
# systemctl start logstash
# systemctl status logstash

시작 오류 "could not find java; set JAVA HOME or ensure java is in PATH".
설정 파일 의 내용 을 절대 경로 로 변경 합 니 다.
# vi /usr/share/logstash/bin/logstash.lib.sh

수정 내용 은 다음 과 같 습 니 다.
  JAVACMD="/usr/local/jdk/bin/java"
  if [ ! -x "$JAVACMD" ]; then
    echo "could not find java; set JAVA_HOME or ensure java is in PATH"
    exit 1
  fi

"echo" could not find java; set JAVA HOME or ensure java is in PATH "는 새로 추 가 된 내용 입 니 다.
# systemctl start logstash

다시 시작, 성 공 했 습 니 다.
logstash nginx 접근 로그 수집
nginx. conf 관련 내용 은 다음 과 같 습 니 다.
user nginx;
……
http {
     log_format  access  '$remote_addr - $remote_user [$time_local] $server_name "$request" '
                                   '$status $body_bytes_sent "$http_referer" '
                                   '"$http_user_agent"';
     log_format  json     '{"@timestamp":"$time_iso8601", "@version":"1","client":"$remote_addr",'
                          '"url":"$uri", "status":"$status", "domain":"$host", "host":"$server_addr",'
                          '"size":$body_bytes_sent, "responsetime":$request_time, "referer": "$http_referer",'
                           '"ua": "$http_user_agent"}';
………
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;
    access_log  /log/domain/localhost/access_json.log  json;
        location / {
        }
    }
}

서비스 다시 시작:
# systemctl restart nginx
# systemctl stop logstash  
# systemctl start logstash  

주: 서비스 재 부팅 명령: systemctl restart logstash 는 가능 한 한 사용 하지 마 십시오. 실패 할 확률 이 높 습 니 다.
# tail -f /var/log/messages

좋은 웹페이지 즐겨찾기