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

2017年4月1日土曜日

Zabbix 통신의 암호화(PSK) windows용

본 내용은 Zabbix 3.0을 기준으로 하겠습니다.
암호화에 대해서 Linux관련 자료는 많이 있습니다만, windows용은 적은것 같아 여기서는 windows용을 기준으로 하겠습니다.
그러나, 특별한 차이는 없습니다. Download하는 곳이 틀릴 뿐입니다.
Zabbix Server와 Zabbix agent간의 통신을 암호화 하는 것에 대해서 설명드리겠습니다.
암호화란 Zabbix Server와 Zabbix Agent가 서로 특별한 기약으로 하는 통신을 말합니다. 암호로 통신하므로 옆에서 봐도 뭘 전송하는지를 알수 없습니다. 허가 받지 않은 호스트로 부터의 요청은 거부할 목적으로 사용합니다.
그럼 Zabbix에 설정하는 방법을 알아보도록 하겠습니다.

Zabbix에 PSK(Pre-Shared Key/사전공유키)를 사용해 보겠습니다.

1. PSK를 만들겠습니다.

# psktool -u zabbix -p zabbix.psk -s 32
만약, psktool 이 없는 경우에는
-bash: psktool : コマンドが見つかりません
# yum install gnutls-utils -y
를 인스톨 합니다.

2. zabbix.psk를 수정

vi로 zabbix.psk를 열어 앞부분에 있는 zabbix:부분을 지움니다.
zabbix:부분은 유져를 표현하므로 여기서는 사용안합니다.

3. windows용 zabbix agent를 download합니다.

https://support.zabbix.com/browse/ZBXNEXT-3047
에 있는 Zabbix-agent-3.0.1-with-OpenSSL-1.0.2c-WinAll.zip을 Download합니다.
적당한곳에 해동을 합니다.
폴더명은 zabbix로 하는 편이 편할듯 합니다.

4.windows 컴퓨터에 zabbix.psk을 배치 합니다.

적당한 폴더에 zabbix.psk를 복사해서 넣습니다.
저의 경우에는 Zabbix를 해동한 곳에 같이 넣었습니다.
C:\tmp\zabbix\conf

5.zabbix-agent.win.conf파일의 수정

TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=zabbix ##zabbix.psk을 작성한 유져명을 사용합니다.
TLSPSKFile=C:\tmp\zabbix\conf\zabbix.psk   ##zabbix.psk파일이 있는 곳입니다.


6.호스트 작성

Zabbix WEB에서
설정 → 호스트 → 호스트작성 버튼을 클릭할지 아니면 기존의 호스트명을 클릭합니다.
그리고 암호화를 클릭합니다.

 호스트에 접속에서 PSK를 선택합니다.
호스트에서 접속에서 PSK를 선택합니다.
PSK 아이덴티티에서는 zabbix.psk를 만들때 사용한 유져명을 사용합니다.
PSK에는 zabbix.psk의 내용을 적습니다.이때 유져명은 필요하지 않습니다.

그리고 갱신을 클릭하면
호스트의 메인화면으로 가서 위와 같은 설정이 보일 것입니다.


7.Zabbix Agent 실행

Windows의 서버스 에서 Zabbix를 기동합니다.
Windows용 zabbix agent실행은
https://www.zabbix.com/documentation/3.0/manual/appendix/install/windows_agent
를 참조해 주시길 바랍니다.


8.Agent의 확인

   zabbix_get을 이용해 확인을 합니다.
# zabbix_get -s 192.168.137.139 -k "agent.ping"
zabbix_get [3689]: Get value error: ZBX_TCP_READ() failed: [104] Connection reset by peer
zabbix_get [3689]: Check access restrictions in Zabbix agent configuration
이 에러는 psk를 이용하고 있는데, zabbix_get을 사용할때는 psk를 사용안하므로 일어나는 에러입니다.
다음과 같이 하면 문제가 없습니다.
# zabbix_get -s 192.168.137.139 --tls-connect psk --tls-psk-identity zabbix --tls-psk-file zabbix.psk -k "agent.ping"
1
이것으로 확인을 하였습니다.

Zabbix Agent log파일에서
active check configuration update from [192.168.137.138:10051] started to fail (TCP successful, cannot establish TLS to [[192.168.137.138]:10051]: SSL_connect() returned SSL_ERROR_SSL: file .\ssl\s3_pkt.c line 1472: error:1409445B:SSL routines:ssl3_read_bytes:reason(1115): SSL alert number 115: TLS read fatal alert "unknown PSK identity")
에러가 발생할경우에는 zabbix_agent.win.conf파일의 TLSPSKIdentity에 psk작성 틀리다는 뜻이니 확인해 보시길 바라겠습니다.

또, Zabbix Agent LOG에서
failed to accept an incoming connection: from 192.168.137.138: unencrypted connections are not allowed
이 에러의 경우에는 6.호스트 작성d에서 호스트에 접속부분에 PSK가 선택되어 있는지 확인해 보시길 바라겠습니다.

이상입니다.

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 튜닝을 추천드리기 위해 이글을 썻습니다.

많은 참조 바랍니다.

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月16日木曜日

centos7 Zabbix Agent AllowRoot에 대해서

다음의 정보는 CentOS7, RHEL7을 대상으로 하고 있습니다.

Zabbix의AllowRoot은 Zabbix Agent 기동 유져를 결정하는 것입니다.
Default은0입니다. Zabbix유져로 기동하는 것입니다.
1은 root유져로 Zabbix Agent를 기동한다는 뜻입니다.

그러나, Zabbix Agent을 인스톨 하고, zabbix_agentd.conf의 AllowRoot의 값을 1로하고 기동했지만 에러가 나는 경우가 있습니다.

# systemctl start zabbix-agent
Job for zabbix-agent.service failed because a configured resource limit was exceeded. See "systemctl status zabbix-agent.service" and "journalctl -xe" for details.

# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: resources) since 木 2017-03-16 21:50:17 JST; 7s ago
  Process: 2254 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)

 3月 16 21:50:17 test1 systemd[1]: zabbix-agent.service never wrote its PID file. Failing.
 3月 16 21:50:17 test1 systemd[1]: Failed to start Zabbix Agent.
 3月 16 21:50:17 test1 systemd[1]: Unit zabbix-agent.service entered failed state.
 3月 16 21:50:17 test1 systemd[1]: zabbix-agent.service failed.

위의 에러의 해결은
vi /etc/selinux/config
SELINUX=disabled
을 합니다.
reboot는 잊지 말기를...

그러고 나서
# systemctl start zabbix-agent
을 하면 정상적으로 기동하는 것을 알수있습니다.

2017年3月14日火曜日

Zabbix ESXi감시

Zabbix Server에서、vSphere API을 이용해서 ESXi을 감시하겠습니다.
CentOS7, Zabbix 3.0을 기준으로 하겠습니다.













위의 것을 감시해 보겠습니다.

1.zabbix_server.conf을 수정하겠습니다.

vi /etc/zabbix/zabbix_server.conf
StartVMwareCollectors=1 ##1개이상을 설정해 주십시요.
zabbix 재실행
# systemctl restart zabbix-server

2.감시대상 호스트 등록

Zabbix WEB 페이지에서
설정 → 호스트 → 오른쪽 위에 있는 호스트 작성 버튼을 클릭합니다.
호스트명은 ESXi의 호스트명과 같이 않은 것으로 설정합니다.
IP는 ESXi가 인스톨 된 IP를 이용합니다.












3.2번에서 작성한 호스트에 매크로를 등록합니다.

호스트 등록화면에서 매크로 탭을 클릭합니다.
{$USERNAME}에는 ESXi에 로그인할 유져명을 사용합니다.
{$PASSWORD} 에는 {$USERNAME}의 패스워드를 입력합니다.
{$URL}에는 https://ESXi의 호스트 IP/sdk를 입력합니다.










4.template추가

호스트 등록화면에서 템플릿을 클릭합니다.
선택 버튼을 클릭하고 Template Virt VMware을 선택하여 등록합니다.
다른 템플릿은 선택하지 말길 바랍니다.










만약, Template Virt VMware, Template Virt VMware Guest, Template Virt VMware Hypervisor을 전부 등록하게 되면 에러가 발생합니다.
에러 내용중에는
Unknown hypervisor uuid.가 있는데, 그 이유는
emplate Virt VMware Guest, Template Virt VMware Hypervisor중복해서 등록되었기 때문 입니다. 템플릿에서 위의 두개는 지워주시길 바랍니다.
반듯이 작성은 Template Virt VMware이것만 등록해 주세요.

완성 화면











이상입니다.

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

이상 입니다.

2017年2月28日火曜日

Zabbix 한글 글자 깨짐 수정 방법

Zabbix에서 그래프 또는 맵을 보게 되면 다음과 같이 글자가 깨지는 경우가 발생합니다.
네이버에서 적당한 폰트를 구해 다운로드 합니다.
Zabbix Server에 다운로드한 font를 /usr/share/zabbix/fonts에 업로드 합니다.
# mv /usr/share/zabbix/fonts/graphfont.ttf /usr/share/zabbix/fonts/graphfont.ttf.org
저의 경우는 다운로드 한 파일이 NanumGothic.ttf이므로
# mv /usr/share/zabbix/fonts/NanumGothic.ttf /usr/share/zabbix/fonts/graphfont.ttf
이렇게 했습니다.



수정 완료되었습니다.
프리인 폰트도 많이 있으므로 반듯이 프리 폰트를 사용하시길 바라겠습니다.
이상입니다.

2017年2月26日日曜日

10 분에 끝나는 Zabbix Install MariaDB/MySQL (CentOS7 MariaDB 10.1)

CentOS 7을 기준으로 Zabbix 3.0을 인스톨 하겠습니다.
Zabbix 3.0의 경우에는 LTS입니다.
서포트 기간은
http://www.zabbix.com/jp/life_cycle_and_release_policy
를 참조 바랍니다.
MariaDB와 MySQL을 동격으로 하고 인스톨 하겠습니다.

1.yum update은 선택입니다.
# yum update -y

2.MariaDB의 repo를 등록합니다.
# vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
Gpgcheck=1

3.해당 Application을 인스톨 합니다. (MariaDB, apache, zabbix)
# yum install mariadb mariadb-server -y
# yum install httpd -y
# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
     다른 Zabbix버젼을 인스톨 하시고 싶은 경우에는 http://repo.zabbix.com/zabbix/를 참조해 주세요.
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
# yum install zabbix-get zabbix-sender -y

4.MariaDB 셋업합니다.
①MariaDB기동
# systemctl start mariadb
②DB를 작성합니다.
# mysql -uroot
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> exit
③Zabbix Data를 입력합니다.
   -uroot보다는 -uzabbix선택하겠습니다.
# zcat /usr/share/doc/zabbix-server-mysql-3.0.7/create.sql.gz | mysql -uzabbix zabbix -p
Enter password: zabbix

5.MariaDB와Apache자동 기동 설정을 합니다.
# systemctl enable mariadb
# systemctl enable httpd

6.Selinux를 disabled을 설정합니다.
  이 설정을 안하면 Zabbix Server인식이 안됨니다.
# vi /etc/selinux/config
SELINUX=enforcing => SELINUX=disabled
reboot

7.firewalld의port를 설정합니다.
  WEB Port개방
# firewall-cmd --add-port=80/tcp --zone=public --permanent
    Zabbix서버 → Zabbix에이전트:10050
# firewall-cmd --add-port=10050/tcp --zone=public --permanent
    Zabbix에이전트 → Zabbix서버:10051
# firewall-cmd --add-port=10051/tcp --zone=public --permanent
    firewalld설정후 재시작
# firewall-cmd --reload
 내부ネットワーク인경우 firewalld이 필요없으면 설정을 지움니다.
# systemctl stop firewalld
# systemctl disable firewalld

8.PHP timezone설정
# vi /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Seoul

9.Apache 재시작
# systemctl restart httpd

10.WEB Page접속합니다.
http://localhost/zabbix

①셋업화면
 ②  모듈 확인

















date.timezone을 설정하지 않은 경우에 위와 같은 에러가 표시 됩니다.
8번을 참조해 주세요.

③DB설정

Password에는 4번에서 이용한 Password를 입력해 주세요.
저의 경우는 zabbix입니다.

④Zabbix 서버명을 설정합니다.
 Name있는 곳에 Zabbix Server의 이름을 씁니다.
저의 경우는 Park.Zabbix라고 했습니다.



                                        Default 유져명:Admin
                                                Password: zabbix


노란색 부분의
Zabbix server is not running:
Zabbix 서버가 동작하지 않습니다.
이 나오면 확인해 볼 곳이 두곳 있습니다.
ⅰ:Zabbix Server기동을 확인 합니다.
ⅱ:6번에 있는 selinux를 확인 합니다.

Zabbix Server의 conf파일을 설정해 주십시요.
# vi /etc/zabbix/zabbix_server.conf
DBPassword=zabbix

# systemctl start zabbix-server
# systemctl enable zabbix-server
# systemctl start zabbix-agent
# systemctl enable zabbix-agent




















Zabbix Install이 완료 되었습니다.

만약 한글 깨짐이 발생하게 되면
https://naiggy.blogspot.jp/2017/02/zabbix_28.html
참조 부탁드립니다.