■zabbix-serverをソースからインストールした手順 ・リポジトリ登録 # rpm -ivh zabbix-release-2.0-1.el6.noarch.rpm ・ソースダウンロード # wget http://prdownloads.sourceforge.net/zabbix/zabbix-2.0.3.tar.gz ・パッチダウンロード # wget https://support.zabbix.com/secure/attachment/21003/zabbix-2.0.3-eventlog-source-regex-07.patch zabbix-2.0.3-eventlog-source-regex-07.patch の内容(active.cを修正しているようだ) ------------------------------------------------------------------------------------------ diff -uNrp zabbix-2.0.3rc1.orig/src/zabbix_agent/active.c zabbix-2.0.3rc1/src/zabbix_agent/active.c --- zabbix-2.0.3rc1.orig/src/zabbix_agent/active.c 2012-10-03 19:35:55.496378584 +0900 +++ zabbix-2.0.3rc1/src/zabbix_agent/active.c 2012-10-03 19:36:29.548378516 +0900 @@ -732,7 +732,7 @@ static void process_active_checks(char * unsigned long timestamp, logeventid; unsigned short severity; char key_severity[MAX_STRING_LEN], str_severity[32] /* for `regex_match_ex' */; - char key_source[MAX_STRING_LEN], *source = NULL; + char key_source[MAX_STRING_LEN], str_source[32]; /* for `regex_match_ex' */; char key_logeventid[MAX_STRING_LEN], str_logeventid[8] /* for `regex_match_ex' */ ; #endif char encoding[32]; @@ -1047,7 +1047,8 @@ static void process_active_checks(char * if (SUCCEED == regexp_match_ex(regexps, regexps_num, value, pattern, ZBX_CASE_SENSITIVE) && SUCCEED == regexp_match_ex(regexps, regexps_ num, str_severity, key_severity, ZBX_IGNORE_CAS E) && - (('\0' == *key_source) ? 1 : (0 == strcmp(ke y_source, source))) && + SUCCEED == regexp_match_ex(regexps, regexps_ num, str_source, + key_source, ZBX_IGNORE_CASE) && SUCCEED == regexp_match_ex(regexps, regexps_ num, str_logeventid, key_logeventid, ZBX_CASE_SEN SITIVE)) { diff -uNrp zabbix-2.0.3rc1.orig/src/zabbix_server/trapper/active.c zabbix-2.0.3rc1/src/zabbix_server /trapper/active.c --- zabbix-2.0.3rc1.orig/src/zabbix_server/trapper/active.c 2012-10-03 19:35:55.512378584 +0900 +++ zabbix-2.0.3rc1/src/zabbix_server/trapper/active.c 2012-10-03 19:37:20.588378423 +0900 @@ -421,6 +421,11 @@ int send_list_of_active_checks_json(zbx_ *key_severity == '@') add_regexp_name(®exp, ®exp_alloc, ®exp_num, key_sev erity + 1); + /* dealing with `source' parameter */ + if ( 0 == get_param(params, 4, source, sizeof(source)) && + *source == '@') + add_regexp_name(®exp, ®exp_alloc, ®exp_num, source + 1); + /* dealing with `logeventid' parameter */ if (0 == get_param(params, 5, key_logeventid, sizeof(key_logeventid)) && *key_logeventid == '@') ------------------------------------------------------------------------------------------ ・必要なパッケージをインストール # yum install -y fping iksemel iksemel-devel curl curl-devel openldap openldap-devel OpenIPMI OpenIPMI-devel net-snmp net-snmp-devel unixODBC unixODBC-devel zabbix-get libssh2-devel ・パッチ適用 # tar zxvf zabbix-2.0.3.tar.gz # cd zabbix-2.0.3 # patch -p1 < ../zabbix-2.0.3-eventlog-source-regex-07.patch ・makeファイル作成 # ./configure prefix=/usr/local/zabbix --enable-dependency-tracking --sysconfdir=/etc/zabbix --enable-server --enable-agent --enable-proxy --enable-ipv6 --enable-java --with-net-snmp --with-ldap --with-libcurl --with-openipmi --with-jabber --with-unixodbc --with-ssh2 --with-mysql 以下が出力された ------------------------------------------------------------------------------------------ active.c: In function ‘send_list_of_active_checks_json’: active.c:425: error: ‘source’ undeclared (first use in this function) active.c:425: error: (Each undeclared identifier is reported only once active.c:425: error: for each function it appears in.) make[3]: *** [active.o] エラー 1 make[3]: ディレクトリ `/usr/local/src/zabbix-2.0.3/src/zabbix_server/trapper' から出ます make[2]: *** [all-recursive] エラー 1 make[2]: ディレクトリ `/usr/local/src/zabbix-2.0.3/src/zabbix_server' から出ます make[1]: *** [all-recursive] エラー 1 make[1]: ディレクトリ `/usr/local/src/zabbix-2.0.3/src' から出ます make: *** [all-recursive] エラー 1 ------------------------------------------------------------------------------------------ ・エラー対処 sourceの宣言がないというエラーに見えるので、284行目辺りに「source[MAX_STRING_LEN],」を追加 # vi src/zabbix_server/trapper/active.c char host[HOST_HOST_LEN_MAX], *name_esc, params[MAX_STRING_LEN], pattern[MAX_STRING_LEN], tmp[32],key_severity[MAX_STRING_LEN], source[MAX_STRING_LEN], key_logeventid [MAX_STRING_LEN], ・再度makeファイル作成 成功したと思われる。 *********************************************************** * Now run 'make install' * * * * Thank you for using Zabbix! * * * *********************************************************** ・コンパイルとインストール make make install