Zabbix 是由 Alexei Vladishev 開發的一種網絡監視、管理系統,基於 Server-Client 架構。可用於監視各類網絡服務、服務器和網絡機器等狀態。
zabbix官網: https://www.zabbix.com
zabbix 主要由2部分構成 zabbix server
和 zabbix agent
zabbix proxy是用來管理其餘的agent,做爲代理。php
zabbix有多個進程分別是:zabbix_agentd
、zabbix_get
、zabbix_sender
、zabbix_server
、zabbix_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
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 檢查端口進程
2.3 web界面安裝
瀏覽器訪問192.168.30.3/setup.php
進行安裝
點擊下一步便可。
若是出現報錯: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安裝一下這兩個模塊便可。
解決缺乏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,下一步:
這一步填寫數據庫相關信息:
填寫zabbix服務端信息:
查看你填寫的信息,沒有錯誤就下一步:
這一步報錯是由於zabbix沒法建立zabbix.conf.php文件,直接點擊第一點的下載連接,下載zabbix.conf.php,而後拷貝到第二點的目錄裏面便可,解決就點擊下一步:
大功告成!!