控服務器 - 什麼是Zabbixphp
Zabbix是企業級開源分佈式監控服務器解決方案。 該軟件監控網絡的不一樣參數和服務器的完整性,還容許爲任何事件配置基於電子郵件的警報。 Zabbix根據存儲在數據庫(例如MySQL)中的數據提供報告和數據可視化功能。 由軟件收集的每一個度量能夠經過基於Web的界面訪問。前端
Zabbix根據GNU通用公共許可證版本2(GPLv2)的條款發佈,徹底免費。mysql
在本教程中,咱們將在運行MySQL,Apache和PHP的Ubuntu 16.04服務器上安裝Zabbix。linux
安裝Zabbix服務器sql
首先,咱們須要安裝Zabbix所需的幾個PHP模塊:shell
# apt-get install php7.0-bcmath php7.0-xml php7.0-mbstring數據庫
Ubuntu存儲庫中提供的Zabbix軟件包已過期。咱們可使用官方Zabbix存儲庫安裝最新的穩定版本。apache
經過執行如下命令來安裝存儲庫包:ubuntu
$ wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
# dpkg -i zabbix-release_3.2-1+xenial_all.debwindows
而後更新apt包源碼:
# apt-get update
如今能夠安裝具備MySQL支持的Zabbix Server和PHP前端。 執行命令:
#apt-get install zabbix-server-mysql zabbix-frontend-php
安裝Zabbix agent:
#apt-get install zabbix-agent
Zabbix現已安裝。 下一步是配置數據庫以存儲其數據。
爲Zabbix配置MySQL
咱們須要建立一個新的MySQL數據庫,Zabbix將存儲收集的數據。
啓動MySQL shell:
$ mysql -uroot -p
下一步
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'usr_strong_pwd';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> EXIT;
Bye
接下來,導入初始模式和數據。
# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
輸入在MySQL shell中建立的zabbix用戶的密碼。
中間遇到的報錯:
解決辦法:
中間mysql建立帳戶時密碼須要很複雜的標準,須要改一下參數,使你能設置簡單的密碼:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,出現這個問題怎麼辦?不用着急,下面給出答案。
爲了增強安全性,MySQL5.7爲root用戶隨機生成了一個密碼,在error log中,關於error log的位置,若是安裝的是RPM包,則默認是/var/log/mysqld.log。
通常可經過log_error設置
1
2
3
4
5
6
7
|
mysql>
select
@@log_error;
+
---------------------+
| @@log_error |
+
---------------------+
| /var/log/mysqld.log |
+
---------------------+
1 row
in
set
(0.00 sec)
|
可經過# grep "password" /var/log/mysqld.log 命令獲取MySQL的臨時密碼
用該密碼登陸到服務端後,必須立刻修改密碼,否則會報以下錯誤:
1
2
|
mysql>
select
user
();
ERROR 1820 (HY000): You must reset your
password
using
ALTER
USER
statement before executing this statement.
|
若是隻是修改成一個簡單的密碼,會報如下錯誤:
1
2
|
mysql>
ALTER
USER
USER
() IDENTIFIED
BY
'12345678'
;
ERROR 1819 (HY000): Your
password
does
not
satisfy the
current
policy requirements
|
這個其實與validate_password_policy的值有關。
validate_password_policy有如下取值:
默認是1,即MEDIUM,因此剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符。
有時候,只是爲了本身測試,不想密碼設置得那麼複雜,譬如說,我只想設置root的密碼爲123456。
必須修改兩個全局參數:
首先,修改validate_password_policy參數的值
1
2
|
mysql>
set
global
validate_password_policy=0;
Query OK, 0
rows
affected (0.00 sec)
|
這樣,判斷密碼的標準就基於密碼的長度了。這個由validate_password_length參數來決定。
1
2
3
4
5
6
7
|
mysql>
select
@@validate_password_length;
+
----------------------------+
| @@validate_password_length |
+
----------------------------+
| 8 |
+
----------------------------+
1 row
in
set
(0.00 sec)
|
validate_password_length參數默認爲8,它有最小值的限制,最小值爲:
1
2
3
|
validate_password_number_count
+ validate_password_special_char_count
+ (2 * validate_password_mixed_case_count)
|
其中,validate_password_number_count指定了密碼中數據的長度,validate_password_special_char_count指定了密碼中特殊字符的長度,validate_password_mixed_case_count指定了密碼中大小字母的長度。
這些參數,默認值均爲1,因此validate_password_length最小值爲4,若是你顯性指定validate_password_length的值小於4,儘管不會報錯,但validate_password_length的值將設爲4。以下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
mysql>
select
@@validate_password_length;
+
----------------------------+
| @@validate_password_length |
+
----------------------------+
| 8 |
+
----------------------------+
1 row
in
set
(0.00 sec)
mysql>
set
global
validate_password_length=1;
Query OK, 0
rows
affected (0.00 sec)
mysql>
select
@@validate_password_length;
+
----------------------------+
| @@validate_password_length |
+
----------------------------+
| 4 |
+
----------------------------+
1 row
in
set
(0.00 sec)
|
若是修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一個值,則validate_password_length將進行動態修改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
mysql>
select
@@validate_password_length;
+
----------------------------+
| @@validate_password_length |
+
----------------------------+
| 4 |
+
----------------------------+
1 row
in
set
(0.00 sec)
mysql>
select
@@validate_password_mixed_case_count;
+
--------------------------------------+
| @@validate_password_mixed_case_count |
+
--------------------------------------+
| 1 |
+
--------------------------------------+
1 row
in
set
(0.00 sec)
mysql>
set
global
validate_password_mixed_case_count=2;
Query OK, 0
rows
affected (0.00 sec)
mysql>
select
@@validate_password_mixed_case_count;
+
--------------------------------------+
| @@validate_password_mixed_case_count |
+
--------------------------------------+
| 2 |
+
--------------------------------------+
1 row
in
set
(0.00 sec)
mysql>
select
@@validate_password_length;
+
----------------------------+
| @@validate_password_length |
+
----------------------------+
| 6 |
+
----------------------------+
1 row
in
set
(0.00 sec)
|
固然,前提是validate_password插件必須已經安裝,MySQL5.7是默認安裝的。
那麼如何驗證validate_password插件是否安裝呢?可經過查看如下參數,若是沒有安裝,則輸出將爲空。
1
2
3
4
5
6
7
8
9
10
11
12
|
mysql> SHOW VARIABLES
LIKE
'validate_password%'
;
+
--------------------------------------+-------+
| Variable_name | Value |
+
--------------------------------------+-------+
| validate_password_dictionary_file | |
| validate_password_length | 6 |
| validate_password_mixed_case_count | 2 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+
--------------------------------------+-------+
6
rows
in
set
(0.00 sec)
|
接下來,咱們須要編輯Zabbix Server配置文件
就是 /etc/zabbix/zabbis_server.conf:
# $EDITOR /etc/zabbix/zabbix_server.conf
搜索該文件的DBPassword部分:
### Option: DBPassword
# Database password. Ignored for SQLite.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
取消註釋DBPassword =這行並經過添加在MySQL中建立的密碼進行編輯:
DBPassword=usr_strong_pwd
接下來,查找DBHost =行並取消註釋。
保存並退出。
配置PHP:
咱們須要配置PHP來使用Zabbix。 在安裝過程當中,安裝程序在/etc/zabbix中建立了一個名爲apache.conf的配置文件。 打開此文件:
# $EDITOR /etc/zabbix/apache.conf
在這裏,如今只須要取消註釋date.timezone設置並設置正確的時區:
<IfModule mod_php7.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 always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
</IfModule>
保存並退出。
此時,從新啓動Apache並啓動Zabbix Server服務,使其可以在啓動時啓動:
# systemctl restart apache2 (這個是系統自帶的apache,最好用本身安裝的httpd)
# systemctl start zabbix-server
# systemctl enable zabbix-server
使用systemctl檢查Zabbix狀態:
# systemctl status zabbix-server
該命令應該輸出:
â zabbix-server.service - Zabbix Server
Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor pr
Active: active (running) ...
此時,Zabbix的服務器端部件已正確安裝和配置。
配置Zabbix Web Fronted:
如引言中所述,Zabbix具備基於Web的前端,咱們將用於可視化收集的數據。 可是,必須配置此接口。
使用Web瀏覽器,轉到: http://localhost/zabbix.。
點擊 Next step
確保全部的值都肯定,而後再次單擊Next step。
插入MySQL zabbix用戶密碼,而後點擊Next step.
單擊Next step,安裝程序將顯示具備全部配置參數的如下頁面。 再次檢查以確保一切正確..
點擊 Next step 繼續到最後的屏幕。
單擊finish以完成前端安裝。 默認用戶名爲admin,以zabbix爲密碼。
Zabbix服務器入門
使用上述憑證登陸後,咱們將看到Zabbix儀表板:
進入Administration - >Users,瞭解啓用的賬戶的概述
Create a new account by clicking on Create user
經過單擊Create a new account建立一個新賬戶
單擊組中的Add in the Groups部分,而後選擇一個組
保存新的用戶憑據,它將顯示在管理 - >用戶面板中。
請注意,在Zabbix中,主機的訪問權限分配給用戶組,而不是單個用戶。
總論
最後是Zabbix Server安裝的教程。 如今,監控基礎設施已準備好完成其做業並收集有關須要在Zabbix配置中添加的服務器的數據。
客戶端操做 :
一、 下載zabbix_agentd監控客戶端軟件安裝包(windows操做系統客戶端)
官方下載地址: http://www.zabbix.com/download
二、關閉監控主機windows server 2008防火牆或防火牆入放行zabbix_agentd客戶端口號 10050 (TPC/UDP)。
三、下載後解壓zabbix_agents_3.2.0.win.zip 壓縮包,裏面有兩個文件夾,一個是bin文件夾,另外一個是conf文件夾。
Bin文件夾裏面有兩個文件夾,一個是win32文件夾裏存放zabbix_agentd安裝程序應用於windows 32位操做系統,
一個是win64文件夾裏存放zabbix_agentd安裝程序應用於windows 64位操做系統。
Conf文件夾裏存放是配置文件zabbix_agentd.win.conf
四、在windows server 2008 操做系統 C盤目錄下建立一個zabbix文件夾,把剛下載的zabbix_agentd壓縮包裏的win64位文件夾的zabbix.agentd.exe 安裝程序和conf文件夾zabbix_agentd.win.conf複製到windows server 2008操做系統C盤建立的zabbix文件夾裏。(文件夾建立路徑能夠自定義,但後面zabbix_agentd客戶端運行安裝命令須要根據建立的路徑運行)
五、右鍵以文本格式編輯zabbix_agentd.win.conf 配置文件。
修改下面幾項 :
EnableRemoteCommands=1 #容許在本地執行遠程命令
LogRemoteCommands=1 #執行遠程命令是否保存操做日誌
Server = 172.16.20.90 #填寫zabbix服務器IP地址
Hostname= Zabbix server #zabbix_agent監控服務器名稱 (監控主機名稱)
Log=c:\zabbix_agentd.log
ServerActive=172.16.20.90 #填寫zabbix服務器IP地址
六、桌面 → 開始 → 運行 → 輸入cmd 打開DOS命令窗口 →輸入如下兩條命令進行zabbix客戶端安裝。(必需要以管理員身份運行打開DOS命令窗口)
C:\zabbix\zabbix_agentd.exe –i -c C:\zabbix\zabbix_agentd.win.conf
C:\zabbix\zabbix_agentd.exe -s -c C:\zabbix\zabbix_agentd.win.conf
服務端操做 :
一、 選擇配置 → 主機 → 建立主機。
二、 輸入客戶端計算機名 → 可見名稱自定義 → 羣組自行選擇(也能夠本身在輸入框中創建) → 輸入客戶端計算IP地址 → 勾選已啓用 → 選擇添加。
三、 添加 zabbix_agentd 客戶端監控模版。
稍等一下,以下圖所示則表明搭建成功(ZBX爲綠色:zabbix_agentd客戶端與zabbix服務器鏈接成功)
四、 把zabbix_agent客戶端添加到拓撲圖,以圖形方式顯示zabbix_agentd客戶端主機。
至此,windows 主機監控完畢,windows全部主機和服務器都可使用此方法添加。
********** 服務端操做 **********
一、選擇配置 ---- 主機 ---- 建立主機。
二、輸入客戶端計算機名 --- 可見名稱自定義 ---- 羣組自行選擇 ---- 輸入客戶端計算IP地址 ---- 勾選已啓用 ---- 選擇添加。
三、添加 zabbix_agentd 客戶端監控模版。
四、把zabbix_agent客戶端添加到拓撲圖,以圖形方式顯示zabbix_agentd客戶端主機。
特殊操做
標註:Zabbix服務器發送遠程關機命令讓zabbix_agent客戶端主機關機
一、管理 ---- 腳本 ---- 建立腳本。
二、 填寫腳本相應信息。
三、監測中 ---- 拓撲圖 ----- 鼠標左鍵點擊相應服務器 ---- 選擇 shutdown關機命令。
四、zabbix_agent客戶端 windows server 2008 系統提示關閉計算機提示。