centos7安裝zabbix

centos7.3版本下搭建zabbix,今天看到網上一個不錯的文檔,轉一下不過有個問題是mysql存儲路徑沒解決,順便處理下mysql存儲路徑;

url:http://blog.csdn.net/u014057054/article/details/66476990

安裝前準備:

1.1 安裝依賴包:

yum -y install wget net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml php-mbstring php-ldap php-mysql.x86_64 php-pear php-xmlrpc  net-tools wget vim-enhanced

可能故障問題:Cannot find a valid baseurl for repo: base/7/x86_64

解決:修改DNS

 

1.2 關閉防火牆:

# systemctl stop firewalld.service

# systemctl disable firewalld.service 

需要關閉 selinux,一定要關閉這個,開啓selinux會引起一連串問題,甚至zabbix的discovery功能也不能正常使用

# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

確認是否修改成功

# grep SELINUX /etc/selinux/config

然後重啓系統即可

# reboot

一、zabbix server3.0在centos 7上安裝

根據zabbix server3.0官方要求,目前zabbix server3.0在centos6 OS上不能進行yum安裝。如果一定要在centos6 OS上進行安裝zabbix server3.0的話,強烈建議通過源碼方式進行編譯安裝,同時還需要注意PHP的版本。

考慮到這些因素,所以在此我們是在centos7 OS上進行yum安裝zabbix server3.0。

注意:儘管zabbix server3.0在centos6 OS上不能yum方式進行安裝,但是zabbix-agent3.0在centos6 OS上是可以進行yum安裝的。

1.1 搭建lamp環境

在centos7上安裝zabbix server3.0之前,我們首先搭建zabbix所需要的lamp環境。

下載最新的yum源,如下:

# wget -P /etc/yum.repos.d http://mirrors.aliyun.com/repo/Centos-7.repo

wKiom1gqn8vxHJ-AAAA85igYBXo093.png-wh_50 

在開始安裝之前,還需要說明下centos7自帶的mysql是mariadb,我們可以通過如下命令查看:

yum search mysql|tac

wKioL1gqn-SxR1T3AAEEUSRuNFs470.png

現在開始安裝lamp環境,使用如下命令:

[root@zabbix ~]# yum -y install mariadb mariadb-server php php-mysql httpd

wKiom1gqn_Txs4WrAABAi2nJAOU966.png-wh_50 

通過上圖,我們可以很明顯的看出centos7默認安裝的是php5.4、httpd2.4和maradb5.5,這個完全符合zabbix3.0對軟件版本的要求。

lamp安裝完畢後,我們現在來配置mysql數據庫。

設置開機自啓動mysql,並啓動mysql,使用如下命令:

[root@zabbix ~]# systemctl enable mariadb.service

[root@zabbix ~]# systemctl start mariadb.service

wKioL1gqoAeT_0mHAAAYC_bko_Y251.png

初始化mysql數據庫,並配置root用戶密碼。使用如下命令:

[root@zabbix ~]# mysql_secure_installation

wKiom1gqoBeTC9NqAABKxM4x6uY757.png-wh_50

wKioL1gqoCSDEeJSAAASp5JMyeU322.png-wh_50

wKiom1gqoDHBCn-SAABq5PAobEM930.png-wh_50

注意:在上圖中的Enter current passwdord for root處,我們直接敲回車鍵即可。因爲centos7上mysql的默認root用戶密碼爲空。

上圖中主要是爲root用戶配置密碼,並刷新相關權限。(密碼設爲123456,只爲實驗用,生產環境自定義)

Remove anonymous users? 刪除匿名用戶?

Disallow root login remotely? 禁止root遠程登陸

Remove test database and access to it? 刪除測試數據庫並且和訪問它

Reload privilege tables now? 重新載入特權表

上圖中主要是配置匿名用戶、test用戶以及root用戶遠程連接等相關配置。

mysql初始化完畢後,我們現在來創建zabbix數據庫及其用戶,使用如下命令:

[root@zabbix ~]# mysql -uroot -p123456 -e "create database zabbix default character set utf8 collate utf8_bin;"

[root@zabbix ~]#mysql -uroot -p123456 -e "grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';"

wKioL1gqoD_BClFkAACKdFUrycA669.png

現在來測試剛剛創建的zabbix用戶,是否可以連接mysql數據庫,如下:

[root@zabbix ~]# mysql -uzabbix -pzabbix

MariaDB [(none)]> show databases;

MariaDB [(none)]> quit

wKiom1gqoEzBRpMbAABNUFEiCuM472.png-wh_50

通過上圖,我們可以很明顯的看出zabbix用戶是可以正常連接數據庫的。

啓動apache以及開放80端口,如下:

[root@zabbix ~]# systemctl start httpd.service

[root@zabbix ~]# netstat -ltun

wKioL1gqoGWgAYGXAAA6sE-tHK4029.png-wh_50

wKiom1gqoMbhIRteAAAGNCSDtAQ262.png

到此lamp環境已經全部搭建完畢。

wKiom1gqoNPwz53hAAEA7yOBGok853.png-wh_50

wKioL1gqoOPBczFdAALoUk-HFjE752.png-wh_50

1.2 安裝zabbix server3.0

lamp環境搭建完畢後,我們現在開始正式安裝zabbix3.0。

安裝zabbix3.0所需要EPEL源和zabbix的yum源,如下:

#rpm -ivh http://mirrors.aliyun.com/epel/7/x86_64/e/epel-release-7-8.noarch.rpm

wKiom1gqoPTSmlfLAAAocT5rAkc580.png-wh_50

測試下來大多數的這個包下不到:(

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

wKiom1gqoQeSNMFLAAAopZDOd94134.png

以上安裝完畢後,我們現在來正式安裝zabbix3.0,使用如下命令:

[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get

wKiom1gqoRbAVXI6AABiYtiHgL4078.png

wKioL1gqoSjR6ooxAAAhfLVS2WY942.png

通過上圖,我們可以很明顯的看出目前zabbix server是3.0.5版本的。

以上安裝完畢後,我們現在開始進行zabbix的相關配置。

導入zabbix數據庫結構,如下:

[root@zabbix ~]# cd /usr/share/doc/zabbix-server-mysql-3.0.5/

[root@zabbix zabbix-server-mysql-3.0.5]# zcat create.sql.gz | mysql -uroot -pDe123456 zabbix

wKioL1gqoTeTXQ5IAAAb16Vuvc4882.png

數據庫導入完畢後,我們現在來修改zabbix sever的配置文件,如下:

[root@zabbix ~]# vi /etc/zabbix/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

wKiom1gqoYbBllDyAAAE8E22BZo660.png

wKioL1gqoZLhwEQ0AAAE_nfB-Ww462.png


wKiom1gqodbwMzfGAAAFQn89Sxc561.png

wKiom1gqoeLjLi9KAAAGNJJLhQ4546.png

上述配置文件中,我們只需要關注 DBHost、DBName、DBUser、

DBPassword 幾項即可。這幾項是配置zabbix server連接mysql數據庫的參數。

以上修改完畢後,我們再來修改下zabbix.conf文件。如下:

vi /etc/httpd/conf.d/zabbix.conf

Alias /zabbix /usr/share/zabbix


Options FollowSymLinks

AllowOverride None

Require all granted


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 always_populate_raw_post_data -1

   php_value date.timezone Asia/Chongqing



修改前:

wKiom1gqofjirWwNAAEOczMLL4Q534.png-wh_50

修改後:

wKioL1gqog6zmlb_AABAE4wmtyM045.png-wh_50

其中php_value date.timezone Asia/Chongqing主要是定義php的時區。

以上修改完畢後,我們把把zabbix-server加入開機啓動,並啓動zabbix-server,如下:

[root@zabbix ~]# systemctl start zabbix-server.service

[root@zabbix ~]# systemctl enable zabbix-server.service

wKiom1gqoiDwOemSAAAHvLw7axE579.png

最後重啓apache,如下:

[root@zabbix ~]# systemctl restart httpd.service

 

三、配置zabbix

http://ip/zabbix/setup.php

wKiom1gqow3zr3-uAAAprQiAZZs653.png

wKioL1gqoxnTPFYsAAD7hkYL_8k558.png

Next step

wKiom1gqoyqwzJyYAAFdXoJFbow672.png

Next step

wKioL1gqozbA9aagAADVo3EVVAU690.png

上圖中需要填寫的是,我們前面創建的zabbix數據庫已經用戶和密碼 , Next step

wKiom1gqo0Dy7uLTAAC0G9XzrRk864.png

Next step

wKioL1gqo1GxCOzBAADifGi_vU4200.png

Next step

wKioL1gqo2KwCzFIAACQYsT4QtY192.png

Finish

wKiom1gqo27iu85zAABDI7bf54E379.png

默認用戶名是Admin 密碼 zabbix 然後點擊sign in

wKioL1gqo4KzediyAAGE2kBORA8229.png

四、安裝zabbix agent

前面我們安裝了zabbix server3.0,本章節我們介紹安裝zabbix agent端。zabbix agent的安裝比較簡單,我們只需要安裝相應的倉庫,然後執行安裝命令即可。

4.1 安裝zabbix agent

在centos os上安裝agent,使用如下命令:

rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm

[root@zabbix ~]# yum clean all

[root@zabbix ~]# yum -y install zabbix zabbix-agent

wKiom1gqo5WR5kbJAAESZWBLc1E163.png-wh_50

wKiom1gqo6KxpsqiAAC4NvjKK64468.png

在安裝時如出現如上圖所示錯誤,原因是軟件這兩個版本不一致,仔細觀察發現這兩個軟件包使用了不同的倉庫,把epel的關閉(enabled=0,位於/etc/yum.repos.d/epel.repo或etc/yum.repos.d/CentOS-Epel.repo)再重裝

 

4.2 配置zabbix agent

zabbix agent的配置很簡單,只需要修改zabbix agent配置文件中的Server、ServerActive和Hostname這三項即可。

其中Server、ServerActive是zabbix server服務器的IP地址,Hostname是被監控端的IP地址,如下:

[root@zabbix ~]# vi /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

Server=127.0.0.1

ServerActive=127.0.0.1

Hostname=127.0.0.1

Include=/etc/zabbix/zabbix_agentd.d/

以上配置完畢後,我們在zabbix web端添加該監控機器時,只需要把honst name與該配置文件中的hostname對應即可。如下:

Server=服務器ip地址

ServerActive=服務器ip地址

Hostname=客戶端ip地址

Server被動ServerActive主動

到此zabbix agent就已經安裝完畢。

啓動客戶端

[root@zabbix ~]# zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

[root@zabbix ~]# systemctl start zabbix-agent

[root@zabbix ~]# systemctl restart zabbix-agent

[root@zabbix ~]# systemctl enable zabbix-agent

wKioL1gqo7KiLO7AAACHJIsErX4620.png

wKiom1gqo7_ApARXAACAo0v2jz4058.png

查看一下狀態

wKioL1gqo8mAs0ZUAADzrTOq8h8747.png

wKiom1gqo9bTbLC3AAHfIYhJzMM497.png

五、zabbix web中文顯示與優化

5.1 zabbix web中文顯示

默認情況下zabbix web顯示的是英文,實際上zabbix是支持中文的,我們可以通過修改web端源文件來開啓中文。

修改/usr/share/zabbix/include/locales.inc.php文件,把zh_CN所在行的false改爲true即可,如下:

[root@zabbix ~]# vim /usr/share/zabbix/include/locales.inc.php +55

改正前:

wKioL1gqo-SCwPElAABdt5ULbBU209.png

改正後:

wKiom1gqpAqgmCTZAADG3etVUbo565.png

最後後點擊zabbix web監控網頁端右上角人頭頭像,在彈出的選項卡選擇中文語言即可。如下:

改正前:

wKioL1gqpBawwGkyAACrhsftdeM636.png-wh_50

改正後:

wKioL1gqpCST5LpAAAHDAHIv84E444.png

5.2 中文顯示優化

安裝中文支持包

安裝方法如下:

[root@zabbix ~]# wget https://github.com/echohn/zabbix-zh_CN/archive/master.zip

[root@zabbix ~]# unzip master.zip

[root@zabbix ~]# rm /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/frontend.mo

[root@zabbix ~]# cp zabbix-zh_CN-master/frontend.mo /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/frontend.mo

wKioL1gqpDSTkFusAAGnfxR9nOw371.png

wKiom1gqpEGBaeTXAAEgQknpij8858.png

現在重啓下apache和zabbix_server兩個服務就可以,如下:

[root@zabbix ~]# systemctl restart httpd

[root@zabbix ~]# systemctl restart zabbix-server

zabbix中文亂碼:

亂碼如下圖:

wKioL1gqpEySq9q0AAHUgOWFbZ4799.png

解決亂碼方法:

把Windows 系統中找到 C:\Windows\Fonts 中的楷體(常規)複製到windows桌面上

wKiom1gqpFritBMYAAHdJInXoqc331.png



 simkai.ttf上傳到 linux 裏上,接下來把 simkai.ttf 移動到 zabbix 安裝目錄的 fonts 目錄下

[root@zabbix ~]# mv simkai.ttf /usr/share/zabbix/fonts/

wKiom1gqpRfCEekKAADTxfJGdZI490.png

[root@zabbix ~]# cd /usr/share/zabbix/fonts/

[root@zabbix fonts]# ls

graphfont.ttf  simkai.ttf

[root@zabbix fonts]# chmod 777 simkai.ttf

wKioL1gqpS6SdeGgAADW2yN4SOA976.png

[root@zabbix fonts]# cp graphfont.ttf graphfont.ttf.bak

[root@zabbix fonts]# mv simkai.ttf graphfont.ttf

mv :是否覆蓋 "graphfont.ttf" ? y

wKioL1gqpWDB0susAACmDH4ZPWc029.png

查看一下 ,ok了

1111.png

問題:

1. mysql路徑問題,zabbix長時間監控數據會很大,mysql數據需要存儲大數據盤裏面,我的/home是空間大;

1.systemctl  stop mariadb.service

2.mv /var/lib/mysql /home

3.chown -R mysql:mysql /home/mysql

4.ln -s /home/mysql /var/lib/mysql   記得是/home/mysql不是/home/mysql/

5.vim /etc/my.cnf 修改datadir=/home/mysql

6.systemctl  start mariadb.service


重啓以後可以使用zabbix了;

2.1郵件報警:

在zabbix-server.conf 中找到Alert 路徑建立路徑及發送郵件腳本;

mkdir alertscripts 

vim send_email.sh

#!/bin/sh

#export.UTF-8

FILE=/var/log/zabbix/mailtmp.txt

echo "$3" >$FILE

dos2unix -k $FILE

/bin/mail -s "$2" $1 < $FILE

zabbix-管理--示警媒介類型--創建媒體類型-名字,腳本,sendmail腳本名字,--添加聯繫人郵件。。

配置--動作--條件--操作--依次設置添加要發送的用戶;

2.2.郵件測試報錯

send-mail: fatal: parameter inet_interfaces: no local interface found for ::1

發送郵件:

[root@VM_0_centos alertscripts]# ./send_mail.sh  [email protected] "test" "hello"

出現異常:

[root@iZ23whn33jnZ log]# send-mail: fatal: parameter inet_interfaces: no local interface found for ::1

查看centos中的postfix日誌

more  /var/log/maillog

postfix: fatal: parameter inet_interfaces: no local interface found for ::1

 參考網上的:

vi  /etc/postfix/main.cf

inet_interfaces = localhost

inet_protocols = all

改成:

inet_interfaces = all

inet_protocols = all

重新啓動

systemctl  restart postfix.service

OK

3.zabbix-agent安裝先安裝zabbix的yum源

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

沒安裝的話yum安裝zabbix agent可能會安裝zabbix22-2.2.20-1.el7.x86_64版本,卸載重裝

rpm  -qa|grep zabbix

rpm -e zabbix22-2.2.20-1.el7.x86_64

yum clean all

yum -y install zabbix zabbix-agent

即可;


PS一些故障問題:

1.zabbix對新的主機監控關聯模板一直沒反應,原來報了500錯誤,查看日誌:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 78 bytes) in /usr/share/zabbix/include/classes/debug/CProfiler.php 

將/etc/httpd/conf.d/zabbix.conf中的memory_limit = 128M改爲512M, systemctl restart httpd問題解決。

2.Zabbix server內存溢出,無法啓動

問題原因:zabbix使用一段時間後,再次加入一批交換機監控,zabbix-server將無法啓動,查看日誌顯示如下(提示內存溢出,需調整zabbix服務器配置zabbix_server.conf)

 2816:20170725:174352.675 [file:dbconfig.c,line:652] zbx_mem_realloc(): out of memory (requested 162664 bytes)

 2816:20170725:174352.675 [file:dbconfig.c,line:652] zbx_mem_realloc(): please increase CacheSize configuration parameter

解決方案:

vim zabbix_server.conf 2 3 CacheSize=1024M #默認爲8M

3.Zabbix discoverer processes more than 75% busy

問題原因:

  配置了discovery自動發現任務,配置的每個discovery任務在一定時間內佔用1個進程,而zabbix_server.conf中默認配置只有1個discovery(被註釋,默認生效)爲了快速驗證自動發現效果,將discovery任務的"Delay"由默認3600s設置成60s

解決方案:

a.修改配置文件/etc/zabbix/zabbix_server.conf中的StartDiscoverers進程數量,取消其之前的#號並將數值修改爲5,最後重啓服務

(注:根據系統硬件配置,可以設置成更高的數值,但其範圍爲0~250)

 grep 'StartDiscoverers' /etc/zabbix/zabbix_server.conf

 Option: StartDiscoverers

 StartDiscoverers=5

 systemctl restart zabbix-server.service

b.編寫定時任務腳本重啓zabbix_server來降低負載

計劃會每天自動重啓Zabbix服務以結束殭屍進程並清理內存等;

4.Zabbix poller processes more than 75% busy

問題原因:

通過Zabbix agent採集數據的設備死機或其他原因導致zabbix agent死掉server獲取不到數據

server向agent獲取數據時時間過長,超過了server設置的timeout時間

解決方案:

增加Zabbix Server啓動時初始化的進程數量

Option: StartPollers StartPollers=10 #改成多少取決於服務器的性能和監控的數量,如果內存足夠的話可以設置更高 

修改模板自動發現規則中的保留失去的資源期間爲0

5.Zabbix housekeeper processes more than 75% busy

問題原因:

爲了防止數據庫持續增大,zabbix有自動刪除歷史數據的機制即housekeeper,而mysql刪除數據時性能會降低,就會報錯

解決方案:

調整HousekeepingFrequency參數

HousekeepingFrequency=12 #間隔時間  MaxHousekeeperDelete=1000000 #最大刪除量 





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章