前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习笔记0610----监控软件zabbix

学习笔记0610----监控软件zabbix

作者头像
嘻哈记
发布2020-11-24 10:23:27
1.4K0
发布2020-11-24 10:23:27
举报
文章被收录于专栏:运维学习交流

监控软件安装

1. zabbix简介

1、监控存在的原因

站点出了问题,没有人知道,等用户发现了,才提醒供应商;对公司影响很大

2、常见开源监控软件

cacti、nagios、zabbix、smokeping、open-falcon等等,其中nagios、zabbix流行度非常高;

cacti、smokeping偏向于基础监控,成图非常漂亮,适合监控网络设备 cacti监控网络的设备;

cacti、nagios、zabbix服务端监控中心,需要php环境支持(用Apache的php,用nginx的php都可以),其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图

3、目前业界都流行用zabbix。

zabbix配置简单,优势明显,早起使用nagios的企业,慢慢的转向使用zabbix;

nagios,需要更改配置文件,并不支持web界面一键执行,nagios和zabbix相比,nagios 更注重的是某一个监控的状态,不关注历史;

zabbix,则是把每一次监控的数值反馈出来,数值存到数据库里面,方便后期数据图去分析监控整个状态;

nagios不需要mysql的支持,不能成图,若需要画图,得安装插件以后才支持web界面;

ccti 也需要mysql的支持,也可以成图,可以记录历史数据

zabbix 在web界面下管理得非常彻底,可以增加监控节点,报警预知等等。

open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究

open-falcon软件适合大企业使用,小企业可以去研究它的思想。

监控软件比较新的: prometheus grafana

4、zabbix简介

C/S架构,有一个服务端,去客户端抓数据。在客户端必须要有一个服务启动运行才可以抓取数据;数据可以主动的上报服务端,也可以让服务端去连接客户端获取(通过抓取数据方式,数据获取分两个模式,一个主动模式,一个被动模式),

zabbix软件基于C++开发,监控中心需要一个PHP的web环境,因为要开启一个web界面配置和管理 单台server节点(即一台server),理论上 可以支持上万台客户端

5、zabbix瓶颈:

在于采集数据的量,虽然支持上万台,但监控的项目过多,还是会导致zabbix效率降低;所以,当服务器大到一定规模的时候,就需要对zabbix进行优化;

解决方法:可以增加一些代理点,这些代理点充当server,替代server去采集数据,最终得到分析结果再汇报给主服务端server;

6、zabbix架构里,包括了5个组件:

zabbix-server 监控中心,接收客户端上报信息,负责配置、统计、操作数据

数据存储 存放数据,比如mysql

web界面 也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因(如果没有web界面,就无法在浏览器上配置它)

zabbix-proxy 可选组件,它可以代替zabbix-server的功能,减轻server的压力(当机器量很多的时候,可以使用zabbix-proxy)

有时候,服务器分布在多个机房里,每个机房的服务器之间都是一个单独的内网,这时候就可以在某一个局域网里搭建一个 zabbix-proxy ,用这台 proxy 去监控局域网里的机器

zabbix-agent 客户端软件(每一台客户端都需要安装agent),负责采集各个监控服务或项目的数据,并上报。

2. 安装zabbix

2.1 zabbix-server端安装

2.1.1 zabbix官网下载rpm包

zabbix官网:www.zabbix.com

代码语言:javascript
复制
[root@linux-001 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
获取https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.z8bUCY: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-4.2-1.el7         ################################# [100%]

2.1.2 安装 zabbix-server

代码语言:javascript
复制
[root@linux-001 ~]# yum install -y  zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql  zabbix-agent 

安装省略

2.1.3 创建zabbix访问所需要的数据库

代码语言:javascript
复制
[root@linux-001 ~]# mysql -uroot -plinux002
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.43-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database zabbix;
Query OK, 1 row affected (0.01 sec)

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

mysql> flush privileges ;
Query OK, 0 rows affected (0.00 sec)


mysql> quit
Bye

2.1.4 导入zabbix的数据库到mysql数据库

zabbix的原始数据库是create.sql.gz,可以使用gzip -d 解压此文件,在导入数据库,也可以使用zcat命令。

代码语言:javascript
复制
[root@linux-001 ~]# cd /usr/share/doc/zabbix-server-mysql-4.2.3/
[root@linux-001 zabbix-server-mysql-4.2.3]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@linux-001 zabbix-server-mysql-4.2.3]# zcat create.sql.gz | mysql -uroot -plinux002 zabbix
Warning: Using a password on the command line interface can be insecure.
[root@linux-001 zabbix-server-mysql-4.2.3]# 

2.1.5 修改zabbix-server端的配置文件

修改zabbix_server.conf 文件中数据库相关的行。

代码语言:javascript
复制
[root@linux-001 ~]# vim /etc/zabbix/zabbix_server.conf 

DBName=zabbix

DBUser=zabbix

DBPassword=123456

DBSocket=/tmp/mysql.sock

2.1.6 修改zabbix-agent端的配置文件

修改和server端通信的ip地址

代码语言:javascript
复制
[root@linux-001 ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=127.0.0.1

ServerActive=127.0.0.1

2.1.7 修改php文件中date.timezone

代码语言:javascript
复制
[root@linux-001 ~]# vim /etc/php.ini

date.timezone = Asia/Shanghai

2.1.8 启动服务

启动 zabbix-server zabbix-agent httpd 服务

代码语言:javascript
复制
[root@linux-001 ~]# systemctl start zabbix-server
[root@linux-001 ~]# systemctl start zabbix-agent   
[root@linux-001 ~]# systemctl start httpd.service 
[root@linux-001 ~]# 

2.1.9 启动中遇到的问题

2.1.9.1 问题一:连接mysql失败,提示端口5432
在这里插入图片描述
在这里插入图片描述

如果遇到如上图的问题,请删除zabbix-server-pgsql,如下图

在这里插入图片描述
在这里插入图片描述
2.1.9.2 问题二: 无法连接到数据库,提示mysql.sock
在这里插入图片描述
在这里插入图片描述

解决办法:修改 zabbix_server.conf 中的 DBSocket=/tmp/mysql.sock

2.2 zabbix-agent端安装

2.2.1 安装zabbix-agent

代码语言:javascript
复制
[root@linux-02 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
获取https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.Y9bgOq: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-4.2-1.el7         ################################# [100%]
[root@linux-02 ~]# yum install -y zabbix-agent
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.cn99.com
 * extras: mirrors.cn99.com
 * updates: mirrors.cn99.com
base                                                                                                                       | 3.6 kB  00:00:00     
extras                                                                                                                     | 3.4 kB  00:00:00     
updates                                                                                                                    | 3.4 kB  00:00:00     
zabbix                                                                                                                     | 2.9 kB  00:00:00     
zabbix-non-supported                                                                                                       |  951 B  00:00:00     
(1/3): extras/7/x86_64/primary_db                                                                                          | 200 kB  00:00:02     
(2/3): zabbix/x86_64/primary_db                                                                                            |  39 kB  00:00:06     
(3/3): updates/7/x86_64/primary_db                                                                                         | 5.0 MB  00:00:06     
zabbix-non-supported/x86_64/primary                                                                                        | 1.6 kB  00:00:02     
zabbix-non-supported                                                                                                                          4/4
正在解决依赖关系
--> 正在检查事务
---> 软件包 zabbix-agent.x86_64.0.4.2.3-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

==================================================================================================================================================
 Package                               架构                            版本                                 源                               大小
==================================================================================================================================================
正在安装:
 zabbix-agent                          x86_64                          4.2.3-2.el7                          zabbix                          400 k

事务概要
==================================================================================================================================================
安装  1 软件包

总下载量:400 k
安装大小:1.6 M
Downloading packages:
警告:/var/cache/yum/x86_64/7/zabbix/packages/zabbix-agent-4.2.3-2.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY00:00:00 ETA 
zabbix-agent-4.2.3-2.el7.x86_64.rpm 的公钥尚未安装
zabbix-agent-4.2.3-2.el7.x86_64.rpm                                                                                        | 400 kB  00:01:15     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 检索密钥
导入 GPG key 0xA14FE591:
 用户ID     : "Zabbix LLC <packager@zabbix.com>"
 指纹       : a184 8f53 52d0 22b9 471d 83d0 082a b56b a14f e591
 软件包     : zabbix-release-4.2-1.el7.noarch (installed)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
  正在安装    : zabbix-agent-4.2.3-2.el7.x86_64                                                                                               1/1 
  验证中      : zabbix-agent-4.2.3-2.el7.x86_64                                                                                               1/1 

已安装:
  zabbix-agent.x86_64 0:4.2.3-2.el7                                                                                                               

完毕!
[root@linux-02 ~]# 

2.2.2 修改agent的配置文件

代码语言:javascript
复制
[root@linux-001 ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.141.128

ServerActive=192.168.141.128

2.2.3 启动zabbix-agent服务

代码语言:javascript
复制
[root@linux-02 ~]# systemctl start zabbix-agent.service 

2.2.4 防火墙规则设置

zabbix-agent 端的10050端口与 zabbix-server 端的10051端口通信。如果防火墙处于开启状态,需要把10050端口通信放行。

iptables -I -INPUT -s 192.168.141.128 -j ACCEPT

2.3 webUI配置

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

3. zabbix中web配置

3.1 监控客户机----添加主机

3.1.1 创建主机群组

操作步骤:配置----主机群组----创建主机群组

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

3.1.2 创建主机添加到主机群组

需要把之前在linux-002服务器上安装的agent添加到server端控制台,操作步骤:配置----主机----创建主机

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

3.2 监控客户机----管理模板

3.2.1 创建模板

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

3.2.2 复制监控项目到test模板

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

3.2.3 复制已有的模板

也可复制已有的模板,然后吧不需要的监控项目删除。我们拿Template OS Linux模板举例。

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

取消aaa模板中不需要的连接模板。

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

因为触发器是根据监控项来设置的, 所以在删除不需要的监控项目之前需要把不用的触发器删除。

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

模板中不需要的监控项可以删除,越多的监控项会很耗费系统的io。

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

3.3 监控客户机----管理图形和窗口

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

3.4 监控客户机----管理触发器

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

3.5 web端图形界面文字处乱码解决方法

首先进入zabbix的根目录 /usr/share/zabbix/include , 打开文件defines.inc.php ,文件中有定义字体的位置,如下图。

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

然后进入 /usr/share/zabbix/assets/fonts/ 目录下,可以把windows中的字体传入此文件夹,windows的字体的文件位置(C:\Windows\Fonts),随便找一个字体传入此文件夹,我们在刷新网页,可以查看到图形界面的地方,字体不是乱码咯。

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

3.6 解决中文名称不能写数据库的问题

由于网页端输入的字符串存储是存储在mysql数据库中,若数据库中字符串所在位置存储格式不是utf8,会导致存储报错,那我们需要如何设置呢,先把数据库备份下,使用vim打开sql文件,修改文件中 latin1 为utf8。

代码语言:javascript
复制
[root@linux-001 ~]# mysql -uroot -plinux002 zabbix
Warning: Using a password on the command line interface can be insecure.
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 792
Server version: 5.6.43-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use zabbix
Database changed


mysql> show create table triggers\G;
*************************** 1. row ***************************
       Table: triggers
Create Table: CREATE TABLE `triggers` (
  `triggerid` bigint(20) unsigned NOT NULL,
  `expression` varchar(2048) NOT NULL DEFAULT '',
  `description` varchar(255) NOT NULL DEFAULT '',
  `url` varchar(255) NOT NULL DEFAULT '',
  `status` int(11) NOT NULL DEFAULT '0',
  `value` int(11) NOT NULL DEFAULT '0',
  `priority` int(11) NOT NULL DEFAULT '0',
  `lastchange` int(11) NOT NULL DEFAULT '0',
  `comments` text NOT NULL,
  `error` varchar(2048) NOT NULL DEFAULT '',
  `templateid` bigint(20) unsigned DEFAULT NULL,
  `type` int(11) NOT NULL DEFAULT '0',
  `state` int(11) NOT NULL DEFAULT '0',
  `flags` int(11) NOT NULL DEFAULT '0',
  `recovery_mode` int(11) NOT NULL DEFAULT '0',
  `recovery_expression` varchar(2048) NOT NULL DEFAULT '',
  `correlation_mode` int(11) NOT NULL DEFAULT '0',
  `correlation_tag` varchar(255) NOT NULL DEFAULT '',
  `manual_close` int(11) NOT NULL DEFAULT '0',
  `details` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`triggerid`),
  KEY `triggers_1` (`status`),
  KEY `triggers_2` (`value`,`lastchange`),
  KEY `triggers_3` (`templateid`),
  CONSTRAINT `c_triggers_1` FOREIGN KEY (`templateid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> show variaables like 'character%' ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'variaables like 'character%'' at line 1
mysql> show variables like 'character%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | latin1                           |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | latin1                           |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)

mysql> exit
Bye
[root@linux-001 ~]# mysqldump -uroot -plinux002   --default-character-set=utf8  zabbix > zabbix.sql 
Warning: Using a password on the command line interface can be insecure.
[root@linux-001 ~]#  
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
[root@linux-001 ~]# vim zabbix.sql 

一般命令模式输入  :1,$s/latin1/utf8/g  可查看以上图片

[root@linux-001 ~]# mysql -uroot -plinux002   --default-character-set=utf8  zabbix < zabbix.sql 
Warning: Using a password on the command line interface can be insecure.

[root@linux-001 ~]# mysql -uroot -plinux002 
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 902
Server version: 5.6.43-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show variables like 'character%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | latin1                           |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | latin1                           |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)

mysql> show create table interface\G;
*************************** 1. row ***************************
       Table: interface
Create Table: CREATE TABLE `interface` (
  `interfaceid` bigint(20) unsigned NOT NULL,
  `hostid` bigint(20) unsigned NOT NULL,
  `main` int(11) NOT NULL DEFAULT '0',
  `type` int(11) NOT NULL DEFAULT '0',
  `useip` int(11) NOT NULL DEFAULT '1',
  `ip` varchar(64) NOT NULL DEFAULT '127.0.0.1',
  `dns` varchar(255) NOT NULL DEFAULT '',
  `port` varchar(64) NOT NULL DEFAULT '10050',
  `bulk` int(11) NOT NULL DEFAULT '1',
  PRIMARY KEY (`interfaceid`),
  KEY `interface_1` (`hostid`,`type`),
  KEY `interface_2` (`ip`,`dns`),
  CONSTRAINT `c_interface_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> exit
Bye

4. zabbix配置邮件告警

4.1 zabbix报警脚本设置

4.1.1 阿里云邮件推送服务

未开通邮件推送服务,可以按照步骤开通邮件推送服务,设置一个自己的域名,把发信域名的配置信息添加到域名解析里面。

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

4.1.2 编写一个发送邮件的脚本

代码语言:javascript
复制
[root@linux-001 ~]# vim mail.py

#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = 'smtpdm.aliyun.com'
mail_user = 'admin@xiaoqiblog.top'
mail_pass = '5cn3yYVzim'
mail_postfix = 'aliyun.com'
def send_mail(to_list,subject,content):
    me = "zabbix 监控告警平台"+"<"+mail_user+"@"+mail_postfix+">"
    msg = MIMEText(content, 'plain', 'utf-8')
    msg['Subject'] = subject
    msg['From'] = me
    msg['to'] = to_list
    try:
        s = smtplib.SMTP()
        s.connect(mail_host)
        s.login(mail_user,mail_pass)
        s.sendmail(me,to_list,msg.as_string())
        s.close()
        return True
    except Exception,e:
        print str(e)
        return False
if __name__ == "__main__":
    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

[root@linux-001 ~]# chmod 755 mail.py 

4.1.3 发送邮件脚本存放位置

我们可以在 zabbix_server.conf 配置文件中找到定义发送邮件脚本的发送位置,如下图

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

4.1.3 测试脚本是否可以发送

代码语言:javascript
复制
[root@linux-001 ~]# mv mail.py  /usr/lib/zabbix/alertscripts
[root@linux-001 alertscripts]# ls
mail.py
[root@linux-001 alertscripts]# ./mail.py   whdong007@163.com 'ceshi'  '`echo $HOSTNAME`'
在这里插入图片描述
在这里插入图片描述

4.2 配置webUI报警

4.2.1 管理----报警媒介

//脚本参数如下: {ALERT.SENDTO} 收件人邮箱 {ALERT.SUBJECT} 邮件标题 {ALERT.MESSAGE} 邮件正文

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

4.2.2 管理----用户----Admin----报警媒介

这个设置是让脚本发送邮件给谁。

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

4.2.3 配置----动作----创建动作

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

4.3 测试报警

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

5. zabbix监控nginx

5.1 设置nginx主机监控状态

由于在编译安装nginx的时候没有添加选项,需要重新编译下nginx,如果不编译nginx,添加ngxin状态模块会提示报错。

代码语言:javascript
复制
[root@linux-02 ~]# cd /usr/local/src/nginx-1.16.0
[root@linux-02 nginx-1.16.0]# ./configure --prefix=/usr/local/nginx  --with-http_stub_status_module
省略
[root@linux-02 nginx-1.16.0]#  make && make install
省略
[root@linux-02 nginx-1.16.0]# cd /usr/local/nginx/conf/vhost
[root@linux-02 vhost]# vim test.com.conf

## 在行末添加以下内容 ## 
 location /nginx_status
    {
        stub_status on;
        access_log   off;
        allow 127.0.0.1;
        deny all;
    }   

[root@linux-02 vhost]# ./../../sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@linux-02 vhost]# /etc/init.d/nginx start
Starting nginx (via systemctl):                            [  确定  ]
[root@linux-02 vhost]# ps aux | grep nginx
root      12851  0.0  0.0  20680   736 ?        Ss   08:50   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody    12852  0.0  0.4  23168  3572 ?        S    08:50   0:00 nginx: worker process
nobody    12853  0.0  0.3  23168  3316 ?        S    08:50   0:00 nginx: worker process
root      12855  0.0  0.1 112724   988 pts/0    R+   08:50   0:00 grep --color=auto nginx

[root@linux-02 vhost]# curl 127.0.0.1/nginx_status
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0 
[root@linux-02 vhost]# curl 127.0.0.1/nginx_status
Active connections: 1 
server accepts handled requests
 2 2 2 
Reading: 0 Writing: 1 Waiting: 0 
[root@linux-02 vhost]# curl 127.0.0.1/nginx_status
Active connections: 1 
server accepts handled requests
 3 3 3 
Reading: 0 Writing: 1 Waiting: 0 

上面nginx状态的解释

字段

含义

Active Connections

当前活动连接数,其中也包括了等待状态的连接

accepts

接收到的连接数

handled

已经处理完的连接数,该数字一般和accepts一致,如果不一致那么说明Nginx出错了

requests

总共处理的请求数,一个连接可以有多个请求,所以该值比accpets要大

Reading

正在读取请求头信息的连接数

Writing

正在发送响应报文的连接数

Waiting

处于闲置状态,等待客户端发送请求的连接数

5.2 在agent端设置自定义监控nginx脚本

代码语言:javascript
复制
[root@linux-02 ~]# vim /usr/local/sbin/ngx_status.sh 

#!/bin/bash
url="http://127.0.0.1/nginx_status"
curl=/usr/bin/curl

# 检测nginx进程是否存在
function ping {
    /sbin/pidof nginx | wc -l 
}
# 检测nginx性能
function active {
    $curl $url 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
    $curl $url 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
    $curl $url 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
    $curl $url 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
    $curl $url 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
    $curl $url 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
    $curl $url 2>/dev/null| awk NR==3 | awk '{print $3}'
}
$1


[root@linux-02 ~]# chmod  755 /usr/local/sbin/ngx_status.sh

5.3 agent配置文件添加自定义监控脚本

代码语言:javascript
复制
[root@linux-02 ~]# vim /etc/zabbix/zabbix_agentd.conf

UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1

5.4 web端添加nginx监控模板

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

6. zabbix监控tomcat

6.1 agent端安装zabbix-java-gateway

代码语言:javascript
复制
[root@linux-02 ~]# yum install -y zabbix_java_gateway
安装省略


[root@linux-02 ~]# vim /etc/zabbix/zabbix_java_gateway.conf
 LISTEN_IP="0.0.0.0"

 LISTEN_PORT=10052

 START_POLLERS=5

[root@linux-02 ~]# systemctl start zabbix-java-gateway

[root@linux-02 ~]# ps aux | grep zabbix-java
zabbix     7685 10.8  4.3 2226548 36104 ?       Sl   20:31   0:01 java -server -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml -classpath lib:lib/android-json-4.3_r3.1.jar:lib/logback-classic-0.9.27.jar:lib/logback-core-0.9.27.jar:lib/slf4j-api-1.6.1.jar:bin/zabbix-java-gateway-4.2.3.jar -Dzabbix.pidFile=/var/run/zabbix/zabbix_java.pid -Dzabbix.listenIP=192.168.141.129 -Dzabbix.listenPort=10052 -Dzabbix.startPollers=5 -Dsun.rmi.transport.tcp.responseTimeout=3000 com.zabbix.gateway.JavaGateway
root       7698  0.0  0.1 112724   988 pts/0    R+   20:31   0:00 grep --color=auto zabbix-java

[root@linux-02 ~]# netstat -lntp | grep 10052
tcp6       0      0 192.168.141.129:10052   :::*                    LISTEN      7685/java 

6.2 agent端修改tomcat的catalina.sh

代码语言:javascript
复制
[root@linux-02 ~]# vim  /usr/local/tomcat/bin/catalina.sh
#在#!/bin/sh下增加
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.141.129
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

[root@linux-02 ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

6.2 server端修改zabbix配置文件

代码语言:javascript
复制
[root@linux-001 ~]# vim /etc/zabbix/zabbix_server.conf

JavaGateway=192.168.141.129
JavaGatewayPort=10052
StartJavaPollers=5


[root@linux-001 ~]# systemctl restart zabbix-server

6.3 web页面添加监控tomcat

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

监控成功

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

最新数据如下

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

7. zabbix监控mysql

7.1 授权一个用户登录mysql

代码语言:javascript
复制
[root@linux-02 ~]# mysql -uroot -plinux002
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.43 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant usage, process, replication client on *.* to 'mmm'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.02 sec)

mysql> 
mysql> quit
Bye

7.2 编辑agent配置文件

/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 配置文件中定义的zabbix使用mysql用户存放的位置包含文件名称。

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
[root@linux-02 ~]# mkdir /var/lib/zabbix

[root@linux-02 ~]# vi /var/lib/zabbix/.my.cnf

[mysql]
host=localhost
user=mmm
password='123456'
socket=/tmp/mysql.sock

[mysqladmin]
host=localhost
user=mmm
password='123456'
socket=/tmp/mysql.sock
在这里插入图片描述
在这里插入图片描述

上面server端测试提示mysqladmin未找到命令,解决办法

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

在server段重新测试提示已经ok。

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

7.3 web添加监控mysql

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

最新数据如下

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/06/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 监控软件安装
  • 1. zabbix简介
  • 2. 安装zabbix
    • 2.1 zabbix-server端安装
      • 2.1.1 zabbix官网下载rpm包
      • 2.1.2 安装 zabbix-server
      • 2.1.3 创建zabbix访问所需要的数据库
      • 2.1.4 导入zabbix的数据库到mysql数据库
      • 2.1.5 修改zabbix-server端的配置文件
      • 2.1.6 修改zabbix-agent端的配置文件
      • 2.1.7 修改php文件中date.timezone
      • 2.1.8 启动服务
      • 2.1.9 启动中遇到的问题
    • 2.2 zabbix-agent端安装
      • 2.2.1 安装zabbix-agent
      • 2.2.2 修改agent的配置文件
      • 2.2.3 启动zabbix-agent服务
      • 2.2.4 防火墙规则设置
    • 2.3 webUI配置
    • 3. zabbix中web配置
      • 3.1 监控客户机----添加主机
        • 3.1.1 创建主机群组
        • 3.1.2 创建主机添加到主机群组
      • 3.2 监控客户机----管理模板
        • 3.2.1 创建模板
        • 3.2.2 复制监控项目到test模板
        • 3.2.3 复制已有的模板
      • 3.3 监控客户机----管理图形和窗口
        • 3.4 监控客户机----管理触发器
          • 3.5 web端图形界面文字处乱码解决方法
            • 3.6 解决中文名称不能写数据库的问题
            • 4. zabbix配置邮件告警
              • 4.1 zabbix报警脚本设置
                • 4.1.1 阿里云邮件推送服务
                • 4.1.2 编写一个发送邮件的脚本
                • 4.1.3 发送邮件脚本存放位置
                • 4.1.3 测试脚本是否可以发送
              • 4.2 配置webUI报警
                • 4.2.1 管理----报警媒介
                • 4.2.2 管理----用户----Admin----报警媒介
                • 4.2.3 配置----动作----创建动作
              • 4.3 测试报警
              • 5. zabbix监控nginx
                • 5.1 设置nginx主机监控状态
                  • 5.2 在agent端设置自定义监控nginx脚本
                    • 5.3 agent配置文件添加自定义监控脚本
                      • 5.4 web端添加nginx监控模板
                      • 6. zabbix监控tomcat
                        • 6.1 agent端安装zabbix-java-gateway
                          • 6.2 agent端修改tomcat的catalina.sh
                            • 6.2 server端修改zabbix配置文件
                              • 6.3 web页面添加监控tomcat
                              • 7. zabbix监控mysql
                                • 7.1 授权一个用户登录mysql
                                  • 7.2 编辑agent配置文件
                                    • 7.3 web添加监控mysql
                                    相关产品与服务
                                    云数据库 SQL Server
                                    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档