这篇文章的知识点包括:Zabbix的安装部署、Zabbix监控的实现以及Zabbix报警机制的实现,阅读完整文相信大家对Zabbix监控的使用有了一定的认识。
CentOS 7-2:192.168.18.147(监测端:部署安装zabbix)
CentOS 7-3:192.168.18.128(被监测端)
[root@cacti ~]# systemctl stop firewalld.service #关闭防火墙功能
[root@cacti ~]# systemctl disable firewalld.service #开机禁用防火墙功能
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@cacti ~]# setenforce 0 #关闭增强型安全功能
`安装LAMP架构`
[root@cacti ~]# yum install -y \
httpd \
mariadb-server mariadb \
php \
php-mysql \
php-gd \
libjpeg* \
php-ldap \
php-odbc \
php-pear \
php-xml \
php-xmlrpc \
php-mhash
`编辑apache配置文件`
[root@cacti ~]# vim /etc/httpd/conf/httpd.conf
95 ServerName www.yun.com:80 #第95行,删除注释,域名自定义
164 DirectoryIndex index.html index.php #164行,添加首页支持类类型index.php
#修改完成后按Esc退出插入模式,输入:wq保存退出
`修改时区为中国`
[root@cacti ~]# vim /etc/php.ini
878 date.timezOne= PRC #878行,把前面模板的;号删除,后面添加中国时区PRC
#修改完成后按Esc退出插入模式,输入:wq保存退出
[root@cacti ~]# systemctl start httpd.service #启动apache服务
[root@cacti ~]# systemctl start mariadb.service #启动mariadb服务
[root@cacti ~]# netstat -ntap | egrep '(3306|80)' #使用egrep命令同时查看3306和80端口
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 4410/mysql
tcp6 0 0 :::80 :::* LISTEN 4131/httpd
`初始化数据库配置`
[root@cacti ~]# 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 #设置密码
New password: #abc123
Re-enter new password: #确认输入:abc123
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] n #是否删除匿名用户,选择不删除
... skipping.
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 #是否远程连接
... 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] n #是否删除测试数据库
... skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] 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@cacti ~]# mysql -u root -p
Enter password: #输入密码abc123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
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.
`创建zabbix数据库,并且设置为utf8形式,把里面的字符串转换为二进制`
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
`提升用户`
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| zabbix |
+--------------------+
5 rows in set (0.00 sec)
#此时有zabbix数据库,需要创建管理里这个数据库的用户
MariaDB [(none)]> GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';
Query OK, 0 rows affected (0.01 sec)
#把所有数据库和所有表都交给zabbix进行管理,并且设置密码为admin123
MariaDB [(none)]> flush privileges; #刷新
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit #退出数据库
Bye
`测试php基本信息`
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# vim index.php
[root@localhost html]# vim index.php
#先按3dd删除原有内容,再插入以下内容
Success!!";
else echo "Fail!!";
mysql_close();
?>
[root@cacti html]# mysql -u zabbix -p
Enter password: #此时输入admin123无法登录数据库,说明有用户占用
ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)
`先使用root用户登录数据库`
[root@cacti html]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 15
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)]> select user,host from mysql.user;
+--------+-----------+
| user | host |
+--------+-----------+
| zabbix | % |
| root | 127.0.0.1 |
| root | ::1 |
| | cacti |
| | localhost |
| root | localhost |
+--------+-----------+
6 rows in set (0.00 sec)
`以下操作删除空用户`
MariaDB [(none)]> drop user ''@localhost;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> drop user ''@cacti;
Query OK, 0 rows affected (0.00 sec)
`此时空用户被删除`
MariaDB [(none)]> select user,host from mysql.user;
+--------+-----------+
| user | host |
+--------+-----------+
| zabbix | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
+--------+-----------+
4 rows in set (0.00 sec)
MariaDB [(none)]> quit
Bye
`此时再次刷新页面就会显示Success!!成功登录`
[root@cacti html]# yum install php-bcmath php-mbstring -y
`安装zabbix源`
[root@cacti html]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
获取http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.13QGZK: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:zabbix-release-3.5-1.el7 ################################# [100%]
`查看源`
[root@cacti html]# cd /etc/yum.repos.d/
[root@cacti yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo zabbix.repo
[root@cacti yum.repos.d]# cat zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/3.5/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
[root@cacti yum.repos.d]# yum install zabbix-server-mysql zabbix-web-mysql -y
......此处省略多行
已安装:
zabbix-server-mysql.x86_64 0:4.0.0-1.1rc3.el7 zabbix-web-mysql.noarch 0:4.0.0-1.1rc3.el7
作为依赖被安装:
OpenIPMI.x86_64 0:2.0.27-1.el7 OpenIPMI-libs.x86_64 0:2.0.27-1.el7
OpenIPMI-modalias.x86_64 0:2.0.27-1.el7 fping.x86_64 0:3.10-1.el7
iksemel.x86_64 0:1.4-2.el7.centos zabbix-web.noarch 0:4.0.0-1.1rc3.el7
`生成数据库文件`
[root@cacti yum.repos.d]# zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -u zabbix -p zabbix
Enter password: #输入密码admin123
[root@cacti yum.repos.d]# grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
101:DBName=zabbix
117:DBUser=zabbix
357:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
475:Timeout=4
518:AlertScriptsPath=/usr/lib/zabbix/alertscripts
529:ExternalScripts=/usr/lib/zabbix/externalscripts
565:LogSlowQueries=3000
#是配置文件中缺少的就是密码,其它得系统已自动配置
[root@cacti yum.repos.d]# vim /etc/zabbix/zabbix_server.conf
125 DBPassword=admin123 #125行删除注释,添加密码admin123在=号后面
#修改完成后按Esc退出插入模式,输入:wq保存退出
`修改时区`
[root@cacti yum.repos.d]# vim /etc/httpd/conf.d/zabbix.conf
20 php_value date.timezone Asia/Shanghai #20行删除注释,失去改为Asia/Shanghai
#修改完成后按Esc退出插入模式,输入:wq保存退出
`修正图表中文乱码`
[root@cacti yum.repos.d]# vim /usr/share/zabbix/include/defines.inc.php
#输入以下内容进行全局字体替换为kaiti
:%s /graphfont/kaiti/g
#修改完成后按Esc退出插入模式,输入:wq保存退出
`复制STKAITI.TTF文件到字体目录下`
[root@cacti yum.repos.d]# mkdir /aaa #创建挂载目录
[root@cacti yum.repos.d]# mount.cifs //192.168.0.105/rpm /aaa #进行远程挂载
Password for root@//192.168.0.105/rpm:
[root@cacti yum.repos.d]# cd /aaa/zabbix/
[root@cacti zabbix]# ls
php-bcmath-5.4.16-42.el7.x86_64.rpm STKAITI.TTF
php-mbstring-5.4.16-42.el7.x86_64.rpm zabbix.conf.php
[root@cacti zabbix]# cp STKAITI.TTF /usr/share/zabbix/fonts/
`启动服务查看端口开启情况`
[root@cacti zabbix]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@cacti zabbix]# systemctl start zabbix-server
[root@cacti zabbix]# netstat -ntap | grep zabbix #监听端口为10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 6735/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 6735/zabbix_server
[root@cacti zabbix]# systemctl restart httpd.service #重启httpd服务,用于验证登录zabbix
可点击右上角人物头像,在Language语言栏选择Chinese(zh_CN)简体中文,点击Update更新
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0
`安装yum源`
[root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
获取http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.elS5cl: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:zabbix-release-3.5-1.el7 ################################# [100%]
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo zabbix.repo
[root@localhost yum.repos.d]# yum install zabbix-agent -y
`修改配置文件`
[root@localhost yum.repos.d]# grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=127.0.0.1 #此处需要修改为监控端IP
139:ServerActive=127.0.0.1 #此处需要修改为监控端IP
150:Hostname=Zabbix server
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@localhost yum.repos.d]# vim /etc/zabbix/zabbix_agentd.conf
98 Server=192.168.18.147 #98行,指向监控服务器IP
139 ServerActive=192.168.18.147 #139行,指向监控服务器IP
150 Hostname=zhou #主机名,可自行定义
#修改完成后按Esc退出插入模式,输入:wq保存退出
`启动服务`
[root@localhost yum.repos.d]# systemctl enable zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@localhost yum.repos.d]# systemctl restart zabbix-agent.service
[root@localhost yum.repos.d]# netstat -ntap | grep zabbix #监听端口为10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 5425/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 5425/zabbix_agentd
[root@cacti zabbix]# yum install mailx -y
[root@cacti zabbix]# vim /etc/mail.rc
#在末行下插入以下内容
set from=邮箱地址 #例如19919919911@163.com
set smtp=smtp.163.com
set smtp-auth-user=邮箱地址
set smtp-auth-password=邮箱密码
set smtp-auth=login
#修改完成后按Esc退出插入模式,输入:wq保存退出
`尝试发送测试邮件`
[root@cacti zabbix]# echo "hello world" | mail -s "testmail" 邮箱地址
[root@cacti zabbix]# cd /usr/lib/zabbix/alertscripts
[root@cacti alertscripts]# vim mail.sh
#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
#修改完成后按Esc退出插入模式,输入:wq保存退出
[root@cacti alertscripts]# mv mail.sh mailx.sh
`在tmp目录下创建mailx的日志文件`
[root@cacti alertscripts]# touch /tmp/mailx.log
`赋予权限`
[root@cacti alertscripts]# chown -R zabbix.zabbix /tmp/mailx.log
[root@cacti alertscripts]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
[root@cacti alertscripts]# chown -R zabbix.zabbix /usr/lib/zabbix/
`验证过程`
[root@cacti alertscripts]# ./mailx.sh 邮箱地址 "yun" "hello"
#其中邮箱地址为$1,yun为$2主题,hello为$3内容
在动作中删除原有模板,在进行重新定义,点击右上角的创建动作
此时新的操作生成!
此时新的操作生成!
[root@localhost yum.repos.d]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2019-11-25 11:00:11 CST; 2 months 7 days ago
#此时显示为running运行状态
`停止此服务`
[root@localhost yum.repos.d]# systemctl stop sshd
`启动sshd服务`
[root@localhost yum.repos.d]# systemctl start sshd
看完上述内容,你们对Zabbix监控的使用有进一步的了解吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程笔记行业资讯频道,感谢各位的阅读。