ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Zabbix 4 - 01:源码安装服务

2020-01-02 16:58:20  阅读:451  来源: 互联网

标签:01 etc Zabbix nginx zabbix 源码 mysql php data


 

关于 Zabbix 需要知道

 

Zabbix 作为运维常用的服务器以及业务监控工具已经不是一两天的事情,所以如果早些年你还在纠结到底是使用 nagios 还是 zabbix 我还能理解,但在 2020 年,Prometheus 都已经泛滥的年代,你还在纠结,那就是你个人的问题了。

另外说明一下,其实工具很多功能都已经很完善,很多时候不完善的只是使用者而已。

现在是 2020 年 1 月 2 日,之所以再次写这类关于 Zabbix 的文章,其实是理由很简单,服务器做了迁移嘛,整套服务重新安装,这时候就得升级一下一辈子都懒得动的监控系统,顺便整理一下并尝尝新版本的鲜。

至于 Zabbix 到底是啥和究竟能干啥,相信会看这种文章的大多心里是有底的。

这里说下个人对于在官方文档中提到的几个 Zabbix 的几个功能组件的看法:

Server:接收来自 agent 端的监控数据并做相应的处理,是 Zabbix 的核心。

数据库:用于存储监控数据与服务配置信息。

Web:图形化显示和配置 Zabbix 数据和服务器监控信息。

Proxy:相当于中转机器,在特殊的网络环境中作为 Server 和 Agent 之间的”中间人“。

Agent:客户端,收集监控数据并传递给 Server 端。

大概就是这些,如果想了解更多,还是自个儿去研究官方文档,我们作为 User 差不多就行了:

https://www.zabbix.com/documentation/4.0/zh/manual/introduction/overview

 

 

关于服务选型

 

1. 关于源码安装的问题:

之所以在 docker 已经这么方便的今天依旧选择源码安装,原因很简单,个人喜欢定制化,规范化公司服务安装的标准而已。

2. 服务选型:

Zabbix 选择目前最新的版本 4.4.4,更新时间 Dec 19, 2019。

MySQL 还是 Percona 的 5.7 版本,没有选择 8,因为公司都是这个版本没必要特殊,但是本次准备换个数据库引擎 Tokudb。Tokudb 尤其适合密集型插入场景,压缩比很高。

PHP 是 7 版本,Nginx 则是最新版本 1.16。

3. Zabbix 下载地址:

https://www.zabbix.com/download_sources

当然,也可以去我的网盘下载:

MySQL 下载地址:

链接:https://pan.baidu.com/s/1eojo3VzAX_jBltLMuIF_Ew 

提取码:tw4a

Nginx 下载地址:

链接:https://pan.baidu.com/s/1-6uNiRe64NeqLVIdDsSIWA
提取码:ahwj

PHP 下载地址:

链接:https://pan.baidu.com/s/1jytOtIQ7Rz8tbFgtg7_6EA
提取码:dfb4

Zabbix 下载地址:

链接:https://pan.baidu.com/s/144ClGiDYCYofKnBtmGXUuQ
提取码:e1yn

具体安装包如下:

安装包
系统版本
CentOS Linux release 7.6.1810
Nginx 源码安装依赖安装包:
echo-nginx-module-master.zip
nginx-1.16.0.tar.gz
nginx-upload-module-master.zip
nginx-upstream-fair-master.zip
ngx_cache_purge-master.zip
ngx-fancyindex-master.zip
ngx_http_proxy_connect_module-master.zip
ngx_http_status_code_counter-master.zip
openssl-1.1.1c.tar.gz
pcre-8.43.tar.gz
zlib-1.2.11.tar.gz
MySQL 源码安装依赖安装包:
percona-server-5.7.11-4.tar.gz
cmake-3.5.2.tar.gz
boost_1_59_0.tar.gz
PHP 源码安装依赖安装包:
php-7.0.30.tar.gz
libiconv-1.14.tar.gz
Zabbix 源码安装依赖安装包:
zabbix-4.4.4.tar.gz

 

 

编译安装 LNMP 环境 - NGINX

 

1. 创建基础目录用于存放安装包:

cd /data/install_packages
mkdir nginx php mysql zabbix
mkdir /data/service
mkdir -p /data/logs/nginx

将对应的安装包存放到相应的目录!

 

2. 编译安装 Nginx:

# 安装依赖
yum -y install zip unzip gcc gcc-c++ automake autoconf libtool make glibc gd-devel pcre-devel libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel libevent libevent-devel patch

# 进入安装包存放目录
cd nginx

# 解压
unzip echo-nginx-module-master.zip
unzip nginx-upload-module-master.zip
unzip nginx-upstream-fair-master.zip
unzip ngx_cache_purge-master.zip
unzip ngx-fancyindex-master.zip
unzip ngx_http_proxy_connect_module-master.zip
unzip ngx_http_status_code_counter-master.zip
tar -zxf nginx-1.16.0.tar.gz
tar -zxf openssl-1.1.1c.tar.gz
tar -zxf pcre-8.43.tar.gz
tar -zxf zlib-1.2.11.tar.gz

# 安全配置:隐藏 nginx 版本
sed -i 's#"nginx/"#"WEB-SERVER/"#g' /data/install_packages/nginx/nginx-1.16.0/src/core/nginx.h
sed -i 's#"NGINX"#"WEB-SERVER"#g' /data/install_packages/nginx/nginx-1.16.0/src/core/nginx.h
sed -i 's#"Server: nginx"#"Server: WEB-SERVER"#g' /data/install_packages/nginx/nginx-1.16.0/src/http/ngx_http_header_filter_module.c
sed -i 's#"<hr><center>nginx</center>" CRLF##g' /data/install_packages/nginx/nginx-1.16.0/src/http/ngx_http_special_response.c

# 打补丁
sed -i 's/default_port/no_port/g' /data/install_packages/nginx/nginx-upstream-fair-master/ngx_http_upstream_fair_module.c
cd /data/install_packages/nginx/nginx-1.16.0
patch -p1 < /data/install_packages/nginx/ngx_http_proxy_connect_module-master/patch/proxy_connect_rewrite_101504.patch

# 编译安装
./configure --prefix=/data/service/nginx \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_ssl_module \
--with-http_mp4_module \
--with-stream \
--with-http_realip_module \
--with-http_v2_module \
--with-http_sub_module \
--with-http_image_filter_module \
--with-pcre=/data/install_packages/nginx/pcre-8.43 \
--with-openssl=/data/install_packages/nginx/openssl-1.1.1c \
--with-zlib=/data/install_packages/nginx/zlib-1.2.11 \
--add-module=/data/install_packages/nginx/echo-nginx-module-master \
--add-module=/data/install_packages/nginx/nginx-upload-module-master \
--add-module=/data/install_packages/nginx/nginx-upstream-fair-master \
--add-module=/data/install_packages/nginx/ngx_cache_purge-master \
--add-module=/data/install_packages/nginx/ngx-fancyindex-master \
--add-module=/data/install_packages/nginx/ngx_http_proxy_connect_module-master \
--add-module=/data/install_packages/nginx/ngx_http_status_code_counter-master

make && make install

 

3. 配置 nginx 配置文件和开机启动:

cd /data/service/nginx/conf/
mkdir vhosts tcp
vi nginx.conf

内容如下:

user  root root;
worker_processes  4;
error_log  /data/logs/nginx/error.log;
pid        /data/logs/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events {
    use epoll;
    worker_connections  65535;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '$http_user_agent $http_x_forwarded_for $request_time $upstream_response_time $upstream_addr $upstream_status';

    access_log /data/logs/nginx/access.log  main;
 
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 30m;
   
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
    fastcgi_param HTTP_PROXY "";
   
    # 隐藏后端服务器的相关参数
    proxy_hide_header X-Powered-By;
    proxy_hide_header X-Forwarded-For;
    proxy_hide_header X-AspNet-Version;
    proxy_hide_header X-AspNetMvc-Version;
    proxy_hide_header Via;
    proxy_hide_header X-Varnish;
    proxy_hide_header Server;

    proxy_connect_timeout 300s;
    proxy_read_timeout 300s;
    proxy_send_timeout 300s;
   
    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 5;
    gzip_disable "MSIE [1-6]\.";
    gzip_types text/plain text/css text/xml application/javascript application/x-javascript;
    gzip_vary on;
   
    include vhosts/*.conf;
}

include /data/service/nginx/conf/tcp/*.conf;

配置开机启动:

chmod 755 /etc/rc.local 
echo "" >> /etc/rc.local 
echo "# NGINX STARTUP" >> /etc/rc.local 
echo "/data/service/nginx/sbin/nginx &" >> /etc/rc.local

检查配置:

/data/service/nginx/sbin/nginx -t

Nginx 安装完成!

 

 

编译安装 LNMP 环境 - MySQL(时间稍长)

 

1. 基础配置:

mkdir -p /data/logs/mysql-3306/tmp
mkdir -p /data/backup/mysql-3306
useradd mysql -s /usr/sbin/nologin
chown -R mysql.mysql /data/logs/mysql-3306

# 关闭大页内存
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

# 安装依赖
yum -y install gcc gcc-devel gcc-c++ gcc-c++-devel libaio-devel boost boost-devel autoconf* automake* zlib* libxml* ncurses-devel ncurses libgcrypt* libtool* cmake openssl openssl-devel bison bison-devel unzip numactl-devel net-snmp-devel net-snmp-utils readline* jemalloc

 

2. 编译安装 MySQL:

# 解压
cd /data/install_packages/mysql/
tar -zxf cmake-3.5.2.tar.gz 
tar -xzf boost_1_59_0.tar.gz 
tar -zxf percona-server-5.7.11-4.tar.gz

# 编译安装 CMAKE
cd cmake-3.5.2
./configure
gmake && make install

# 查看安装结果
cmake --version

# 编译安装 MySQL
cd ../percona-server-5.7.11-4

cmake . -DCMAKE_INSTALL_PREFIX=/data/service/mysql-3306 \ 
-DWITH_BOOST=/data/install_packages/mysql/boost_1_59_0/ \
-DMySQL_DataDIR=/data/service/mysql-3306/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_EDITLINE=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DZLIB_INCLUDE_DIR:PATH=/usr/include \
-DENABLE_DOWNLOADS=1

make -j4 && make install

 

3. 配置 MySQL 并初始化:

vi /etc/my.cnf

内容如下:

[mysql]
port=3306
prompt=3306/\\u [\\d]>
socket=/data/logs/mysql-3306/mysql.sock

[mysqld]
port=3306
user=mysql
federated
pid-file=/data/logs/mysql-3306/mysqld.pid
socket=/data/logs/mysql-3306/mysql.sock
log-error=/data/logs/mysql-3306/error.log
basedir=/data/service/mysql-3306
datadir=/data/service/mysql-3306/data
server_id=100
symbolic-links=0
autocommit=1
character_set_server=utf8
skip_name_resolve=1
max_connections=5000
max_connect_errors=5000
join_buffer_size=128M
tmp_table_size=64M
tmpdir=/data/logs/mysql-3306/tmp
max_allowed_packet=64M
interactive_timeout=1200
wait_timeout=600
read_buffer_size=8M
read_rnd_buffer_size=8M
sort_buffer_size=8M
slow_query_log=1
long_query_time=3
slow_query_log_file=/data/logs/mysql-3306/slow.log
log_queries_not_using_indexes=0
log_slow_admin_statements=0
expire_logs_days=90
min_examined_row_limit=100
master_info_repository=TABLE
relay_log_info_repository=TABLE
log-bin=/data/service/mysql-3306/data/mysql-bin
sync_binlog=5
gtid_mode=on
enforce_gtid_consistency=1
log_slave_updates=1
binlog_format=row
relay_log=/data/logs/mysql-3306/relay.log
relay_log_recovery=1
binlog_gtid_simple_recovery=1
slave_skip_errors=ddl_exist_errors
innodb_buffer_pool_size=8G
innodb_buffer_pool_instances=1
innodb_buffer_pool_load_at_startup=1
innodb_buffer_pool_dump_at_shutdown=1
innodb_lock_wait_timeout=30
innodb_print_all_deadlocks=1
innodb_sort_buffer_size=8M 
log_timestamps=SYSTEM
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
skip-grant-tables

初始化:

/data/service/mysql-3306/bin/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/lxserver/service/mysql-3306 --datadir=/lxserver/service/mysql-3306/data --user=mysql

配置启动脚本:

# 创建启动方式
cp /data/service/mysql-3306/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
sed -i 's/^basedir=$/&\/data\/service\/mysql-3306/g' /etc/init.d/mysqld
sed -i 's/^datadir=$/&\/data\/service\/mysql-3306\/data/g' /etc/init.d/mysqld

# 添加环境变量
echo "" >> /etc/profile
echo "# MySQL" >> /etc/profile
echo "export MYSQL_HOME=/data/service/mysql-3306" >> /etc/profile
echo 'export PATH=$PATH:${MYSQL_HOME}/bin' >> /etc/profile

# 生效环境变量
source /etc/profile

# 添加开机启动
echo "" >> /etc/rc.local
echo "# MYSQL STARTUP" >> /etc/rc.local
echo "/etc/init.d/mysqld start &" >> /etc/rc.local

 

4. 启动 MySQL 并初始化用户:

/etc/init.d/mysqld start

登录 MySQL:

mysql

执行下面的 SQL 设置密码:

update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
quit;

替换配置重启 MySQL:

# 取消免密配置,重启数据库
sed -i 's%skip-grant-tables%#skip-grant-tables%g' /etc/my.cnf
/etc/init.d/mysqld restart

登录:

mysql -uroot -p

执行 SQL:

alter user 'root'@'localhost' identified by '123456';
grant all on *.* to root@'%' identified by '123456' with grant option;
flush privileges;
quit;

 

5. 添加 Tokudb:

登录 MySQL:

mysql -uroot -p

执行如下 SQL:

INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_background_job_status SONAME 'ha_tokudb.so';
show engines;
quit;

结果如图:

MySQL 安装完成!

 

 

编译安装 LNMP 环境 - PHP

 

1. 基础配置:

# 创建目录
mkdir -p /data/logs/php/tmp
chmod -R 777 /data/logs/php# 创建监听用户
useradd php -s /usr/sbin/nologin

# 安装依赖
yum -y install libmcrypt-devel mcrypt mhash gd-devel ncurses-devel libxml2-devel bzip2-devel libcurl-devel curl-devel libjpeg-devel libpng-devel freetype-devel net-snmp-devel openssl-devel libmcrypt-devel

 

2. 安装 PHP:

# 解压
cd /data/install_packages/php/
tar -zxf libiconv-1.14.tar.gz 
tar -zxf php-7.0.30.tar.gz 

# 安装 libiconv
cd libiconv-1.14/srclib/
sed -i -e '/gets is a security/d' ./stdio.in.h
cd ..
./configure --prefix=/usr/local/libiconv
make && make install

# 编译安装 PHP
cd ../php-7.0.30
./configure --prefix=/data/service/php \
--with-config-file-path=/data/service/php/etc \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-pcre-regex \
--with-zlib \
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-dba \
--with-libxml-dir \
--enable-ftp \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--with-mhash \
--enable-mbstring \
--with-mcrypt \
--enable-pcntl \
--enable-xml \
--disable-rpath \
--enable-shmop \
--enable-sockets \
--enable-zip \
--enable-bcmath \
--with-snmp \
--disable-ipv6 \
--with-gettext  \
--enable-fpm \
--with-fpm-user=php \
--with-fpm-group=php \
--with-openssl

make && make install

 

3. 配置 PHP:

# 复制配置文件
cd /data/service/php/etc/
cp php-fpm.conf.default php-fpm.conf
cp /data/install_packages/php/php-7.0.30/php.ini-production .
mv php.ini-production php.ini

# 修改 php.ini 配置
sed -i 's#;date.timezone =#date.timezone = PRC#g' php.ini 
sed -i 's#expose_php = On#expose_php = Off#g' php.ini 
sed -i 's#^;cgi.fix_pathinfo=1#cgi.fix_pathinfo=1#g' php.ini 
sed -i 's#disable_functions =#disable_functions =exec,system,eval,passthru,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,fsocket,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server#g' php.ini 
sed -i 's#max_execution_time = 30#max_execution_time = 300#g' php.ini 
sed -i 's#max_input_time = 60#max_input_time = 300#g' php.ini 
sed -i 's#post_max_size = 8M#post_max_size = 24M#g' php.ini 
sed -i 's#upload_max_filesize = 2M#upload_max_filesize = 4M#g' php.ini
sed -i 's#pdo_mysql.default_socket=#pdo_mysql.default_socket= /data/logs/mysql-3306/mysql.sock#g' php.ini 
sed -i 's#mysqli.default_socket =#mysqli.default_socket = /data/logs/mysql-3306/mysql.sock#g' php.ini 
sed -i 's#;session.save_path = "/tmp"#session.save_path = "/data/logs/php/tmp"#g' php.ini

# 修改 www.conf 配置
cd php-fpm.d/
cp www.conf.default www.conf
sed -i 's#;rlimit_files = 1024#rlimit_files = 65535#g' www.conf
sed -i 's#;listen.owner = php#listen.owner = www#g' www.conf
sed -i 's#;listen.group = php#listen.group = www#g' www.conf
sed -i 's#;listen.mode = 0660#listen.mode = 0660#g' www.conf

 

4. 配置启动:

# 配置启动脚本
cp /data/install_packages/php/php-7.0.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

# 启动服务
/etc/init.d/php-fpm start

# 配置开机自启动
echo '' >> /etc/rc.local
echo '# PHP STARTUP' >> /etc/rc.local
echo '/etc/init.d/php-fpm start &' >> /etc/rc.local

PHP 安装完成!

 

5. 测试 LNMP 环境:

# 添加 PHP 测试页面
echo '<?php
phpinfo();
?>' > /tmp/index.php

# 添加 nginx 配置
vi /data/service/nginx/conf/vhosts/php.conf

内容如下:

server {
    listen 80;
    server_name localhost;
    root /tmp;
    index index.php index.html index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
   
    location ~ .*\.(php)?$ {
        expires -1s;
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;
    }
}

启动 Nginx:

/data/service/nginx/sbin/nginx

访问结果如下:

到此 LNMP 环境搭建完成!最终的服务安装目录结构如下:

|-- install_packages
|   |-- mysql
|   |-- nginx
|   |-- php
|   `-- zabbix
|-- logs
|   |-- mysql-3306
|   |-- nginx
|   `-- php
|-- service
|   |-- mysql-3306
|   |-- nginx
|   `-- php

 

 

安装 Zabbix Server

 

先来看看我们使用 Zabbix 具体是怎样工作的:

 

1. 基础配置:

创建数据库:

mysql -uroot -p

执行如下 SQL:

create database zabbix default character set utf8 collate utf8_general_ci;
grant all on zabbix.* to zbxuser@'127.0.0.1' identified by '123456';
flush privileges;
quit;

创建服务器用户和相关目录:

mkdir /lxserver/logs/zabbix
useradd zabbix -s /usr/sbin/nologin
chown -R zabbix:zabbix /lxserver/logs/zabbix/

 

2. 编译安装 Zabbix Server:

# 解压
cd /data/install_packages/zabbix
tar -zxf zabbix-4.4.4.tar.gz
cd zabbix-4.4.4/

# 编译安装
./configure --prefix=/data/service/zabbix \
--enable-server \
--enable-agent \
--with-mysql=/data/service/mysql-3306/bin/mysql_config \
--with-net-snmp \
--with-libcurl \
--with-libxml2

make && make install

 

3. 修改数据库脚本并导入:

# 修改表的存储引擎
cd /data/install_packages/zabbix/zabbix-4.4.4/database/mysql
sed -i "s#ENGINE=InnoDB#ENGINE=tokudb#g" schema.sql

# 导入数据
mysql -uroot -p zabbix < /data/install_packages/zabbix/zabbix-4.4.4/database/mysql/schema.sql 
mysql -uroot -p zabbix < /data/install_packages/zabbix/zabbix-4.4.4/database/mysql/images.sql 
mysql -uroot -p zabbix < /data/install_packages/zabbix/zabbix-4.4.4/database/mysql/data.sql 

 

4. 修改 Zabbix Server 配置:

cd /data/service/zabbix/etc/
vim zabbix_server.conf

主要修改以下配置:

LogFile=/data/logs/zabbix/zabbix_server.log
PidFile=/data/logs/zabbix/zabbix_server.pid
DBHost=127.0.0.1
DBName=zabbix
DBUser=zbxuser
DBPassword=123456
DBSocket=/data/logs/mysql-3306/mysql.sock
DBPort=3306

 

5. 添加启动脚本:

cp /data/install_packages/zabbix/zabbix-4.4.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/
vim /etc/init.d/zabbix_server

修改如下:

修改下面的启动命令:

 

6. 配置 MySQL 的 lib,否则可能会报错:error while loading shared libraries:

echo "/data/service/mysql-3306/lib" >> /etc/ld.so.conf
ldconfig

 

7. 启动 Zabbix Server:

# 启动
/etc/init.d/zabbix_server start

# 配置开机自启动
echo '' >> /etc/rc.local
echo '# ZABBIX SERVER STARTUP' >> /etc/rc.local
echo '/etc/init.d/zabbix_server start &' >> /etc/rc.local

 

8. 查看进程:

netstat -tlunp | grep zabbix

可以看到启动的 10051 端口!

 

 

配置 Zabbix Web UI

 

在 Zabbix 配置 完成之后,那只是后端服务,用户需要访问则需要前端页面,这就涉及 Web UI 部署。

1. 将前端文件移动到指定目录:

mkdir /data/service/zabbix-web
cp -r /data/install_packages/zabbix/zabbix-4.4.4/frontends/php /data/service/zabbix-web/
chmod 777 -R /data/service/zabbix-web/php

 

2. 配置 nginx:

cd /data/service/nginx/conf/vhosts/
rm -f php.conf 
vi zabbix.conf

内容如下:

#############################################################
# Zabbix
#############################################################
server {
    listen 80;
    server_name localhost;
    root /data/service/zabbix-web/php;
    index index.php index.html index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .*\.(php)?$ {
        expires -1s;
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;
    }
}

重载 Nginx:

/lxserver/service/nginx/sbin/nginx -s reload

 

3. 访问配置:

如果点击没有反应,则去服务器查看 /data/logs/php 的目录权限是否全为 777,没有则设置为 777:

 

下面如果有报错的配置,则需要去 php.ini 配置文件中将值调整为相应的参数并重启 PHP:

 

配置数据库连接:

 

配置这个 Zabbix 的名称,主机我采用本机的 IP 地址,便于区分:

 

确认配置:

 

配置完成:

 

登录测试,初始用户密码为:Admin / zabbix

 

如图所示:

 

汉化 Web UI:

 

更新后查看:

 

 

安装 Zabbix Agent

 

选择一台其他主机作为需要监控的主机,安装 agent。

1. 基础配置:

# 创建用户和目录
useradd zabbix -s /usr/sbin/nologin
mkdir -p /data/install_packages/zabbix
mkdir -p /data/logs/zabbix
mkdir -p /data/service
chown -R zabbix.zabbix /data/logs/zabbix

# 安装依赖
yum install -y net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel pcre*

 

2. 编译安装:

cd /data/install_packages/zabbix
tar -zxf zabbix-4.4.4.tar.gz 
cd zabbix-4.4.4/
./configure --prefix=/data/service/zabbix --enable-agent
make && make install

 

3. 配置 agent:

cd /data/service/zabbix/etc/
vim zabbix_agentd.conf

配置如下:

PidFile=/data/logs/zabbix/zabbix_agentd.pid
LogFile=/data/logs/zabbix/zabbix_agentd.log
Server=192.168.0.100
ListenPort=10050
ServerActive=192.168.0.100
Hostname=192.168.0.50

注意:Server 和 ServerActive 都配置 Server 的 IP 地址,Hostname 为了便于区分不通的机器使用本机的 IP 地址,当然你也可以自己给他取名字。

 

4. 配置启动:

chown -R zabbix.zabbix /data/service/zabbix
cp /data/install_packages/zabbix/zabbix-4.4.4/misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod 755 /etc/init.d/zabbix_agentd
vim /etc/init.d/zabbix_agentd

修改如下:

建立命令软链接:

ln -s /data/service/zabbix/sbin/* /usr/local/sbin/
ln -s /data/service/zabbix/bin/* /usr/local/bin/

启动服务并配置开机自启动:

# 启动
/etc/init.d/zabbix_agentd start

# 配置开机自启动
echo '' >> /etc/rc.local
echo '# ZABBIX AGENT STARTUP' >> /etc/rc.local
echo '/etc/init.d/zabbix_agentd start &' >> /etc/rc.local

当然,对于 Server 端的 agent 我们在编译 Server 的时候就编译了,只需要按照上面的配置好就行。

配置好后启动起来就会发现之前的告警没了:

 

到此基础的安装完成! 

标签:01,etc,Zabbix,nginx,zabbix,源码,mysql,php,data
来源: https://www.cnblogs.com/Dy1an/p/12132297.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有