웹 콘솔 없이 Redfish API만 사용했을 경우 불편한 점
- web을 이용한 제어 콘솔의 부재
- 동시에 여러 대의 서버 상태 파악의 어려움
- 정보 파악을 위해 매 번 거쳐야하는 인증 과정(로그인)
- 데이터에 대한 시각화 기능 부재
- 저장되지 않는 데이터에 의한 Trend 파악의 어려움
django / vue.js를 이용한 web 관리 콘솔
- login, 권한, 접근제어등 부가적인 기능 불필요
- 온도, 파워 monitoring 기능
- trend graph, threshold alert
- log monitor
- BIOS, firmware 버전 확인
- 서버 추가, 삭제 기능
- Processor, Memory 등 서버에 대한 정보 확인
- configure 설정/변경
웹 view를 위한 vue.js Redfish API 사용을 위한 Django Server Monitoring을 위한 Telegraf, InfluxDB, Grafana
실행 방법
OS : CentOS 7
사용 포트
django : :8000
vue.js : :8080
grafana : :3000
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install -y mysql-server
# systemctl start mysqld
# systemctl enable mysqld
비밀번호 설정 (password: redfish21)
# mysql_secure_installation
Enter current password for root (enter for none):
Change the root password? [Y/n] y
New password: redfish21
Re-enter new password: redfish21
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
database 생성
# mysql -u root -p
> CREATE DATABASE redfish;
> exit
필요한 packages 설치
# yum install -y git mysql-devel gcc
# yum install -y epel-release.noarch
# yum install -y https://repo.ius.io/ius-release-el7.rpm
# yum install -y python36u python36u-devel
git clone project
# git clone https://git.toastoven.net/intern/redfish_project_dg.git
# cd redfish_project_dg/django-docker-master/
파이썬 가상환경 세팅
# python3 -m venv ./env
# source env/bin/activate
파이썬 패키지 설치
# pip install --upgrade pip
# pip install -r requirements.txt
django migration 및 실행
# cd app
# python manage.py migrate
# gunicorn app.wsgi:application --bind 0.0.0.0:8000
# ctrl + z
# bg
node 및 npm 설치
# cd ../../vue-cards
# yum -y install curl
# curl -sL https://rpm.nodesource.com/setup_14.x | bash -
# yum install -y nodejs
프로젝트 패키지 설치 및 실행
# npm install chokidar
# npm install @vue/cli-service --unsafe-perm
# npm install
# npm run serve
# ctrl + z
# bg
local ip 저장
# cd ~/redfish_project_dg
# vi config/ip.txt
(grafana 호스트 ip 입력)
ex) 127.0.0.1
# echo "(grafana 호스트 ip 입력) influxdb" >> /etc/hosts
ex) echo "127.0.0.1 influxdb" >> /etc/hosts
# cd ~/redfish_project_dg
# cat <<EOF | tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
# yum install -y influxdb
# systemctl start influxdb
# systemctl enable influxdb
influxdb 계정 생성 (username: redfish, password: redfish21)
# influx
> CREATE USER redfish WITH PASSWORD 'redfish21' WITH ALL PRIVILEGES
> show users
user admin
---- -----
redfish true
> exit
# cat <<EOF | tee /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
# yum install -y grafana ssmtp
# cp ./config/grafana.ini /etc/grafana/grafana.ini
# cp ./config/ssmtp.conf /etc/ssmtp/ssmtp.conf
# systemctl start grafana-server
# systemctl enable grafana-server
grafana datasource 추가
# curl -X GET http://localhost:8000/api/datasources
# yum install -y telegraf
# cp ./config/telegraf.conf /etc/telegraf/telegraf.conf
# systemctl start telegraf
# systemctl enable telegraf
좌상단의 Server List 클릭 / 첫 페이지
테이블 기본 기능
- 총 x 행씩 보기
- Copy, Excel, PDF Export
- Column visibility
- 검색 기능
- pagenation
- Column sorting
ip column에 적힌 ip 클릭시
- https 연결이 되며 해당 벤더사의 하드웨어 컨트롤 페이지로 이동
상세보기 클릭시
- 해당 서버에 대한 상세한 내용 확인 가능
좌상단의 'Add Server' 클릭시
다음과 같은 모달 창이 생기며 IP, User Name, Password 입력시 서버 추가 가능 서버 연결 확인 버튼을 통해 추가 전 서버 연결 여부 확인 가능
좌상단의 'Delete Server' 클릭시
다음과 같은 모달 창이 생기며 IP 입력시 서버 삭제 가능
좌상단의 Dashboard 클릭시
- 빨강 - 주황 - 파랑 순으로 임계치와 가까워진 서버를 표시
- 빨강은 현재 상태가 임계치 이상인 경우. 주황은 온도가 임계치 - 5℃ 이내 or Power가 - 10 Watts 이내인 경우.
- 빨강의 경우 임계치가 넘은 값을 붉은색의 텍스트로 나타내며 온도만 넘은 경우 온도를, 파워만 넘은 경우 파워만 나타내며 둘 다 넘은 경우 두 개 다 표시된다.
- 최초의 임계치 값은 60 / 200 으로 고정. 변경은 상세보기 페이지에서 가능
- 카드의 상단 색상 부분 클릭시 상세보기 페이지로 이동
- 센서 이름와 값으로 매핑되어 나타내어진다.
- 온도의 경우 CPU를 기준으로 나타낸다.
- 파워의 경우 현재 소비중인 Watts로 나타낸다.
- Systems, Chassis, Processors, Memory로 구성
- 해당 하는 사항을 텍스트로 확인 가능
- Grafana embedded Charts
- Grafana Chart. 상단에 온도, 하단에 파워 그래프 표시.
- 우상단에서 시간 조정, Save Dashboard, Dashboard Setting 등 변경 가능
- 임계치 설정. 온도, 파워 임계치 설정 가능.
- Dashboard에서 나타나는 위험도에 따른 임계치도 이 값을 따른다.
- Alert 받을 이메일 추가 가능.
- 임계치를 넘긴 시간이 5분 이상이 되면 이메일 발송.
- bios 정보를 텍스트로 확인 가능
- log status는 어떤 로그인지에 대한 정보를 나타낸다.
- log list는 해당하는 로그 이름과 날짜, 메시지를 나타낸다.
- 최근 10개의 로그만 출력된다.