「広告」

Zabbix agent2 インストール

「広告」
記事内に広告が含まれています。
「広告」

Zabbix server 5.4では、ZabbixAgent2が利用出来ます。

・TCP接続数の減少
・チェックの同時実行が容易
・プラグイン開発の敷居が低い。

などのメリットがあります。

zabbix agent2では、「Go言語」が使われていますので、「Go言語」のインストールが必要となります。

この記事は、zabbix 5.4 のソースインストールをベースにした覚え書きです。
zabbix agent では、「–enable-agent2」オプションで、ZabbixAgent2 をインストールすることが出来ます。

「広告」

Go言語インストール

とりあえずインストールしたい方は、「Go言語、最新版インストール」に進んでください。

# tar xzvf zabbix-5.4.2.tar.gz
# cd zabbix-5.4.2

# ./configure --enable-agent --enable-agent2 --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

↑「–enable-agent2」を指定します。
「-enable-agent」で「Agent」のみを構築します。

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes

(略)

checking for the linux kernel version... unknown family (3.10.0-1127.13.1.el7.x86_64)
checking size of void *... 8
checking for go... no
configure: error: Unable to find "go" executable in path

↑「Go言語」が無いよ。というエラーが出てきます。

# yum info golang
読み込んだプラグイン:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: packet04.centos.org
利用可能なパッケージ
名前                : golang
アーキテクチャー    : x86_64
バージョン          : 1.15.5
リリース            : 1.el7
容量                : 3.1 M
リポジトリー        : epel/x86_64
要約                : The Go Programming Language
URL                 : http://golang.org/
ライセンス          : BSD and Public Domain
説明                : The Go Programming Language.

↑yum で、1.15.5をインストールすることが出来ます。

# yum install golang
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                                                                   | 8.4 kB  00:00:00     

(略)

インストール:
  golang.x86_64 0:1.15.5-1.el7                                                                                                                                

依存性関連をインストールしました:
  golang-bin.x86_64 0:1.15.5-1.el7                    golang-src.noarch 0:1.15.5-1.el7                    mercurial.x86_64 0:2.6.2-11.el7                   

完了しました!
# go version
go version go1.15.5 linux/amd64

↑「Go言語」がインストール出来ました。

# ./configure --enable-agent --enable-agent2 --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes

(略)

  Enable agent 2:        yes

  Enable web service:    no

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          yes

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

↑configureが通りました。

# make

(略)

usr/local/etc/zabbix_agent2.conf -X main.applicationName=zabbix_agent2" -o bin zabbix.com/cmd/zabbix_agent2
go: github.com/jackc/pgx/v4@v4.8.2-0.20200910143026-040df1ccef85 requires
        github.com/jackc/pgconn@v1.6.5-0.20200905181414-0d4f029683fc requires
        github.com/jackc/pgmock@v0.0.0-20190831213851-13a1b77aafa2 requires
        github.com/jackc/pgtype@v0.0.0-20190828014616-a8802b16cc59 requires
        github.com/jackc/pgx/v4@v4.0.0-pre1.0.20190824185557-6972a5742186 requires
        github.com/coreos/go-systemd@v0.0.0-20190719114852-fd7a80b32e1f: invalid version: git fetch --unshallow -f origin in /root/go/pkg/mod/cache/vcs/1f60ff15ab3093bffd86f4a985673d120db13dabca39c597aaa5016031c601a6: exit status 128:
        fatal: git fetch-pack: expected shallow list
make[2]: *** [zabbix.com/cmd/zabbix_agent2] エラー 1
make[2]: ディレクトリ `/root/zabbix-5.4.2/src/go' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/root/zabbix-5.4.2/src' から出ます
make: *** [all-recursive] エラー 1

↑「fatal: git fetch-pack: expected shallow list」
と、エラーになります。

yum ではなく、本家のところからダウンロードしてインストールをします。

# yum remove golang
読み込んだプラグイン:fastestmirror, langpacks
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ golang.x86_64 0:1.15.5-1.el7 を 削除
--> 依存性の処理をしています: go = 1.15.5-1.el7 のパッケージ: golang-bin-1.15.5-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ golang-bin.x86_64 0:1.15.5-1.el7 を 削除
--> 依存性解決を終了しました。

(略)

削除しました:
  golang.x86_64 0:1.15.5-1.el7                                                                                                     

依存性の削除をしました:
  golang-bin.x86_64 0:1.15.5-1.el7                                                                                                 

完了しました!

↑削除をしました。

「広告」

Go言語、最新版インストール

# wget https://golang.org/dl/go1.16.6.linux-amd64.tar.gz

--2021-XX-XX XX:XX:XX--  https://golang.org/dl/go1.16.6.linux-amd64.tar.gz

(略)

2021-XX-XX XX:XX:XX (10.8 MB/s) - `go1.16.6.linux-amd64.tar.gz' へ保存完了 [129049323/129049323]

↑最新版をダウンロード

# tar -C /usr/local/ -xzf go1.16.6.linux-amd64.tar.gz

↑展開します。

# vi .bashrc

export PATH=$PATH:/usr/local/go/bin

↑.bashrcにパスを設定します。

# source .bashrc

↑設定を読み込ませます。

# go version
go version go1.16.6 linux/amd64

↑最新版が入りました。

「広告」

ZabbixAgent2 インストール

# ./configure --enable-agent --enable-agent2 --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes


(略)


    Modules:               /usr/local/lib/modules

  Enable agent 2:        yes

  Enable web service:    no

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          yes

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

↑configureが通りました。

# make
Making all in src
make[1]: ディレクトリ `/root/zabbix-5.4.2/src' に入ります
Making all in libs
make[2]: ディレクトリ `/root/zabbix-5.4.2/src/libs' に入ります
Making all in zbxcrypto


(略)

make[1]: ディレクトリ `/root/zabbix-5.4.2/database' から出ます
Making all in man
make[1]: ディレクトリ `/root/zabbix-5.4.2/man' に入ります
make[1]: `all' に対して行うべき事はありません.
make[1]: ディレクトリ `/root/zabbix-5.4.2/man' から出ます
Making all in misc
make[1]: ディレクトリ `/root/zabbix-5.4.2/misc' に入ります
make[1]: `all' に対して行うべき事はありません.
make[1]: ディレクトリ `/root/zabbix-5.4.2/misc' から出ます
make[1]: ディレクトリ `/root/zabbix-5.4.2' に入ります
make[1]: `all-am' に対して行うべき事はありません.
make[1]: ディレクトリ `/root/zabbix-5.4.2' から出ます

↑ make が成功しました

# make install

↑インストールをします。

「広告」

ZabbixAgent2起動スクリプト

# vi /usr/lib/systemd/system/zabbix-agent2.service

[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/usr/local/etc/zabbix_agent2.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent2
Type=simple
Restart=on-failure
PIDFile=/tmp/zabbix_agent2.pid
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]

WantedBy=multi-user.target

↑スタートスクリプトを作成します。

「広告」

ZabbixAgent2 設定

/usr/local/etc/zabbix_agent2.conf

を調整します。
(zabbix_agentd.conf と同じようにします)

ただし、
zabbix_agentd.conf.d
の、MySQL関係の設定ファイル、
userparameter_mysql.conf
は、読み込ませないようにします。(設定されていれば)

# LogFile=/tmp/zabbix_agent2.log
 ↓
LogFile=/tmp/zabbix_agent2.log

Server=127.0.0.1
 ↓
Server=XXX.XXX.XXX.XXX

ServerActive=127.0.0.1
 ↓
ServerActive=XXX.XXX.XXX.XXX

Hostname=Zabbix server
 ↓
#Hostname=Zabbix server


# HostnameItem=system.hostname
 ↓
HostnameItem=system.hostname

↑ 設定例です。

「広告」

ZabbixAgent2 起動(切り替え)

# systemctl stop zabbix-agent
# systemctl disable zabbix-agent

↑古いバージョンを止めます。

# systemctl start zabbix-agent2
# systemctl status zabbix-agent2
● zabbix-agent2.service - Zabbix Agent 2
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent2.service; disabled; vendor preset: disabled)
   Active: active (running) since 土 2021-XX-XX XX:XX:XX JST; XX ago
 Main PID: 25739 (zabbix_agent2)
   CGroup: /system.slice/zabbix-agent2.service
           └─25739 /usr/local/sbin/zabbix_agent2 -c /usr/local/etc/zabbix_agent2.conf

systemd[1]: Started Zabbix Agent 2.
zabbix_agent2[25739]: Starting Zabbix Agent 2 (5.4.2)
zabbix_agent2[25739]: Zabbix Agent2 hostname:
zabbix_agent2[25739]: Press Ctrl+C to exit.

↑新しい、ZabbixAgent2が起動しました。

タイトルとURLをコピーしました