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月28日火曜日

Job Arranger 1000ジョブの実行

Job Arrangerのパフォーマンス(Performance)をテストしました。
1000ジョブを同時に実行した場合はCPUがそのくらいあがるか?を確認しました。

Job Arranger Serverの環境は仮想環境です。
OS:CentOS Linux release 7.3.1611 (Core)
DB:Server version: 10.1.21-MariaDB MariaDB Server
CPU: 1vCPU(Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz)
Memory:2G

パラメタ変更:TimeoutのDefaultは5秒ですがそれを30秒に変更。
 10609:20170328:115111.499 [ERROR] [Z3005] query failed: [1205] Lock wait timeout exceeded; try restarting transaction [insert into ja_run_value_after_table (inner_job_id, inner_jobnet_id, value_name, after_value) values (31740, 1377, 'JOBARG_MESSAGE', '[JARUNICONJOB200012] Cannot send data:inner_jobid [31740], message [jobid: 31740 is not running]')]
Timeoutによるエラーが起きましたの変更しました。

それ以外はDefaultです。DBも初期値のままです。
12時~15時まで15分間隔で実行して見ました。

テストシナリオ

1.10ジョブのジョブネットを作成

このテストはジョブサーバーのテストですので
僕の場合は3つのホストにジョブの実行を分散しました。

2.1番のジョブネットを10回実行するジョブネット

1番のジョブネットを並列で10回テストしますので
計100回のジョブのテストになります。

3.2番のジョブネットを10回実行するジョブネット

2番のジョブネットを並列で10回テストしますので
計1000回のジョブのテストになります。

結論

CPUのIDLEをチェックしました。
2時間中最小値は75.76%です。
CPUを24.24%を利用することがわかりました。

Job ArrangerはCPUをたくさん使用しないので低リソースでも問題なく運用ができると思います。ジョブ関連ツールを選ぶとしてご参考しましょう。

以上です。

2017年3月25日土曜日

MaxHousekeeperDelete에 대해서

MaxHousekeeperDelete에 관해서 설명드리겠습니다.

MaxHousekeeperDelete은 Default가 5000으로 설정되어 있습니다.
이 파라미터는 HousekeepingFrequency에 설정된 시간에 삭제하는 최대치라고 생각하시면 일부는 맞고, 일부는 틀립니다.
만약, HousekeepingFrequency의 설정을 24로 했다고 예를 들겠습니다. 그럼 쌓인 데이터를 지우는데 최대 5000까지 밖에 못지운다는 이야기입니다. 그럼, 하루에 10000데이터가 쌓인다면 언젠가는 DB에 데이터가 넘쳐 멈춘다는 이야기 입니다.
그럴까요?
그래서 MaxHousekeeperDelete은 Housekeeper와 관계는 있습니다만, 위에 설명드린 것과는 관계가 없는 것입니다. 이 파라메타는, ITEM을 삭제할때 사용되는 파라메타 입니다.
삭제할 ITEM에 지금 까지 데이터가 1000만건 있다고 하겠습니다. 그럼 ITEM을 삭제하니한번에 이걸 지울까요? 그럼, DB에 부하가 엄청 걸립니다.
그때 사용되는 파라메타가 MaxHousekeeperDelete입니다.
삭제한 ITEM의 데이터를 한번에 지우지 않기 위해서, 매시간 얼마만큼의 데이터를 기울지를 결정하는 파라메타입니다.

이 작업을 확인하기 위해서는, 하나의 ITEM을 삭제 해봅니다.
그럼 housekeeper라는 테이블에 삭제한 ITEM이 Insert되어진 것이 보일것입니다.
이 ITEM은 데이터가 전부 삭제되면 테이블로 부터 지워지게 됩니다.

제가 MaxHousekeeperDelete을 설명하는 이유는
Housekeeper가 무거워져서 MaxHousekeeperDelete을 조절하는 분들이 계십니다.삭제한 ITEM이 있다면 효과적이지만, 만약에 없고 계속 무겁다면 DB 튜닝을 추천드리기 위해 이글을 썻습니다.

많은 참조 바랍니다.

MaxHousekeeperDeleteについて

MaxHousekeeperDeleteに関して説明します。

MaxHousekeeperDeleteはdefaultが5000になっています。
これはHousekeepingFrequencyに設定した時間に削除する最大値と思うと一部は正しい、一部は間違いです。
HousekeepingFrequencyを24にしてHousekeeperをすると一日削除する最大値が5000行になりそれ以上のデータは削除はできなくなります。正しいでしょうか?そしたら、データは積み重なっていつかDBが溢れます。
ですのでMaxHousekeeperDeleteはHousekeeperには関係があるですが私たちが知っている処理ではなく、ITEMが削除された場合実行されるパラメタです。
今まで、削除対象になるITEMのデータが1000万件だとすると一気に削除するならDBに大きい負荷がかかります。
そこで使われているものがMaxHousekeeperDeleteになります。
削除されたITEMのデータは一回に多くてもMaxHousekeeperDelete以上は削除しないことです。

この作業を確認するためにはITEMを削除してみてください。
そうするとhousekeeperテーブルに削除したITEMがInsertされます。
このITEMはデータが全部削除されるとテーブルからなくなります。

私がMaxHousekeeperDeleteに説明する理由は
Housekeeperが重くなっていることでMaxHousekeeperDelete調整する人がいます。そこで削除したITEMがある場合は効果的ですが、削除したITEMがなかった場合はDBのチューニングお願いいたします。
ご参考まで

以上です。

job arrangerのjob登録方法




Job ArrangerのJob登録手順を説明します。

1.Zabbixにホストを登録します。


 Zabbix ホスト作成ボタンをクリックしてJob Arrangerがインストールされているサーバーを作成します。
既に、登録されているホストはこの作業はいらないです。


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のジョブの登録

①ジョブネット作成クリック
プライベートジョブネットを選択して右クリックします。
そうすると右の画面と同じ画面が開きますのでそこで
新規追加をクリックします。

 ②ジョブネット作成

ジョブネットIDにはユニークIDを書きます。Defaultを利用しても構いません。
ジョブネット名には日本語で名前を書きます。
説明にはわかりやすい説明を書きます。
他のところは後で纏めて説明します。

必要なアイコンをドラッグします。
STARTは必ず1つ必要です。これをドラックします。
ENDは必ず1つ以上必要です。これをドラックします。
ジョブを書くために。これをドラックします。

STARTと先にクリックしてShiftを押しながらジョブをクリックします。
その後右をクリックすると上の画面になります。
曲線をするか直線をするかを決めてクリックすると自動で線がつながります。


③ジョブの中身設定
ENDまで繋ぐとジョブを選択し右をクリックします。
※参考:先にジョブアイコンをクリックして設定しても特に問題ありません。
設定がありますのでそれをクリックしてください。
ジョブIDにはこのジョブネット中でユニークIDを書きます。自動でのIDを使っても構いません。
ホスト名にはZabbixにて登録したホスト名を選択します。 
実行欄にはbashを書きます。
僕の場合はlsを書きますが、必要にコマンドを書くと問題なく動作します。
ファイルを指定する場合full pathをしなければならないです。

④ジョブネット保存 

ジョブネットの右下にある登録ボタンをクリックします。

⑤ジョブネット実行

ジョブネットを選択して、右クリックをして、有効をクリックします。


有効ができたジョブネットをまた右クリックして、即時実行をクリックします。
はいをクリックします。すると自動で下のような画面が開き実行画面が見えます。

⑥ジョブネット実行結果
ジョブネットの実行結果はJob Arranger Managerのタブ中にジョブ実行管理をクリックするとしたのような画面が開きます。


以上です。

DVD ROM을 yum 리포지터리(repository)로 하는 방법

운영환경 또는 Red Hat Subscription의 문제로 yum을 사용하지 못할 경우가 있습니다.
그럴때 사용하면 편한 방법을 소개합니다.
CentOS 7을 기준으로 쓰고 있습니다.

1. DVD를 리포지터리(repository)에 등록합니다.

    CDROM에 ISO파일을 넣습니다.
    만약 가상화 환경이라면 설정에서 CDROM을 선택해 ISO파일을 선택합니다.

2. mount를 합니다.

# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only

# ls -la /mnt/
合計 657
drwxr-xr-x   8 root root   2048 12月  5 22:20 .
dr-xr-xr-x. 17 root root    244  2月 25 15:52 ..
-rw-r--r--   1 root root     29 12月  5 22:17 .discinfo
-rw-r--r--   1 root root    366 12月  5 22:20 .treeinfo
-rw-r--r--   1 root root     14 12月  5 22:02 CentOS_BuildTag
drwxr-xr-x   3 root root   2048 12月  5 22:20 EFI
-rw-r--r--   1 root root    215 12月 10  2015 EULA
-rw-r--r--   1 root root  18009 12月 10  2015 GPL
drwxr-xr-x   2 root root   2048 12月  5 22:20 LiveOS
drwxrwxr-x   2 root root 630784 12月  5 22:35 Packages
-rw-r--r--   1 root root   1690 12月 10  2015 RPM-GPG-KEY-CentOS-7
-rw-r--r--   1 root root   1690 12月 10  2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--   1 root root   2883 12月  5 22:55 TRANS.TBL
drwxr-xr-x   3 root root   2048 12月  5 22:47 images
drwxr-xr-x   2 root root   2048 12月  5 22:20 isolinux
drwxrwxr-x   2 root root   4096 12月  5 22:37 repodata


3. 리포지터리(repository) 설정 파일을 작성 합니다.

# vi /etc/yum.repos.d/local.repo
[local]
name=CentOS 7 - x86-64 - DVD
baseurl=file:///mnt/
enabled=0
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7
이렇게 씁니다.
[local]은 파일명과 같은 것을 사용합니다. 파일명의 repo는 사용하지 않습니다.
name은 파일을 열어볼때 알수 있는 내용을 씁니다.
baseurl은 마운트한곳을 지정합니다.
enabled은 유효한 리포지터리를 0(disable)로 합니다.
gpgcheck은 GPG증명을 사용하는 것이므로 1을 설정합니다.
gpgkey은 mount한곳을 확인해 보면 key파일이 있습니다. 그것을 설정합니다.

4. 결과 확인

네트워크가 되지 않는 것을 확인 합니다.













php list를 확인합니다.


이상입니다.

DVD ROMをyumのリポジトリする方法

本番環境またはRed Hat サブスクリプション問題でyumを使えない場合があります。
そのとき使うと役に立つ方法がありますので紹介します。
CentOS 7系を基準に書きます。

DVD ROMをyumのリポジトリとして登録することです。

1.CDROMにiso ファイルを入れます。

仮想化環境なら設定タグからCDROMにISOファイルをおきます。

2.mountすること

# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only

# ls -la /mnt/
合計 657
drwxr-xr-x   8 root root   2048 12月  5 22:20 .
dr-xr-xr-x. 17 root root    244  2月 25 15:52 ..
-rw-r--r--   1 root root     29 12月  5 22:17 .discinfo
-rw-r--r--   1 root root    366 12月  5 22:20 .treeinfo
-rw-r--r--   1 root root     14 12月  5 22:02 CentOS_BuildTag
drwxr-xr-x   3 root root   2048 12月  5 22:20 EFI
-rw-r--r--   1 root root    215 12月 10  2015 EULA
-rw-r--r--   1 root root  18009 12月 10  2015 GPL
drwxr-xr-x   2 root root   2048 12月  5 22:20 LiveOS
drwxrwxr-x   2 root root 630784 12月  5 22:35 Packages
-rw-r--r--   1 root root   1690 12月 10  2015 RPM-GPG-KEY-CentOS-7
-rw-r--r--   1 root root   1690 12月 10  2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--   1 root root   2883 12月  5 22:55 TRANS.TBL
drwxr-xr-x   3 root root   2048 12月  5 22:47 images
drwxr-xr-x   2 root root   2048 12月  5 22:20 isolinux
drwxrwxr-x   2 root root   4096 12月  5 22:37 repodata

3.リポジトリができましたので設定ファイルを作成すること

# vi /etc/yum.repos.d/local.repo
[local]
name=CentOS 7 - x86-64 - DVD
baseurl=file:///mnt/
enabled=0
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7
書きます。

[local]はファイル名と同様にします。"repo"は書きません。
nameはファイルの中身を見てわかる名前を入れます。
baseurlはmountしたところを書きます。
enabledは有効なリポジトリを0(disable)にします。
gpgcheckはGPG署名を確認することで1を入れます。
gpgkeyはmountされたところのKeyパスを書きます。

4.結果確認

ネットワークができないところ













php listを確認



















以上です。

2017年3月23日木曜日

Zabbix의 Housekeeper에 대해서

Housekeeper라함은, Zabbix의 아이템에서 수집한 데이터를 일정 기간만큼 저장하다가 기간이 지나면 데이터를 삭제해야 합니다. 이 기능을 하는 것이 Housekeeper입니다.
본 설명은 Zabbix 3.0을 기준으로 하고 있습니다.

1. 아이템설정에 있는 보존 기간

보존기간은 아이템마다 설정하는 것이 가능합니다.




















빨간 부분이 히스토리와 트랜드를 보존하는 기간을 설정하는 곳입니다.
각 아이템마다 설정하는 곳이 있어 중요도에 따라 기간을 다르게 설정합니다.

2. 데이터 이괄 보존 기간 설정

데이터의 보존 기간을 이괄적으로 관리합니다.
관리 → 일반 → 오른쪽 위에 있는 데이터 보존기간을 선택합니다.
데이터 삭제처리를 활성화에 체크를 하면, Zabbix의 Housekeeper가 실행됩니다.
위의 페이지에서는 보이지 않습니다만, 밑에 부분에 가면 이력과 트렌드가 있습니다.
이력은 아이템의 히스토리를 이야기하는 것입니다.
이력 또는 트랜드의 보존기간을 덮어 쓰기를 체크하면 각 아이템에 써있는 보존기간을 무시하고 위의 보존 기간을 사용하게 됩니다.

보존기간을 기존의 기간보다 짧게 변경하여도, 데이터의 양은 급격하게 변경되지 않습니다.
그이유는, Zabbix의 Housekeeper기능이 갑자기 많은 양의 데이터를 지우게 되면 DB에 부하를 주게 되는데 이것을 방지하위함 입니다. 
계산식은
rule->min_clock = MIN(keep_from, rule->min_clock +
HK_MAX_DELETE_PERIODS * CONFIG_HOUSEKEEPING_FREQUENCY * SEC_PER_HOUR);

계산식 해설:
zabbix_server.conf파일에 HousekeepingFrequency가 있습니다. 위의식 CONFIG_HOUSEKEEPING_FREQUENCY에 해당하는 값입니다.
HousekeepingFrequency은 Housekeeper의 주기를 말함니다. 단위는 시간입니다.
HousekeepingFrequency가 1이라는 것은 1시간 주기로 작업하는 것이고, 2라는 뜻은 2시간 주기로 작업하라는 의미 입니다.
HK_MAX_DELETE_PERIODS은 4로 고정값입니다.
SEC_PER_HOUR은 1을 의미 합니다.
min_clock은 가장 오래된 데이터의 작성 일시 입니다.
keep_from은 WEB화면에서 입력한 데이터 보존 기간입니다.

예) 지금까지 데이터 보존 기간이 30일이였는데, 이것을 20일로 변경할 경우 어떻게 되나?
HousekeepingFrequency=1로 설정

해설:이 계산식은 unit time을 이용합니다. unix time은 지금이 제일로 많은 시간이라는 것을 의미합니다.
결국, 보존 기간을 20일로 변경하여도, 가장 오래된 데이터는 30일전의 것이므로
가장 오래된 데이터(30일전) +(HousekeepingFrequency*4)를 매시간 실시 하게 됩니다.
10일치를 해결하기 위해서는 60시간이 필요하게 됩니다.
20일 보다 오래된 데이터가 없어지면, 그때부터는 20일이 기준이 되어 1시간 분의 데이터가 삭제되게 됩니다.

3. 수동 작업

데이터 삭제처리를 활성화에 체크를 하지 않습니다.
또는 HousekeepingFrequency=0를 설정합니다.
그러면, Housekeeper은 자동 삭제를 하지 않습니다.
가장 부하가 없는 시간을 찾아 데이터를 저장하고 있는 데이블을 수동으로 삭제 합니다.
대상 테이블은
history, history_str, history_log, history_uint, history_text, trends, trends_uint, service_alarms, auditlog, events, sessions
입니다.
정기적으로 위의 테이블들을 삭제하면 Housekeepr와 같은 작업이 되는 것입니다.
작업 내용은
을 참조해 주시길 바라겠습니다.

정기적으로 삭제하기 위해서 Job Arranger를 추천 드립니다.
개요는

인스톨 방법은
Mysql
참조 바랍니다.

Zabbix Housekeeper 수동 실행

Zabbix Housekeeper에 대해서는
http://naiggy.blogspot.com/2017/03/zabbix-housekeeper_23.html
을 참조해 주십시요.

수동실행은
저의 경우는 60일 이전의 데이터는 삭제 하라는 스크립트 입니다.
60이라고 쓰여진 곳을 수정하여 원하시는 숫자를 넣어 주십시요.

Mysql

delete from history where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_str where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_log where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_uint where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_text where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from trends where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from trends_uint where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from service_alarms where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from auditlog where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from events where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from sessions where lastaccess < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));

PostgreSQL

delete from history where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_str where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_log where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_uint where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_text where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from trends where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from trends_uint where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from service_alarms where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from auditlog where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from events where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from sessions where lastaccess < extract('epoch' from current_timestamp - interval'60 days') ;

2017年3月22日水曜日

ZabbixのHousekeeperについて

Housekeeperとは、Zabbixにてアイテムが収集したデータをいつまで保存するかを決めてそれ以上古くなったデータを削除するプロセスを言います。
この説明はzabbix 3.0を基準にします。

1.アイテムの保存期間設定

アイテムことに設定ができます。


















赤い丸のところにヒストリ保存期間とトレンド保存期間があります。
各アイテムことに保存期間を設定することができます。

2.データ保存期間の一括更新

データの保存期間を一括で管理した場合は
管理 → 一般設定 → 右上のデータの保存期間を選択します。
















データの削除処理を有効のところにチェックを入れると
ZabbixのHousekeeperが動作することになります。
ここには見えないですが上のページの下の部分を見るとヒストリのところとトレンドのところがあります。
アイテムのヒストリ(またはトレンド)の保存期間を上書きをチェックすると各アイテムで書いた保存期間が上書きされます。一括更新にはよいと思います。

保存期間を急に短くしても、データの量は急激にはならないです。
その理由はZabbixの処理がDBに負荷をかけないよう徐々に削除するからです。
計算式は
rule->min_clock = MIN(keep_from, rule->min_clock +
HK_MAX_DELETE_PERIODS * CONFIG_HOUSEKEEPING_FREQUENCY * SEC_PER_HOUR);
です。

計算式の解説:
zabbix_server.confファイルにあるHousekeepingFrequencyがあります。上の式CONFIG_HOUSEKEEPING_FREQUENCY を意味します。
HousekeepingFrequencyはHousekeeperのサイクル周期です。単位は時間になります。
HousekeepingFrequencyが1のことは1時間に1回の作業です。2の場合は2時間に1回の作業です。
HK_MAX_DELETE_PERIODS は4です。
SEC_PER_HOURは1です。
min_clockは削除対象になるデータ中に一番古いものです。
keep_fromはWEBページにて設定した保存期間の数字になります。

例)今まで保存期間30日のものを20日に変更した場合どうなるか?HousekeepingFrequency=1にする。

解説:この計算はunix timeになります。現在が一番高い数字になります。
結局20日までくるために、一番古いデータの日付(30日前)+(HousekeepingFrequency*4))時間にして削除しますので、10日分を削除するために60時間かかることになります。
20日より古いデータがなくなるとその日からは20日が基準になり1時間分のデータが削除されます。

3.手動作成

データの削除処理を有効のチェックを外します。
または、HousekeepingFrequency=0セットします。
そうするとHousekeeperは自動削除は停めることになります。
保存データを手動削除する対象になるテーブルは
history, history_str, history_log, history_uint, history_text, trends, trends_uint, service_alarms, auditlog, events, sessions になります。
定期的にこのテーブルを削除するとHousekeeperと同様な作業ができます。
作業内容は
http://naiggy.blogspot.com/2017/03/zabbix-housekeeper.html
ご参照ください。

定期的に削除するためにはJob Arrangerをお勧めします。
Job ArrangerのMysql用は
https://naiggy.blogspot.jp/2017/03/job-arranger-install.html

PostgreSQL用は
https://naiggy.blogspot.jp/2017/03/job-arranger-install-centos-7-postgresql.html
ご参照ください。

以上です。

Zabbix Housekeeper 手動実行

Zabbix Housekeeper に関して
http://naiggy.blogspot.com/2017/03/zabbixhousekeeper.html
参考ください。

手動実行は
僕の場合は60日以前のデータを削除するスクリプトです。
60のところだけを修正して必要な数字を入れてください。

Mysql

delete from history where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_str where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_log where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_uint where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_text where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from trends where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from trends_uint where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from service_alarms where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from auditlog where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from events where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from sessions where lastaccess < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));

PostgreSQL

delete from history where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_str where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_log where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_uint where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_text where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from trends where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from trends_uint where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from service_alarms where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from auditlog where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from events where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from sessions where lastaccess < extract('epoch' from current_timestamp - interval'60 days') ;

2017年3月21日火曜日

windows pc에서 Linux를 인스톨 할수 있는 VirtualBox

Windows에서 가상환경을 어떻게 만들어야 하는 가, 고민들을 많이들 합니다.
이 고민을 해결할 수 있다고 생각해 이 글을 씁니다.
해결 하기 위해 VirtualBox에 대해서 설명을 드리겠습니다.
VirtualBox은 가상환경을 만들기위해 최적화된 프로그램 입니다.
VirtualBox은 GPLv2라이센스를 이용하고 있습니다.
License정보는 https://www.virtualbox.org/wiki/Licensing_FAQ
한글로도 되어 있으므로 편리할 듯 합니다.
죄송하게 저의 환경이 일본어로 되어 있어서 일본어로 쓰는 점 많은 양해 부탁드립니다.

1.VirtualBox download

https://www.virtualbox.org/wiki/Downloads

2.인스톨.

인스톨은 Next 클릭합니다.





















인스톨을 선택하고, 클릭합니다.



한글을 인스톨 하게 되시면
VirtualBox관리자 화면이 열릴것입니다.
















3.가상호스트 만들기

VirtualBox관리자 화면에서 "新規" 한국말로는 "새로만들기"クリックします。





















저는 CentOS를 인스톨 할 예정이므로
이름에 CentOS를 넣고, 종류과 버젼을 위와 같이 선택하였습니다.

CentOS Download은
http://ftp.jaist.ac.jp/pub/Linux/CentOS
참조 바랍니다.



메모리 사이즈를 선택합니다.

③ 
2번째에 있는 지금 새 가상하드 디스크 만들기를 클리고 하고 작성을 클릭합니다.


④ 
VMWare와 같은 VMDK를 선택합니다.

⑤ 
무리적 디스크는 동적활당을 선택합니다.
이건 테스크용이기 때문에 동적 활당입니다. 운용 서버용이라면 고정활당을 선택해주세요.

⑥ 

가상 호스트의 파일들을, 저장할 곳을 선택합니다.
仮想マシンの保存先を作ります。

등록한 가상 호스트를 선택하고 마우스 오른쪽 버튼을 클릭합니다.
맨 위에 있는 설정을 클릭합니다.






















설정 아이콘을 클릭하면, 위와 같은 화면이 나옵니다.
저장소 → 비어있음 → 광학 드라이브를 추가합니다.를 선택 하고 클릭합니다.
Download한 ISO파일을 선택하고 OK를 클릭합니다.

시작을 클릭하면





















호스트 인스톨이 시작됩니다.
이후는 생략하겠습니다.
인스톨 할때, 마이스가 바탕화면으로 나오질 못한다면
키보드 오른쪽이 있는 Ctrl을 클릭해 보세요.
빠져 나가는 것을 알 수 있을 것입니다.

이상입니다.

VMWare 인스톨 방법은
을 참조해 주세요.

以上です。