運維監控工具zabbix(1)-服務端的安裝

zabbix介紹

Zabbix 是由 Alexei Vladishev 開發的一種網絡監視、管理系統,基於 Server-Client 架構。可用於監視各類網絡服務、服務器和網絡機器等狀態。
zabbix官網: https://www.zabbix.com
zabbix 主要由2部分構成 zabbix serverzabbix agent
zabbix proxy是用來管理其餘的agent,做爲代理。php

zabbix進程構成

zabbix有多個進程分別是:zabbix_agentdzabbix_getzabbix_senderzabbix_serverzabbix_proxy等。html

zabbix_agentd
客戶端守護進程,此進程能夠收集客戶端數據,CPU負載,網絡帶寬等。所以在被監控的主機上只須要安裝zabbix_agentd服務便可。java

zabbix_server
zabbix服務端守護進程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的數據最終都是提交到server。這裏的提交數據分爲被監控主機主動提交數據給服務端和服務端主動去被監控主機提取數據(主動模式與被動模式)。mysql

zabbix_get
zabbix工具,單獨使用的命令,一般在server或者proxy端執行獲取遠程客戶端信息的命令。一般用戶排錯。例如在server端獲取不到客戶端的內存數據,可使用zabbix_get獲取客戶端的內容的方式來作故障排查。linux

zabbix_sender
zabbix工具,用於發送數據給server或者proxy,一般用於耗時比較長的檢查。不少檢查很是耗時間,致使zabbix超時。因而咱們在腳本執行完畢以後,使用sender主動提交數據。nginx

zabbix_proxy
zabbix代理守護進程。功能相似server,惟一不一樣的是它只是一箇中轉站,它須要把收集到的數據提交/被提交到server裏。web

zabbix編譯安裝

1.1 環境說明sql

[root@moli_linux1 ~]$ cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 
[root@moli_linux1 ~]$ uname -r
3.10.0-862.6.3.el7.x86_64
[root@moli_linux1 ~]$ getenforce
Disabled
[root@moli_linux1 ~]$ 
[root@moli_linux1 ~]$ hostname -I
192.168.30.3

安裝的前提是基於lnmp架構,所以本機已經安裝nginx-1.13.8+mysql-5.6.35+php-7.1.6,安裝詳情可參考CentOS7安裝LNMP(nginx1.14.二、mariadb10.3.1三、php7.3.3),下面開始安裝zabbix:數據庫

1.2 安裝依賴包vim

yum install net-snmp-devel libxml2-devel libcurl-devel
yum install libevent-devel

1.3 修改php.ini配置文件參數

max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1

1.4 下載源碼包,解壓,安裝
下載地址:https://sourceforge.net/proje...
下載後解壓,安裝。

tar -xvf zabbix-3.4.9.tar.gz
cd zabbix-3.4.9
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
make
make install

注:若是mysql是yum安裝的,用find找到mysql_config的路徑,一般在/usr/bin/mysql_config下,編譯安裝zabbix選用這個路徑。

1.5 建立zabbix用戶

groupadd zabbix
useradd zabbix

1.6 初始化zabbix_server數據庫
建立zabbix數據庫與用戶

mysql -uroot -p
mysql>create database zabbix;
mysql>grant all on zabbix.* to 'zabbix'@localhost identified by 'zabbix'with grant option;

導入三張表到zabbix庫

cd /usr/local/src/zabbix-3.4.9
mysql -uroot -p zabbix < database/mysql/schema.sql
mysql -uroot -p zabbix < database/mysql/images.sql
mysql -uroot -p zabbix < database/mysql/data.sql

1.7 配置zabbix_server
編輯zabbix_server配置文件,修改配置以下:vim /usr/local/zabbix/etc/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log
PidFile=/var/log/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
StartDiscoverers=5
Timeout=30
CacheSize=16M
ValueCacheSize=16M

1.8 配置zabbix_agent
編輯zabbix_agent配置文件,修改配置以下:vim /usr/local/zabbix/etc/zabbix_agentd.conf

LogFile=/var/log/zabbix/zabbix_agentd.log
PidFile=/var/log/zabbix/zabbix_agentd.pid
Server=192.168.30.3
ServerActive=192.168.30.3
ListenPort=10050
ListenIP=0.0.0.0
Hostname=192.168.30.3

1.9 添加web前段php文件

cp -rf /usr/local/src/zabbix-3.4.9/frontends/php/ /data/wwwroot/zabbix
chown -R zabbix:zabbix /data/wwwroot/nginx/zabbix/
mkdir -p /var/log/zabbix
chown -R zabbix:zabbix /var/log/zabbix

2.0 添加系統服務

cp misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_server 
chmod +x /etc/init.d/zabbix_agentd

修改開啓自動文件

vim /etc/init.d/zabbix_server 
vim /etc/init.d/zabbix_agentd

將其中的basedir=/usr/local修改成/usr/local/zabbix
PIDFILE=/tmp/zabbix/$BINARY_NAME.pid改成PIDFILE=/var/log/zabbix/$BINARY_NAME.pid
或者執行:

sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd

添加開機自啓列表:

chkconfig --add zabbix_agentd
chkconfig --add zabbix_server
chkconfig zabbix_server on
chkconfig zabbix_agentd on

2.1 添加nginx虛擬主機
vim /usr/local/nginx/conf/extra/zabbix_server.conf

server
{
    listen 80 default_server;
    server_name www.mori.com;
  
    location ~ \.php$
    {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/php-fcgi.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/wwwroot/zabbix$fastcgi_script_name;
    }
    index index.html index.htm index.php;
    root /data/wwwroot/zabbix;
    access_log /data/nginx_logs/nginx_aaa_access.log combined_realip;
}

2.2 從新加載nginx服務,啓動zabbix_agent,zabbix_server服務

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
/etc/init.d/zabbix_agentd start
/etc/init.d/zabbix_server start

2.3 檢查端口進程

clipboard.png

2.3 web界面安裝
瀏覽器訪問192.168.30.3/setup.php進行安裝

clipboard.png
點擊下一步便可。

若是出現報錯:
PHP bcmath extension missing(PHP configuration parameter --enable-bcmarth)
PHP sockets extension missing(PHP configuration parameter --enable-sockets)
是由於zabbix的使用依賴php的bcmath模塊和sockets模塊,可是zabbix檢測出系統的php沒有這兩個模塊,所以只須要對php安裝一下這兩個模塊便可。
clipboard.png

解決缺乏bcmath.so問題:

# 進入php包路徑
cd /usr/local/src/php-7.1.6/ext/bcmath/

# 執行命令
/usr/local/php-fpm/bin/phpize

若執行/usr/local/php-fpm/bin/phpize出現如下報錯:

Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script

解決方法:

yum install -y autoconf m4

解決上訴報錯再次執行:

/usr/local/php-fpm/bin/phpize
# 安裝php擴展模塊:
./configure --with-php-config=/usr/local/php-fpm/bin/php-config
make 
make install

執行完會生成一個路徑,/usr/local/php-fpm/lib/php/extensions/no-debug-non-zts-20160303/bcmath.so(每一個人的路徑都不同,能夠用find / -name bcmath.so找出)

而後在php.ini添加

extension=/usr/local/php-fpm/lib/php/extensions/no-debug-non-zts-20160303/bcmath.so

最後重啓php-fpm便可。

解決缺乏sockets.so問題:

cd /usr/local/src/php-7.1.6/ext/sockets/
/usr/local/php-fpm/bin/phpize
./configure --with-php-config=/usr/local/php-fpm/bin/php-config
make 
make install

編輯php.ini,添加extension=sockets.so,重啓php-fpm服務便可。

接下來就繼續安裝,檢測都是OK,下一步:

clipboard.png

這一步填寫數據庫相關信息:

clipboard.png

填寫zabbix服務端信息:
clipboard.png

查看你填寫的信息,沒有錯誤就下一步:
clipboard.png

這一步報錯是由於zabbix沒法建立zabbix.conf.php文件,直接點擊第一點的下載連接,下載zabbix.conf.php,而後拷貝到第二點的目錄裏面便可,解決就點擊下一步:
clipboard.png

大功告成!!
clipboard.png

相關文章
相關標籤/搜索