通過源代碼編譯安裝,可以安裝Zabbix最新及任何版本。
本示例以目前最新的版本4.4.7為例。
操作系統:CentOS Linux release 7.5.1804 (Core)
數據庫類型:Mysql-8.0.19
1.配置Zabbix的yum源
安裝阿里云Zabbixyum源:
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
查看yum源列表:
yum repolist
1.下載并解壓源代碼
獲取源碼包:
sudo wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.4.7/zabbix-4.4.7.tar.gz
解壓源碼包:
sudo? tar?-zxvf??zabbix-4.4.7.tar.gz
2.添加zabbix用戶組及用戶
添加用戶組zabbix:
sudo?groupadd --system zabbix
添加用戶zabbix:
sudo?useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
3.安裝Mysql數據庫及創建Zabbix用戶及初始化數據
獲取Mysql免安裝包:
sudo?wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
解壓Mysql免安裝包:
sudo?tar -xf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
移動解壓后的Mysql安裝包:
示例是安裝到/usr/local下:
sudo??mv mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/
建立Mysql的軟連接:
sudo?ln -s /usr/local/mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/mysql
添加用于Mysql數據庫所屬的用戶組:
sudo groupadd mysql
添加用于Mysql數據庫所屬的用戶:
sudo useradd -r -g mysql -s /bin/false mysql
創建Mysql數據庫的數據存放目錄:
sudo mkdir /usr/local/mysql/data
修改Mysql數據庫數據存放目錄所屬用戶及用戶組:
sudo chown -R? mysql:mysql /usr/local/mysql/data
修改Mysql數據庫數據存放目錄的權限:
sudo chmod -R 750 /usr/local/mysql/data
修改Mysql的配置文件:
Mysql默認配置文件地址為:/etc/my.cnf(根據實際情況進行配置)
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
user=mysql
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=error.log
transaction_isolation = READ-COMMITTED
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
lower_case_table_names = 1
如果沒有/tmp/mysql目錄,則需要創建并修改所屬用戶及用戶組:
創建目錄:
sudo mkdir /tmp/mysql
修改所屬用戶及用戶組:
sudo?chown mysql:mysql -R /tmp/mysql
Mysql初始化:
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql
如果執行此命令出現如下錯誤:
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
則安裝對應的依賴包:
sudo yum install ?libaio-devel
查看初始化日志:
sudo cat /usr/local/mysql/data/error.log
mysql首次登錄時,需要通過圖片中初始化的密碼進行登錄。
開啟ssl:
sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup
啟動mysqld,并查看是否可以正常啟動:
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
通過以上執行可以判斷mysql安裝有沒有問題,執行完成之后敲回車,然后查看日志:
sudo cat /usr/local/mysql/data/error.log
注冊Mysql服務:
拷貝注冊服務的文件:
sudo scp /usr/local/mysql/support-files/mysql.server /etc/init.d/
啟用服務設置為開機啟動:
sudo systemctl enable mysql.server
啟動Mysql服務:
sudo systemctl start mysql.server
查看Mysql服務啟動狀態:
sudo systemctl status mysql.server
修改登錄Mysql并修改root密碼:
sudo /usr/local/mysql/bin/mysql -u root -p
輸入初始化mysql時,?/usr/local/mysql/data/error.log文件里面初始的root用戶密碼完成mysql鏈接登錄。
登錄成功之后,執行root密碼修改:
alter user root@localhost identified by '用戶用戶密碼';
flush privileges;
quit;
創建zabbix對應mysql的用戶及數據庫并授權:
?mysql -uroot -p
password
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified with mysql_native_password by '用戶密碼';
grant all privileges on zabbix.* to zabbix@localhost;
quit;
初始化數據庫數據:
/usr/local/mysql/bin/mysql -u zabbix -p zabbix < zabbix-4.4.7/database/mysql/schema.sql
/usr/local/mysql/bin/mysql -u zabbix -p zabbix < zabbix-4.4.7/database/mysql/images.sql
/usr/local/mysql/bin/mysql -u zabbix -p zabbix < zabbix-4.4.7/database/mysql/data.sql
登錄并查看初始化的表結構:
/usr/local/mysql/bin/mysql -u zabbix -p?
use zabbix;
show tables;
quit;
4.從源碼配置安裝Zabbix
進入解壓后的zabbix目錄。
查看Zabbix的版本:
./configure --version
通過幫助查看可以配置的參數內容:
./configure --help
4.1安裝zabbix-server
安裝對應的依賴軟件包:
sudo? yum install wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel sendmail mailx net-snmp net-snmp-devel net-snmp-utils freetype-devel libpng-devel perl unbound libtasn1-devel p11-kit-devel OpenIPMI unixODBC libevent-devel mysql-devel libxml2-devel libssh2-devel OpenIPMI-devel java-1.8.0-openjdk-devel openldap-devel curl-devel unixODBC-devel
創建安裝目錄,并修改該目錄所屬用戶組用戶;
sudo mkdir -p /soft/zabbix/
sudo chown -R zabbix:zabbix /soft/zabbix
進入源碼包解壓目錄進行編譯及安裝:
./configure --prefix=/soft/zabbix --enable-server --enable-java --with-mysql --with-libxml2 --with-unixodbc --with-net-snmp --with-ssh2 --with-openipmi --with-ldap --with-libcurl --with-iconv
make
make install
查看 zabbix-server安裝的版本:
/soft/zabbix/sbin/zabbix_server --version
建立軟連接:
sudo ln -s /soft/zabbix/sbin/zabbix_server /usr/local/sbin/
注冊zabbix-server服務:
進入源碼包解壓目錄,執行拷貝
sudo cp misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix.server
sudo systemctl enable zabbix.server
編輯zabbix-server的配置文件的數據庫連接信息:
sudo vi /soft/zabbix/etc/zabbix_server.conf
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=創建時的密碼
啟動zabbix-server服務:
sudo?systemctl start?zabbix.server
開放對應的協議端口:
sudo firewall-cmd --zone=public --add-port=10051/tcp --permanent
sudo firewall-cmd --zone=public --add-port=10051/udp --permanent
4.2安裝Zabbix-Web
4.2.1安裝PHP環境:
下載php源碼安裝包:
sudo wget? https://www.php.net/distributions/php-7.4.4.tar.xz
解壓php源碼安裝包并進入解壓的目錄:
sudo tar -xf php-7.4.4.tar.xz
sudo cd??php-7.4.4
安裝依賴包:
sudo yum install -y php-mysql gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers sqlite-devel oniguruma oniguruma-devel
編譯安裝:
創建安裝目錄:
sudo mkdir? /usr/local/php
sudo cd php-7.4.4?
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --with-libdir=lib64 --enable-gd --enable-mbstring --enable-bcmath --with-mysqli --with-gettext --with-ldap --with-pdo-mysql=mysqlnd --without-pear --disable-phar --enable-sockets --with-zlib --with-xmlrpc --enable-fpm --enable-xml --enable-sockets --with-zlib --with-iconv --enable-soap --enable-pcntl --enable-cli --with-curl --with-jpeg --with-freetype
然后重新執行上面的命令
make
make install
復制配置文件:
sudo cp php.ini-production /usr/local/php/php.ini
注冊服務開機啟動:
sudo?cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
sudo chmod +x /etc/init.d/php-fpm
sudo systemctl enable php-fpm
修改php-fpm配置文件:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
vi /usr/local/php/etc/php-fpm.conf
去掉pid = run/php-fpm.pid前面的;
sudo?cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
啟動php的服務:
sudo systemctl start php-fpm
查看php服務啟動的狀態:
sudo systemctl status php-fpm
4.2.2安裝Nginx環境:
下載Nginx的安裝源碼包:
sudo wget http://nginx.org/download/nginx-1.16.1.tar.gz
解壓源碼安裝包并進入解壓后的目錄:
sudo tar -xf?nginx-1.16.1.tar.gz
sudo cd?nginx-1.16.1
添加用戶組及用戶:
sudo?groupadd --system www
sudo?useradd --system -g www -s /sbin/nologin -c "nginx www" www
進行編譯安裝:
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_gzip_static_module --with-http_sub_module --with-http_ssl_module --with-stream --with-http_gzip_static_module --with-http_mp4_module --with-http_flv_module --with-http_realip_module
make
make install
設置nginx開機啟動:
sudo touch?/usr/lib/systemd/system/nginx.service
sudo vi??/usr/lib/systemd/system/nginx.service
放入如下內容:
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
設置開機啟動:
sudo systemctl enable nginx.service
啟動nginx 服務:
sudo systemctl start nginx.service
查看nginx服務狀態:
sudo systemctl status nginx.service
4.2.3 zabbix-web安裝:
創建zabbix web的文件目錄:
sudo mkdir /soft/zabbix-web/
復制web的php文件到創建的目錄:
sudo?cp -r /root/zabbix-4.4.7/frontends/php/* /soft/zabbix-web/
在nginx配置zabbix web信息:
sudo vi /usr/loca/nginx/conf/nginx.conf
修改內容如下:
server {
? ? ? ? listen? ? ? 80;
? ? ? ? server_name? localhost;
? ? ? ? #charset koi8-r;
? ? ? ? #access_log? logs/host.access.log? main;
? ? ? ? root? ? /soft/zabbix-web;
? ? ? ? index? index.html index.php;
? ? ? ? location ~ \.php$ {
? ? ? ? include fastcgi.conf;
? ? ? ? fastcgi_pass? 127.0.0.1:9000;
? ? ? ? }
? ? ? ? error_page? 500 502 503 504? /50x.html;
? ? ? ? location = /50x.html {
? ? ? ? ? ? root? html;
? ? ? ? }
? }
測試一下配置文件是否正確:
/usr/local/nginx/sbin/nginx -t
重啟ngixn 服務
sudo systemctl restart ?nginx.service
開放80端口:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
然后訪問zabbix-web 的應用地址:http://ip
然后點擊Next step
根據檢測結果配置對應的php配置,配置內容如下:
sudo vi /usr/local/php/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = "Asia/Shanghai"
重新php服務:
sudo systemctl restart php-fpm
然后再訪問即可,然后點擊Next step執行數據庫連接信息配置。
配置完數據庫繼續一直點擊“Next step”至到 Finish
然后登錄即可:
然后輸入默認賬號信息進行登錄。
賬號:Admin 密碼:zabbix
4.3安裝Zabbix-Agent
創建安裝目錄,并修改該目錄所屬用戶組用戶;
sudo mkdir -p /soft/zabbix/
sudo chown -R zabbix:zabbix /soft/zabbix
進入源碼包解壓目錄進行編譯及安裝:
./configure --prefix=/soft/zabbix --enable-agent
make
make install
查看 zabbix-agent安裝的版本:
/soft/zabbix/sbin/zabbix_agentd --version
建立軟連接:
sudo ln -s /soft/zabbix/sbin/zabbix_agentd /usr/local/sbin/
注冊zabbix-agent服務:
進入源碼包解壓目錄,執行拷貝
sudo cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix.agentd
sudo systemctl enable zabbix.agentd
編輯zabbix-agent的配置文件的數據庫連接信息:
sudo vi /soft/zabbix/etc/zabbix_agentd.conf
根據實際情況修改對應的Hostname及Zabbix Server 所在服務器的ip地址:
Hostname=Zabbix server
Server=Zabbix Server的ip地址
ServerActive=Zabbix Server的ip地址
啟動zabbix-agent服務:
sudo?systemctl start?zabbix.agentd
開放對應的協議端口:
sudo firewall-cmd --zone=public --add-port=10050/tcp --permanent
sudo firewall-cmd --zone=public --add-port=10050/udp --permanent
至此通過源碼安裝Zabbix相應的內容已全部完成。