12 centos 5.8 서버가 넘는 클러스터에서 기본 logstash shipper를 사용하여 logstash를 배포하여 /var/log/*/*.log
중앙 logstash 서버 로 다시 보냅니다 .
rsyslogd를 배송 업체로 사용해 보았지만 rsyslogd의 ImFile 모듈의 버그로 인해 원격 엔드가 응답하지 않으면 로그가 메모리에 쌓입니다.
현재 Redis를 전송 메커니즘으로 사용하고 있으므로 logstash01이 로컬로 실행 중이며 이러한 로그의 VLAN IP에 바인딩되어 있습니다.
따라서 logstash-shipper는 logstash01의 redis로 보냅니다. logstash01은 별도의 프로세스에서 실행중인 Elasticsearch로 보냅니다.
우리가보고있는 것은 다음과 같습니다. Elasticsearch에는 141 개의 차단 된 스레드가 있습니다. elasticsearch 상위를 추적하면 다음이 표시됩니다.
futex(0x7f4ccd1939d0, FUTEX_WAIT, 26374, NULL
그래서 .. 지난 밤, 일부 웹 서버 (로그가 로그에 꼬리를 붙인 것)는 평균 500 개 이상의로드로 견뎌냈습니다.
logstash01에는 이것이 있습니다
Dec 19 00:44:45 logstash01 kernel: [736965.925863] Killed process 23429 (redis-server) total-vm:5493112kB, anon-rss:4248840kB, file-rss:108kB
OOM 킬러는 의미 로그가 .. 물건을 운송 어느 한 서버의 메모리에 쌓여 레디 스 서버, 사망 그래서 어떻게 든 아파치는 트위스트의 팬티를 얻을 수 있음을 의미합니다. (솔직히, 나는 그것이 어떻게 로그를 마무리한다고 가정하는지 모르겠다.)
이것은 사건이 어떻게 전개되었는지에 대한 나의 이론이다.
- 교통 체증이 발생했습니다.
- 엄청난 양의 로그가 생성되었습니다.
- logstash / elasticsearch는 초당 300-400 개의 새로운 이벤트 만 처리 할 수있는 것처럼 Redis에 쌓여 있습니다.
- 레디 스는 OOM-killer가 무의식적으로 학살 한 지점까지 완전히 채웠습니다.
- Redis는 새 항목 수락을 중단합니다.
- 이제 원격 호스트쪽에 항목이 쌓이기 시작합니다.
- 모든 것이 견딜 수 있습니다. Apache가 요청 수락을 중지합니다. (왜?).
질문은 다음과 같습니다.
통나무에 꼬리가 달린 것이 왜 아파치가 까다로운가? 아파치가 글을 쓰지 못하게 막는 것이 있습니까?
탄력적 검색을 더 빠르고 더 나은 / 탄력하게 만드는 확실한 방법이 있습니까?
Redis를 탄력적으로 만들고 OOM으로 인해 죽지 않는 건전한 방법이 있습니까?
내가 설정 한 방식에 근본적인 결함이 있습니까, 아니면 모든 사람에게이 문제가 있습니까?
-- 편집하다 --
@lusis에 대한 일부 사양.
admin@log01:/etc/init$ free -m
total used free shared buffers cached
Mem: 7986 6041 1944 0 743 1157
-/+ buffers/cache: 4140 3845
Swap: 3813 3628 185
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 19G 5.3G 13G 31% /
udev 3.9G 4.0K 3.9G 1% /dev
tmpfs 1.6G 240K 1.6G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 0 3.9G 0% /run/shm
/dev/sda1 90M 72M 14M 85% /boot
/dev/mapper/data-disk 471G 1.2G 469G 1% /data
/dev/sda2 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda1 on /boot type ext2 (rw)
/dev/mapper/data-disk on /data type ext3 (rw)
/data/elasticsearch on /var/lib/elasticsearch type none (rw,bind)
log01:/etc/init$ top
top - 14:12:20 up 18 days, 21:59, 2 users, load average: 0.20, 0.35, 0.40
Tasks: 103 total, 1 running, 102 sleeping, 0 stopped, 0 zombie
Cpu0 : 3.0%us, 1.0%sy, 0.0%ni, 95.7%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu1 : 12.0%us, 1.0%sy, 0.0%ni, 86.6%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu2 : 4.7%us, 0.3%sy, 0.0%ni, 94.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 5.6%us, 1.3%sy, 0.0%ni, 93.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 5.3%us, 1.3%sy, 0.0%ni, 93.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 6.4%us, 1.0%sy, 0.0%ni, 92.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 8178120k total, 6159036k used, 2019084k free, 761780k buffers