Logstash 가 CentOS Linux 8 에서 의 간단 한 설정 및 시작
8361 단어 ElasticsearchNginx
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Embulk를 사용하여 ElasticCloud로 보내기Embulk에서 ElasticCloud에 보낼 수 있을까라고 생각비망록도 겸해 기술을 남깁니다 Embulk 설치 ElasticCloud (14 일 체험판) brew라면 아래 명령 입력 파일 만들기 파일 내용 seed...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.