선배님들 안녕하십니까!
이번에 첫 직장으로 입사하여, 전산(인프라) 직무를 맡게 되었습니다.
리눅스 기초적인 지식 및 쉘 스크립트도 간단하게 작성은 가능하지만,
아직 복잡한 스크립트는 작성이 힘듭니다...
질문을 잘해야 답변도 잘 받을 수 있다는 것을 알고 있습니다만, 제 부족한 글솜씨를 넓으신 마음으로 이해해주시면 정말 감사하겠습니다.
본론으로 넘어와서
제 통상 업무 중에 약 60대 정도의 서버에 하나 씩 일일이 접속하여,
df -TM(디스크 용량 점검), free -m(메모리 사용량 점검), mpstat(CPU 사용량 점검)
상기 3개의 명령어를 입력 후 엑셀에 일일이 적어야 하는 업무를 매주 한 번씩 진행해야하는데요.
이 과정을 최대한 자동화 하고 싶습니다.
제가 생각한 자동화 구성은
약 60대의 서버에 hostname, date, df -TM, free -m, mpstat 명령어를 실행하는 쉘 스크립트를
crond 로 스크립트 실행 예약한 다음에
스크립트 실행 결과를 "날짜.txt" 로 저장 후 제 메일로 발송하는 과정까지 생각해봤는데요,
문제는 수십대의 서버로 부터 받은 실행 결과 파일을 다시 엑셀에 옮겨 적어야 합니다...
혹시 선배님들이라면 어떻게 이 문제를 해결하셨을지 여쭤보고 싶습니다..!
글솜씨 부족한 제 글을 끝까지 읽어주셔서 정말 감사합니다!
해당 질문의 문제를 해결, 도움이 되는 선택된 답변이 있습니다.
작성된 다른 답변도 확인해 보시기 바랍니다..
6개의 답변이 있습니다.
자빅스도 사용해 보았지만
splunk, 기가몬도 괜찮아요
여러가지 검토해보세요
아래 topkslee님이 말해주셨듯이
자빅스를 사용하고 계시면 자빅스의 db에서 해당 데이터만 추출하시면 됩니다
select문 하나 잘 작성해시고, 해당 쿼리로 정해진 시간어 실행하여 csv파일로 떨구도록 예약작업을 등록하세요
그리고 해당작업이 완료될 수 있는 충분한 시간뒤에 해당 csv파일을 담당자한테 이메일 발송이 되도록 작업하시면 됩니다
꼭 엑셀파일이 필요한게 아니라면 csv는 생략하고 메일 본문에 셀렉트한 결과를 직접 발송하셔도 됩니다
초보입니다 | 2년 이하 전
자빅스 DB를 까먹고 있었네요 ㅠㅠ 답변 주셔서 정말 감사합니다!
적은 대수는 아니네요 솔루션상담실에 문의 해보시길 바랍니다.
초보입니다 | 2년 이하 전
솔루션 상담실에도 추후에 문의 해보겠습니다!!
답변 감사합니다.
서버 60대를 매주 한번씩 Disk 용량, 메모리 용량, CPU 사용량을 엑셀에
기록하는 것을 자동화하시려고 하는것 같은데요.
스크립트 개발 등 여러단계를 거치면 가능하겠지만
zabbix를 운영중이라고 하셨는데 가장 쉬운 방법을 두시고
왜 어려운 방법으로 구현하시려는 이유가 있는지 모르겠네요.
zabbix 운영 중이시라면 zabbix 데이터 수집 DB가 보통 mariaDB 사용할겁니다.
zabbix DB에 기록하시려는 위 모든 정보가 수집되어 저장되어 있습니다.
엑셀 매크로에 zabbix DB에서 데이터 조회하는 vba 매크로만 하나 만들면
클릭 한번으로 끝날것 같은데요.
이 방법도 참고해보세요~
초보입니다 | 2년 이하 전
아!!! 자빅스 DB가 있다는 사실을 까먹고 있었네요 ㅠㅠ
답변 주셔서 정말 감사합니다!!
자빅스같은 모니터링 솔루션을 사용하세요
초보입니다 | 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년 이하 전
말씀해주신 내용 한 번 찾아보겠습니다...!
감사합니다!
오늘도 행복한 하루 보내세요~!