于氏:简单监控全网服务

  1. List item

于氏:简单监控全网服务

第一部分:监控NFS服务

​ 原理:通过检测端口存活与进程存活状态监控服务

1.在web02和web03上做同样的动作并检测,结果发现都有了nfs服务

[root@web03 ~]# yum install  nfs-utils.x86_64  rpcbind -y
[root@web03 ~]# systemctl start nfs

[root@webo2 ~]# ps -elf | grep nfsd
[root@webo2 ~]# ps -elf | grep rpcbind

2.在服务端web01 测试:即通过进程来检测服务

[root@web01 ~]# zabbix_get -s 10.0.0.8 -p 10050 -k 'proc.num[nfsd,,,]'
8
[root@web01 ~]# zabbix_get -s 10.0.0.8 -p 10050 -k 'proc.num[rpcbind,,,]'
1
[root@web01 ~]# zabbix_get -s 10.0.0.9 -p 10050 -k 'proc.num[nfsd,,,]'
8
[root@web01 ~]# zabbix_get -s 10.0.0.9 -p 10050 -k 'proc.num[rpcbind,,,]'
1

3.创建nfs模板

image-20210316153242580

image-20210316154011815

image-20210316154033663

image-20210316154051668

image-20210316154602288

4.为nfs监控项创建图形、

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-whABZ136-1616680588686)(.\img\自定义NFS模板12.png)]

5.为nfs创建报警动作

image-20210316160650006

5.检测配置情况。客户端关闭NFS服务,查看监控以及报警功能

[root@web03 ~]# systemctl stop nfs
[root@web02 ~]# systemctl stop nfs

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ET8cVoZh-1616680588687)(C:\Users\12995\AppData\Roaming\Typora\typora-user-images\image-20210316161436576.png)]

6.实验成功!祝贺

第二部分:监控MYSQL服务

办法一:利用zabbix自带的mysql监控模板

1.分别在两天agent端修改监控模板

[root@webo2 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
[root@webo3 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-51SX7e9P-1616680588687)(C:\Users\12995\AppData\Roaming\Typora\typora-user-images\image-20210316163400343.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-enEaDQGj-1616680588688)(.\img\MySQL监控模板2.png)]丢失了

办法二:利用mysql端口3306进行检测

1.在server端检测mysql运行情况

[root@web01 ~]# zabbix_get -s 10.0.0.8 -p 10050 -k 'net.tcp.port[,3306]'
1
[root@web01 ~]# zabbix_get -s 10.0.0.9 -p 10050 -k 'net.tcp.port[,3306]'
1

#检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

2.创建自定义MySQL模板、应用集、监控项、触发器、图表、动作。流程同自定义NFS模板相同

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f2oESG38-1616680588689)(C:\Users\12995\AppData\Roaming\Typora\typora-user-images\image-20210316184256490.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LEevCAMb-1616680588690)(C:\Users\12995\AppData\Roaming\Typora\typora-user-images\image-20210316184332383.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pYeOJIHm-1616680588691)(C:\Users\12995\AppData\Roaming\Typora\typora-user-images\image-20210316184351509.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUyTitVv-1616680588692)(C:\Users\12995\AppData\Roaming\Typora\typora-user-images\image-20210316184424363.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3iwBej8-1616680588693)(C:\Users\12995\AppData\Roaming\Typora\typora-user-images\image-20210316184750546.png)]

3.停止agent端的数据库检测成功

systemctl stop mysqld

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DVDxFmg2-1616680588694)(C:\Users\12995\AppData\Roaming\Typora\typora-user-images\image-20210316184946904.png)]

第三部分:监控web服务

1.理论来源:

创建监控模板 监控 nginx服务与 80 端口
proc.num[<name>,<user>,<state>,<cmdline>]   进程数。返回整数
net.tcp.port[<ip>,port] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

2.实际思路:

操作流程与监控NFS和MySQL相似,通过监控进程与端口的方式。

创建模板 —— 创建应用集 —— 创建监控项 —— 创建触发器  —— 创建图形 —— 配置动作 —— 测试报警功能
在server端测试NGINX状态
[root@web01]# zabbix_get -s 192.168.100.105 -p 10050 -k "proc.num[,,,nginx]"
2
[root@web01]# zabbix_get -s 192.168.100.105 -p 10050 -k "net.tcp.port[,80]"
.......过程省略了

第四部分:监控URL地址

1.分别在agent两台机子上安装nginx并启动

 yum install nginx -y
 systemctl start nginx
 

2.分别在agent两台机子上写检测文件check.html

 vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 
 vim /usr/share/nginx/html/check.html
 echo ok >/usr/share/nginx/html/check.html

3.在server端测试两台机子的web网页连通性都OK

[root@web01 ~]# curl http://10.0.0.9/check.html 
ok
[root@web01 ~]# curl http://10.0.0.8/check.html
ok

image-20210317144212248

image-20210317144332851

image-20210324215315713

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aqcn1Zwp-1616680588697)(C:\Users\12995\Desktop\image-20210317143956375.png)]

可以看到,实验成功!!!!

总之,URL监测是在web场景立面去做的。

第五部分:监控项SSH服务

1.在服务端探测ssh的返回值

[root@web01 ~]#  zabbix_get -s 10.0.0.9 -p 10050 -k "net.tcp.listen[22]"
1
[root@web01 ~]#  zabbix_get -s 10.0.0.9 -p 10050 -k "net.tcp.listen[22]"
1

2.创建自定义全局模板给ssh用

image-20210324215629903

3.创建监控项

image-20210324215532598

4.设置完毕后,去检测成果,ok成功!(后来我又做了ssh服务的进程检测)

image-20210324215701558

image-20210324215814559

第六部分:报警升级和ssh自愈

准备最重要的一步:

​ 1.分别在两台agent机子上做visudo

[root@web03 ~]# visudo
# %wheel        ALL=(ALL)       NOPASSWD: ALL
%zabbix        ALL=(ALL)       NOPASSWD: ALL
[root@web02 ~]# visudo
## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
%zabbix        ALL=(ALL)       NOPASSWD: ALL

​ 2.在agent端配置文件里开启能够远程传递命令的行

[root@webo2 ~]# vim /etc/zabbix/zabbix_agentd.conf
# EnableRemoteCommands=0
EnableRemoteCommands=1
[root@webo3 ~]# vim /etc/zabbix/zabbix_agentd.conf
# EnableRemoteCommands=0
EnableRemoteCommands=1


systemctl restart mysqld

1.第一步:配置用户群组。

image-20210325214342458

image-20210325214420310

image-20210325214451494

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fl4ipWnB-1616680588705)(…/AppData/Roaming/Typora/typora-user-images/image-20210325214521522.png)]

image-20210325214615308

image-20210325214641904

image-20210325214731780

image-20210325214819971

最好检测部分:

有图有真相,全部自愈,ok

[root@webo2 ~]# systemctl stop sshd
[root@webo2 ~]# ps -elf | grep sshd
4 S root      17010      1  0  80   0 - 40340 poll_s 21:49 ?        00:00:00 sshd: root@pts/1
0 S root      30104  17012  0  80   0 - 28181 pipe_w 23:48 pts/1    00:00:00 grep --color=auto sshd



[root@webo3 ~]# systemctl stop sshd
[root@webo3 ~]# ps -elf | grep sshd
4 S root      17010      1  0  80   0 - 40340 poll_s 21:49 ?        00:00:00 sshd: root@pts/1
0 S root      30104  17012  0  80   0 - 28181 pipe_w 23:48 pts/1    00:00:00 grep --color=auto sshd

image-20210325214915962

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Q5xCFU8-1616680588711)(…/AppData/Roaming/Typora/typora-user-images/image-20210325214939370.png)]

image-20210325215041399

第七部分:

1.在客户端agent配置文件下设置键值和命令
[root@webo2 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mem.conf
UserParameter=free.mem,free -m|awk -F' ' 'NR==2{print $4/$2*100}'
#UserParameter=free.mem,free -m|awk -F' ' '/^Mem/{print $4/$2*100}'
UserParameter=avai.mem,free -m | awk -F ' ' '/Mem/{print $NF/$2*100}'
#UserParameter=avai.mem,free -m | awk -F ' ' 'NR==2{print $NF/$2*100}'
UserParameter=awap.mem,free -m | awk -F' ' '/Swap/{print $4/$2*100}'
#UserParameter=awap.mem,free -m | awk -F' ' 'NR==3{print $4/$2*100}'


[root@webo2 ~]# scp /etc/zabbix/zabbix_agentd.d/userparameter_mem.conf root@10.0.0.9:/etc/zabbix/zabbix_agentd.d/
userparameter_mem.conf                                                      100%  275   316.3KB/s   00:00   
systemctl restart zabbix-agent.service


[root@web03 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_mem.conf 
UserParameter=free.mem,free -m|awk -F' ' 'NR==2{print $4/$2*100}'
#UserParameter=free.mem,free -m|awk -F' ' '/^Mem/{print $4/$2*100}'
UserParameter=avai.mem,free -m | awk -F ' ' '/Mem/{print $NF/$2*100}'
#UserParameter=avai.mem,free -m | awk -F ' ' 'NR==2{print $NF/$2*100}'
UserParameter=awap.mem,free -m | awk -F' ' '/Swap/{print $4/$2*100}'
#UserParameter=awap.mem,free -m | awk -F' ' 'NR==3{print $4/$2*100}'

systemctl restart zabbix-agent.service
2.在server端监测我们刚设置的健值,监测成功了
[root@web01 ~]# zabbix_get -s 10.0.0.8 -p 10050 -k 'free.mem'
23.1481
[root@web01 ~]# zabbix_get -s 10.0.0.9 -p 10050 -k 'free.mem'
6.79012


[root@web01 ~]# zabbix_get -s 10.0.0.9 -p 10050 -k 'avai.mem'
21.7078
[root@web01 ~]# zabbix_get -s 10.0.0.8 -p 10050 -k 'avai.mem'
26.1317

[root@web01 ~]# zabbix_get -s 10.0.0.8 -p 10050 -k 'swap.mem'
100
[root@web01 ~]# zabbix_get -s 10.0.0.9 -p 10050 -k 'swap.mem'
99.609

3.开始设置监控项(设置两个)

image-20210325215148779

image-20210325215215450

4.检查结果,检测成功

image-20210325215246833

5.开始配多条件触发器和动作的配置

image-20210325215343559

image-20210325215414060

5.检测结果:分别在两个agent端开始测试

[root@webo2 ~]# dd < /dev/zero > /dev/null bs=1024M count=2048
[root@webo3 ~]# dd < /dev/zero > /dev/null bs=1024M count=2048

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7wLIPq01-1616680588718)(C:\Users\12995\Desktop\image-20210317201842268.png)]

第八部分:zabbix分布式部署

准备四台机子:

web01:10.0.0.7(server)

zabbix:10.0.0.71(proxy)

web02:10.0.0.8 (agent)

web03:10.0.0.9 (agent)

四台机子统一时间

[root@web01 ~]# ntpdate ntp1.aliyun.com
。。
。。
19 Mar 11:14:57 ntpdate[8023]: adjust time server 120.25.115.20 offset 0.001765 sec
1:在proxy端操作

1.在10.0.0.71 上安装proxy服务,让其变成proxy端

[root@backup ~]# yum install -y https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-proxy-mysql-3.4.15-1.el7.x86_64.rpm

2.在proxy端安装mysql数据库

[root@backup ~]# vim /etc/yum.repos.d/mysql.repo
community.repo
# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/
enabled=1
gpgcheck=0

[root@backup ~]# yum install mysql-community-server
[root@backup ~]# systemctl restart mysqld

3.配置zabbix proxy数据库(注意:为啥创立的zabbix用户和密码呢,这在这个代理服务的配置文件里可以看到,用户和密码都是zabbix,所以我们避免后面再改,直接一步到位)

mysql> create database zabbix_proxy charset utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.讲proxy的数据文件导入相关联的数据库

#查看数据文件
[root@backup ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.4.15/
[root@backup zabbix-proxy-mysql-3.4.15]# ls
AUTHORS  ChangeLog  COPYING  NEWS  README  schema.sql.gz


#用zat命令把数据压缩包读到指定的数据库里
[root@backup zabbix-proxy-mysql-3.4.15]# zcat schema.sql.gz | mysql -uzabbix -pzabbix zabbix_proxy
Warning: Using a password on the command line interface can be insecure.
[root@backup zabbix-proxy-mysql-3.4.15]# echo $?
0


#查看导入的数据
mysql> show databases;
mysql> use zabbix_proxy;
mysql> show tables;
mysql> quit

5.测试server端ip连接是否通(针对非阿里云上做的)

[root@backup zabbix-proxy-mysql-3.4.15]# ping 172.16.1.7
PING 172.16.1.71 (172.16.1.71) 56(84) bytes of data.
64 bytes from 172.16.1.71: icmp_seq=1 ttl=64 time=0.880 ms
64 bytes from 172.16.1.71: icmp_seq=2 ttl=64 time=0.542 ms
64 bytes from 172.16.1.71: icmp_seq=3 ttl=64 time=1.13 ms



6.修改proxy端zabbix配置文件并重新启动

[root@backup ~]#  vim /etc/zabbix/zabbix_proxy.conf
Server=172.16.1.7   #内网外网只要能连上都可以
Hostname=zabbix-proxy #修改为proxy1
DBName=zabbix_proxy
DBHost=localhost  #proxy连接的数据库在哪里
DBUser=zabbix
DBPassword=zabbix  #连接密码

[root@backup zabbix-proxy-mysql-3.4.15]# systemctl restart zabbix-proxy.service

7.测试在proxy端发现激活了占据了10051端口

[root@zabbix ~]# netstat -lntp|grep zabbix_proxy
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      9741/zabbix_proxy   
tcp6       0      0 :::10051                :::*                    LISTEN      9741/zabbix_proxy
2:在zabbix-agent端的操作

1.分别在两个agent端安装rpm包

[root@web02 ~]#  rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

[root@web03 ~]#  rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

2…分别在两个agent端安装ageny包

[root@web02 ~]# yum install zabbix-agent -y
[root@web03 ~]# yum install zabbix-agent -y

3.分别在agent端修改配置文件并重启

[root@web02 ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@web03 ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=172.16.1.71  #指向proxy端ip
ServerActive=172.16.1.71 #开启了自动上报功能

[root@web02 ~]# systemctl start zabbix-agent.service
[root@web02 ~]# echo $?
0
[root@web03 ~]# systemctl start zabbix-agent.service
[root@web03 ~]# echo $?
0

3:在server端的操作

1.安装源

[root@web01 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
获取http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
准备中...                          ################################# [100%]
	软件包 zabbix-release-3.4-2.el7.noarch 已经安装

2.安装zabbixserver端

[root@web01 ~]# yum install zabbix-server-mysql zabbix-web-mysql

3.配源安装mysql

[root@web01 ~]# vim /etc/yum.repos.d/mysql.repo
# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/
enabled=1
gpgcheck=0

[root@web01 ~]#yum install mysql-community-server
[root@web01 ~]# mysql -uroot -p123
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@'172.16.1.%' identified by 'zabbix';
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit;

5.将zabbix server端产生的数据装到自己设立的数据库里

[root@web01 ~]#zcat /usr/share/doc/zabbix-server-mysql-3.4.15/create.sql.gz | mysql -uzabbix -pzabbix zabbix
Warning: Using a password on the command line interface can be insecure.

6.这个其实不用配,因为zabbix我们设置的都是数据库信息和zabbix配置文件里面的统一的

[root@web01 ~]#vim /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBHost=localhost

7.修改httpd配置文件把时区设置上海亚洲然后重启

[root@web01 ~]# vim /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga
  php_value date.timezone Asia/Shanghai

8.解决中文乱码问题并重启

[root@web01 ~]# yum -y install wqy-microhei-fonts
[root@web01 ~]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
[root@web01 ~]# systemctl start httpd
4.登录server端 输入zabbix账户和密码
http://10.0.0.7/zabbix/
Admin
zabbix
登录ok

2.在zabbix server web页面添加agent代理程序

image-20210324204145859

  1. 手动添加主机

image-20210324212139523

image-20210324212208908

image-20210324212251109

image-20210324212305990

5.检测最后主机状态成功实现zabbix分布式部署

image-20210324212428478

注意:

在做实验的过程中,我们发现在zabbix可用性这里老是启动不起来,正确的操作就是统一ip地址内网或者外网(直接用外网10.0.0.0网段)然后再刷新server端和proxy端数据库连接权限,允许10.0.0.0网段登录。然后疯狂的重启各种服务就可以啦

grant all privileges on zabbix_proxy.* to zabbix@'10.0.0.%' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privilege
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值