Zabbix部署

1、前提

需要部署好LAMP(LNMP)环境,具体组件:httpd、mysql(mariadb)、php、php-mysql
Ubuntu:

1
sudo apt install apache2 mariadb-server php php-mysql -y

Centos:

1
yum install httpd mariadb-server php php-mysql -y

启动相关服务:
Ubuntu:

1
2
3
4
sudo systemctl start apache2 && sudo systemctl start mariadb

# 设置服务自启动
sudo systemctl enable apache2 && sudo systemctl enable mariadb

Centos:

1
2
3
4
systemctl start httpd && systemctl start mariadb

# 设置服务自启动
systemctl enable httpd && systemctl enable mariadb
  • 基础环境验证,配置一个php测试页面
    1
    2
    3
    4
    5
    vim /var/www/html/index.php

    <?php
    phpinfo();
    ?>
    浏览器访问127.0.0.1/index.php,如果出现以下页面说明没问题

    安装zabbix依赖
    Ubuntu:
    1
    sudo apt install libxml2-dev libsnmp-dev libevent-dev libpcre3-dev libmysqld-dev libghc-curl-dev libcurl4-openssl-dev libsnmp-dev *snmp* libperl-dev php-bcmath php-mbstring php-xmlwriter php-xmlreader libldap-2.4-2 ldap-utils libldap2-dev php-gd
    Centos:
    1
    yum install net-snmp-devel libxml2-devel libcurl-deve libevent libevent-devel curl curl-devel mysql-devel net-snmp *snmp* perl-DBI php-gd php-xm php-bcmath php-mbstring php-ldap php-odbc php-xmlpc mysql-deve gcc dos2unix -y

2、编译安装zabbix server(5.4.9)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.9.tar.gz

sudo tar -xvf zabbix-5.4.9.tar.gz

cd zabbix-5.4.9

sudo ./configure --prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix --enable-server --enable-agent --enable-proxy --with-mysql --enable-net-snmp --with-libcurl

sudo make

sudo make install

#将zabbix 启动脚本拷贝到/etc/init.d
sudo cp /opt/zabbix-5.4.9/misc/init.d/debian/zabbix-* /etc/init.d/
# 如果是centos或红帽,debian的目录需要更改‘misc/init.d/fedora/core/zabbix_*’
chmod o+x /etc/init.d/zabbix-server
ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/

创建zabbix数据库,执行授权命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 进入数据库,首次进入默认没有密码
sudo mysql -uroot

# 修改密码
use mysql
update user set password=password("123456")where user='root';
#授权远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
#刷新配置
flush privileges;

# 创建zabbix数据库
create database zabbix character set utf8 collate utf8_bin;
GRANT ALL PRIVILEGES ON zabbix.* to zabbix@localhost identified by '123456';
flush privileges;

导入zabbix基础SQL:

1
2
3
mysql -uzabbix -p123456 zabbix < database/mysql/schema.sql
mysql -uzabbix -p123456 zabbix < database/mysql/images.sql
mysql -uzabbix -p123456 zabbix < database/mysql/data.sql

修改zabbix server配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 进入配置文件目录
cd /etc/zabbix

# 备份zabbix server配置文件
sudo cp -fp zabbix_server.conf zabbix_server.conf.bak

# 修改配置文件
sudo vim zabbix_server.conf

LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456

配置zabbix web页面:

1
2
3
sudo cp -a /opt/zabbix-5.4.9/ui/* /var/www/html/
sudo systemctl restart mariadb
sudo systemctl restart apache2

3、zabbix agent安装

Ubuntu:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
sudo apt install libxml2-dev libsnmp-dev libevent-dev libpcre3-dev libmysqld-dev libghc-curl-dev libcurl4-openssl-dev libsnmp-dev *snmp* libperl-dev php-bcmath php-mbstring php-xmlwriter php-xmlreader libldap-2.4-2 ldap-utils libldap2-dev php-gd

# 解压源码文件,编译安装
sudo wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.9.tar.gz

sudo tar -xvf zabbix-5.4.9.tar.gz

cd zabbix-5.4.9

sudo ./configure --prefix=/usr/local/zabbix --enable-agent

sudo make
sudo make install
ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/

# 修改zabbix agent配置文件
cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak

vim /etc/zabbix/zabbix_agentd.conf

LogFile=/tmp/zabbix_agentd.log
Server=192.168.10.128
ServerActive=192.168.10.128
Hostname = 192.168.10.130

# 拷贝启动脚本,启动服务
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agented
chmod o+x /etc/init.d/zabbix_agented
/etc/init.d/zabbix_agented start

服务端添加客户端:
Zabbix ->configuration -hosts-Create host -Host name 和Agent interfaces,同时选择添加
templates 模板-选择Add -勾选Template OS Linux-选择Add 提交;

  • 注意:此处Host name 名称与Agentd.conf 配置文件中Hostname 保持一致,否则会报错。




查看监控主机数据:
Monitoring->Hosts->Graphs

3、zabbix配置详解

zabbix_server.conf 配置文件参数详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DBHost                数据库主机地址;
DBName 数据库名称;
DBPassword 数据库密码;
DBPort 数据库端口,默认为3306;
AlertScriptsPath 告警脚本存放路径;
CacheSize 存储监控数据的缓存;
CacheUpdateFrequency 更新一次缓存时间;
DebugLevel 日志级别;
LogFile 日志文件;
LogFileSize 日志文件大小,超过自动切割;
LogSlowQueries 数据库慢查询记录,单位毫秒;
PidFile PID 文件;
ProxyConfigFrequency Proxy 被动模式下,Server 多少秒同步配置文件至proxy;
ProxyDataFrequency 被动模式下,Server 间隔多少秒向proxy 请求历史数据;
StartDiscoverers 发现规则线程数;
Timeout 连接Agent 超时时间;
TrendCacheSize 历史数据缓存大小;
User Zabbix 运行的用户;
HistoryCacheSize 历史记录缓存大小;
ListenIP 监听本机的IP 地址;
ListenPort 监听端口;
LoadModule 模块名称;
LoadModulePath 模块路径。

zabbix_Proxy.conf 配置文件参数详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ProxyMode Proxy            工作模式,默认为主动模式,主动发送数据至Server;
Server 指定Server 端地址;
ServerPort Server 端PORT;
Hostname Proxy 端主机名;
ListenPort Proxy 端监听端口;
LogFile Proxy 代理端日志路径;
PidFile PID 文件的路径;
DBHost Proxy 端数据库主机名;
DBName Proxy 端数据库名称;
DBUser Proxy 端数据库用户;
DBPassword Proxy 端数据库密码;
DBSocket Proxy 数据库SOCKET 路径;
DBPort Proxy 数据库端口号;
DataSenderFrequency Proxy 向Server 发送数据的时间间隔;
StartPollers Proxy 程池数量;
StartDiscoverers Proxy 端自动发现主机的线程数量;
CacheSize 内存缓存配置;
StartDBSyncers 同步数据线程数;
HistoryCacheSize 历史数据缓存大小;
LogSlowQueries 慢查询日志记录,单位为毫秒;
Timeout 超时时间。

zabbix_agentd.conf 配置文件参数详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
EnableRemoteCommands       运行服务端远程至客户端执行命令或者脚本;
Hostname 客户端主机名;
ListenIP 监听的IP 地址;
ListenPort 客户端监听端口;
LoadModulePath 模块路径;
LogFile 日志文件路径;
PidFile PID 文件名;
Server 指定Server IP 地址;
ServerActive Zabbix 主动监控server 的ip 地址;
StartAgents Agent 启动进程,如果设置为0,表示禁用被动监控;
Timeout 超时时间
User 运行Zabbix 的用户;
UserParameter 用户自定义key;
BufferSize 缓冲区大小;
DebugLevel Zabbix 日志级别。

4、配置自动发现,创建发现规则


1
2
3
4
5
6
Name                         规则名称;
Discovery by proxy 通过代理探索;
IP range zabbix_server 探索区域的IP 范围;
Delay 搜索一次的时间间隔;
Checks 检测方式,如用ping 方式去发现主机,zabbix_server 需安装fping,此处使用Agent方式发现;
Device uniqueness criteria 以IP 地址作为被发现主机的标识。

zabbix 发现规则创建完毕,客户端Agent 安装完后,被发现的IP 主机不会自动添加至Zabbix
监控列表,需要添加发现动作




至此,自动发现全部创建完成
可以点击Monitoring->Discovery,查看检测到的主机

5、问题汇总

5.1、初始化页面报错


解决办法:

1
2
3
4
5
6
sudo vim /etc/php/7.2/apache2/php.ini

post_max_size =16M
max_execution_time =300
max_input_time =300
date.timezone = Asia/Shanghai

Zabbix部署
https://www.zhoumx.net/2022/08/30/Zabbix部署/
作者
阿星
发布于
2022年8月30日
许可协议