1.zabbix-server端(ubuntu1804)
1)必要的软件包
zabbix-server-MysqL
zabbix-frontend-PHP
2)启动的服务
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:*
users:(("zabbix_server",pid=3991,fd=4),("zabbix_server",pid=3990,fd=4),("zabbix_server",pid=3989,fd=4)……
……
LISTEN 0 80 192.168.1.14:3306 0.0.0.0:*
users:(("MysqLd",pid=1461,fd=20))
……
LISTEN 0 128 *:80 *:*
users:(("apache2",pid=4105,fd=4),("apache2",pid=4100,fd=4),("apache2",pid=4091,fd=4),("apache2",pid=3904,fd=4),
("apache2",pid=3900,fd=4),("apache2",pid=3801,fd=4),("apache2",pid=3576,fd=4),("apache2",pid=3501,fd=4),("apache2",
pid=3404,fd=4),("apache2",pid=1620,fd=4),("apache2",pid=1587,fd=4))
……
3)创建proxy代理端的授权数据库
MariaDB [(none)]> create database zabbix_proxy_active character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix_proxy_active.* to [email protected] identified by 'zabbix_proxy_active';
2.zabbix-proxy代理服务端(ubuntu1804)
1)必要的软件包
zabbix-proxy-MysqL
2)配置proxy配置文件
root@ubuntu1804:/etc/zabbix# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 #主动模式
Server=192.168.1.14
Hostname=zabbix_proxy_active
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
EnableRemoteCommands=1 #开启允许远程命令
LogRemoteCommands=1
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=192.168.1.14
dbname=zabbix_proxy_active
DBUser=zabbix_proxy_active
DBPassword=zabbix_proxy_active
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
3)测试是否登录数据库
root@ubuntu1804:~# MysqL -uzabbix_proxy_active -pzabbix_proxy_active -h192.168.1.14
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 6951
Server version: 10.1.40-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04
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)]> show databases;
+---------------------+
| Database |
+---------------------+
| @R_309_4045@ion_schema |
| zabbix_proxy_active |
+---------------------+
2 rows in set (0.00 sec)
4)数据库初始化
zcat /usr/share/doc/zabbix-proxy-MysqL/schema.sql.gz | MysqL -uzabbix_proxy_active -pzabbix_proxy_active
-h192.168.1.14 zabbix_proxy_active
5)启动服务
root@ubuntu1804:~# systemctl restart zabbix-proxy
root@ubuntu1804:~# systemctl enable zabbix-proxy
6)查看启动的服务
root@ubuntu1804:~# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:*
users:(("zabbix_proxy",pid=3559,fd=4),("zabbix_proxy",pid=3558,fd=4),("zabbix_proxy",pid=3557,fd=4),("zabbix_proxy",pid=3556,fd=4),("zabbix_proxy",pid=3555,fd=4),("zabbix_proxy",pid=3554,fd=4),("zabbix_proxy",pid=3553,fd=4),("zabbix_proxy",pid=3552,fd=4),("zabbix_proxy",pid=3551,fd=4),("zabbix_proxy",pid=3550,fd=4),("zabbix_proxy",pid=3549,fd=4),("zabbix_proxy",pid=3548,fd=4),("zabbix_proxy",pid=3547,fd=4),("zabbix_proxy",pid=3546,fd=4),("zabbix_proxy",pid=3545,fd=4),("zabbix_proxy",pid=3544,fd=4),("zabbix_proxy",pid=3543,fd=4),("zabbix_proxy",pid=3542,fd=4),("zabbix_proxy",pid=3541,fd=4),("zabbix_proxy",pid=3540,fd=4),("zabbix_proxy",pid=3539,fd=4),("zabbix_proxy",pid=3538,fd=4),("zabbix_proxy",pid=3537,fd=4),("zabbix_proxy",pid=3536,fd=4),("zabbix_proxy",pid=3525,fd=4))
LISTEN 0 80 0.0.0.0:3306 0.0.0.0:*
users:(("MysqLd",pid=4094,fd=17))
……
3.zabbix-agent客户端(centos7.6)
1)安装必要的包
zabbix-agent
Nginx
2)配置agent配置文件
[root@Nginx zabbix_agentd.d]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1 #一定要开启,否则导致无法执行远程命令
Server=192.168.1.14,192.168.1.20 #同时指定server端和proxy代理端
ServerActive=192.168.1.20 #指定主动模式的proxy代理端
Hostname=192.168.1.16 #给本机指定一个主机名,web端上天添加的主机名必须和此处主机名相同,否则会导致数据采集失败
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1 #支持远程命令传输的特殊字符,也必须开启
3)启动agent和Nginx两个服务
[root@Nginx ~]# systemctl restart zabbix-agent
[root@Nginx ~]# systemctl enable zabbix-agent
[root@Nginx ~]# systemctl start Nginx
[root@Nginx ~]# systemctl enable Nginx
4)查看启动的服务
[root@Nginx ~]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 511 *:8080 *:*
users:(("Nginx",pid=50295,fd=6),("Nginx",pid=50294,fd=6),("Nginx",pid=50293,fd=6),("Nginx",pid=50292,fd=6),
("Nginx",pid=50291,fd=6))
LISTEN 0 128 *:10050 *:*
……
users:(("zabbix_agentd",pid=43802,fd=4),("zabbix_agentd",pid=43801,fd=4),("zabbix_agentd",pid=43800,fd=4),
("zabbix_agentd",pid=43799,fd=4),("zabbix_agentd",pid=43798,fd=4),("zabbix_agentd",pid=43797,fd=4))
……
5)将zabbix用户提升为sudo超级用户
[root@Nginx ~]# vim /etc/sudoers
#Defaults requiretty #一定要注释掉此行,会导致sudo超级用户无法执行远程命令
……
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
zabbix ALL=(ALL) nopASSWD: ALL
……
4.zabbix-server的web端创建一个主动模式的代理
5.zabbix-server的web端创建Nginx模板
1)Nginx_status模板创建
2)监控项创建
3)创建好的所有的Nginx监控项
4)创建触发器
5)创建好的两个Nginx触发器
6)创建当前状态图形
7)创建累计状态图形
8)再创建一个Nginx监听端口状态图
9)创建聚合图形
10)将前面的监控图形添加聚合图形里,点击构造函数
11)点击更改进入添加界面
12)可以看到已成功添加监控图形到聚合图形里
13)查看创建好的图形
14)Nginx_status状态模板创建完成
6.zabbix-server的web端添加监控主机
1)添加监控主机zabbix-agent并添加一个主动模式的代理
2)添加一个模板
3)添加完成
7.web端查看监控主机zabbix-agent采集数据图形
1)Nginx状态页累积状态图
2)Nginx状态页当前状态图
3)查看Nginx监听端口状态图,显示正常
8.web端建立邮件通知和创建Nginx服务自愈动作
1)点击创建媒介类型
2)创建媒介类型,填写媒介类型信息,要求QQ邮箱预先开启smtp服务
3)可以查看到已成功添加媒介类型
4)进入用户界面选择admin账户
选择admin账户
5)在选择报警媒介
6)添加创建好的媒类型到此用户
7) 创建一个动作
8)在动作栏下添加触发条件
9)在操作栏添加一远程命令
10)操作栏再添加一个宕机通知信息,以及指定邮件的接收方
11)恢复操作栏添加恢复消息,同样指定邮件的接收者
9.测试Nginx服务是否能接收到邮件通知以及实现自愈功能
1)先在在zabbix-agent客户端将Nginx服务关闭
[root@Nginx zabbix_agentd.d]# systemctl stop Nginx
2)再zabbix-agent客户端快速查看Nginx服务的状态,服务已经被关闭
[root@Nginx ~]# systemctl status Nginx
● Nginx.service - The Nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/Nginx.service; disabled; vendor preset: disabled)
Active: inactive (dead)
3)Nginx服务关闭后,在web端触了发仪表盘报警
4)接收到报警邮箱通知,Nginx服务器断开连接
5)间隔3-5秒后,发现Nginx服务自动重启,实现自愈
[root@Nginx zabbix_agentd.d]# systemctl status Nginx
● Nginx.service - The Nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/Nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2019-07-19 16:43:10 CST; 12min ago
Process: 50272 ExecStart=/usr/sbin/Nginx (code=exited, status=0/SUCCESS)
Process: 50245 ExecStartPre=/usr/sbin/Nginx -t (code=exited, status=0/SUCCESS)
Process: 50243 ExecStartPre=/usr/bin/rm -f /run/Nginx.pid (code=exited, status=0/SUCCESS)
……
6)在web端查看Nginx-8080监听图形,数值从超出警戒线到下降恢复到正常值
7)仪表盘又自动恢复正常
8)接收到故障自动恢复成功的邮箱通知
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。