【Zabbix】history_log에서 상세한 로그 데이터 추출

5408 단어 MySQLzabbixBash

【마에가키】



다른 쉘에서 이벤트 테이블에서 이벤트 데이터 목록을 추출하고,
경고 내용을 정기적으로 체크하는 운용을 시험적으로 시작해 보았습니다만,
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

만약 뭔가 조언 받을 수 있으면 다행입니다.

잘자.

좋은 웹페이지 즐겨찾기