CentOS7のソースコードからZabbix6.2をコンパイルしてインストールし、チューニングしてgrafanaと統合する

Zabbix6.2はCentOS7でのyumを使ったインストールには対応していませんが、CentOS8/9やRocky等であれば、dnf(yum)パッケージを使って直接インストール可能です。ソースコードコンパイルほど柔軟ではありませんが、シンプルかつ高速で、ほとんどの使用シナリオのニーズを満たすことができます。一方、Zabbix6.2ではMySQL8データベースを使用する必要があり、導入予定のサーバにはMySQL8に対応していないシステムも導入されているため、ZabbixサーバのデータベースとしてPostgreSQLを使用しています。

  • Zabbix アーキテクチャ情報:

1.zabbixサーバー

zabbix のサーバー側は、エージェントによって送信された監視データの受信と、zabbix のすべてのコア機能の提供を担当します。

2.データベース

監視データと構成情報を保存するために使用されるデータベース。現在、一般的に使用されるデータベースは mysql と postgresql の 2 つです。

3. ザビックスウェブ

zabbixのUI側では、操作コンソールや監視表示などの機能を提供します。

4.zabbix-java-ゲートウェイ

Java プログラムの JVM ステータスを監視するために使用されます。Zabbix 自体は JVM から監視インジケーターを直接取得できないため、これを実現するにはこのゲートウェイを使用する必要があります。

5.zabbixエージェント

zabbixのエージェントは対象ホストに配備され、ホストの監視データを収集し、zabbixサーバーに提供します。

  • 設置環境

  • 1.php74をインストールする

    #查看系统自带php包
    rpm -qa | grep php
    
    #卸载php,注意先卸载依赖包
    rpm -e <包名>
    
    #安装PHP74
    wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    rpm -Uvh epel-release-latest-7.noarch.rpm
    rpm -Uvh remi-release-7.rpm
    yum install yum-utils
    yum-config-manager --enable remi-php74
    yum install php74-php-gd php74-php-pdo php74-php-mbstring php74-php-cli php74-php-fpm php74-php-mysqlnd php-pgsql
    yum -y install curl-devl libxml2 libxml2-devel
    systemctl enable  php74-php-fpm.service
    systemctl start php74-php-fpm.service
    
    #如果php命令找不到,创建软连接
    ln -s /opt/remi/php74/root/usr/bin/php /usr/bin/php
    
    #修改php参数
    vim /etc/php.ini
    #修改post_max_size为16M
    #修改max_execution_time为300
    #修改max_input_time为300
    systemctl restart httpd php74-php-fpm.service

    2.postgresql 15をインストールする

    wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libzstd-1.5.2-1.el7.x86_64.rpm
    wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/llvm5.0-devel-5.0.1-7.el7.x86_64.rpm
    wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/llvm5.0-5.0.1-7.el7.x86_64.rpm
    wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/llvm5.0-libs-5.0.1-7.el7.x86_64.rpm
    yum install -y ./libzstd-1.5.2-1.el7.x86_64.rpm
    yum install -y centos-release-scl-rh llvm5*
    yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    yum install postgresql15-server postgresql15-devel
    postgresql-15-setup  initdb
    systemctl enable postgresql-15
    systemctl start postgresql-15
    
    #修改postgres用户密码
    passwd postgres
    systemctl restart postgresql-15
    
    #修改数据库密码
    sudo -u postgres psql
    \password
    #退出psql命令行
    \q

  • ソースコードのコンパイルと展開 Zabbix6.2:

1. 公式 Web サイトから ZABBIX ソース コード インストール パッケージ (tar.gz) をダウンロードします。

2.解凍します。

cd /home/cgyxt/workspace/zabbix
tar -zxvf zabbix-6.2.6.tar.gz

3.ユーザーの作成

groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

3. データベースをインポートする

chmod -R 777 /home/cgyxt/workspace/zabbix/

#データベースユーザーzabbixの作成

sudo -u postgres createuser --pwprompt zabbix

#データベースの作成

sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix

#データベースのインポート

cd /home/cgyxt/workspace/zabbix/zabbix-6.2.6/database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix

4. 必要に応じて依存関係をインストールします

yum install -y net-snmp-devel OpenIPMI-devel libevent-devel curl-devel java-1.6.0-openjdk-devel libssh2-devel go fping openldap openldap-devel unixODBC unixODBC-devel freetds mysql-connector-odbc

データの送信に Modbus プロトコルを使用する必要がある場合: ソース コードのインストールは libmodbus に依存します

tar -zxvf libmodbus-3.1.6.tar.gz
cd libmodbus-3.1.6/
./configure
make install

5. コンパイルとインストール

cd /home/cgyxt/workspace/zabbix/zabbix-6.2.6/

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-postgresql=/usr/pgsql-15/bin/pg_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-zlib --with-libpthread --with-libevent --with-libpcre --with-libmodbus=/usr/local --with-openipmi --with-ssh2 --with-unixodbc --with-ldap --with-openssl --with-iconv --enable-java --enable-webservice

注: openssl 暗号化の代わりに gnutls を使用することもできます。

yum install gnutls.x86_64 gnutls-c++.x86_64 gnutls-dane.x86_64 gnutls-devel.x86_64 gnutls-utils.x86_64 -y

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-postgresql=/usr/pgsql-15/bin/pg_config --enable-ipv6 --with-net- snmp --with-libcurl --with-libxml2 --with-zlib --with-libpthread --with-libevent --with-libpcre --with-libmodbus=/usr/local --with-openipmi --with- ssh2 --with-unixodbc --with-ldap --with-gnutls --with-iconv --enable-java --enable-webservice

make install

6. 設定ファイルを変更する

vim /usr/local/zabbix/etc/zabbix_server.conf
DBPassword=<password>
CacheSize=1024M   #增大zabbix_server缓存空间,避免主机较多时缓存用尽导致服务停止

7. 起動スクリプトの作成

#创建环境变量,用于直接用zabbix_server命令启动服务
echo "export PATH=$PATH:/usr/local/zabbix/sbin" >> ~/.bashrc


#创建zabbix_server守护文件
vim /lib/systemd/system/zabbix-server.service


[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf"
#EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutStopSec=10s

[Install]
WantedBy=multi-user.target


chmod 754 /lib/systemd/system/zabbix-server.service



#创建zabbix_agentd守护文件
vim /usr/lib/systemd/system/zabbix-agent.service

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

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

[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/zabbix-agent.service

8. フロントエンド ファイルを Apache サービス ディレクトリに移動します

mkdir /var/www/html/zabbix/
cp -r /home/cgyxt/workspace/zabbix/zabbix-6.2.6/ui/* /var/www/html/zabbix/
chmod -R 777 /var/www/html/zabbix/

9. サービスを開始する

systemctl daemon-reload
systemctl enable zabbix-server.service
systemctl start zabbix-server.service
systemctl enable zabbix-agent.service
systemctl start zabbix-agent.service
#查看进程检查结果
ps -ef | grep zabbix

#检查服务运行情况
systemctl -a | grep zabbix

10. Web インターフェースのウィザードに従ってインストールします。

11.中国語の文字化けを修正

#从电脑fonts文件夹中拷贝出微软雅黑字体,放入zabbix字体文件夹中
cp /home/cgyxt/workspace/zabbix/msyh.ttc /var/www/html/zabbix/assets/fonts/

#备份原有字体
mv /var/www/html/zabbix/assets/fonts/DejaVuSans.ttf /var/www/html/zabbix/assets/fonts/DejaVuSans.ttf.bak

#建立软连接
ln -s /var/www/html/zabbix/assets/fonts/msyh.ttc /var/www/html/zabbix/assets/fonts/DejaVuSans.ttf
#或直接覆盖:mv /var/www/html/zabbix/assets/fonts/msyh.ttc /var/www/html/zabbix/assets/fonts/DejaVuSans.ttf

11. その後のスクリプト作成を容易にするために、zabbix ユーザーにパスワードなしの sudo 権限を設定します。

vim /etc/sudoers
#添加:zabbix  ALL=(ALL)       NOPASSWD:ALL


## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
zabbix  ALL=(ALL)       NOPASSWD:ALL
  • yum で zabbix エージェント 2 をインストールします

rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-3.el7.noarch.rpm
yum clean all
yum install zabbix-agent2 zabbix-agent2-plugin-* -y
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
  • grafana をインストールし、Zabbix と統合する

1. rpm パッケージをダウンロードしてインストールします。

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.3.2-1.x86_64.rpm
yum -y install grafana-enterprise-9.3.2-1.x86_64.rpm
systemctl start grafana-server && systemctl enable grafana-server

ブラウザアクセス IP: 3000、ユーザー名/パスワード: admin

2. Zabbix プラグインをダウンロードしてインストールします

(1) 方法1

ブラウザが開きます:

https://grafana.com/api/plugins/alexanderzobnin-zabbix-app 

「downloadurl」を検索し、結果の「/api…」の前に「 Grafanaダウンロード ページにアクセスして、ダウンロード アドレスにリダイレクトします。

https://storage.googleapis.com/plugins-community/alexanderzobnin-zabbix-app/release/4.2.10/alexanderzobnin-zabbix-app-4.2.10.zip

#ダウンロードが完了したら、サーバーにアップロードし、/var/lib/grafana/plugins フォルダーにコピーして解凍します。

cp alexanderzobnin-zabbix-app-4.2.10.zip /var/lib/grafana/plugins/
cd /var/lib/grafana/plugins/
unzip alexanderzobnin-zabbix-app-4.2.10.zip

(2) 方法2

grafana-cli plugins install alexanderzobnin-zabbix-app

3. grafana-server を再起動し、Web インターフェイスに入り、Zabbix プラグインのインストールを有効にします。

systemctl restart grafana-server

Web インターフェイスの [設定] > [プラグイン] > [Zabbix] で、[有効化] をクリックします。

4. zabbix データソースの構成

#Configuration>Datasources、追加、zabbix を選択

テストする Zabbix サーバーのアドレス、ユーザー名、パスワードを入力します。

おすすめ

転載: blog.csdn.net/N71FS1/article/details/130026855