Newer
Older
# Hawk Eye
## Hawk Eye server
hawk eye server는 http 기반의 alert 푸시 및 report을 위한 중계 서버입니다.
he-agent 혹은 사용자에 의한 http post Message를 받아 Mthink혹은 Email로 구독 메세지를 보냅니다.
### download
다운로드 URL : https://lab.idatabank.com/gitlab/HawkEye/hawkeye-product/blob/master/hawkeye-server.zip
### System Requirement
#### Python
[python.org](https://www.python.org)
**version** python2 (2.7 >= )
#### Database
Recommended **SQLite3** or **MariaDB**
-----
### Installation Guide
**Recommended** CentOS 7 Install
#### CentOS 7 Setup
* CenOS 7 을 최소 설치로 설치합니다.
* rpm 설치
``` shell
yum upgrade -y
yum groupinstall 'Development Tools' -y
yum install zlib-devel openssl-devel
```
* pip 설치
```shell
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
```
-----
### Hawkeye user 생성
#### user 생성
```shell
useradd hawkeye
su - hawkeye
*profile setting*
export HAWKEYE_HOME
```
-----
### Python Develoment tool Install
#### OS Library
```shell
yum install python-devel
```
#### wkhtmltopdf Tool
Step 1: Install Dependencies
```shell
yum install -y xorg-x11-fonts-75dpi
yum install -y xorg-x11-fonts-Type1
```
Step 2: Install wkhtmltopdf
```shell
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm
rpm -Uvh wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm
```
Step 3: Testing
```shell
wkhtmltopdf http://www.google.com google.pdf
```
#### Python Library Install
```shell
cd (HAWKEYE HOME)
pip install -r requirements.txt
```
-----
### Database Library Install
#### Mysql db library
mysql 혹은 mariadb 사용시에 설치합니다.
```shell
yum install mysql-devel
pip install flask-mysqldb
```
### Run hawkeye-server
#### configuration Hawkeye
```shell
> cd $HAWKEYE_HOME/config
> vi hawkeye.cfg
HOST, PORT, PDF_TOOL 등을 수정합니다.
> vi checklist.ini
서버 레포팅 상태체크를 위한 체크리스트 항목을 설정합니다.
> vi sendlist.ini
경고 메시지를 받을 항목을 설정합니다.
## he-post
he-post는 he-server로 alert 및 report를 송신하는 에이전트 스크립트 모음입니다.
소스 : https://lab.idatabank.com/gitlab/HawkEye/he-post
다운로드 URL : https://lab.idatabank.com/gitlab/HawkEye/hawkeye-product/blob/master/he-post.zip
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
### 에이전트 사용방법
1. conf/he.ini 파일에 HawkEye Server 호스트명 및 포트, 에이전트명을 등록합니다.
```
AGENT_NAME=sns
HE_HOST=lab.idatabank.com
HE_PORT=18080
```
2. conf/he.ini 파일에 보고서를 보내는 에이전트의 관리정보를 등록합니다.
```
CUSTOMER=(주)데이타뱅크
DEPARTMENT=IS사업부
TASK=개발인프라
HOSTNAME=SNS
OS=CentOS 7
DB=Oracle
```
3. bin 경로 아래에 있는 report 및 alert 스크립트를 cron에 아래와 같은 형대로 등록합니다. (윈도우의 경우 "예약된 작업")
```
# info.sh : Daily Report용 헤더 정보 전송.
30 8 * * * /home/he/bin/info.sh
# diskusage.sh : Daily Report용 디스크 사용량 레포트 전송
30 8 * * * /home/he/bin/diskusage.sh
# alert_rq.sh : Run Queue(vmstat r) 값을 주기적으로 체크하여 alert 발송
# 매분 수행하여, 값을 초과할 때 alert를 보냅니다.
* * * * * /home/he/bin/alert_rq.sh
# hb.sh : Hawk Eye Agent HeartBeat script
* * * * * /home/he/bin/hb.sh
```
### Hawk Eye 스크립트 설명.
1. info.sh / info.wsf : 일일 리포트에 출력되는 헤더 정보(고객정보)를 발송하는 스크립트. 일반적으로 1일 1회 발송합니다.
2. hb.sh / hb.wsf : Heart Beat 스크립트, Agent가 동작중임을 나타내는 Heart Beat 신호를 주기적으로 보냅니다.
## Daily Report 스크립트 설명.
날짜별 보고서 데이터를 보내는데 사용합니다.
1. diskusage.sh / diskusage.wsf : OS 디스크 공간 정보를 일일 보고서로 보냅니다.
2. databuffer.sh :
3. datafile.sh :
4. export.sh :
5. hot.sh :
6. library.sh :
7. oracle_databuffer.sh / oracle_databuffer.wsf :
8. tablespace.sh :
### Alert 스크립트 설명
주기적으로 시스템의 중요 체크 포인트를 체크하여, 중요 이벤트 발생이나, 임계값 초과가 발견되면, 경보를 보내는 스크립트.
1. alert_rq.sh : Unix에서 CPU 부하를 나타내는 Run Queue 값을 체크하여, 임계값을 초과하면 alert 발송.
### 추가 스크립트 작성 요령
bin/diskusage.sh 스크립트를 참조하여, 추가로 체크하고 싶은 항목을 스크립트로 작성하여 사용할 수 있습니다.
작성한 스크립트는 lib/\_report.sh 혹은 lib/\_alert.sh 를 통해서 서버로 데이터를 보낼 수 있습니다.
스크립트에서 보내는 값의 성격에 따라 아래와 같이 alert 혹은 report로 보낼 수 있습니다.
```
# 공통부분 시작
# load _precheck.sh
PRG="$0"
PRGDIR=`dirname "$PRG"`
. $PRGDIR/../lib/_precheck.sh
# 공통부분 끝
# Alert 전송시.
${HE_HOME}/lib/_alert.sh ${HE_HOST} ${HE_PORT} ${AGENT_NAME} "${LEVEL}" "${MESSAGE}"
# Report 전송시.
${HE_HOME}/lib/_report.sh ${HE_HOST} ${HE_PORT} ${AGENT_NAME} "${NAME}" "${CATEGORY}" "${PRIORITY}" "${TYPE}" "${CONTENTS}"
```