最近,要更新線上的zabbix版本。從目前使用的3.2升級到3.4。希望做到的是,在zabbix報警後,zabbix能夠自動調用一些腳本去處理問題。故決定開設此專欄,將從搭建zabbix到升級zabbix的整改過程都記錄下來。已經加入一些zabbix報警的配置。這篇文章先從zabbix安裝開始。先介紹安裝zabbix-server,並在server本機上安裝zabbix-agent,這應該是最簡單的架構了。這裏先介紹安裝zabbix 3.2.11的過程。
1.安裝LAMP環境:
a.安裝apache,並設置成開機自啓:
yum -y install httpd
systemctl start httpd
systemctl enable httpd
b.安裝數據庫並設置成開機自啓:
yum -y install mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb
c.安裝php
yum -y install php
yum -y install php-mysql
systemctl restart httpd
其中,php-mysql是一個用於讓PHP程序去能夠調用MySQL數據庫的模塊。安裝完成後,你會發現/etc/httpd/conf.d的目錄下面多了一個文件,php.conf。
上面幾步完成,LAMP環境基本完成,之後去測試apache是否能夠正常調用php。在在/var/www/html目錄下新建一個phpinfo.php文檔,內容如下所示。之後去訪問http://172.16.51.37/phpinfo.php,這裏的51.37是zabbix-server安裝的機器ip。出現下面頁面則正常。
2.安裝zabbix3.2。這裏只所以要強調版本,是希望自己能逐漸學會下載指定軟件這一個技能。這個聽起來可能很簡單,但有時又會讓人很困擾。通過下面兩個命令即可。第一個即是導入zabbix3.2的源。下面那一個長串的鏈接,你可以粘貼前一半部分去訪問,會發現還有其他的版本。這條命令敲完後,你會發現在/etc/yum.repo.d目錄下多出一個zabbix.repo的源。後面的yum安裝就是通過這個源去下載的。後面那個命令是類似給源加上一個祕鑰的東西。這裏不做介紹。
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
上面的源安裝好後,就是安裝zabbix了。使用下面命令即可。
yum -y install zabbix-server
yum -y install zabbix-server-mysql
yum -y install zabbix-web-mysql
3.進行數據庫初始化配置:
登錄數據庫:默認數據庫沒有密碼,使用mysql命令直接登錄即可:
MariaDB [(none)]> create database zabbix default character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> grant all privileges on zabbix.* to [email protected] identified by 'zabbix';
MariaDB [(none)]> flush privileges;
初始化zabbix數據庫,向數據庫導入create.sql腳本。該腳本在/usr/share/doc/zabbix-server-mysql-3.2.11目錄下,是一個壓縮文件。使用gunzip 解壓即可。之後使用# mysql -uroot zabbix < create.sql導入腳本。需要注意的是,有點zabbix老版本中是3個腳本:schema.sql,images.sql,data.sql。如果是3個,按這個陳列順序導入即可。
4.修改php.ini,zabbix.conf文件,做一些調優以及時區設置。這裏有兩個配置文件。一個是/etc/php.ini,一個是/etc/httpd/conf.d/zabbix.conf。兩個文件都改一下。
/etc/httpd/conf.d/zabbix.conf:
Zabbix monitoring system php web frontend
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Shanghai
/etc/php.ini,需要注意的是,修改這個文件的時候,文件前面相關參數的;要去掉。他類似於註釋,帶着會不生效。
max_execution_time = 600
max_input_time = 600
memory_limit = 256
Mpost_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Shanghai
上面兩個文件,無論改哪一個,都要重啓httpd。
修改/etc/zabbix/zabbix_server.conf文件,修改下面幾個參數。
DBHost=172.16.51.37
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
到這裏,要配置的就完成了。另外,防火牆和selinux要關閉。如果防火牆不關閉,安按照下面命令執行即可。
# firewall-cmd --zone=public --add-port=10050/tcp --permanent
//zabbix-agent端口
# firewall-cmd --zone=public --add-port=10051/tcp --permanent
//abbix-server端口
# firewall-cmd --zone=public --add-port=80/tcp --permanent
//httpd端口
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
//數據庫端口
# setsebool -P httpd_can_connect_zabbix=1
# systemctl restart firewalld
到這裏,zabbix服務端配置完成,在瀏覽器上輸入ip/zabbix做配置。
如下面的圖:
你會看到下面圖又一個fail。是開始沒設置時區導致的。vi /etc/php.ini systemctl restart httpd
填寫數據庫相關信息。
這個地方,填寫zabbix-server 的信息。因爲是本機,所以host那裏寫了localhost。Name隨便寫。
點擊完Finish,zabbix-server就全部安裝結束了。
另外,如果你想重新修改剛剛web界面所配置的界面信息,該怎麼辦呢?去修改/etc/zabbix/web/zabbix.conf.php這個文件。
之後把zabbix-server、httpd相關服務重啓一下。
之後,在這裏再介紹下將zabbix-server作爲agent加入到zabbix裏面的過程。
安裝客戶端並開機自啓:
yum -y install zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
之後,修改3個參數。解釋一下,因爲這個zabbix agent的本身就是server,所以前兩個參數都不用修改。Server就是zabbix-server的地址。
被動監測是指服務端打開一個TCP連接,服務端發送請求agent.ping,Agent接收請求並返回響應,服務端處理接收到的數據,並關閉TCP連接。
主動監測是指Agent打開TCP連接,Agent提交收集到的數據,服務端收到數據後會進行處理並返回響應狀態,客戶端關閉TCP連接。那麼這個過程中,Agent提交的數據給誰呢?就是給ServerActive參數指定的主機。這時候,又有一個問題來了。就是既然Server參數指定了服務端是誰,直接發給服務端不就行了?這是因爲,服務端與客戶端通信時,佔用的CPU資源還是很大的。那麼當監控的主機很多時,就需要在客戶端與服務端直接增加一些服務端的代理。客戶端先把數據發送到服務端代理上,再由代理髮送到服務端上。因爲我們這個架構中沒有服務端代理,所以ServerActive參數指向的就是服務端。
Hoatname應該與web界面中加入主機的主機名一致。
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server