在WSL环境的CentOS7上搭建Zabbix监控环境
一开始
在上次的WSL中安装了CentOS 7的环境基础上,我们将创建一个Zabbix监视环境。虽然环境不同于上次,但我们所做的工作是相同的。
[root@lifebook ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@lifebook ~]# uname -r
4.4.0-18362-Microsoft
[root@lifebook ~]#
安装Zabbix所需的软件包。
我们将安装Zabbix所需的软件包。这次我们将使用Apache、PHP和MariaDB进行配置。
[root@lifebook ~]# yum -y groupinstall web-server
[root@lifebook ~]# yum -y groupinstall php
[root@lifebook ~]# yum -y groupinstall mariadb
安装Zabbix Server和Agent
我们将安装Zabbix 4.4的官方存储库。
在安装之前,请确保没有发布新版本。
由于新的存储库似乎是4.4版本,我们将安装4.4版本。
[root@lifebook ~]# yum -y install https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
在添加仓库后,安装Zabbix Server相关的软件包。
[root@lifebook ~]# yum -y install zabbix-web-mysql zabbix-web-japanese zabbix-server-mysql
当Zabbix Server安装完成后,接下来需要安装Zabbix Agent。
[root@lifebook ~]# yum -y install zabbix-agent
更改设定文件
我们将改变每个配置文件。
Apache
由于在”/etc/httpd/conf.d/zabbix.conf”中,”php_value date.timezone”被注释掉了,
我们将取消注释并更改时区。
[root@lifebook ~]# vi /etc/httpd/conf.d/zabbix.conf
#
# Zabbix monitoring system php web frontend
#
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted
<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 max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Tokyo
</IfModule>
</Directory>
进行最低限的设置,包括数据库相关设置的Zabbix服务器。
[root@lifebook ~]# vi /etc/zabbix/zabbix_server.conf
### Option: DBHost
# Database host name.
# If set to localhost, socket is used for MySQL.
# If set to empty string, socket is used for PostgreSQL.
#
# Mandatory: no
# Default:
#監視サーバー内にDBをインストールするのでコメントアウトしておく
# DBHost=localhost
### Option: DBName
# Database name.
#
# Mandatory: yes
# Default:
# DBName=
#DB名
#デフォルト以外の名前を使用する場合は変更する
DBName=zabbix
### Option: DBSchema
# Schema name. Used for IBM DB2 and PostgreSQL.
#
# Mandatory: no
# Default:
# DBSchema=
### Option: DBUser
# Database user.
#
# Mandatory: no
# Default:
#DBユーザー名
#デフォルト以外の名前を使用する場合は変更する
DBUser=zabbix
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
#DBパスワード
#コメントアウトされているので外して任意のパスワードを設定する
DBPassword=zabbixpass
Zabbix代理(Agent)的设置将会进行。
[root@lifebook ~]# vi /etc/zabbix/zabbix_agentd.conf
对数据库进行设置
正在进行数据库的设置。
我遇到了一个问题,无法使用我创建的数据库用户Zabbix登录…
如果遇到类似的问题,请查看回避方法部分。
另外,如果有更好的回避方法,请告诉我…
首先,我们将自动启动并启动MariaDB服务。
[root@lifebook ~]# systemctl enable mariadb
[root@lifebook ~]# systemctl start mariadb
接下来我们将进行MariaDB的初始设置。
[root@lifebook ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 何も入力せずエンター
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y yを入力して
New password: DBユーザーrootのパスワードを入力
Re-enter new password: 再度上のパスワードを入力
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y yを入力
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y yを入力
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y yを入力
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y yを入力
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[root@lifebook ~]#
我不太建议在这里使用命令来创建用户。如果没有Zabbix架构文件加载的权限,会发生错误并无法加载。最好只执行命令来创建数据库。
[root@lifebook ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.64-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin; このコマンドまで実行をお勧め。
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> CREATE USER zabbix@localhost IDENTIFIED BY '<zabbixpass>';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL ON zabbix.* TO zabbix@localhost;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit;
Bye
[root@lifebook ~]#
执行上述命令后,为了确保起见,请尝试登录到Zabbix的MySQL数据库。如果成功登录了…
恭喜!请将回避方法后的Zabbix模式文件加载到数据库中。
如果无法登录并出现如下错误,请在phpmyadmin中进行处理。
[root@lifebook ~]# mysql -u zabbix -p zabbixpass
Enter password:
ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)
使用 phpMyAdmin 进行绕过的方法
尽管我仅以一个简单的方法使用phpmyAdmin进行处理,但我不认为这是正确的方式。我将在此作为一种解决方法进行记录。
安装phpmyAdmin
首先安装phpmyAdmin。
[root@lifebook ~]# yum -y install phpMyAdmin
在安装完成后,我们需要编辑phpMyAdmin的配置文件。
[root@lifebook ~]#vi /etc/httpd/conf.d/phpMyAdmin.conf
特に大きく変更するところはないですがローカルネットワーク内からのアクセスを許可する設定を追加していきます。
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip 192.168.0 <-ローカルIP
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from 192.168.0 <-ローカルIP
Allow from ::1
</IfModule>
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip 192.168.0 <-ローカルIP
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from 192.168.0 <-ローカルIP
Allow from ::1
</IfModule>
</Directory>
设定并保存上述设置后启动Apache。
[root@lifebook ~]# systemctl start httpd
如果出现与SSH时相同的错误,将使用相同的命令来处理。
[root@lifebook ~]# service httpd start
Redirecting to /bin/systemctl start httpd.service
Failed to get D-Bus connection: Operation not permitted
因为反复做同样的事情很麻烦,所以我将写一个类似于以下的Shell脚本。
[root@lifebook ~]# vi procsetup.sh
#!/bin/bash
mv /usr/bin/systemctl /usr/bin/systemctl.old
echo -e yes\\n
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl
[root@lifebook ~]# chmod +x procsetup.sh
[root@lifebook ~]# ./procsetup.sh
执行上面的Shell脚本后,启动Apache,并通过浏览器访问phpmyAdmin。
[root@lifebook ~]# service httpd start
请勾选并点击执行以获得全球特权。
完成后,请再次使用mysql登录以确认是否可以访问,然后将Zabbix的模式文件加载到数据库中。
[root@lifebook ~]# mysql -u root -pzabbixpass
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 119
Server version: 5.5.64-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> quit
Bye
[root@lifebook ~]#
[root@lifebook ~]# zcat /usr/share/doc/zabbix-server-mysql-4.4.*/create.sql.gz | mysql -u zabbix -pzabbixpass
Enter password:
[root@lifebook ~]#
通常情况下,我们会使用防火墙命令来添加通信许可,但似乎在WSLCentOS7上并未安装。
[root@lifebook ~]# firewall-cmd --add-port=10051/tcp --zone=public --permanent
-bash: firewall-cmd: command not found
[root@lifebook ~]# firewall
-bash: firewall: command not found
由于未安装,本次不会添加,但以CentOS7的通常设置为参考,以下是端口和协议的权限设置:
10050/tcp:Zabbix服务器:Zabbix代理的被动监视通信
10051/tcp:Zabbix代理:服务器的主动监视通信
http:客户端:Zabbix WebUI的HTTP通信
只需启动服务即可,到这里了。
[root@lifebook ~]# systemctl enable httpd
[root@lifebook ~]# systemctl enable zabbix-server
[root@lifebook ~]# systemctl start httpd
[root@lifebook ~]# systemctl start zabbix-server
[root@lifebook ~]# systemctl enable zabbix-agent
[root@lifebook ~]# systemctl start zabbix-agent
[root@lifebook ~]#
当转到登录页面时,请使用以下登录信息进行登录:
ID
ID:管理员
PW:zabbix
一旦显示仪表板,说明构建已经完成。
请按照以下步骤将画面语言设置为日语:
1. 点击右上角的人物图标。
2. 选择「Language」选项,将其设定为「Japanese (ja_JP)」。
3. 点击「Update」按钮。
4. 完成后,画面将会以日语显示。
参考的网站
敬称略
电算星组:Zabbix 4.4 CentOS7 / Apache2.4 / PHP5.4 / MariaDB5.5 安装步骤
@unbabel:MySQL 初学者指南
@pugiemonn:常用的 MariaDB 或 MySQL SQL 命令备忘录
etuts+:MariaDB 表管理、备份等基本操作命令
DBonline:获取表格列表和与表格相关的信息
@RubiLeah-com