ラベル Job Arranger kr の投稿を表示しています。 すべての投稿を表示
ラベル Job Arranger kr の投稿を表示しています。 すべての投稿を表示

2017年4月29日土曜日

Job Arranger외부I/F jobarg_exec

Job Arranager의 jobnet을 외부에서 실행하는 방법이 없을까? 어떻게 하면 될지를 모르는 분을이 있습니다. 저번에 쓴 Job Arranger에서 ESXi의 사상호스트 자동 실행 https://naiggy.blogspot.jp/2017/04/job-arranger-esxi.html
을 어떻게 하면 Zabbix에서 실행을 시킬수 있는지 알아보도록 하겠습니다.

Job Arrnager의 Jobnet은 외부에서 실행시키는 것이 가능합니다.
명령어로는 jobarg_exec을 사용합니다.
Shell script에서 실행하는 경우에는
jobarg_exec -z 192.168.137.138 -U Admin -P zabbix -j JOBNET_9
써 넣습니다.
명령어의 자세한 내용은 일보어입니다만
https://www.jobarranger.info/jaz/operation-manual_3.2/10external-exec.html

를 참조해 주시길 바라겠습니다.

저의 경우를 설명드리면
-z은 Job Arranger의 호스트 IP입니다.
-U은 JOBNET를 작성한 유져입니다.
-P은 유져의 패스워드입니다.
-j은 실행할 JOBNET ID입니다.

이것을 실행하면
[root@localhost ~]# jobarg_exec -z 192.168.137.138 -U Admin -P zabbix -j JOBNET_9
jobarg_exec [2413]: Registry number :  [1600000000000000001]
[root@localhost ~]#

가상호스트가 실행되는 것이 확인이 가능하실 것입니다.

이상입니다.

Job Arranger에서 ESXi의 가상호스트 자동 실행

Zabbix에서 작동하고 있는지 감시하는 가상호스트가 만약에 정지해있다면, 가상호스트를 기동하지 않으면 안될 것입니다.  기동하는 방법으로는 vSphere에 로그인해서 파워온을 하거나? ESXi에 ssh접속해서 기동하지 않으면 안됩니다.
어떻게 하면 run boot같이 자동으로 호스트를 기동할수 있을까 생각해 보았습니다.
그래서, 알아낸것이 Job Arranger를 이용한 자동 실행이었습니다.
그방법을 여러분들께 소개해 보도록 하겠습니다.
Job Arrnager는 C로 만들어져서 Linux환경에 적합하다고 생각됩니다.

1.ESXi에 Job Arranger Agent를 인스톨

ESXi에는 rpm 명령어가 없어서 rpm으로 인스톨할수 없습니다. 그래서 RPM을 압축해제 하기위해 해제가 가능한 서버에서 jobarranger-agentd-3.2.0-1.el6.x86_64.rpm을 Download받어서 rpm2cpio jobarranger-agentd-3.2.0-1.el6.x86_64.rpm | cpio -idv
명령어로 압축을 해제를 합니다.
압축 해제하면 etc, usr, var라고 하는 폴더가 보일 것입니다. 그것을 하나의 zip파일로 만듭니다. ESXi호스트에  접속을 해서 /vmfs/volumes/datastore1 밑에 job 폴더를 작성합니다. 작성한 job폴더에 zip파일을 넣고 해동합니다.

참고1: ESXi 서버는 reboot를 하면 모든것이 새로 작성됩니다만, /vmfs/volumes/datastore*밑은 새로 넣지 않기때문에 임의적인 install은 여기에 넣는 것이 좋습니다.
참고2: job폴더는 여러분들의 환경에 맞게 변경하셔도 됩니다.

2.jobarg_agentd.conf파일 수정

해동한 zip파일안에서 jobarg_agentd.conf를 수정합니다.
저의 경우는
/vmfs/volumes/datastore1/job/etc/jobarranger에 있으므로 이것을 수정하겠습니다.
vi jobarg_agentd.conf

Hostname=esxi6
JaExtjobPath=/vmfs/volumes/datastore1/job/etc/jobarranger/extendedjob
TmpDir=/vmfs/volumes/datastore1/job/var/lib/jobarranger/tmp
JaLogFile=/vmfs/volumes/datastore1/job/var/log/jobarranger/jobarg_agentd.log
JaPidFile=/vmfs/volumes/datastore1/job/var/run/jobarranger/jobarg_agentd.pid
JaDatabaseFile=/vmfs/volumes/datastore1/job/var/lib/jobarranger/jobarg_agentd.db
JaExtjobPath=/vmfs/volumes/datastore1/job/etc/jobarranger/extendedjob

의 부분을 환경에 맞게 수정합니다.
저의 같은 PATH라면 이것을 붙이셔도 됩니다.
Hostname은 Zabbix에 등록한 호스트 이름을 써 넣습니다.

3.jobarg_start.sh작성

cd /vmfs/volumes/datastore1/job
에서 작업을 하겠습니다.
vi jobarg_start.sh
##JOB ARRANGER START SHELL
JOB_EXE=/vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd
JOB_CNF=/vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf

cd `dirname $0`
./jobarg_stop.sh

${JOB_EXE} -c ${JOB_CNF}
exit $?

저의 경우는 간단하게 적어 놓았습니다.
중복체크 대신 stop처리를 넣었습니다.

4.jobarg_stop.sh작성

vi jobarg_stop.sh
cd `dirname $0`

JOB_PROCESSES=`ps -Tcjstv | grep jobarg_agentd.conf | grep -v grep | awk '{ print $1 }'`

for i in  $JOB_PROCESSES
do
  echo $i
  kill -9 $i
done
exit $?

저의 경우는 간단하게 적어 놓았습니다.
여러분들도 환경에 맞게 쓰시길 바라겠습니다.

5.실행권한

chmod 700 jobarg_start.sh jobarg_stop.sh

6. job arranger 실행

./jobarg_start.sh
로 실행합니다.

7.Process확인

https://naiggy.blogspot.jp/2017/04/esxi_13.html
에서 소개한것과 같이 확인을 해보시길 바라겠습니다.

[root@localhost:~] ps -Tcjstv | grep job
35227  35227  jobarg_agentd                  35227  User,Native    WAIT    UWAIT   0,1       0.26419   /vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd -c /vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf
35282  35282  jobarg_agentd                  35282  User,Native    WAIT    USLP    0,1       2.359539  /vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd -c /vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf
35283  35283  jobarg_agentd                  35283  User,Native    WAIT    KTCP    0,1       0.691     /vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd -c /vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf
35818  35818  grep                           35818  User,Native    WAIT    UPIPER  0,1       0.0       grep job
[root@localhost:~]

기동을 확인했습니다.

8.esxi firewall을 열어놓습니다.ファイアウォールを開けます

https://naiggy.blogspot.jp/2017/04/esxi-firewall.html
참조해 주십시요.

9.Zabbixへホスト登録

Zabbix GUI에서 ESXi의 호스트를 등록합니다.
저의 경우는 호스트 명을 esxi6으로 하였습니다.
Zabbix의 action에 기동 script를 넣습니다.
https://naiggy.blogspot.jp/2017/04/job-arrangerifjobargexec_29.html
참조 바랍니다.

10.JobNet를 등록합니다.

JOB의 등록에 있는 실행란에
test1의 호스트를 실행하는 명령어 입니다.
RUN_HOST=`vim-cmd vmsvc/getallvms | grep test1 | awk '{ print $1 }'`
vim-cmd vmsvc/power.on ${RUN_HOST}






















이 JOB이 실행하면 자동으로 test1의 호스트에 파워온이 됩니다.

결론

Zabbix의 Template Virt VMware Guest: Power state아이템과 함께 쓰면 자동으로 호스트를 기동하는 것이 가능합니다.
반대로 이야기하면 정지하는 것도 가능하므로 이것을 참고로 사용하시길 바라겠습니다.

ESXi를 reboot하게되면 Job Arranger가 자동으로 실행되질 않습니다.
그래서,
vi /etc/rc.local.d/local.sh
/vmfs/volumes/datastore1/job/jobarg_start.sh
을 추가해 주십시요.
그러면, ESXi을 reboot해도 자동으로 job arranger가 기동될 것입니다.

이상입니다.

2017年3月30日木曜日

job arranger의 job 등록 방법

Job Arranger에 job을 등록하는 방법을 설명하겟습니다.
첨부 그림이 일본어로 된점 양해해 주시길 바랍니다.
그림과 같은 위치에 같은 내용의 글이 한글로 되어 있습니다.

1.Zabbix에 호스트를 등록합니다.

Zabbix 호스트 등록화면에 Job을 실행 하고 싶은 호스트를 등록합니다.
만약, 등록되어있다면 이등록 화면은 skip합니다.

2.Job Arranger.conf파일을 수정합니다.

# vi /etc/jobarranger/jobarg_agentd.conf
Server=192.168.137.138 ##Job Arranger Server의 호스명 또는 IP를 작성합니다.

Hostname=jobagent  ##Zabbix에 등록한 호스트명을 씁니다.
편집후 재실행을 합니다.
# systemctl restart jobarg-agentd

3.Job Manager에서 Job등록

①JOBNET작성하기 클릭하기

Private JOBNET를 선택하고 오른쪽 마우스를 클릭합니다.
그럼, 위와 같은 화면이 나오고 신기 추가를 클릭합니다.

 ②JOBNET 작성하기

JB NET ID에는 uniq ID를 사용합니다. Defualt를 사용해도 상관없습니다.
JOBNET 이름에는 한국말 또는 영어로 이름을 부여 합니다.
설명에는 JOBNET에 대해서 어떤 기능을 하는지 알기 쉽게 써놓습니다.
다름 부분에 대해서는 나중에 설명드리도록 하겠습니다.

메뉴가 있는 곳에서 필요한 아이콘을 드레그 합니다.
JOBNET에서는
START는 반듯이 1개가 필요합니다.
END는 1개 이상이 필요합니다.
JOB을 하기 위해서 JOB도 드레그를 합니다.

연결선을 그리기 위해서
START를 먼저 클릭을 하고, 다음으로 움직일 JOB을 클릭합니다.
그리고, 마우스 오른쪽을 클릭하면 위와 같은 화면이 나옴니다.
직선을 할지 곡선을 할지 정해서 클릭을 하면,
두개의 아이콘이 연결됩니다.

③JOB내용 설정
END까지 연결이 끝나면, JOB을 선택하고 마우스 오른쪽을 클릭합니다.
※참고: 먼져 JOB아이콘을 클릭해서 JOB내용을 설정해도 상관없습니다.


JOB ID에는 JOBNET에서 사용되는 uniq한 ID를 상요합니다. Default ID를 사용해도 상관없습니다.
HOST 명에는 Zabbix화면에서 등록한 host명을 선택합니다.
실행이라고 써있는 곳은 bash를 그냥 씁니다.
command라든지, 실행 파일을 써도 괜찮습니다.
저의 경우는 간단하게 ls를 썻습니다. 필요한 command를 쓰면 문제 없이 실행 됩니다.
실행 파일을 쓸때에는 cron과 같이 쓰면 됩니다.


④JOBNET 저장 

JOBNET화면 오른쪽 밑에보면 등록버튼을 클릭합니다.

⑤JOBNET 실행

ジョブネットを選択して、右クリックをして、有効をクリックします。
작성한 JOBNET를 선택하고, 마우스 오른쪽 버튼을 클릭하면, 유효라고 보입니다.
그것을 클릭합니다.


유효를 클릭한 JOBNET를 또, 마우스 오른쪽을 클릭하면, 즉시 실행을 클릭합니다.
JOBNET을 실행하시겠습니까?라고 물어보면 yes를 클릭합니다.


⑥JOBNET 실행결과
JOBNET의 실행 결과은 Job Arranger Manager의 텝중에 JOBNET 실행관리를 클릭합니다. 그러면 밑에와 같은 화면이 나옴니다.

이상입니다.



2017年3月8日水曜日

Job Arranger Install (CentOS 7, MariaDB) kr

Job Arranger을 인스톨 하기 전에 반듯이 Zabbix를 인스톨 하고 있어야 합니다.
Job Arranger는 Zabbix의 DB를 빌려사용하므로 Zabbix 인스톨이 필수라고 말할수 있습니다.
CentOS 7과 MariaDB를 기준으로 내용을 쓰겠습니다.
아직, Zabbix를 인스톨 하지 않으신 분이 있으시면
https://naiggy.blogspot.jp/2017/02/10-zabbix-install-mariadb.html
여기를 참조해 주세요.

1. Job Arranger Server & Job Arranger Agent Install

MySQL lib가 있는 서버에서 인스톨 하시길 바라겠습니다.
# wget https://www.jobarranger.info/redmine/projects/job-arranger-for-zabbix/repository/raw/3.2.0/Job%20Arranger%20Server/jobarranger-server-mysql-3.2.0-1.el7.x86_64.rpm

# wget https://www.jobarranger.info/redmine/projects/job-arranger-for-zabbix/repository/raw/3.2.0/Job%20Arranger%20Agent/jobarranger-agentd-3.2.0-1.el7.x86_64.rpm

# rpm -ivh jobarranger-server-mysql-3.2.0-1.el7.x86_64.rpm
# rpm -ivh jobarranger-agentd-3.2.0-1.el7.x86_64.rpm
# cat /usr/share/doc/jobarranger-server-mysql-3.2.0/database/mysql/MySQL_JA_CREATE_TABLE.sql | mysql -uzabbix zabbix -p
Enter password:
# cat /usr/share/doc/jobarranger-server-mysql-3.2.0/database/data/JA_INSERT_TABLE.sql | mysql -uzabbix zabbix -p
Enter password:

# vi /etc/jobarranger/jobarg_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

vi /etc/jobarranger/jobarg_agentd.conf
Hostname=Zabbix server

# systemctl start jobarg-server
# systemctl start jobarg-monitor
# systemctl start jobarg-agentd
# systemctl enable jobarg-server
# systemctl enable jobarg-monitor
# systemctl enable jobarg-agentd

# mysql -uroot
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
MariaDB [(none)]> exit

MySQL Port:3306
# firewall-cmd --add-port=3306/tcp --zone=public --permanent
Job Arranger Server → Job Arranger Agent : 10055
# firewall-cmd --add-port=10055/tcp --zone=public --permanent
Job Arranger Agent → Job Arranger Server : 10061
# firewall-cmd --add-port=10061/tcp --zone=public --permanent
# firewall-cmd --reload
만약, firewalld이 정지하고 있으면 위의 작업은 필요하지 않습니다.

2. ODBC 설정

ODBC를 먼저 인스톨 합니다.
제어판 → 관리도구 → 데이터 원본 (ODBC)



MySQL ODBC Unicode Driver를 선택합니다.

















Data Source Name에는 Job Arranger Manager의 configure파일에 쓸 이름을 적습니다.
반듯이, test버튼을 눌러 성공하는지를 확인 합니다.

3.Job Arranger Manager Install








https://www.jobarranger.info/redmine/projects/job-arranger-for-zabbix/repository/raw/3.2.0/windows/Job%20Aranger%20Manager/Job_Arranger_Manager_x64.msi

여기에서 환경에 맞는 Job Arranger Manager를 Download하여 실행합니다.















Job Arranger Manager를 사용할수 있는 유져를 선택합니다.
















Job Arranger Manager와 job Arranger Manager View를 선택하는 하면에서는
용도에 맞게 인스톨 합니다.
View의 경우는 참조 외에는 할수가 없습니다.

4.Job Arranger Manger Conf파일의 설정

conf파일이 있는 곳은



conf파일의 내용은
<JobconDBInfo>
  <DBInfo>
    <JobconName>test1</JobconName> <=Manager를 실행하면 왼쪽위에 표시
    <DBUser>zabbix</DBUser>       <=Zabbix DB Login User
    <DBPassword>zabbix</DBPassword>   <=Zabbix DB Login Password
    <DBSource>test1</DBSource>             <=ODBC작성시Data Source Name
    <DBType>0</DBType>                   <=0:MySQL 1:PostgreSQL
    <HealthCheckFlag>1</HealthCheckFlag><=MySQL의 접속 타임아웃 방지
    <HealthCheckInterval>5</HealthCheckInterval><=Heathcheck간격(초)
    <JaZabbixVersion>3</JaZabbixVersion><=Zabbix 2.2이상은3을 설정
  </DBInfo>
  <DBInfo>
    <JobconName>pgsql-odbc</JobconName>
    <DBUser>zabbix</DBUser>
    <DBPassword>zabbix</DBPassword>
    <DBSource>pgsql-odbc</DBSource>
    <DBType>1</DBType>
    <HealthCheckFlag>0</HealthCheckFlag>
    <HealthCheckInterval>5</HealthCheckInterval>
    <JaZabbixVersion>3</JaZabbixVersion>
  </DBInfo>
</JobconDBInfo>
설정하고 나서 Job Arranger Manager의 아이콘을 클릭합니다.

일본에서 만든것이므로 일본어로 표시 됩니다.
그러나 작업 환경은 한글로 표시됩니다.
이것으로 Job Arranger인스톨을 완료 하겠습니다.



2017年3月7日火曜日

Job Arranger 개요

http://enterprise.zabbix.co.jp/solutions/4555 여기를 번역하였습니다.
Zabbix에 딱 맞는 스케줄(schedule) 관리 툴이 있어 소개 합니다.

1. Job Arranger의 개요.
Job Arranger은 Zabbix에 Add On 하는 것으로 편리하게 이용할수 있는 Job 관련프로그램 입니다. 풀 오픈소스(OSS) 이며 상용의 Job 프로그램과 비교해도 절대 뒤쳐지지 않는 기능을 가지고 있습니다..

2. 특징.

  1. Zabbix에 간단하게 추가하여, 손 쉽게 Job 관리를 할 수있습니다.
  2. C언어로 만들어져 경량의 소프트웨어로 높은 퍼포먼스와 안정성을 보장합니다.
  3. 공식 서포트와 도큐먼트가 충실 합니다. (일본어로 되어 있습니다.)

3. 아키텍쳐




Job Arranger Server

Job의 실행관리를 하는 프로세스입니다.
데이터베이스에 보존하고 있는 JobNet 또는 스케줄, 칼렌다의 정보를 기본으로 하여, 해당 Job Agent에 작업을 지시 합니다. Zabbix의 데이트베이스를 공유하므로, 호스트, 유져, 유져의 권한을 Zabbix와 공유합니다.

Job Arranger Agent

Job의 실행을 담당하는 프로세스입니다.
Job Agent은 Job Arranger Server로 부터 받은 Job을 실행하고, 실행한 결과를 Job Arranger Server에 보냅니다. Job Agent은 SQLite를 사용하고 있어서 Agent를 재실행하고 나서도, Journaling file로 부터 최근의 정보를 받아 그상태를 유지하거나, 작업 결과를 Job Arranger서버에 보냅니다.

Job Arranger Manager

Jobnet의 작성, 칼렌다 작성, 스케줄 작성등을 하고, Job의 실행 상태등을 확인할 수 있는 클라이언트 소프트 웨어입니다. GUI을 기본으로 하는 windows 어플리케이션 입니다. 여기서 Zabbix에 등록한 호스트, 유져, 유져 권한등을 이용합니다.

Job Arranger Monitor 

JobNet의 전개(loading), 실행을 감시하는 프로세스 입니다.
만약에 Jobnet가 스케줄에 맞게 전개 되지 않았을 경우에, 그내용을 로그파일에 출력합니다.


4. 주의 사항:

Job Arranger와 Standalone이 아니므로 절대로 Job Arranger만 사용하시는 것은 불가능 합니다.

인스톨 방법은
https://naiggy.blogspot.jp/2017/03/job-arranger-install-centos-7-mariadb-kr.html
참조 바랍니다.

2017年3月1日水曜日

AWS에 Zabbix와 Job Arranger를 인스톨 하려면

AWS에 Zabbix와 Job Arranger를 인트톨 하려면 매우 귀찮게 되는 경우가 있습니다.
그래서, 여러분에께 간단이 할수 있는 AMI를 소개 해볼까 합니다.
AWS Region Tokyo


■MySQL用
 OS:amzn-ami-hvm-2016.09.1.20161221-x86_64-gp2
 DB:MySQL5.7
 Zabbix: 3.0.7
    Job Arranger: 3.2
    AMI ID:ami-739be014

■ PostgreSQL用
 OS:amzn-ami-hvm-2016.09.1.20161221-x86_64-gp2
 DB:Postgresql9.5
 Zabbix: 3.0.7
    Job Arranger: 3.2
    AMI ID:ami-c6a7dca1

이상 입니다.