企业级监控系统zabbix—分布式监控平台添加服务监控项(http、nginx、mysql)

此实验基于上一篇,已经监控了server2和server3.

一、zabbix监控httpd服务

http是zabbix自带的监控模板

step1 在server2中安装http

yum install httpd -y
[root@server2 zabbix]# systemctl start httpd

step2 配置—主机—server2
在这里插入图片描述
step3 模版—添加—Template App HTTP service—更新
在这里插入图片描述
在这里插入图片描述
step4 配置—模版—Template App HTTP service
在这里插入图片描述
step5 监控项—已启用
在这里插入图片描述
在这里插入图片描述
可以看到server2主机的触发器多了一个httpd服务的触发器,是端口的触发器,zabbix是通过端口来检测httpd服务的

二、zabbix监控nginx

nginx监控项zabbix没有,需要自定义监控项

1- 部署nginx服务

在监控主机server3上部署nginx服务,下载安装包并解压,安装依赖性软件并编译安装

tar zxf nginx-1.16.1.tar.gz
cd nginx-1.16.1
yum install gcc pcre-devel zlib-devel -y
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make && make install
cd /usr/local/nginx/
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
cd conf/
vim nginx.conf

        location /status {
                stub_status on;  #开启监控模块
                access_log off;	#关闭日志记录
                allow 127.0.0.1;	#白名单 只允许本机访问
                deny all;   #其它都禁止
        }
useradd -u 900 nginx
nginx
netstat -antlp | grep 80

在这里插入图片描述
在这里插入图片描述
注意:Nginx中的stub_status模块主要用于查看Nginx的一些状态信息。本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定:./configure –with-http_stub_status_module

测试:利用curl http://127.0.0.1/status访问nginx用来做测试nginx服务是否部署成功

curl http://127.0.0.1/status
curl http://127.0.0.1/status | grep Active
curl -s http://127.0.0.1/status | grep Active
curl -s http://127.0.0.1/status | grep Active|awk '{print $3}'

在这里插入图片描述
上面各个参数的解释:

Active connections:1 表示正在处理的活动连接数有多少个

server accepts handled requests

3 3 3

Reading: 0 Writing: 1 Waiting: 0

#server:表示nginx启动到现在共处理了多少个连接
#accepts:表示nginx启动到现在共成功创建了多少次握手. (备注:请求丢失数=握手数-连接数)
#handled requests:表示总共处理了多少次请求#Reading:为nginx读取到客户端的Header信息数
#Writing:为nginx返回给客户端的Header信息数#为nginx已经处理完正在等待下一次请求指令的驻留连接,在开启keep-alive的情况下

2-创建nginx监控项(nginx.active)

修改server3的配置文件/etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf,创建nginx的监控项

cd /etc/zabbix/zabbix_agentd.d/
ls
cp userparameter_mysql.conf userparameter_nginx.conf  ##将mysql服务的监控模版给nginx服务复制一份
vim userparameter_nginx.conf      ##编辑配置文件

UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active|awk '{print $3}'    
 ##获取活跃连接数,nginx.active为健值,获得的连接数为value值

systemctl restart zabbix-agent     ##修改完成重启服务

在这里插入图片描述
在这里插入图片描述
zabbix-server端测试是否能拿到数据:

下载软件zabbix-get,来获取server3的活跃连接数

yum install zabbix-get-4.4.1-1.el7.x86_64.rpm -y
zabbix_get -s 172.25.254.3 -p 10050 -k "nginx.active"
  • zabbix_get 是 zabbix 服务端的一个命令,用于检测 agent 端的配置是否正确,可以很方便地知道 key 是否能正常获取到数据,在测试自定义监控的时候特别有用

3- 在分布式监控平台添加监控项

step1 配置—主机—server3
在这里插入图片描述
step2 监控项—创建监控项
在这里插入图片描述
在这里插入图片描述

监控项名称可自定义,健值必须和server3配置文件中的一致

step3 名称—键值—更新间隔—应用
在这里插入图片描述
此时,在监控项可以看到所添加的。
在这里插入图片描述
在这里插入图片描述
创建图形,将已经添加的监控项导入

step4 主机—图形—创建图形
在这里插入图片描述
step5 监控项添加—nginx_active—选择—添加
在这里插入图片描述
在这里插入图片描述
step6 配置—主机—server-2–图形—预览
在这里插入图片描述
我们发现这里的字体是乱码,所以要进行修改:
下载字体到/usr/share/zabbix/fonts目录下,并替换defines.inc.php的字体:

mv simkai.ttf /usr/share/zabbix/assets/fonts/
[root@server1 ~]#cd /usr/share/zabbix/assets/fonts/
[root@server1 fonts]#ls
graphfont.ttf simkai.ttf
[root@server1 fonts]#cd /usr/share/zabbix/include/
[root@server1 include]#vim defines.inc.php
:%s/graphfont/simkai/g    #将graphfont替换为simkai

在这里插入图片描述
在这里插入图片描述
再次刷新页面,显示的字体就不是乱码了。等待一会,就会有数据
在这里插入图片描述

4- 创建nginx监控项(nginx.accept)

curl -s http://127.0.0.1/status | awk NR==3
curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'

编辑nginx的监控文件userparameter_nginx.conf,将要获取的健值对加入

[root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf 
UserParameter=nginx.active,curl -s http://localhost/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept, curl -s http://localhost/status | awk NR==3 |awk '{print $1}'

[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent

在这里插入图片描述
在这里插入图片描述
zabbix-server端测试是否能拿到数据:

zabbix_get -s 172.25.254.3 -p 10050 -k "nginx.accept"

在这里插入图片描述

5- 在分布式监控平台添加监控项

step1 配置—主机—server3
step2 监控项—创建监控项

在这里插入图片描述
step3 名称—键值—更新间隔—应用
在这里插入图片描述
在这里插入图片描述
step4 主机—图形—nginx_status

将新建的监控项添加到原来的nginx_status的图形中,将三个监控项放在同一个坐标图形里面可以对比
在这里插入图片描述
step5 监控项添加—nginx_accept—选择—添加

step6 配置—主机—server3—图形—预览
在这里插入图片描述
为了图形界面的效果显示的更加明显,我们通过server3自己进行压力测试,自己访问自己
在这里插入图片描述
我们同样过程,再添加一项:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6-不同类型的图片切换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、监控zabbix server上的mysql服务

1- 配置mysql,存活检测

[root@server1 ~]#mkdir /var/lib/zabbix  #创建一个zabbix目录
[root@server1 ~]#mysqladmin -uzabbix -p123 -h 127.0.0.1 ping
[root@server1 ~]#mysqladmin -uzabbix -p123 -h 127.0.0.1 ping | grep -c alive
[root@server1 ~]#cd /var/lib/zabbix
[root@server1 lib/zabbix]#vim .my.cnf   #新建一个.my.cnf文件
[mysql]
host = localhost
user = root
password = 123
socket = /var/lib/mysql/mysql.sock

[mysqladmin]
host = localhost
user = root
password = 123
socket = /var/lib/mysql/mysql.sock

[root@server1 lib/zabbix]#systemctl restart zabbix-agent

在这里插入图片描述

2-给Zabbix server主机添加zabbix自带的mysql监控模版

配置 —>主机 —> Zabbix servers —>模板 —>选择 —>Template DB MySQl —> 选择 —> 添加(顶上去) —> 更新

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
server1访问数据库产生数据

[root@server1 zabbix]# mysql -p
Enter password: 
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix             |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> USE zabbix;
MariaDB [zabbix]> SELECT * FROM users;

在这里插入图片描述
发现其监控项及其触发器图形都是很少的,这在企业中是远远不够的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3-导入自己的mysql服务的监控模版(percona-zabbix模版)

进入agent目录下,查看配置文件

[root@server1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@server1 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server1 zabbix_agentd.d]# cat userparameter_mysql.conf  

在这里插入图片描述
获取模版,percona是开源的mysql分析工具,安装

[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
 
 ##复制percona的监控模版userparameter_percona_mysql.conf到被监控的服务器也就是server1上的zabbix-agent的相应目录下
[root@server1 ~]# cd /var/lib/zabbix/templates/
[root@server1 templates]# ls
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

由于percona的监控脚本是用php写的,所以需要准备好php运行环境,将zabbix的数据库和密码写入php脚本中

[root@server1 templates]# cd  ../scripts/
[root@server1 scripts]# ls
get_mysql_stats_wrapper.sh  ss_get_mysql_stats.php
[root@server1 scripts]# vim ss_get_mysql_stats.php.cnf
 
<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';
?>
[root@server1 scripts]# systemctl restart zabbix-agent

在这里插入图片描述
检测percona的脚本,过滤监控项

[root@server1 zabbix_agentd.d]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh  gk

cat /tmp/localhost-mysql_cacti_stats.txt	#查看监控项 	从中任选一个即可

在这里插入图片描述

4-浏览器中导入模版,添加监控项

step1 配置—模版—导入
在这里插入图片描述
step2 选择导入模版路径—聚合图形—导入
在这里插入图片描述
在这里插入图片描述
step3 配置—主机—zabbix server
在这里插入图片描述
step4 删除之前的链接的系统自带的mysql模版
在这里插入图片描述
step5 模版—更新—选择
在这里插入图片描述
step5 配置—主机—zabbix server—图形—预览
在这里插入图片描述
更新完成,查看zabbix server的监控项,可以看到导入percona模版后的监控项数量变为293个,监控项,图形,触发器数量大大增加更有利于我们在生产环境中对数据库进行全面监控
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了187 篇原创文章 · 获赞 7 · 访问量 4181

猜你喜欢

转载自blog.csdn.net/weixin_43936969/article/details/105078812