一.簡介
zabbix-server主要分為2部分:
- zabbix程序 程序根據客戶端的監控項,從客戶端獲取數據並寫入到數據庫,再根據觸發器/動作等配置進行操作。
- 展示頁面 使用php編寫,php腳本從數據庫獲得信息,用httpd或者nginx等網頁服務器展示出來。
根據上述說明,zabbix需要部署在lamp或者lnmp上面,對於php頁面來說,用apache好一些。
二.環境
[zabbix-server] 主機名 = host-1 系統 = centos-7.3 地址 = 1.1.1.1 軟件 = httpd-2.4 80 mariadb-5.5 3306 php-fpm-5.4 9000 zabbix-server-3.4 10051 [zabbix-agent] 主機名 = host-2 系統 = centos-7.3 地址 = 1.1.1.2 軟件 = zabbix-agent-3.4 10050
三.配置
配置服務端程序
操作服務器(host-1)
1.yum部署lamp
♠.安裝LAMP和依賴
yum -y install httpd php php-fpm php-mysql mariadb mariadb-server mariadb-devel
♠.啟動並加入到自啟動中
systemctl restart httpd mariadb php-fpm systemctl enable httpd mariadb php-fpm
♠.創建一個簡單的php腳本,測試httpd是否支持php,php是否可以連接mysql,mysql是否已啟動
vim /var/www/html/linkdb.php <?php $db=mysql_connect("localhost","root",""); if($db){ echo "ok"; }else{ echo "no"; } ?>
返回ok則正常,返回no則檢查數據庫是否可以不用密碼就登錄,如果有默認密碼,需要修改php腳本
curl http://127.0.0.1/linkdb.php
2.安裝依賴包
yum -y install gcc gcc-c++ libevent-devel php-bcmath php-gd php-xml php-mbstring
3.創建賬號,為安全起見禁止登錄
groupadd zabbix useradd -g zabbix -s /sbin/nologin zabbix
4.下載源碼包
wget https://shell-auto-install.oss-cn-zhangjiakou.aliyuncs.com/package/zabbix-3.4.1.tar.gz tar -xf zabbix-3.4.1.tar.gz cd zabbix-3.4.1
5.選擇參數,當前只開啟了服務端,其余編譯參數如下
./configure --prefix=/usr/local/zabbix --enable-server --with-mysql
第一行是添加這個參數,需要安裝的yum包,第二行是參數名
net-snmap-devel --with-net-snmp libcurl-devel curl-devel --with-libcurl libxml2-devel --with-libxml2 OpenIPMI-devel --with-openipmi unixODBC-devel --with-unixodbc
6.編譯安裝
make install
7.將php腳本復制到html目錄下
cp -r frontends/php/* /var/www/html/
8.添加所有權限到php腳本,當然這種方式比較危險,具體在zabbix前端頁面會說明對哪些腳本要權限,逐個改
chmod -R 777 /var/www/html
9.登陸mariadb並創建zabbix用戶,當前mariadb無密碼
MariaDB [(none)]> create database zabbixdb character set utf8; MariaDB [(none)]>grant all on zabbixdb.* to zabbixuser@"localhost" identified by "123456"; MariaDB [(none)]>quit
10.按順序導入zabbix自帶的數據庫
mysql -uzabbixuser -p123456 zabbixdb < database/mysql/schema.sql mysql -uzabbixuser -p123456 zabbixdb < database/mysql/images.sql mysql -uzabbixuser -p123456 zabbixdb < database/mysql/data.sql
11.修改php參數,符合zabbix要求
vim /etc/php.ini post_max_size = 16M max_execution_time = 300 max_input_time = 300 date.timezone = Asia/Shanghai
12.重啟服務
systemctl restart httpd php-fpm
配置服務端網頁
操作服務器(host-1)
1.訪問http://1.1.1.1
2.LDAP是特殊配置,不用管
3.數據庫:zabbixdb 賬號:zabbixuser 密碼:123456
4.地址和端口都默認,Name可以不寫或者隨便寫
5.確定信息后下一步即可
6.若遇到這一步,是因為zabbix對/var/www/html/conf/沒有權限或者沒寫寫進去。需要手動將文件下載,然后傳入到服務器的/var/www/html/conf/zabbix.conf.php中刷新即可
7.登錄,設置為中文。管理員:admin 密碼:zabbix
更改為中文后,update更新
最下面或提示zabbix-server未啟動,下面將啟動zabbix服務端
啟動zabbix-server
操作服務器(host-1)
1.復制並修改啟動腳本,將安裝目錄替換為設置目錄
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/ chmod +x /etc/init.d/zabbix_server vim /etc/init.d/zabbix_server BASEDIR=/usr/local/zabbix
2.修改配置文件,填寫數據庫信息,前端頁面是告訴php腳本從哪個數據庫獲得信息展示,這里告訴后端程序將收集的信息寫入哪個數據庫
vim /usr/local/zabbix/etc/zabbix_server.conf DBName=zabbixdb #數據庫名 DBUser=zabbixuser #數據庫用戶名 DBPassword=123456 #數據庫用戶密碼
3.啟動並檢查端口是否正常,因為很多時候顯示啟動但並沒有真正啟動
/etc/init.d/zabbix_server start netstat -utnalp | grep :10051
4.查看前端頁面,會發現正常了
配置客戶端
操作服務器(host-2)
1.zabbix客戶端可以有版本小差異,服務端3.4版本,客戶端3.2版本也可以
wget https://shell-auto-install.oss-cn-zhangjiakou.aliyuncs.com/package/zabbix-agent-3.4.1-1.el7.x86_64.rpm
2.安裝
yum -y install zabbix-agent-3.4.1-1.el7.x86_64.rpm
3.清空配置后,編寫配置,其它參數后面安裝文檔再加
> /etc/zabbix/zabbix_agentd.conf
4.當前配置是被動與主動模式都開啟,方便后期調節
vim /etc/zabbix/zabbix_agentd.conf #指定pid文件位置 PidFile=/var/run/zabbix/zabbix_agentd.pid #指定日志文件位置 LogFile=/var/log/zabbix/zabbix_agentd.log #設置為被動模式,將開啟端口 StartAgents=3 #當前的主機名,要寫正確,否則服務端會不識別 Hostname=host-2 #服務端的地址,用逗號(,)可以隔開寫多個 Server=1.1.1.1 #服務端的地址,用逗號(,)可以隔開寫多個 ServerActive=1.1.1.1 #自定義的腳本超時時間, Timeout=8 #允許自定義腳本 UnsafeUserParameters=1 #加載其它配置文件 Include=/etc/zabbix/zabbix_agentd.d/*.conf
5.啟動效驗
systemctl start zabbix-agent systemctl enable zabbix-agent netstat -unltp | grep 10050
四.測試
操作服務器(host-1)
1.添加
2.配置主機信息
3.添加模板,連接模板后,主機將被模板所帶的監控項監控
4.一般選擇Template OS Linux,先點擊添加,再添加,不然模板連接不上
5.等一分鍾,ZBX燈亮
五.附錄
導入其余數據庫
1.postgresql導入 psql -U username psql> create database zabbix; psql > \q cd database/postgresql psql -U username zabbix < database/postgresql/schema.sql psql -U username zabbix < database/postgresql/images.sql psql -U username zabbix < database/postgresql/data.sql 2.oracle導入 sqlplus zabbix/password@host/ORCL sqlplus>@database/oracle/schema.sql sqlplus>@database/oracle/images.sql sqlplus>@database/oracle/data.sql