目录

一、初始化... 4

1.1创建初始化环境... 4

二、编译安装软件环境... 4

2.1编译安装nginx. 4

2.2编译安装zabbix. 5

2.3编译安装mysql 6

2.3.1创建初始数据库... 9

2.3.2导入zabbix数据库... 10

2.4编译安装php. 10

2.4.1修复页面乱码问题... 11

三、添加主机... 12

3.1创建自动发现... 12

3.2主机添加agent客户端... 13

一、初始化

1.1创建初始化环境

# 创建软件路径

make -p /software/zabbix

make -p /software/mysql

make -p /software/php

make -p /software/nginx

make -p /software/install

# 上传源码包到install,(这里随便选了几个版本,使用其他版本同理)

cd  /software/install

rz nginx-1.22.0.tar.gz

rz php-8.1.6.tar.gz

rz zabbix-6.0.5.tar.gz

rz mysql-8.0.29.tar.gz

二、编译安装软件环境

2.1编译安装nginx

编译nginx

cd nginx-1.22.0

./configure --prefix=/software/nginx

make && make install

# 配置环境变量

vim /etc/profile

export NGINX_HOME=/software/nginx

export PATH=$PATH:$NGINX_HOME/sbin

# 刷新配置

source /etc/profile

nginx -V

nginx version: nginx/1.22.0

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)

配置nginx启动service文件

# 编写service文件

vim /lib/systemd/system/nginx.service

[Unit]

Description=nginx service

After=network.target

  

[Service]

Type=forking

ExecStart=/software/nginx/sbin/nginx

ExecReload=/software/nginx/sbin/nginx -s reload

ExecStop=/software/nginx/sbin/nginx -s stop

PrivateTmp=true

  

[Install]

WantedBy=multi-user.target

# 开启服务

systemctl start nginx.service

systemctl enable nginx.service

2.2编译安装zabbix

编译zabbix

tar -zxvf zabbix-6.0.5.tar.gz

# 创建用户及用户组

groupadd --system zabbix

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

# 软件安装目录赋权

chown zabbix:zabbix /software/zabbix

./configure   --prefix=/software/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

make && make install

# 编写server的service文件

[Unit]

Description=zabbix service 01

After=network.target

[Service]

Type=forking

ExecStart=/software/zabbix/sbin/zabbix_server

#ExecStop=/usr/bin/kill -9 $MAINPID

ExecStop=`ps -ef |grep /software/zabbix |grep -v grep |awk '{print $2}' |xargs kill -9`

ExecReload= ${ExeStop} && ${ExeStart}

#PrivateTmp=true

[Install]

WantedBy=multi-user.target

# 编写agents的service文件

[Unit]

Description=zabbix_agentd

#After=network.target

After=network.target remote-fs.target nss-lookup.target

[Service]

Type=forking

PIDFile=/tmp/zabbix_agentd.pid

ExecStart=/software/zabbix/sbin/zabbix_agentd

ExecStop=`ps -ef |grep /software/zabbix |grep -v grep |awk '{print $2}' |xargs kill -9`

ExecReload= ${ExeStop} && ${ExeStart}

[Install]

WantedBy=multi-user.target

# 开启服务

systemctl start zabbix.service

systemctl enable zabbix.service

systemctl start zabbix-agents.service

systemctl enable zabbix-agents.service

2.3编译安装mysql

# 编译mysql

cmake . -DCMAKE_INSTALL_PREFIX=/software/mysql \

-DMYSQL_DATADIR=/software/mysql/data \

-DMYSQL_UNIX_ADDR=/software/mysql/data/mysql.sock \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DSYSCONFDIR=/etc \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_0900_ai_ci \

-DWITH_BOOST=/software/install/mysql-8.0.29/include/boost_1_77_0 \

-DDOWNLOAD_BOOST=1 \

-DFORCE_INSOURCE_BUILD=1 \

-DDOWNLOAD_BOOST_TIMEOUT=10000

# 参数说明

DCMAKE_INSTALL_PREFIX              ##安装路径

DMYSQL_DATADIR                     ##指定数据目录

DMYSQL_UNIX_ADDR                   ##指定套接字文件

DWITH_INNOBASE_STORAGE_ENGINE      ##使用innodb引擎

DSYSCONFDIR                        ##指定配置目录

DENABLED_LOCAL_INFILE              ##支持本地大文件导入数据

DWITH_EXTRA_CHARSETS               ##支持外部扩展字符集

DDEFAULT_CHARSET                   ##默认使用utf8mb4字符集

DWITH_BOOST                        ##c++boost库

# 编译安装

make && make install

# 文件夹赋权

groupadd mysql -g 2001

useradd mysql -g 2001 -u 2001

echo "mysql"|passwd --stdin mysql

mkdir -p /software/mysql/data

mkdir -p  /software/mysql

chown -R   mysql:mysql   /software/mysql

chown -R   mysql:mysql   /software/data

chmod 750  /software/data

# 配置my.cnf文件

vim /etc/my.cnf

[client]

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

[mysqld]

basedir=/software/mysql

datadir=/software/mysql/data

socket=/software/mysql/data/mysql.sock

symbolic-links=0

bind-address = 0.0.0.0

user = mysql

character_set_server = utf8mb4

collation-server = utf8mb4_unicode_ci

max_connections = 100

max_connect_errors = 100

# 交互式客户端连接后,没有任何操作的情况下,继续保持连接状态的秒数

interactive_timeout = 1800

#skip-grant-tables=1

[mysqld_safe]

log-error=/tmp/mysqld.log

pid-file=/tmp/mysql.pid

expire_logs_days=30

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

# 编写mysql.service

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.

TimeoutSec=0

# Execute pre and post scripts as root

PermissionsStartOnly=true

# Needed to create system tables

ExecStartPre=/usr/bin/mysqld_pre_systemd

# Start main service

ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS

# Use this to switch malloc implementation

EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit

LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.

Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

###########

2.3.1创建初始数据库

# 创建数据库

mysql -uroot -p

password

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;

mysql> create user zabbix@localhost identified by 'password';

mysql> grant all privileges on zabbix.* to zabbix@localhost;

mysql> quit;

2.3.2导入zabbix数据库

# 导入初始架构和数据,系统将提示您输入新创建的密码。

zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

2.4编译安装php

# php编译配置

 ./configure --prefix=/software/php  --with-config-file-path=/etc/ --enable-fpm --disable-debug --disable-rpath --enable-shared --enable-soap --with-openssl --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --enable-exif  --enable-ftp --enable-gd --with-jpeg --with-zlib-dir --with-freetype --with-gettext --enable-mbstring --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-readline --enable-shmop --enable-simplexml --enable-sockets --with-zip --enable-mysqlnd-compression-support --with-pear --enable-pcntl --enable-posix

# 拷贝php.ini文件

cp /software/install/php-8.1.6/php.ini-development /etc/php.ini

# 安装

make && make install

# 配置/software/php/etc/php-fpm.conf

pid = /software/php/tmp/php-fpm.pid

error_log = /software/php/tmp/php-fpm.log

include=/software/php/etc/php-fpm.d/*.conf

# 配置/software/php/etc/php-fpm.d/www.conf

user = nginx

group = nginx

listen = /software/php/tmp/php-cgi.sock

listen.backlog = -1

listen.owner = nginx

listen.group = nginx

listen.allowed_clients = 0.0.0.0

pm = dynamic

pm.max_children = 5

pm.max_requests = 500

request_terminate_timeout = 5

# 配置vim /usr/lib/systemd/system/php-fpm.service

[Unit]

Description=php-fpm

After=network.target

[Service]

Type=forking

PIDFile=/software/php/tmp/php-fpm.pid

#ExecStart=/software/php/sbin/php-fpm --nodaemonize --fpm-config /software/php/etc/php-fpm.conf

ExecStart=/software/php/sbin/php-fpm

ExecStop=`ps -ef |grep php |grep -v grep |awk '{print $2}' |xargs kill -9`

#ExecReload=/bin/kill -HUP $MAINPID

ExecReload=$ExecStop && ExecStart

[Install]

WantedBy=multi-user.target

# 开启服务

systemctl start php-fpm.service

systemctl enable php-fpm.service

2.4.1修复页面乱码问题

vim /software/nginx/html/zabbix/include/defines.inc.php

把define('ZBX_GRAPH_FONT_NAME',         'DejaVuSans');修改为

define('ZBX_GRAPH_FONT_NAME',           'simkai');

把simkai.tff字体放到/software/nginx/html/zabbix/assets/fonts下面

systemctl restart Zabbix.service和php-fpm.service服务,即可正常

三、添加主机

3.1创建自动发现

当前使用的是agentd客户端,因此配置如图:

规则创建成功后,创建动作,因为使用的agentd客户端,因此创建Discovery actions动作

添加多条匹配动作,必须全部匹配,才会添加主机

3.2主机添加agent客户端

tar -zxvf zabbix-6.0.5.tar.gz

# 创建用户及用户组

groupadd --system zabbix

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

# 软件安装目录赋权

mkdir -p /software/zabbix

chown zabbix:zabbix /software/zabbix

# 只编译agent客户端

./configure   --prefix=/software/zabbix --enable-agent

# 安装

make && make install

# 编写agents的service文件

[Unit]

Description=zabbix_agentd

#After=network.target

After=network.target remote-fs.target nss-lookup.target

[Service]

Type=forking

PIDFile=/tmp/zabbix_agentd.pid

ExecStart=/software/zabbix/sbin/zabbix_agentd

ExecStop=`ps -ef |grep /software/zabbix |grep -v grep |awk '{print $2}' |xargs kill -9`

ExecReload= ${ExeStop} && ${ExeStart}

[Install]

WantedBy=multi-user.target

# 开启服务

systemctl start zabbix-agents.service

systemctl enable zabbix-agents.service

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐