【Zabbix】history_log에서 상세한 로그 데이터 추출
【마에가키】
다른 쉘에서 이벤트 테이블에서 이벤트 데이터 목록을 추출하고,
경고 내용을 정기적으로 체크하는 운용을 시험적으로 시작해 보았습니다만,
Windows의 애플리케이션 로그/시스템 로그,
SNMPTrap 로그,/var/log/messages 오류 로그 등
이른바 로그계의 경고에 대한 대처에 곤란했습니다.
알림이 날아 이벤트 데이터에 표시되는 것이 좋지만,
어떤 에러 내용인지는 WebGUI상에서 하나하나 전용 페이지로 날아가
확인해야 했습니다.
귀찮았기 때문에, 이벤트 데이터로 에러 내용이 불명료한 경고는,
itemid로 연결하여 상세한 로그 내용을 표 형식으로 꺼내는 쉘을 작성해 보았습니다.
【동작 환경】
간단하지만 작동 환경입니다.
Zabbix: 3.09
MYSQL : 5.7.20
【쉘 내용】
eventdetail.sh
#!/bin/bash
#指定したitemidの詳細内容をヒストリログから出力する
#ある一定の期間から出力する
#
###基本設定
OUT_DIR=/home/ToolAdmin/eventdata
OUT_FILE=eventdetail_`date +%Y%m%d%H%M%S`.log
MY_CONF=/home/ToolAdmin/mysql.conf
ITEM_LIST=/home/ToolAdmin/shell/itemidlist.txt #txtにitemidを列で並べてます
STIME=`date +%s -d '7days ago'` #1週間分のログを出力
ETIME=`date +%s`
###mysqlでデータ抽出
CNT=0
while read LINE
do
if [ $CNT -eq 0 ]; then
mysql --defaults-extra-file=${MY_CONF} <<SQL > $OUT_DIR/$OUT_FILE
SELECT
i.itemid 'アイテムID',
h.name 'ホスト名',
FROM_UNIXTIME(hl.clock) '日時',
hl.severity 'Win深刻度',
hl.source 'Winソース',
hl.logeventid 'WinEVT_ID',
hl.value 'エラー内容'
FROM history_log hl
INNER JOIN items i ON hl.itemid = i.itemid
INNER JOIN hosts h ON i.hostid = h.hostid
WHERE hl.clock BETWEEN ${STIME} AND ${ETIME}
AND hl.itemid = $LINE
SQL
CNT=`expr $CNT + 1`
else
###else側は単純に一行目をsedで削除したいために条件分岐してます
mysql --defaults-extra-file=${MY_CONF} <<SQL | sed -e "/^ア.*/d" >> $OUT_DIR/$OUT_FILE
SELECT
i.itemid 'アイテムID',
h.name 'ホスト名',
FROM_UNIXTIME(hl.clock) '日時',
hl.severity 'Win深刻度',
hl.source 'Winソース',
hl.logeventid 'WinEVT_ID',
hl.value 'エラー内容'
FROM history_log hl
INNER JOIN items i ON hl.itemid = i.itemid
INNER JOIN hosts h ON i.hostid = h.hostid
WHERE hl.clock BETWEEN ${STIME} AND ${ETIME}
AND hl.itemid = $LINE
SQL
CNT=`expr $CNT + 1`
fi
done < $ITEM_LIST
이것으로 결과적으로 이런 느낌의 로그가 나옵니다.
EXCEL에 전기한 이미지입니다.
【잔 과제】
오늘 돌아와서 아빠를 만들어 보았습니다만,
이하의 점이 아직 불명료하고 좀 더 조사해 깨끗하게 출력되도록 하고 싶습니다.
・history_log.severity의 각 번호의 의미
severity는 Windows의 심각도이지만,
실제 어느 번호가 어떤 번호인지 모르기 때문에, 인터넷이나 실제 기기로 정보를 확인하면서,
CASE~WHEN문으로 깨끗하게 변환할 수 있도록 하고 싶습니다.
Zabbix는 데이터베이스의 각 열 번호의 의미 등을
알아내면 재미있네요. SQL을 좋아하기 때문에 재미 있습니다.
◆참고 URL 페이지
하기 URL의 「Log history」의 항은 참고가 되었습니다.
htps //w w. 잔인한 x. 코 m / 도쿠 멘 타치 온 / 3.2 / 마누아 l / 아피 / 레후 렌세 / 히 s와 ry / 오지 ct
만약 뭔가 조언 받을 수 있으면 다행입니다.
잘자.
Reference
이 문제에 관하여(【Zabbix】history_log에서 상세한 로그 데이터 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/HOBO0222/items/7a0bc5b7c6a90ffbc591텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)