SharedIT | 묻고 답하기(AMP)

서버 별 주간 점검 솔루션 문의 드립니다

선배님들 안녕하십니까!


이번에 첫 직장으로 입사하여, 전산(인프라) 직무를 맡게 되었습니다.

리눅스 기초적인 지식 및 쉘 스크립트도 간단하게 작성은 가능하지만,

아직 복잡한 스크립트는 작성이 힘듭니다...


질문을 잘해야 답변도 잘 받을 수 있다는 것을 알고 있습니다만, 제 부족한 글솜씨를 넓으신 마음으로 이해해주시면 정말 감사하겠습니다.


본론으로 넘어와서


제 통상 업무 중에 약 60대 정도의 서버에 하나 씩 일일이 접속하여,


df -TM(디스크 용량 점검), free -m(메모리 사용량 점검), mpstat(CPU 사용량 점검)

상기 3개의 명령어를 입력 후 엑셀에 일일이 적어야 하는 업무를 매주 한 번씩 진행해야하는데요.


이 과정을 최대한 자동화 하고 싶습니다.


제가 생각한 자동화 구성은

약 60대의 서버에 hostname, date, df -TM, free -m, mpstat 명령어를 실행하는 쉘 스크립트를 

crond 로 스크립트 실행 예약한 다음에  

스크립트 실행 결과를 "날짜.txt" 로 저장 후 제 메일로 발송하는 과정까지 생각해봤는데요,


문제는 수십대의 서버로 부터 받은 실행 결과 파일을 다시 엑셀에 옮겨 적어야 합니다...


혹시 선배님들이라면 어떻게 이 문제를 해결하셨을지 여쭤보고 싶습니다..!


글솜씨 부족한 제 글을 끝까지 읽어주셔서 정말 감사합니다!


Tags : 태그가 없습니다.

6개의 답변이 있습니다.

Genghis Khan
  0 추천 | 2년 이하 전

자빅스도 사용해 보았지만

splunk, 기가몬도  괜찮아요

여러가지 검토해보세요


빨간신발
  0 추천 | 2년 이하 전

아래 topkslee님이 말해주셨듯이

자빅스를 사용하고 계시면 자빅스의 db에서 해당 데이터만 추출하시면 됩니다

select문 하나 잘 작성해시고, 해당 쿼리로 정해진 시간어 실행하여 csv파일로 떨구도록 예약작업을 등록하세요

그리고 해당작업이 완료될 수 있는 충분한 시간뒤에 해당 csv파일을 담당자한테 이메일 발송이 되도록 작업하시면 됩니다

꼭 엑셀파일이 필요한게 아니라면 csv는 생략하고 메일 본문에 셀렉트한 결과를 직접 발송하셔도 됩니다

초보입니다 | 2년 이하 전

자빅스 DB를 까먹고 있었네요 ㅠㅠ 답변 주셔서 정말 감사합니다!

명동쓰레빠
  0 추천 | 2년 이하 전

적은 대수는 아니네요 솔루션상담실에 문의 해보시길 바랍니다.


초보입니다 | 2년 이하 전

솔루션 상담실에도 추후에 문의 해보겠습니다!!


답변 감사합니다.

topkslee
  0 추천 | 2년 이하 전

서버 60대를 매주 한번씩 Disk 용량, 메모리 용량, CPU 사용량을 엑셀에

기록하는 것을 자동화하시려고 하는것 같은데요.


스크립트 개발 등 여러단계를 거치면 가능하겠지만

zabbix를 운영중이라고 하셨는데 가장 쉬운 방법을 두시고

왜 어려운 방법으로 구현하시려는 이유가 있는지 모르겠네요.

zabbix 운영 중이시라면 zabbix 데이터 수집 DB가 보통 mariaDB 사용할겁니다.

zabbix DB에 기록하시려는 위 모든 정보가 수집되어 저장되어 있습니다. 

엑셀 매크로에 zabbix DB에서 데이터 조회하는 vba 매크로만 하나 만들면

클릭 한번으로 끝날것 같은데요.

이 방법도 참고해보세요~

초보입니다 | 2년 이하 전

아!!! 자빅스 DB가 있다는 사실을 까먹고 있었네요 ㅠㅠ

답변 주셔서 정말 감사합니다!!

빨간신발
  0 추천 | 2년 이하 전

자빅스같은 모니터링 솔루션을 사용하세요

초보입니다 | 2년 이하 전

답변 감사합니다!!


자빅스는 이미 사용하고 있는데, 엑셀로 정리된 표 같은것이 필요하다고 하시더라구요,,,ㅠㅠ

wansoo
  0 추천 | 2년 이하 전

그 정도 작업이라면 script로 만들어 사용해도 충분할 것 같습니다.

60대의 서버를 원격 접속해서 동일한 명령들을 실행시켜서 결과를 파일로 만들어내는 작업이라면 어렵지 않게 만들 수 있겠고요.

원격 서버에 어떻게 자동 접속하게 할 것이냐 하는것이 어렵게 느껴질 수도 있을 것 같은데....

expect shell을 이용하는 방법도 있지만,

ssh를 이용하는게 더 편할 것 같아 보이네요.


expect shell을 이용하면 접속하려는 컴퓨터에 expect shell을 설치해서 사용하면 되고, telnet이나 ssh 모두 이용할 수 있겠고요.

ssh를 이용해서 접속한다면 접속되는 서버 모두에 ssh 서비스를 모두 설치해서 설정해야 겠고, 접속하려는 컴퓨터에는 ssh 클라이언트를 설치해서 사용하면 되겠고요.


각 서버별로 접속하는 ID, 암호가 모두 다르다면 다른 계정 정보들을 별도 파일로 저장해서 관리해야 하거나, ssh 인증 키값을 서버, 클라이언트 모두 등록시켜서 자동 인증되게 해서 사용할 수도 있겠고...


초보입니다 | 2년 이하 전

답변 해주셔서 정말 감사합니다!!

명령어 및 ssh 접속 까지 하는 스크립트는 작성 및 테스트도 완료 하였습니다!!!

하지만 

질문 드린것 처럼 스크립트 실행 결과를 엑셀에 일일이 적어야하는 불편함을 
해결 할 수 있을지 실례를 무릅쓰고 여쭤보고 싶습니다...


다시 한 번 답변 해주셔서 감사합니다!!

wansoo | 2년 이하 전

파일을 서버별로 분리해서 처리하는 것 보다는

결과들을 한개 파일로 합쳐서 처리하는게 좀 더 편하지 않을까 싶어 보이고요.

결과 내용에서 원하는 값만을 추출해서 콤마나 잘 사용하지 않는 구분 문자로 구분해서 저장하는 작업이 필요할 것 같고요.

만들어진 Text 파일을 Excel로 변환 처리해서 사용하면 되겠네요.

Text를 Excel로 변환하는 다양한 방법들이 있겠는데...

Python을 이용하는 것이 편할 것 같아 보이고요.

Python으로 변환할때도 다양한 방법이 있겠는데...

openpyxl을 직접 활용하고 있는데... 사용하기도 큰 어려움이 없는것 같고 편하고 좋아 보이더군요.


초보입니다 | 2년 이하 전

말씀해주신 내용 한 번 찾아보겠습니다...!

감사합니다! 


오늘도 행복한 하루 보내세요~!