控服务器 - 什么是Zabbix
Zabbix是企业级开源分布式监控服务器解决方案。 该软件监控网络的不同参数和服务器的完整性,还允许为任何事件配置基于电子邮件的警报。 Zabbix根据存储在数据库(例如MySQL)中的数据提供报告和数据可视化功能。 由软件收集的每个度量可以通过基于Web的界面访问。
Zabbix根据GNU通用公共许可证版本2(GPLv2)的条款发布,完全免费。
在本教程中,我们将在运行MySQL,Apache和PHP的Ubuntu 16.04服务器上安装Zabbix。
安装Zabbix服务器
首先,我们需要安装Zabbix所需的几个PHP模块:
# apt-get install php7.0-bcmath php7.0-xml php7.0-mbstring
Ubuntu存储库中提供的Zabbix软件包已过时。我们可以使用官方Zabbix存储库安装最新的稳定版本。
通过执行以下命令来安装存储库包:
$ 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.deb
然后更新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配置中添加的服务器的数据。
客户端操作 :
1、 下载zabbix_agentd监控客户端软件安装包(windows操作系统客户端)
官方下载地址: http://www.zabbix.com/download
2、关闭监控主机windows server 2008防火墙或防火墙入放行zabbix_agentd客户端口号 10050 (TPC/UDP)。
3、下载后解压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
4、在windows server 2008 操作系统 C盘目录下创建一个zabbix文件夹,把刚下载的zabbix_agentd压缩包里的win64位文件夹的zabbix.agentd.exe 安装程序和conf文件夹zabbix_agentd.win.conf复制到windows server 2008操作系统C盘创建的zabbix文件夹里。(文件夹创建路径可以自定义,但后面zabbix_agentd客户端运行安装命令需要根据创建的路径运行)
5、右键以文本格式编辑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地址
6、桌面 → 开始 → 运行 → 输入cmd 打开DOS命令窗口 →输入以下两条命令进行zabbix客户端安装。(必须要以管理员身份运行打开DOS命令窗口)
C:\zabbix\zabbix_agentd.exe –i -c C:\zabbix\zabbix_agentd.win.conf
安装zabbix客户端 ↑
C:\zabbix\zabbix_agentd.exe -s -c C:\zabbix\zabbix_agentd.win.conf
启动zabbix服务 ↑
服务端操作 :
1、 选择配置 → 主机 → 创建主机。
2、 输入客户端计算机名 → 可见名称自定义 → 群组自行选择(也可以自己在输入框中建立) → 输入客户端计算IP地址 → 勾选已启用 → 选择添加。
3、 添加 zabbix_agentd 客户端监控模版。
稍等一下,如下图所示则代表搭建成功(ZBX为绿色:zabbix_agentd客户端与zabbix服务器连接成功)
4、 把zabbix_agent客户端添加到拓扑图,以图形方式显示zabbix_agentd客户端主机。
至此,windows 主机监控完毕,windows所有主机和服务器均可使用此方法添加。
********** 服务端操作 **********
1、选择配置 ---- 主机 ---- 创建主机。
2、输入客户端计算机名 --- 可见名称自定义 ---- 群组自行选择 ---- 输入客户端计算IP地址 ---- 勾选已启用 ---- 选择添加。
3、添加 zabbix_agentd 客户端监控模版。
4、把zabbix_agent客户端添加到拓扑图,以图形方式显示zabbix_agentd客户端主机。
特殊操作
标注:Zabbix服务器发送远程关机命令让zabbix_agent客户端主机关机
1、管理 ---- 脚本 ---- 创建脚本。
2、 填写脚本相应信息。
3、监测中 ---- 拓扑图 ----- 鼠标左键点击相应服务器 ---- 选择 shutdown关机命令。
4、zabbix_agent客户端 windows server 2008 系统提示关闭计算机提示。