zabbix(三)对服务的监控

    技术2022-07-11  111

    文章目录

    zabbix(三)对服务的监控httpd/nginxmysql

    zabbix(三)对服务的监控

    httpd/nginx

    1>给 server2 添加 httpd 监控 但是这个 http 监控的监控项只有一个,下面在 server3 上自定义 nginx 的监控

    #源码编译 nginx,关闭 debug,添加监控模块 [root@server3 nginx-1.15.8]#./configure --prefix=/usr/local/nginx --with-http_stub_status_module [root@server3 nginx-1.15.8]# make && make install 启用nginx 关闭日志,只允许本机查看状态监控

    [root@server3 conf]# curl http://127.0.0.1/status Active connections: 1 server accepts handled requests 222 Reading: 0 Writing: 1 Waiting: 0 多访问几次,增加数据量 2>自定义 nginx 监控项 (1)获取活跃链接数 [root@server3 ~]# curl -s http://127.0.0.1/status | grep Active | awk '{print $3}' 1 ##user -> web ui -> zabbix server -> zabbix agent -> shell -> zabbix server ->mysql -> web ui #编辑获取链接数的配置文件 [root@server3 ~]# cd /etc/zabbix/zabbix_agentd.d [root@server3 zabbix_agentd.d]#cp userparameter_mysql.conf userparameter_nginx.conf [root@server3 zabbix_agentd.d]# cat userparameter_nginx.conf UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}' [root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent #在 server1 上安装 zabbix-get,来用命令方式获取 key 值,同时为了测试是否能获取到自己设置的 key 值 [root@server1 4.0]# yum install -y zabbix-get-4.0.5-1.el7.x86_64.rpm [root@server1 4.0]# zabbix_get -s 172.25.0.3 -p 10050 -k "nginx.active" 1 ##这里的 -k 后的参数是刚才配置文件里的,获取到数据说明配置正确

    #给 server3 配置监控项 #这里要注意:键值一栏,填的内容需要和配置文件UserParameter 定义的 key 值相同,否则无效

    ##新建图形并添加监控项 在预览中可以看到已经产生数据

    ##但是发现汉字无法显示,是字体原因 ##zabbix 字体存放在下面路径 [root@server1 fonts]# ls graphfont.ttf [root@server1 fonts]# pwd /usr/share/zabbix/fonts #获取字体 [root@server1 fonts]# ls graphfont.ttf simkai.ttf #修改配置使新字体生效 [root@server1 include]# pwd /usr/share/zabbix/include [root@server1 include]# vim defines.inc.php 搜索 FONT 关键字,发现使用的是 graphfont.ttf 字体 :%s/graphfont/simkai/g ##替换为 simkai #再刷新,字体正常 (2)获取接收请求数 [root@server3 ~]# curl http://127.0.0.1/status Active connections: 1 server accepts handled requests 72 72 72 Reading: 0 Writing: 1 Waiting: 0 [root@server3 ~]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}' 79 [root@server3 zabbix_agentd.d]# cat userparameter_nginx.conf UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}' UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}' #重启 [root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent #测试获取 key 值 [root@server1 ~]# zabbix_get -s 172.25.0.3 -p 10050 -k "nginx.accept" 89

    #添加监控项 #添加图形 #查看预览

    ##增加数据,看的更清楚 [root@foundation0 ~]# ab -c 1 -n 1000 http://172.25.0.3/index.html [root@server3 zabbix_agentd.d]# curl -s http://127.0.0.1/status Active connections: 1 server accepts handled requests 1117 1117 1117 Reading: 0 Writing: 1 Waiting: 0 再次查看图形

    mysql

    (1)zabbix 自带的 mysql 监控模板 ##添加 mysql 监控模板

    ##zabbix 监控 mysql 的配置目录 [root@server1 ~]# mkdir /var/lib/zabbix ##因为 mysql 的 key 监控目录就是这个 [root@server1 zabbix]#cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive ##mysql 默认使用 mysqladmin 检测 mysql 是否存活 [root@server1 zabbix]# mysqladmin -uzabbix -predhat -h127.0.0.1 ping | grep -c alive 1 得到结果为 1,表示 mysql 正常,为 0 表示 mysql 挂了 ##由于 mysql 帐号密码写在命令行对以后维护不好,也不安全,所以写在配置文件里 [root@server1 zabbix]# cat .my.cnf ##建立为隐藏文件更安全 [mysql] host = localhost user = root password = redhat socket = /var/lib/mysql/mysql.sock [mysqladmin] host = localhost user = root password = redhat socket = /var/lib/mysql/mysql.sock [root@server1 zabbix]# systemctl restart zabbix-agent 然后在 web 端可以看到 mysql 相关的两个图形有数据,如果没数据就进入 mysql 敲几条 命令进行查询,再看就有

    ##以上是使用 zabbix 自带的 mysql 监控模板

    (2)使用 percona 模板来监控 mysql ##对应着手册写配置

    ##因为 zabbix 自带的 mysql 监控的监控项太少,只有一些基础的监控,并且没有可以直接使用的 key,不能满足生产环境需求,需要扩展,所以使用 percona 插件。Percona 为MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为 。

    [root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm ##复制 percona 配置文件 [root@server1 templates]# pwd /var/lib/zabbix/percona/templates [root@server1 templates]#cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/ #可以看到此模板中有 190 个监控项 [root@server1 ~]# cd /var/lib/zabbix/percona/scripts ##配置 mysql 的用户名和密码,新建一个文件,不用修改原脚本 [root@server1 scripts]# vim ss_get_mysql_stats.php.cnf <?php $mysql_user = 'root'; $mysql_pass = 'redhat'; #重启 systemctl restart zabbix-agent ##运行脚本获取数据 [root@server1 zabbix_agentd.d]#/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gk 1647 能获取到数据说明配置正常 #查看所有 key 值 [root@server1 ~]# cat /tmp/localhost-mysql_cacti_stats.txt 这是一个缓存文件,里面记录了所有 key 对应的值

    ##导入模板 聚合图形选上 ##删除原来的模板,添加 percona 模板 ##添加后可以看到监控项多了很多,打开一个监控项查看图形

    Processed: 0.011, SQL: 9