成毅的手心宝 發表於 2022-3-23 14:45:00

CentOS 7 源码安装 Zabbix 6.0

<p class="md-end-block md-p"><span class="md-plain">Zabbix 主要有以下几个组件组成:</span></p>
<ul class="ul-list" data-mark="-">
<li class="md-list-item">
<p class="md-end-block md-p"><span class="md-plain">Zabbix Server:Zabbix 服务端,是 Zabbix 的核心组件。它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中。</span></p>
</li>
<li class="md-list-item">
<p class="md-end-block md-p"><span class="md-plain">Zabbix Agent:Zabbix 客户端,部署在被监控设备上,负责采集监控数据,采集后的数据发送给 Zabbix Server 处理。</span></p>
<p class="md-end-block md-p"><span class="md-plain">Zabbix Agent 目前有两个版本:Zabbix agent 和 Zabbix agent 2。前者是 C 语言开发的,几乎支持所有的主流平台。而后者是 Go 开发的,优点包括:能有效降低 TCP 连接的数量;支持更高的并发;易于扩展。目标是替代 Zabbix agent ,目前只支持 Linux 和Windows 两个平台。</span></p>
</li>
<li class="md-list-item">
<p class="md-end-block md-p"><span class="md-plain">Zabbix Proxy:代替 Zabbix Server 接收监控数据并进行预处理,预处理后的数据批量发送给 Zabbix Server,这样可减轻 Zabbix Server 的压力。</span></p>
</li>
<li class="md-list-item">
<p class="md-end-block md-p"><span class="md-plain">Web 页面:可通过 Web 页面来管理和维护被监控设备的配置信息、查看监控数据、配置告警等。</span></p>
</li>
<li class="md-list-item">
<p class="md-end-block md-p md-focus"><span class="md-plain">数据库:负责存储被监控设备的配置信息和监控数据。支持的数据库有:MySQL(Percona,MariaDB),Oracle,PostgreSQL,TimescaleDB for PostgreSQL,SQLite。</span></p>
</li>
</ul>
<p>&nbsp;</p>
<p>本文主要包括以下四部分:</p>
<p>1. 安装 Zabbix Server</p>
<p>2.&nbsp;安装 Web 组件</p>
<p>3.&nbsp;配置 Zabbix Web 页面</p>
<p>4. 安装 Zabbix Agent</p>
<p>&nbsp;</p>
<h2 class="md-end-block md-p"><span style="color: rgba(0, 128, 0, 1)"><strong><span class="md-plain">安装&nbsp;Zabbix Server</span></strong></span></h2>
<p><span class="md-plain md-expand">部署环境如下表所示。</span></p>
<table border="0">
<tbody>
<tr>
<td>角色</td>
<td>IP</td>
<td>OS</td>
<td>Zabbix 版本</td>
</tr>
<tr>
<td>Zabbix Server</td>
<td>10.0.0.228</td>
<td>CentOS 7.9</td>
<td>Zabbix 6.0.2</td>
</tr>
<tr>
<td>Zabbix Agent</td>
<td>10.0.0.232</td>
<td>CentOS 7.9</td>
<td>Zabbix 6.0.2</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><span class="md-plain">下面开始安装 Zabbix Server,具体步骤如下。</span></p>
<p><span class="md-plain md-expand">(1)准备工作</span></p>
<p>关闭防火墙和 SElinux</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"># systemctl stop firewalld.service
# systemctl disable firewalld.service

# setenforce </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
# </span><span style="color: rgba(0, 0, 255, 1)">sed</span> -i <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">s/SELINUX=enforcing/SELINUX=disabled/g</span><span style="color: rgba(128, 0, 0, 1)">"</span> /etc/selinux/config</pre>
</div>
<p>&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(2)下载 zabbix 软件包:</span></p>
<p class="md-end-block md-p"><span class="md-plain">下载地址:<span class="md-link md-pair-s">https://www.zabbix.com/download</span></span></p>
<p class="md-end-block md-p"><img src="https://img2022.cnblogs.com/blog/576154/202203/576154-20220319125634090-1734635929.png" alt="" loading="lazy"></p>
<p>我这里使用的是源码包。</p>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(3)解压源码包,建立软链接:</span></p>
<div class="cnblogs_code">
<pre># cd /usr/src/<span style="color: rgba(0, 0, 0, 1)">
# </span><span style="color: rgba(0, 0, 255, 1)">wget</span> https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.2.tar.gz</span>
# <span style="color: rgba(0, 0, 255, 1)">tar</span> xvf zabbix-<span style="color: rgba(128, 0, 128, 1)">6.0</span>.<span style="color: rgba(128, 0, 128, 1)">2</span>.<span style="color: rgba(0, 0, 255, 1)">tar</span><span style="color: rgba(0, 0, 0, 1)">.gz
# </span><span style="color: rgba(0, 0, 255, 1)">ln</span> -s zabbix-<span style="color: rgba(128, 0, 128, 1)">6.0</span>.<span style="color: rgba(128, 0, 128, 1)">2</span> zabbix</pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(4)创建 zabbix 用户:</span></p>
<div class="cnblogs_code">
<pre># groupadd --<span style="color: rgba(0, 0, 0, 1)">system zabbix
# useradd </span>--system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Zabbix Monitoring System</span><span style="color: rgba(128, 0, 0, 1)">"</span> zabbix</pre>
</div>
<p>&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(5)创建 zabbix 数据库: </span></p>
<p class="md-end-block md-p"><span class="md-plain">这里将 MySQL 作为 zabbix 的后端数据库,我这里使用的是 MySQL 8.0.27 二进制版本。</span></p>
<p class="md-end-block md-p"><span class="md-plain">下面开始安装&nbsp;MySQL 8.0.27 二进制版本。</span></p>
<div class="cnblogs_code">
<pre># cd /usr/local/<span style="color: rgba(0, 0, 0, 1)">
# </span><span style="color: rgba(0, 0, 255, 1)">wget</span> https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">downloads.mysql.com/archives/get/p/23/file/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz</span>
# <span style="color: rgba(0, 0, 255, 1)">tar</span> xvf mysql-<span style="color: rgba(128, 0, 128, 1)">8.0</span>.<span style="color: rgba(128, 0, 128, 1)">27</span>-linux-glibc2.<span style="color: rgba(128, 0, 128, 1)">12</span>-x86_64.<span style="color: rgba(0, 0, 255, 1)">tar</span><span style="color: rgba(0, 0, 0, 1)">.xz
# </span><span style="color: rgba(0, 0, 255, 1)">ln</span> -s mysql-<span style="color: rgba(128, 0, 128, 1)">8.0</span>.<span style="color: rgba(128, 0, 128, 1)">27</span>-linux-glibc2.<span style="color: rgba(128, 0, 128, 1)">12</span>-x86_64 mysql<br># useradd mysql<br># vim /etc/profile<br>export PATH=$PATH:/usr/local/mysql/bin</pre>
</div>
<p>&nbsp;</p>
<p>编辑 MySQL 配置文件</p>
<div class="cnblogs_code">
<pre># vim /etc/<span style="color: rgba(0, 0, 0, 1)">my.cnf

socket</span>=/data/mysql/<span style="color: rgba(128, 0, 128, 1)">3306</span>/data/<span style="color: rgba(0, 0, 0, 1)">mysql.sock


#server configuration
user</span>=<span style="color: rgba(0, 0, 0, 1)">mysql
datadir</span>=/data/mysql/<span style="color: rgba(128, 0, 128, 1)">3306</span>/<span style="color: rgba(0, 0, 0, 1)">data
basedir</span>=/usr/local/<span style="color: rgba(0, 0, 0, 1)">mysql
port</span>=<span style="color: rgba(128, 0, 128, 1)">3306</span><span style="color: rgba(0, 0, 0, 1)">
socket</span>=/data/mysql/<span style="color: rgba(128, 0, 128, 1)">3306</span>/data/<span style="color: rgba(0, 0, 0, 1)">mysql.sock
log_timestamps</span>=<span style="color: rgba(0, 0, 0, 1)">system
log_error</span>=/data/mysql/<span style="color: rgba(128, 0, 128, 1)">3306</span>/data/<span style="color: rgba(0, 0, 0, 1)">mysqld.err
skip_name_resolve

#Replication Framework
server_id</span>=<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
master_info_repository</span>=<span style="color: rgba(0, 0, 0, 1)">TABLE
relay_log_info_repository</span>=<span style="color: rgba(0, 0, 0, 1)">TABLE
log_slave_updates</span>=<span style="color: rgba(0, 0, 0, 1)">ON
log_bin</span>=mysql-<span style="color: rgba(0, 0, 0, 1)">bin
binlog_format</span>=ROW</pre>
</div>
<p>&nbsp;</p>
<p>创建数据目录,初始化实例,启动实例</p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">mkdir</span> -p /data/mysql/<span style="color: rgba(128, 0, 128, 1)">3306</span>/data/<span style="color: rgba(0, 0, 0, 1)">
# </span>/usr/local/mysql/bin/mysqld --defaults-<span style="color: rgba(0, 0, 255, 1)">file</span>=/etc/my.cnf --initialize-<span style="color: rgba(0, 0, 0, 1)">insecure
# </span>/usr/local/mysql/bin/mysqld_safe --defaults-<span style="color: rgba(0, 0, 255, 1)">file</span>=/etc/my.cnf &amp;</pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">下面创建 zabbix 数据库和用户。</span></p>
<div class="cnblogs_code">
<pre>mysql&gt;<span style="color: rgba(0, 0, 0, 1)"> create database zabbix character set utf8 collate utf8_bin;
mysql</span>&gt; create user <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">zabbix_admin</span><span style="color: rgba(128, 0, 0, 1)">'</span>@<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%</span><span style="color: rgba(128, 0, 0, 1)">'</span> identified with mysql_native_password by <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">zabbix_pass</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
mysql</span>&gt; grant all privileges on zabbix.* to <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">zabbix_admin</span><span style="color: rgba(128, 0, 0, 1)">'</span>@<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%</span><span style="color: rgba(128, 0, 0, 1)">'</span>;</pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">接着初始化数据。</span></p>
<div class="cnblogs_code">
<pre># cd /usr/src/zabbix/database/mysql/<span style="color: rgba(0, 0, 0, 1)">
# mysql </span>-h127.<span style="color: rgba(128, 0, 128, 1)">0.0</span>.<span style="color: rgba(128, 0, 128, 1)">1</span> -uzabbix_admin -pzabbix_pass zabbix &lt;<span style="color: rgba(0, 0, 0, 1)"> schema.sql
# mysql </span>-h127.<span style="color: rgba(128, 0, 128, 1)">0.0</span>.<span style="color: rgba(128, 0, 128, 1)">1</span> -uzabbix_admin -pzabbix_pass zabbix &lt;<span style="color: rgba(0, 0, 0, 1)"> images.sql
# mysql </span>-h127.<span style="color: rgba(128, 0, 128, 1)">0.0</span>.<span style="color: rgba(128, 0, 128, 1)">1</span> -uzabbix_admin -pzabbix_pass zabbix &lt; data.sql</pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(6)编译安装 Zabbix Server:</span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">yum</span> <span style="color: rgba(0, 0, 255, 1)">install</span> <span style="color: rgba(0, 0, 255, 1)">gcc</span> mysql-devel libevent-devel libcurl-devel libxml2-devel net-snmp-<span style="color: rgba(0, 0, 0, 1)">devel
# cd </span>/usr/src/<span style="color: rgba(0, 0, 0, 1)">zabbix
# .</span>/configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-<span style="color: rgba(0, 0, 0, 1)">libxml2
# </span><span style="color: rgba(0, 0, 255, 1)">make</span> <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<p class="md-end-block md-p"><span class="md-plain">编译时注意:</span></p>
<p class="md-end-block md-p"><span class="md-plain">1. configure 命令中的 --prefix 是安装目录,如果不设置,则默认是 /usr/local。</span></p>
<p class="md-end-block md-p"><span class="md-plain">2. 在 make install 的过程中,如果出现如下错误:</span></p>
<div class="cnblogs_code">
<pre>/bin/<span style="color: rgba(0, 0, 255, 1)">ld</span>: warning: libcrypto.so.<span style="color: rgba(128, 0, 128, 1)">1.1</span>, needed by /usr/local/mysql/lib/libmysqlclient.so, not found (try using -rpath or -rpath-<span style="color: rgba(0, 0, 0, 1)">link)
</span>/bin/<span style="color: rgba(0, 0, 255, 1)">ld</span>: warning: libssl.so.<span style="color: rgba(128, 0, 128, 1)">1.1</span>, needed by /usr/local/mysql/lib/libmysqlclient.so, not found (try using -rpath or -rpath-link)</pre>
</div>
<p class="md-end-block md-p"><span class="md-plain">则需要对依赖的两个库做个软链接。具体命令如下:</span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">find</span> / -name libssl.so.<span style="color: rgba(128, 0, 128, 1)">1.1</span>
/usr/local/mysql-<span style="color: rgba(128, 0, 128, 1)">8.0</span>.<span style="color: rgba(128, 0, 128, 1)">27</span>-linux-glibc2.<span style="color: rgba(128, 0, 128, 1)">12</span>-x86_64/lib/private/libssl.so.<span style="color: rgba(128, 0, 128, 1)">1.1</span><span style="color: rgba(0, 0, 0, 1)">
# </span><span style="color: rgba(0, 0, 255, 1)">ln</span> -s /usr/local/mysql-<span style="color: rgba(128, 0, 128, 1)">8.0</span>.<span style="color: rgba(128, 0, 128, 1)">27</span>-linux-glibc2.<span style="color: rgba(128, 0, 128, 1)">12</span>-x86_64/lib/private/libssl.so.<span style="color: rgba(128, 0, 128, 1)">1.1</span> /usr/<span style="color: rgba(0, 0, 0, 1)">lib64
# </span><span style="color: rgba(0, 0, 255, 1)">ln</span> -s /usr/local/mysql-<span style="color: rgba(128, 0, 128, 1)">8.0</span>.<span style="color: rgba(128, 0, 128, 1)">27</span>-linux-glibc2.<span style="color: rgba(128, 0, 128, 1)">12</span>-x86_64/lib/private/libcrypto.so.<span style="color: rgba(128, 0, 128, 1)">1.1</span> /usr/lib64</pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">编译完成后,我们看看 /usr/local/zabbix/ 目录的内容。</span></p>
<div class="cnblogs_code">
<pre># tree /usr/local/<span style="color: rgba(0, 0, 0, 1)">zabbix
</span>/usr/local/<span style="color: rgba(0, 0, 0, 1)">zabbix
├── bin
│   ├── zabbix_get
│   ├── zabbix_js
│   └── zabbix_sender
├── etc
│   ├── zabbix_agentd.conf
│   ├── zabbix_agentd.conf.d
│   ├── zabbix_server.conf
│   └── zabbix_server.conf.d
├── lib
│   └── modules
├── sbin
│   ├── zabbix_agentd
│   └── zabbix_server
└── share
    ├── </span><span style="color: rgba(0, 0, 255, 1)">man</span><span style="color: rgba(0, 0, 0, 1)">
    │   ├── man1
    │   │   ├── zabbix_get.</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
    │   │   └── zabbix_sender.</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
    │   └── man8
    │       ├── zabbix_agentd.</span><span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">
    │       └── zabbix_server.</span><span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">
    └── zabbix
      ├── alertscripts
      └── externalscripts

</span><span style="color: rgba(128, 0, 128, 1)">14</span> directories, <span style="color: rgba(128, 0, 128, 1)">11</span> files</pre>
</div>
<p class="md-end-block md-p"><span class="md-plain">其中,</span></p>
<p class="md-end-block md-p"><span class="md-plain">etc 是配置文件目录。</span></p>
<p class="md-end-block md-p"><span class="md-plain">alertscripts 是告警脚本目录。</span></p>
<p class="md-end-block md-p"><span class="md-plain">externalscripts 是外部脚本目录。</span></p>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(7)修改配置文件</span></p>
<p class="md-end-block md-p"><span class="md-plain">首先修改 Zabbix Server 的配置文件,修改后的配置如下。</span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">grep</span> -Ev <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">^$|^#</span><span style="color: rgba(128, 0, 0, 1)">'</span> /usr/local/zabbix/etc/<span style="color: rgba(0, 0, 0, 1)">zabbix_server.conf
LogFile</span>=/tmp/<span style="color: rgba(0, 0, 0, 1)">zabbix_server.log
DBHost</span>=<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">
DBName</span>=<span style="color: rgba(0, 0, 0, 1)">zabbix
DBUser</span>=<span style="color: rgba(0, 0, 0, 1)">zabbix_admin
DBPassword</span>=<span style="color: rgba(0, 0, 0, 1)">zabbix_pass
DBPort</span>=<span style="color: rgba(128, 0, 128, 1)">3306</span><span style="color: rgba(0, 0, 0, 1)">
Timeout</span>=<span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">
LogSlowQueries</span>=<span style="color: rgba(128, 0, 128, 1)">3000</span><span style="color: rgba(0, 0, 0, 1)">
StatsAllowedIP</span>=<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span></pre>
</div>
<p class="md-end-block md-p"><span class="md-plain">这里主要修改了连接数据库的相关参数。</span></p>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">其次修改 Zabbix Agent 的配置文件,修改后的配置如下。</span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">grep</span> -Ev <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">^$|^#</span><span style="color: rgba(128, 0, 0, 1)">'</span> /usr/local/zabbix/etc/<span style="color: rgba(0, 0, 0, 1)">zabbix_agentd.conf
LogFile</span>=/tmp/<span style="color: rgba(0, 0, 0, 1)">zabbix_agentd.log
Server</span>=<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">
ServerActive</span>=<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">
Hostname</span>=Zabbix server</pre>
</div>
<p class="md-end-block md-p"><span class="md-plain">这里为什么也要修改 Zabbix Agent 的配置文件呢?因为 Zabbix Server 自身及所在服务器的监控数据也需要 Zabbix Agent 来采集,所以,Zabbix Agent 同样也需要安装并启动。</span></p>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(8)配置服务管理脚本</span></p>
<p class="md-end-block md-p"><span class="md-plain">针对 Zabbix Server,主要修改三处:1. 设置 zabbix_server 的路径;2. 设置配置文件的路径;3. 启动时指定配置文件。</span></p>
<div class="cnblogs_code">
<pre># vim /usr/src/zabbix/misc/init.d/fedora/core5/<span style="color: rgba(0, 0, 0, 1)">zabbix_server
...
ZABBIX_BIN</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/usr/local/zabbix/sbin/zabbix_server</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
CONFIG_FILE</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/usr/local/zabbix/etc/zabbix_server.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
...
start() {
      </span><span style="color: rgba(0, 0, 255, 1)">echo</span> -n $<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Starting $prog: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
      daemon $ZABBIX_BIN </span>-<span style="color: rgba(0, 0, 0, 1)">c $CONFIG_FILE
      
# </span><span style="color: rgba(0, 0, 255, 1)">cp</span> /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_server /etc/init.d/</pre>
</div>
<p>&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">针对 Zabbix Agent,同样也是调整这三处的内容。</span></p>
<div class="cnblogs_code">
<pre># vim /usr/src/zabbix/misc/init.d/fedora/core5/<span style="color: rgba(0, 0, 0, 1)">zabbix_agentd
...
ZABBIX_BIN</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/usr/local/zabbix/sbin/zabbix_agentd</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
CONGIG_FILE</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/usr/local/zabbix/etc/zabbix_agentd.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
...
start() {
      </span><span style="color: rgba(0, 0, 255, 1)">echo</span> -n $<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Starting $prog: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
      daemon $ZABBIX_BIN </span>-<span style="color: rgba(0, 0, 0, 1)">c $CONGIG_FILE
...

# </span><span style="color: rgba(0, 0, 255, 1)">cp</span> /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/</pre>
</div>
<p>&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(9)启动 Zabbix Server 和 Zabbix Agent</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"># service zabbix_server start
# service zabbix_agentd start</span></pre>
</div>
<p class="md-end-block md-p"><span class="md-plain">启动 Zabbix Server 的过程中,如果提示以下错误,</span></p>
<div class="cnblogs_code">
<pre>Starting Zabbix Server: /usr/local/zabbix/sbin/zabbix_server: error <span style="color: rgba(0, 0, 255, 1)">while</span> loading shared libraries: libmysqlclient.so.<span style="color: rgba(128, 0, 128, 1)">21</span>: cannot open shared <span style="color: rgba(0, 0, 255, 1)">object</span> <span style="color: rgba(0, 0, 255, 1)">file</span>: No such <span style="color: rgba(0, 0, 255, 1)">file</span> or directory</pre>
</div>
<p>同样可通过设置软链接来解决。</p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">ln</span> -s /usr/local/mysql/lib/libmysqlclient.so.<span style="color: rgba(128, 0, 128, 1)">21</span> /usr/lib64</pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(10)将 Zabbix Server 和 Zabbix Agent 设置为开机自启动。</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"># chkconfig zabbix_server on
# chkconfig zabbix_agentd on</span></pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<h2 class="md-end-block md-p"><strong><span style="color: rgba(0, 128, 0, 1)">安装&nbsp;Web 组件</span></strong></h2>
<p class="md-end-block md-p"><span class="md-plain">安装完 Zabbix Server,接下来我们安装 Web 组件。</span></p>
<p class="md-end-block md-p"><span class="md-plain">这里使用的 Web 服务器是 httpd,也可使用 Nginx。</span></p>
<p class="md-end-block md-p"><span class="md-plain">(1)安装 httpd 和 PHP。</span></p>
<p class="md-end-block md-p"><span class="md-plain">方便起见,这里直接通过 yum 安装 httpd 和 PHP。Zabbix 从 5.0 开始,要求 PHP 的版本不低于 7.2。但在 CentOS 7 中,yum 源中默认的是 PHP 5.4.16。所以,这里需要安装额外的 epel 和 webtatic 源。</span></p>
<div class="cnblogs_code">
<pre># rpm -Uvh https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm</span>
# rpm -Uvh https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">mirror.webtatic.com/yum/el7/webtatic-release.rpm</span>
# <span style="color: rgba(0, 0, 255, 1)">yum</span> <span style="color: rgba(0, 0, 255, 1)">install</span> httpd php72w-cli php72w-common php72w-gd php72w-ldap php72w-mbstring php72w-mysqlnd php72w-xml php72w-bcmath mod_php72w -y</pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(2)将 Zabbix 源码包中的 PHP 文件复制到 httpd 的根目录下。</span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">mkdir</span> -p /var/www/html/<span style="color: rgba(0, 0, 0, 1)">zabbix
# </span><span style="color: rgba(0, 0, 255, 1)">cp</span> -r /usr/src/zabbix/ui<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> /var/www/html/zabbix
# chown -R apache.apache /var/www/html/</span></pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p">(3)修改 php 的配置文件。</p>
<div class="cnblogs_code">
<pre># vim /etc/<span style="color: rgba(0, 0, 0, 1)">php.ini
max_execution_time </span>= <span style="color: rgba(128, 0, 128, 1)">300</span><span style="color: rgba(0, 0, 0, 1)">
max_input_time </span>= <span style="color: rgba(128, 0, 128, 1)">300</span><span style="color: rgba(0, 0, 0, 1)">
memory_limit </span>=<span style="color: rgba(0, 0, 0, 1)"> 128M
post_max_size </span>=<span style="color: rgba(0, 0, 0, 1)"> 16M
upload_max_filesize </span>=<span style="color: rgba(0, 0, 0, 1)"> 2M
</span><span style="color: rgba(0, 0, 255, 1)">date</span>.timezone = Asia/Shanghai</pre>
</div>
<p class="md-end-block md-p"><span class="md-plain">注意,这里给出的只是最小需求值,可根据实际需要调大。</span></p>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(4)启动 httpd 服务</span></p>
<div class="cnblogs_code">
<pre># service httpd start</pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(5)将 httpd 服务设置为开机自启动</span></p>
<div class="cnblogs_code">
<pre># chkconfig httpd on</pre>
</div>
<p class="md-end-block md-p">&nbsp;</p>
<h2 class="md-end-block md-p"><strong><span class="md-plain" style="color: rgba(0, 128, 0, 1)">配置 Zabbix Web 页面</span></strong></h2>
<p class="md-end-block md-p"><span class="md-plain">安装完 Web 组件,最后我们开始配置 Zabbix Web 页面。</span></p>
<p class="md-end-block md-p"><span class="md-plain">(1)登录 Zabbix Server Web 首页。</span></p>
<p class="md-end-block md-p md-focus"><span class="md-plain">浏览器中输入 <span class="md-link md-pair-s">http://10.0.0.228/zabbix<span class="md-plain"> ,其中,10.0.0.228 是 Zabbix Server 的地址</span></span></span></p>
<p class="md-end-block md-p md-focus"><span class="md-plain"><span class="md-link md-pair-s"><span class="md-plain"><img src="https://img2022.cnblogs.com/blog/576154/202203/576154-20220319123213842-1312873498.png" alt="" loading="lazy"></span></span></span></p>
<p>将默认的语言调整为 Chinese(zh_CN) ,点击下一步。</p>
<p class="md-end-block md-p md-focus">&nbsp;</p>
<p class="md-end-block md-p md-focus"><span class="md-plain">(2)依赖性检查。</span></p>
<p class="md-end-block md-p"><span class="md-plain md-expand">主要是检查 php 的插件、配置是否满足要求。如果不满足,最右边的 OK 将显示为 Fail。</span></p>
<p class="md-end-block md-p md-focus"><img src="https://img2022.cnblogs.com/blog/576154/202203/576154-20220319123311133-464373152.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain md-expand">(3)配置数据库连接信息。</span></p>
<p class="md-end-block md-p"><span class="md-plain md-expand"><img src="https://img2022.cnblogs.com/blog/576154/202203/576154-20220319123615185-45637088.png" alt="" loading="lazy"></span></p>
<p><span class="md-plain">因为我们的演示环境 Zabbix Server 和数据库是在一台主机上部署,所以,这里 Database host 设置的是 127.0.0.1。生成环境建议分开部署。</span></p>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(4)设置 Zabbix Server 信息</span></p>
<p class="md-end-block md-p"><img src="https://img2022.cnblogs.com/blog/576154/202203/576154-20220319123953381-713564274.png" alt="" loading="lazy"></p>
<p>&nbsp;&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(5)检查配置是否正确。</span></p>
<p class="md-end-block md-p"><span class="md-plain"><img src="https://img2022.cnblogs.com/blog/576154/202203/576154-20220319124141467-1178757748.png" alt="" loading="lazy"></span></p>
<p>&nbsp;&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(6)安装页面</span></p>
<p class="md-end-block md-p"><span class="md-plain"><img src="https://img2022.cnblogs.com/blog/576154/202203/576154-20220319124248518-138905733.png" alt="" loading="lazy"></span></p>
<p class="md-end-block md-p">&nbsp;&nbsp;</p>
<p>进入Zabbix的登录界面,默认的用户名为Admin,密码为zabbix,管理员权限。</p>
<p><img src="https://img2022.cnblogs.com/blog/576154/202203/576154-20220319124410478-940286341.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">登录成功后的页面如下所示:</span></p>
<p class="md-end-block md-p"><span class="md-plain"><img src="https://img2022.cnblogs.com/blog/576154/202203/576154-20220319124459206-1047161926.png" alt="" loading="lazy"></span></p>
<p>&nbsp;</p>
<h2 class="md-end-block md-heading"><span class="md-plain md-expand" style="color: rgba(0, 128, 0, 1)">安装 Zabbix Agent</span></h2>
<p class="md-end-block md-p"><span class="md-plain">同样的源码包,在被监控主机(192.168.244.10)上部署。</span></p>
<p class="md-end-block md-p"><span class="md-plain">(1)编译安装 Zabbix Agent:</span></p>
<div class="cnblogs_code">
<pre># groupadd --<span style="color: rgba(0, 0, 0, 1)">system zabbix
# useradd </span>--system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Zabbix Monitoring System</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> zabbix
# cd </span>/usr/src/<span style="color: rgba(0, 0, 0, 1)">
# </span><span style="color: rgba(0, 0, 255, 1)">tar</span> xvf zabbix-<span style="color: rgba(128, 0, 128, 1)">6.0</span>.<span style="color: rgba(128, 0, 128, 1)">2</span>.<span style="color: rgba(0, 0, 255, 1)">tar</span><span style="color: rgba(0, 0, 0, 1)">.gz
# </span><span style="color: rgba(0, 0, 255, 1)">ln</span> -s zabbix-<span style="color: rgba(128, 0, 128, 1)">6.0</span>.<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)"> zabbix
# </span><span style="color: rgba(0, 0, 255, 1)">yum</span> <span style="color: rgba(0, 0, 255, 1)">install</span> <span style="color: rgba(0, 0, 255, 1)">gcc</span> pcre-devel -<span style="color: rgba(0, 0, 0, 1)">y
# cd zabbix
# .</span>/configure --prefix=/usr/local/zabbix --enable-<span style="color: rgba(0, 0, 0, 1)">agent
# </span><span style="color: rgba(0, 0, 255, 1)">make</span> <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<p>&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(2)修改配置文件:</span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">grep</span> -Ev <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">^$|^#</span><span style="color: rgba(128, 0, 0, 1)">'</span> /usr/local/zabbix/etc/<span style="color: rgba(0, 0, 0, 1)">zabbix_agentd.conf
LogFile</span>=/tmp/<span style="color: rgba(0, 0, 0, 1)">zabbix_agentd.log
Server</span>=10.0.0.228<span style="color: rgba(0, 0, 0, 1)">
ServerActive</span>=<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">
Hostname</span>=node1</pre>
</div>
<p class="md-end-block md-p"><span class="md-plain">其中,</span></p>
<ul class="ul-list" data-mark="-">
<li class="md-list-item">
<p class="md-end-block md-p"><span class="md-plain">Server:被动模式下 Zabbix Server 的地址,在这种模式下,Zabbix Server 发送请求,Agent 才会响应数据。被动模式是 Zabbix Agent 默认的工作模式。</span></p>
</li>
<li class="md-list-item">
<p class="md-end-block md-p"><span class="md-plain">ServerActive:主动模式下 Zabbix Server 的地址,在这种模式下,Agent 会将采集到的数据主动发送给 Zabbix Server。</span></p>
</li>
<li class="md-list-item">
<p class="md-end-block md-p"><span class="md-plain">Hostname:主机名。注意,这里的主机名并不一定要是主机的 hostname,也可以是 IP 或其它有标识性的字符串,只要保证这个配置在 Zabbix Server 监控的主机内全局唯一即可。Hostname 只适用于主动模式,被动模式下无需设置。</span></p>
</li>
</ul>
<p class="md-end-block md-p">&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(3)配置服务管理脚本:</span></p>
<div class="cnblogs_code">
<pre># vim /usr/src/zabbix/misc/init.d/fedora/core5/<span style="color: rgba(0, 0, 0, 1)">zabbix_agentd
...
ZABBIX_BIN</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/usr/local/zabbix/sbin/zabbix_agentd</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
CONGIG_FILE</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/usr/local/zabbix/etc/zabbix_agentd.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
...
start() {
      </span><span style="color: rgba(0, 0, 255, 1)">echo</span> -n $<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Starting $prog: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
      daemon $ZABBIX_BIN </span>-<span style="color: rgba(0, 0, 0, 1)">c $CONGIG_FILE
...

# </span><span style="color: rgba(0, 0, 255, 1)">cp</span> /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/</pre>
</div>
<p>&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(4)启动 Zabbix Agent:</span></p>
<div class="cnblogs_code">
<pre># service zabbix_agentd start</pre>
</div>
<p>&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">(5)设置开机自启动:</span></p>
<div class="cnblogs_code">
<pre># chkconfig zabbix_agentd on</pre>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/ivictor/p/16025786.html
頁: [1]
查看完整版本: CentOS 7 源码安装 Zabbix 6.0