部署zabbix監控服務 什麼是zabbix zabbix是一個基於WEB界面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。 zabbix能監視各種網路參數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。 zabbix由2部分構成,zabbi ...
部署zabbix監控服務
目錄什麼是zabbix
zabbix
是一個基於WEB界面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。
zabbix
能監視各種網路參數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
zabbix
由2部分構成,zabbix server
與可選組件zabbix agent
。
zabbix server
可以通過SNMP
,zabbix agent
,ping
,埠監視等方法提供對遠程伺服器/網路狀態的監視,數據收集等功能,它可以運行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。
zabbix agent
需要安裝在被監視的目標伺服器上,它主要完成對硬體信息或與操作系統有關的記憶體,CPU等信息的收集。
zabbix server
可以單獨監視遠程伺服器的服務狀態;同時也可以與zabbix agent
配合,可以輪詢zabbix agent
主動接收監視數據(agent方式),同時還可被動接收zabbix agent
發送的數據(trapping方式)。
另外zabbix server
還支持SNMP (v1,v2),可以與SNMP軟體(例如:net-snmp)等配合使用。
zabbix的特點
zabbix的主要特點:
- 安裝與配置簡單,學習成本低
- 支持多語言(包括中文)
- 免費開源
- 自動發現伺服器與網路設備
- 分散式監視以及WEB集中管理功能
- 可以無agent監視
- 用戶安全認證和柔軟的授權方式
- 通過WEB界面設置或查看監視結果
- email等通知功能
zabbix主要功能:
- CPU負荷
- 記憶體使用
- 磁碟使用
- 網路狀況
- 埠監視
- 日誌監視
zabbix的配置文件
zabbix配置文件有兩種:
- 伺服器端配置文件(/usr/local/etc/zabbix_server.conf)
- 客戶端配置文件(/usr/local/etc/zabbix_agentd.conf)
- zabbix代理配置文件(/usr/local/etc/zabbix_proxy.conf)
伺服器端配置文件zabbix_server.conf常用配置參數:
參數 | 作用 |
---|---|
LogFile | 設置服務端日誌文件存放路徑 |
ListenIP | 設置服務端監聽IP |
ListenPort | 設置服務端監聽的埠號 |
PidFile | 設置服務端進程號文件存放路徑 |
DBHost | 指定zabbix的資料庫伺服器IP |
DBName | 指定zabbix使用的資料庫庫名 |
DBUser | 指定zabbix資料庫登錄用戶 |
DBPassword | 指定zabbix資料庫登錄密碼 |
DBPort | 指定zabbix資料庫埠號 |
User | 設置zabbix以什麼用戶的身份運行 |
AlertScriptsPath | 設置告警腳本存放路徑 |
ExternalScripts | 外部腳本存放路徑 |
客戶端配置文件zabbix_agentd.conf常用配置參數:
參數 | 作用 |
---|---|
Server | 指定zabbix伺服器的IP或功能變數名稱 |
ServerActive | 指定zabbix伺服器的IP或功能變數名稱 |
Hostname | 指定本機的主機名,此項必須與web界面配置項一致 |
UnsafeUserParameters | 是否啟用自定義監控項,可選值為{1 | 0} |
UserParameter | 指定自定義監控腳本參數 |
LogFile | 設置客戶端日誌文件存放路徑 |
部署zabbix
環境說明:部署zabbix需要再LAMP架構的基礎上進行部署
環境 | IP | 要安裝的應用 |
---|---|---|
伺服器 | 192.168.111.135 | lamp架構 zabbix server zabbix agent |
客戶端 | 192.168.111.137 | zabbix agent |
因為zabbix
是用php
語言開發的,所以必須先部署lamp
架構,使其能夠支持運行php
網頁
apache:需要1.13.12及以上
資料庫:mysql需要MySQL8以上,mariadb需要10.5及以上
php:7.4.0及以上,8.0,8.1
zabbix服務端安裝
準備工作
[zabbix官方下載](Download and install Zabbix)
[root@localhost ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.2.tar.gz //下載包
[root@localhost ~]# tar xf zabbix-6.2.2.tar.gz //解壓包
[root@localhost ~]# useradd -r -M -s /sbin/nologin zabbix //創建用戶
[root@localhost ~]# dnf -y install net-snmp-devel libevent-devel //安裝依賴包
[root@localhost ~]# mkdir -p /usr/lib/zabbix
[root@localhost ~]# chown -R zabbix.zabbix /usr/lib/zabbix/
[root@localhost ~]# chmod 770 /usr/lib/zabbix/
資料庫操作
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix123!';
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)
恢複數據(必須按照schema images data的順序恢復)
[root@localhost ~]# cd zabbix-6.2.2/database/mysql/
[root@localhost mysql]# pwd
/root/zabbix-6.2.2/database/mysql
[root@localhost mysql]# ls
Makefile.am Makefile.in data.sql double.sql history_pk_prepare.sql images.sql schema.sql
[root@localhost mysql]# mysql -uzabbix -p'zabbix123!' zabbix < schema.sql
[root@localhost mysql]# mysql -uzabbix -p'zabbix123!' zabbix < images.sql
[root@localhost mysql]# mysql -uzabbix -p'zabbix123!' zabbix < data.sql
配置源代碼
[root@localhost mysql]# cd
[root@localhost ~]# cd zabbix-6.2.2
[root@localhost zabbix-6.2.2]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
[root@localhost zabbix-6.2.2]# make && make install
//配置zabbix_server.conf文件
[root@localhost ~]# cd /usr/local/etc/
[root@localhost etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d
[root@localhost etc]# vim zabbix_server.conf
DBPassword=zabbix123!
[root@localhost ~]# cd zabbix-6.2.2
[root@localhost zabbix-6.2.2]# zabbix_server
[root@localhost zabbix-6.2.2]# zabbix_agentd
[root@localhost ~]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
LISTEN 0 80 0.0.0.0:3306 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 80 [::]:3306 [::]:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
zabbix web界面安裝前配置
[root@localhost ~]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@localhost ~]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@localhost ~]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@localhost ~]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@localhost ~]# service php-fpm restart
[root@localhost zabbix-6.2.2]# cp -a ui/* /usr/local/apache/htdocs/zabbix.example.com/
cp: overwrite '/usr/local/apache/htdocs/zabbix.example.com/index.php'? y
[root@localhost zabbix-6.2.2]# chown -R apache.apache /usr/local/apache/htdocs