1. 程式人生 > >【Zabbix】在CentOS7上安裝Zabbix3.0

【Zabbix】在CentOS7上安裝Zabbix3.0

led spl clas connector 不同數據庫 自由 sel 做了 之前

Zabbix安裝

  首先說明一下,本文主要參考了【http://www.linuxidc.com/Linux/2016-11/137030.htm】和【http://www.cnblogs.com/XYJK1002/p/5324293.html】兩篇文章。在兩者的基礎上做了些小總結和小錯誤的修正(當然也可能不是錯誤,只是因為一些環境或其他原因而不同的操作而已)。

  一直想給測試環境也裝一套Zabbix用來監控,這次剛好為了修復之前的SQL註入的漏洞,首先在自己的虛擬機上練一練手。令人高興的是,安裝過程比較順利,基本沒遇到什麽大麻煩,一個上午就已經全部完成開始使用了。下面來記錄一下安裝過程。

■  安裝環境說明

[[email protected]
/* */ selinux]# cat /proc/version Linux version 3.10.0-327.el7.x86_64 ([email protected]) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015 [[email protected] selinux]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)

  【https://www.zabbix.com/documentation/3.2/manual/installation/install_from_packages】這是Zabbix的官方文檔,我大概看了一下還是蠻全的。它還按照不同數據庫配置給出了不同的安裝說明。

  據說在CentOS早期版本上mysql是作為一個自帶軟件安裝著的,在進入CentOS7之後就把mysql換成了mariaDB。為了和老版本統一,這次安裝我仍然選擇了mysql來進行安裝。

■  安裝各種zabbix主要包和依賴包

  安裝過程中註意root權限,如果不是root就要記得sudo。

  通過yum來安裝軟件可以自動化解決依賴的問題比較好用,但是默認源中似乎不帶zabbix軟件包,所以需要首先添加帶有zabbix的源:

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

  然後就可以通過yum來安裝各種zabbix相關的包了。可以確定需要首先安裝的是zabbix-server-mysql和zabbix-web-mysql兩個包。

yum install -y zabbix-server-mysql zabbix-web-mysql

另外對比之前說過的兩篇參考文章和官方文檔,我又用rpm -qa | grep zabbix之後發現,主要還有zabbix-agent和zabbix-get兩個包沒有裝(不知道zabbix-sender起什麽作用沒有裝&不需要加監控代理所以zabbix-proxy沒有裝)。於是再yum一下這兩個包,全部安裝結束之後可能會要將近100M的空間。

  在這個安裝過程中,作為依賴還會自動安裝一些其他東西比如PHP什麽的。。

■  mysql的安裝與初始化

  默認的源中已經沒有mysql了,要通過yum安裝mysql的話必須先添加mysql社區的源。可以這麽做:

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

  如果報沒有wget的錯可以先yum下wget。然後就可以

yum repolist enabled|grep mysql
#查看可安裝的mysql版本,結果如下
mysql-connectors-community/x86_64 MySQL Connectors Community                  39
mysql-tools-community/x86_64      MySQL Tools Community                       49
mysql56-community/x86_64          MySQL 5.6 Community Server                 344

#要裝的是第三個
yum install -y mysql-community-server

  mysql服務器程序的安裝過程大概也要占據幾十M的空間,考慮到依賴也要裝十來個包。

  安裝完成mysql之後就可以啟動mysql服務來進行數據庫的初始化。在CentOS7中啟動服務用的是systemctl,在6中還是service:

systemctl enable mysql  #設置開機自動啟動mysql
systemctl start mysql    #立即啟動mysql

  順利啟動之後可連入mysql進行數據庫初始化:

mysql -u root -p
password:    #會問你密碼,第一次登錄不用管直接回車即可
mysql>    #進入mysql的命令行界面
##創建zabbix數據庫和用戶,這裏能不能自由取名什麽的不清楚沒試過,有機會可以嘗試一下
mysql>create database zabbix character set utf8 collate utf8_bin;
mysql>grant all privileges on zabbix.* to [email protected] identified by zabbix;  #如需要在遠程也能通過工具用zabbix用戶連入數據庫,[email protected]%‘
mysql>flush privileges; mysql
>quit; #至此數據庫基本結構已經有了,接下來就是往裏面導入數據 zcat /usr/share/doc/zabbix-server-mysql-3.2.1/create.sql.gz |mysql -uzabbix -pzabbix -b zabbix #註意用的命令是zcat不是cat,然後-p後面密碼是根據上面mysql中建立的用戶的密碼來的。

  這一步導入數據可能會花費較長時間,在導入數據完成之後可以看一看zabbix數據庫中的表和結構,可以看到已經具有了基本的zabbix數據庫表結構了。可以通過dbvis等工具遠程連入數據庫查看表結構。

  

■  配置zabbix並啟動

  有了數據庫之後,還需要將zabbix和數據庫聯系起來。這一步就是需要修改zabbix的服務端配置。配置文件在/etc/zabbix/zabbix_server.conf(默認位置,如果安裝過程中有個性化更改的話就需要找其他地方了)在這個配置文件中可以配置DBHost,DBName,DBUser,DBPassword等。按照上面的意思,配置的數據庫就是在本地的所以DBHost可以直接寫localhost。如果是遠程的數據庫的話DBHost就可以寫遠程數據庫的URL。配置完成後的zabbix_server.conf中有效的配置項如下:

[[email protected] zabbix]# egrep -v (^.*#|^$) zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

  *可以註意一下的是zabbix_server.log這個日誌記錄了zabbix服務器的運行情況,出了問題可以來查。

  alertscripts和externalscripts對應的是告警腳本和外部腳本監控方式。

  如果順利的話到此為止,所有zabbix相關的內容都已經配置完成了,就可以啟動zabbix_server了:

systemctl enable zabbix-server
systemctl start zabbix-server

  然後可以去前端配置中修改一下時區(雖然不知道這麽做的意義是什麽。。),文件位於/etc/httpd/conf.d/zabbix.conf,其中有一行被註釋的#php_value date.timezone Europe/Rica,把註釋去掉然後把地區信息改成Asia/Shanghai即可。

  最後,啟動apache服務來打通服務器到前端用戶的最後一道屏障,這樣可以讓用戶通過web界面來訪問配置zabbix的功能。

systemctl enable httpd
systemctl start httpd

  另外,為了zabbix_server可以監控自己,可以再systemctl start zabbix-agent一下。

  此時可以netstat -ntlp查看開放端口,如果順利應該可以看到我們開放了3306(mysql),80(httpd),10051(zabbix_server用),10050(zabbix_agent)用的四個端口。如果ps -ef|grep zabbix看一下也可以看到很多條zabbix_server和zabbix_agent的各種進程。

■  zabbix的網頁界面配置

  這時候在瀏覽器訪問http://IP/zabbix就可以訪問到zabbix的web界面。因為是首次訪問,web界面會引導你走一個配置流程。

技術分享

  基本上只要一路next step下去就可以了,中間可能會遇到讓你填數據庫用戶的密碼,以及一個server name(這個是會顯示在未來zabbixweb界面的title裏的),其他都是一些確認信息。全部點完之後就來到了登錄界面,默認的管理員賬密是Admin:zabbix。進入web界面之後還可以為我們的用戶配置語言(zabbix語言配置是針對用戶而不是系統的,這一點比較奇葩,zabbix中有很多這樣的邏輯。。)。據說配置成中文時還會遇到亂碼什麽的,因為我本身習慣看英文界面加上我切換中文時沒遇到問題。。就不多說了如果碰到亂碼參考上面兩篇文章給出的解決方案。

  進入zabbix的web界面之後就不用多說了,總之就按照以前熟悉的感覺來吧。

  默認的zabbix中自帶了很多template,其中很多項都是冗余的,如果要正式用記得要優化一下。另外會自帶一臺主機,就是Zabbix Server,監控地址是127.0.0.1,自帶關聯了Template OS Linux和Template Zabbix Server兩個模板,默認狀態是disable。可以把這個enable之後等一會兒,然後去看latest data下面的數據。數據正常出現了的話這就是好了。

■  碰到的一些小問題

● selinux沖突

  安裝完成後對於127.0.0.1的監控已經正常運轉,但是在web界面下總是會顯示一條黃色的警告,提示Zabbix server is not running:data displayed maynot be current。不知道具體原因,總之我上服務器把服務器上的selinux關掉之後就不再顯示了。

● 虛擬機調通問題

  Zabbix在虛擬機中完全起來之後,宿主機卻訪問不來web界面,原來是

  1.防火墻組織了訪問。對於這種情況,如果只是測試環境的虛擬機的話大可以systemctl stop firewalld直接關掉防火墻。如果需要防火墻的話那麽就需要配置防火墻來放行一些端口,這需要修改/etc/firewalld/zones/public.xml這個文件了。具體的修改方法還沒試過,請百度

  2.開啟web服務時host只寫了127.0.0.1而不是0.0.0.0。。呵呵了。。

【Zabbix】在CentOS7上安裝Zabbix3.0