Zabbix 6 系列學(xué)習(xí) 06:編譯方式安裝

2022-12-13 15:13:18 來源:51CTO博客

接著上篇的 Zabbix Appliance 安裝,今天帶來的是源碼編譯的安裝方式,本文并不是全源碼方式,僅僅是 Zabbix 部分源碼安裝。


(資料圖)

本文環(huán)境

CentOS 7 2009

關(guān)閉 Firewall、Selinux

systemctl stop firwalld && systemctl disable firewalld setenforce 0

永久關(guān)閉 selinux,需要重啟服務(wù)器

sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/configreboot

安裝所需軟件,更新系統(tǒng)到最新

yum -y install tar vim wgetyum update -y

下載源碼包

cd /tmp wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.12.tar.gz

解壓軟件包

tar -zxvf zabbix-6.0.12.tar.gz

數(shù)據(jù)庫(kù)部分

由于 6.0 需要 mysql 8.0 以上,而自帶的為 mysql 5.6,所以安裝 mysql 8.0 的 yum 倉(cāng)庫(kù)文件。

yum -y install https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm

安裝數(shù)據(jù)庫(kù)

yum -y install mysql-server

啟動(dòng)數(shù)據(jù)庫(kù)

systemctl start mysqld && systemctl enable mysqld

查找數(shù)據(jù)庫(kù)密碼

cat /etc/var/mysqld.log

可以看到密碼為0fs!KjAe1dMm

初始化數(shù)據(jù)庫(kù)

mysql_secure_installation

該步驟僅需要修改密碼即可,其他直接回車就可以了

其他回車即可

用新密碼登錄測(cè)試(密碼自行設(shè)置,下面的密碼僅限本文使用)

mysql -uroot -pHuawei@123!

創(chuàng)建 Zabbix 用戶及用戶組

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

創(chuàng)建 Zabbix 目錄

mkdir -p /app/zabbix

編譯軟件

cd /tmp/zabbix-6.0.12
prefix 指定安裝目錄enable-server 啟用 Zabbix Serverenable-agent2 啟用 Zabbix agent2with-mysql 后端指定數(shù)據(jù)庫(kù)為 mysqlnet-snmp 支持 snmp 協(xié)議

其實(shí)有很多參數(shù),大家可以通過 ./configure --help 自行研究

./configure --prefix=/app/zabbix --enable-server --enable-agent2 --with-mysql --with-net-snmp

報(bào)錯(cuò)1,C 語言環(huán)境問題

解決方法

yum -y install gcc-c++

報(bào)錯(cuò)2,mysql 庫(kù)文件沒有

解決辦法

yum -y install mysql-devel

報(bào)錯(cuò)03,net-snmp 部分問題

解決辦法

yum -y install net-snmp-devel

報(bào)錯(cuò)03,libevent 報(bào)錯(cuò)

解決辦法

yum -y install libevent-devel

報(bào)錯(cuò)04,缺少 go 環(huán)境(如果是一代 agent,無此問題)

解決辦法

yum -y install golang

編譯完成

安裝

make install

編譯安裝完成

整體安裝目錄

/app/zabbix├── bin│   └── zabbix_js├── etc│   ├── zabbix_agent2.conf│   ├── zabbix_agent2.d│   │   └── plugins.d│   │       ├── ceph.conf│   │       ├── docker.conf│   │       ├── memcached.conf│   │       ├── modbus.conf│   │       ├── mqtt.conf│   │       ├── mysql.conf│   │       ├── oracle.conf│   │       ├── redis.conf│   │       └── smart.conf│   ├── zabbix_agentd.conf│   ├── zabbix_agentd.conf.d│   ├── zabbix_server.conf│   └── zabbix_server.conf.d├── lib│   └── modules├── sbin│   ├── zabbix_agent2│   ├── zabbix_agentd│   └── zabbix_server└── share    ├── man    │   └── man8    │       ├── zabbix_agent2.8    │       └── zabbix_server.8    └── zabbix        ├── alertscripts        └── externalscripts

PHP 部分

Zabbix 6.0 LTS 需要 php 7.2.5 版本以上,需要安裝 remi 源支持 php 7.x,官方暫不支持 php 8.x 版本。

yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpmyum -y install yum-utilsyum-config-manager --disable "remi-php*"yum-config-manager --enable   remi-php74yum -y install php php-fpm

NGINX 部分

1.安裝 Nginx

yum -y install epel-releaseyum -y install nginx

2.移動(dòng)前端文件到 Zabbix 目錄

mv /tmp/zabbix-6.0.12/ui/ /app/zabbixvim /etc/nginx/conf.d/zabbix.conf

3.修改 Zabbix nginx 配置文件

server {        listen          80;#        server_name     example.com;        root    /app/zabbix/ui;        index   index.php;        location = /favicon.ico {                log_not_found   off;        }        location / {                try_files       $uri $uri/ =404;        }        location /assets {                access_log      off;                expires         10d;        }        location ~ /\.ht {                deny            all;        }        location ~ /(api\/|conf[^\.]|include|locale|vendor) {                deny            all;                return          404;        }        location ~ [^/]\.php(/|$) {            fastcgi_pass    unix:/run/php-fpm/zabbix.sock;                fastcgi_split_path_info ^(.+\.php)(/.+)$;                fastcgi_index   index.php;                fastcgi_param   DOCUMENT_ROOT   /app/zabbix/ui;                fastcgi_param   SCRIPT_FILENAME /app/zabbix/ui$fastcgi_script_name;                fastcgi_param   PATH_TRANSLATED /app/zabbix/ui$fastcgi_script_name;                include fastcgi_params;                fastcgi_param   QUERY_STRING    $query_string;                fastcgi_param   REQUEST_METHOD  $request_method;                fastcgi_param   CONTENT_TYPE    $content_type;                fastcgi_param   CONTENT_LENGTH  $content_length;                fastcgi_intercept_errors        on;                fastcgi_ignore_client_abort     off;                fastcgi_connect_timeout         60;                fastcgi_send_timeout            180;                fastcgi_read_timeout            180;                fastcgi_buffer_size             128k;                fastcgi_buffers                 4 256k;                fastcgi_busy_buffers_size       256k;                fastcgi_temp_file_write_size    256k;        }}

4.修改 Nginx 配置文件

vim /etc/nginx/nginx.conf

將端口全部注釋掉即可

5.啟動(dòng) Nginx

systemctl start nginx && systemctl enable nginx

6.打開 php-fpm

systemctl start php-fpm && systemctl enable php-fpm

訪問前端

直接訪問 IP 地址,發(fā)現(xiàn)是 502 報(bào)錯(cuò)

查看 Nginx 日志

tail -f /var/log/nginx/error.log

通過日志可以看出,沒有 sock 文件,其實(shí)很簡(jiǎn)單,將 fastcgi_passunix:/run/php-fpm/zabbix.sock 改為 fastcgi_pass 127.0.0.1:9000

vim /etc/nginx/conf.d/zabbix.conf

重啟 Nginx 服務(wù)

systemctl restart nginx

就可以訪問了,直接點(diǎn)擊下一步

進(jìn)入到環(huán)境檢查界面和包安裝基本是天壤之別,由于很多依賴和配置沒修改,所以正常,按照警告消息解決就行

依賴安裝

yum -y install php-bcmath php-mbstring php-gd php-xml php-mysqlnd

PHP 配置文件調(diào)整

vim /etc/php.ini

post_max_size改為16M(默認(rèn)8M)

max_excution_time 時(shí)間改為300,原來為30

max_input_time 時(shí)間改為300,原來為60

重啟 php-fpm 服務(wù)

systemctl restart php-fpm

下一步

進(jìn)入到數(shù)據(jù)庫(kù)配置界面,還需要配置數(shù)據(jù)庫(kù)

創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例及用戶

create database zabbix character set utf8mb4 collate utf8mb4_bin;create user zabbix@localhost identified by "Huawei@123!";grant all privileges on zabbix.* to zabbix@localhost;set global log_bin_trust_function_creators = 1;quit;

導(dǎo)入 Zabbix 所需要的數(shù)據(jù)文件

cat /tmp/zabbix-6.0.12/database/mysql/schema.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbixcat /tmp/zabbix-6.0.12/database/mysql/images.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbixcat /tmp/zabbix-6.0.12/database/mysql/data.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

中途需要輸入Zabbix用戶密碼

數(shù)據(jù)庫(kù)界面填寫數(shù)據(jù)庫(kù)密碼即可(Zabbix 用戶),下一步

時(shí)區(qū)與服務(wù)名稱界面,修改完,下一步

下一步

出現(xiàn)這個(gè)問題就是目錄權(quán)限問題

將該目錄擁有者改為 apache,然后點(diǎn)擊 back,在點(diǎn)擊下一步

chmod 755 /app/zabbix/ui -R

這里大家知道為什么不是 nginx 么?

Zabbix 是一個(gè) PH P應(yīng)用,Nginx 通過 php-fpm 來執(zhí)行 PHP 腳本,而 php-fpm 又是以服務(wù)的形式在運(yùn)行,因此猜想是因?yàn)閳?zhí)行寫入時(shí) php-fpm 使用的用戶不是 Nginx

通過 ps -ef | grep php-fpm 查看服務(wù)

那么到這里基本就完成了前端的配置,下一步

登錄界面

Admin/zabbix

進(jìn)入首頁

此時(shí)會(huì)發(fā)現(xiàn)前端啥也沒有,但是依然能進(jìn)入到前端里,這也就是為什么能夠把各組件分開部署。

Zabbix 部分

程序文件路徑為 /app/zabbix/sbin/ 下配置文件路徑為 /app/zabbix/etc/ 下

制作 Zabbix server 守護(hù)文件

vim /usr/lib/systemd/system/zabbix-server.service
[Unit]Description=Zabbix ServerAfter=syslog.targetAfter=network.targetAfter=postgresql.serviceAfter=pgbouncer.serviceAfter=postgresql-13.service[Service]Environment="CONFFILE=/app/zabbix/etc/zabbix_server.conf"EnvironmentFile=-/etc/sysconfig/zabbix-serverType=forkingRestart=on-failurePIDFile=/tmp/zabbix_server.pidKillMode=control-groupExecStart=/app/zabbix/sbin/zabbix_server -c $CONFFILEExecStop=/bin/kill -SIGTERM $MAINPIDRestartSec=10sTimeoutSec=0[Install]WantedBy=multi-user.target

制作 Zabbix agent2 守護(hù)文件

vim /usr/lib/systemd/system/zabbix-agent2.service
[Unit]Description=Zabbix Agent 2After=syslog.targetAfter=network.target[Service]Environment="CONFFILE=/app/zabbix/etc/zabbix_agent2.conf"EnvironmentFile=-/etc/sysconfig/zabbix_agent2Type=simpleRestart=on-failurePIDFile=/run/zabbix/zabbix_agent2.pidKillMode=control-groupExecStart=/app/zabbix/sbin/zabbix_agent2 -c $CONFFILEExecStop=/bin/kill -SIGTERM $MAINPIDRestartSec=10sUser=zabbixGroup=zabbix[Install]WantedBy=multi-user.target

修改 Zabbix 配置文件

和包安裝一樣,需要修改數(shù)據(jù)庫(kù)部分配置

vim /app/zabbix/etc/zabbix_server.conf

啟動(dòng)相關(guān)組件

systemctl restart zabbix-server zabbix-agent2

首頁恢復(fù)正常

主機(jī)頁

最新數(shù)據(jù)

圖形正常

附錄

編譯安裝沒有修改任何參數(shù)的情況下,pid 文件,sock 文件以及日志都在 /tmp 目錄下,如需要調(diào)整請(qǐng)修改 Zabbix 配置文件

最后

本文篇幅較長(zhǎng),如果是完全編譯的話更費(fèi)勁,當(dāng)然針對(duì)一些完全沒有外網(wǎng)的朋友相對(duì)來說更加的麻煩,有空我會(huì)出一個(gè)完全離線編譯的版本,歡迎大家關(guān)注后續(xù)的文章哦,謝謝!

標(biāo)簽: 配置文件 安裝目錄 數(shù)據(jù)庫(kù)密碼

上一篇:當(dāng)前短訊!Ansible自動(dòng)化部署K8S集群
下一篇:Linux:rinetd的安裝部署以及端口轉(zhuǎn)發(fā)