监控系统状态,以及zabbix监控

1、监控linux系统状态(CPU/内存)
2、监控linux系统状态(磁盘)
3、监控linux系统状态(监控网卡流量)
4、监控linux系统状态(进程)
5、监控linux系统状态(抓包)
6、监控介绍
7、监控zabbix安装
8、客户机安装zabbix
9、zabbix邮件告警
10、zabbix监控Nginx
11、zabbix监控tomcat
12、zabbix监控mysql

1、监控linux系统状态(CPU/内存)

w 时间、启动了多场时间、有几个用户在登录、1分钟 5分钟 15分钟 平均负载。
top id:空闲cpu 100-空闲的就是实际使用的、avail Mem:是系统实际可使用的物理内存、res:进程占用的内存大 小、virt:虚拟内存。
top-bn1静态一次性全部显示出来,按照cpu百分比排序。方便shell脚本中使用。
cat /proc/cpuinfo查看cpu数量。processor: 0 表示1个cpu、2为3个cpu。
lscpu 架构、位数、cpu数量、型号、详细信息
free available 真正能剩余的物理内存大小 -h 人性化显示单位 beffer这部分内存是从CPU产生即将写入到磁盘去的那部分数据(缓冲),cached 这部分数据是先重磁盘里读出来,然后临时存到内存里的那部分数据(缓存)
手动增加swap

dd if=/dev/zero of=/bigfile bs=1M count=1000 #根下的bigfile 块大小1M 有1000个块  
mkswap /bigfile     #格式化成swap
chmod 600 /bigfile  #设置权限
swapon /bigfile    #挂载

2、监控linux系统状态(磁盘)

监控磁盘安装工具:yum install -y sysstat
iostat -dx 1 每隔1秒显示1次 %util 磁盘空闲情况
iostat -dx 1 3 每隔1秒显示1次一共显示3次
iotop 安装:yum install -y iotop
iotop 动态显示,按IO使用率大小排序
分析系统瓶颈点
vmstat 1
vmstat 1 10
关注:r、b、si、so、bi、bo、id、wa

3、监控linux系统状态(监控网卡流量)

sar -n DEV 1 10 查看网络流量情况每秒显示一次,一共显示10次
sar -n DEV -f /var/log/sa/sa28 查看28号这天网卡流量情况,默认没10分钟记录一次
sar 查看的是cpu
sar -b 查看的是磁盘IO
sar -q 查看的是历史的系统负载
nload 安装epel源:yum install -y epel-release
安装nload:yum install nload
nload 回车后查看网卡流量,动态显示
ethtool eth0显示Link detected: yes表示网卡是连接状态

4、监控linux系统状态(进程)

ps aux查看系统及用户级别所有进程 ls -l /proc/PID号 查看该进程相关的文件 ps -elf查看线程

STAT 
    S Sleep 
    R Running
    s 父进程
    N 低优先级
    < 高优先级
    + 前台进程
    l 多线程进程
    Z 僵尸进程

netstat查看网络连接状况

netstat -lnp 、netstat -lntp 、 netstat -lntup
netstat -an 
ss -an 

5、监控linux系统状态(抓包)

tcpdump抓包工具 安装:yum install -y tcpdump

tcpdump -nn -i ens33 port 80
tcpdump -nn -i ens33 -c 100 -w 1.cap
tcpdump -i ens33  -nn not port 22 and not port 80 and not host 192.168.222.1
tcpdump -nn -r 1.cap 

wireshark 安装:yum install -y wireshark

tshark -i ens33  -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

6、监控介绍

为什么要做监控?
可以提前发现潜在故障隐患,第一时间解决掉。把影响降低。
常见的监控软件:
cacti、nagios、zaabix、open-falcon、prometheus、grafana

7、监控zabbix安装

zabbix 官网 https://www.zabbix.com/
zabbix4.0 安装
1)安装zabbix yum源
    rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
2)yum 安装
yum install zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
3)数据库操作
create database zabbix;
grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix-pa';
4) 导入数据
/usr/share/doc/zabbix-server-mysql-4.0.3/create.sql.gz 
gzip -d /usr/share/doc/zabbix-server-mysql-4.0.3/create.sql.gz 
mysql -uroot -paminglinux zabbix < /usr/share/doc/zabbix-server-mysql-4.0.3/create.sql
5) 编辑zabbix_server.conf
vi /etc/zabbix/zabbix_server.conf # 定义数据库相关的参数
systemctl start zabbix-server
systemctl enable zabbix-server
6)zabbix_agent.conf
vi /etc/zabbix/zabbix_agentd.conf #定义Server=127.0.0.1和 ServerActive=127.0.0.1
systemctl start zabbix-agent
systemctl enable zabbix-agent
7)httpd
systemctl start httpd # 如果已经启动了nginx,需要先把nginx关闭,然后启动httpd
8)webui配置
http://ip/zabbix 访问,解决php的问题 (date.timezone Asia/Shanghai) /etc/php.ini
默认密码  admin  zabbix

8、客户机安装zabbix

1)安装zabbix yum源
    rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
2)yum 安装
yum install -y zabbix-agent
3)zabbix_agent.conf
vi /etc/zabbix/zabbix_agentd.conf #定义Server=服务器ip和 ServerActive=服务器ip
systemctl start zabbix-server  #启动
ps aux|grep zabbix  #查看服务
netstat -ltnp  #查看监听端口
yum install -y net-tools #安装netstat
iptables -nvL 查看防火墙规则
iptables -F
解决中文名称不能写数据库的问题
1) 设置utf8字符集
my.cnf
character_set_database = utf8
character_set_server = utf8
2) mysqldump -uroot -paminglinux --default-character-set=utf8 zabbix > zabbix.sql
vim zabbix.sql  
:1,$s/latin1/utf8/g
3) mysql -uroot -paminglinux --default-character-set=utf8 zabbix <  zabbix.sql
解决图形中文乱码
vim /usr/share/zabbix/include/defines.inc.php  #搜索fonts
字体路径:define('ZBX_FONTPATH',                     realpath('fonts'));
字体名称:define('ZBX_GRAPH_FONT_NAME',           'graphfont');
拷贝windows:C:\Windows\Fonts\simsun.ttc 
改名字为/usr/share/zabbix/fonts/graphfont.ttf

9、zabbix邮件告警

创建发邮件python脚本

vi mail.py #内容
#!/usr/bin/python
#coding:utf-8

import smtplib
from email.mime.text import MIMEText
import sys

mail_user = 'aming@ishiming.net'
mail_pass = 'xxxxxxxx'

def send_mail(to_list,subject,content):
    me = "zabbix 监控告警平台"+"<"+mail_user+">"
    msg = MIMEText(content, 'plain', 'utf-8')
    msg['Subject'] = subject
    msg['From'] = me
    msg['to'] = to_list

    try:
        s = smtplib.SMTP("smtpdm.aliyun.com", 25)
        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])


测试: python mail.py aming_test@163.com "测试邮件" "cececececece"
设置zabbix_server配置文件

vim /etc/zabbix/zabbix_server.conf 
找到:AlertScriptsPath=/usr/lib/zabbix/alertscripts
cd /usr/lib/zabbix/alertscripts
把mail.py 挪到这个目录下来
给它一个755权限  chmod 755 mail.py
设置zabbixWEB UI

1) 设置报警媒介
Administration -> Media types -> 右上角(Create Media type)
Name: baojing
Type: Script
Script name: mail.py
Script parameters -> Add {ALERT.SENDTO}/ Add {ALERT.SUBJECT}/Add {ALERT.MESSAGE}
Add

2)设置接收邮件地址
Administration -> Users -> Admin(或者新建用户) 
Media  -> Add 
Type: baojing
Send to: 邮箱地址,如 aming_test@163.com 
Add
Update

3)配置动作
Configuration -> Actions -> Create action
Name: 发邮件
Operations 
	New  
	Send to Users -> Admin
	Send only to -> baojing
	Conditions -> new -> Add 
	Add

Recovery operations
	New  
	Send to Users -> Admin
	Send only to -> baojing
	Add

Add	
测试报警

Configuration -> Hosts -> Triggers 
故意调整一个trigger
Monitoring -> Problems	

10、zabbix监控Nginx

编辑yum仓库:
vi /etc/yum.repos.d/nginx.repo
粘贴:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
    安装:
yum install -y nginx
配置Nginx状态信息

vi  /etc/nginx/conf.d/default.conf  #增加
location /nginx_status 
{
        stub_status on;
        access_log   off;
        allow 127.0.0.1;
        deny all;
    }
测试

curl http://127.0.0.1/nginx_status
说明:


Active Connections 当前活动连接数,其中也包括了等待状态的连接
accepts	接收到的连接数
handled	已经处理完的连接数,该数字一般和accepts一致,如果不一致那么说明Nginx出错了
requests总共处理的请求数,一个连接可以有多个请求,所以该值比accpets要大
Reading	正在读取请求头信息的连接数
Writing	正在发送响应报文的连接数
Waiting	处于闲置状态,等待客户端发送请求的连接数
编写监控脚本

vi /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

chmod 755 /usr/local/sbin/ngx_status.sh
编辑zabbix_agent.conf

vi /etc/zabbix/zabbix_agentd.conf # 增加
UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1
重启服务

systemctl restart zabbix-agent
zabbix_get 测试

在服务端执行
zabbix_get  -s 192.168.222.129 -k 'nginx.status[accepts]
导入nginx模板

下载模板 https://github.com/aminglinux/linux2019/blob/master/zabbix_nginx_template/zbx_export_templates.xml

Configuration -> Templates -> 右上角Import
链接模板

Configuration -> Hosts -> aminglinux02 -> Templates -> Select -> Add -> Update

11、zabbix监控tomcat

监控流程:

1)安装zabbix_java_gateway
2)配置zabbix_java_gateway配置文件和zabbix_server配置文件,指定监听端口,启动进程数
3)编辑Tomcat配置文件,开启JMX
4)添加host,指定JMX interface
5)链接TOMCAT模板
安装zabbix_java_gateway

yum install -y zabbix-java-gateway
修改配置文件

vi /etc/zabbix/zabbix_java_gateway.conf 
	定义 LISTEN_PORT 和 START_POLLERS

vi /etc/zabbix/zabbix_server.conf
	定义 JavaGateway 和 JavaGatewayPort 和  StartJavaPollers

启动zabbix-java-gateway服务 systemctl start zabbix-java-gateway

重启zabbix-server服务 systemctl restart zabbix-server
开启JMX

vi /usr/local/tomcat/bin/catalina.sh #在#!/bin/sh下增加
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.222.128
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

重启tomcat
/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh	
添加Host链接模板

Configuration -> Hosts -> Create host
Agent interfaces -> remove
JMX interfaces -> Add -> 192.168.222.128  9999
Templates -> Select -> Template App Apache Tomcat JMX -> select -> Add
Add

12、zabbix监控mysql

授权一个监控用户

> grant usage, process, replication client on *.* to 'mon'@'localhost' identified by 'x2ay9xodTvyM';
编辑配置文件

vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
mkdir /var/lib/zabbix
vi /var/lib/zabbix/.my.cnf #如下内容
[mysql]
host=localhost
user=mon
password='x2ay9xodTvyM'
socket=/tmp/mysql.sock

[mysqladmin]
host=localhost
user=mon
password='x2ay9xodTvyM'
socket=/tmp/mysql.sock
重启zabbix-agent服务

systemctl restart zabbix-agent
测试

zabbix_get -s 127.0.0.1 -p 10050 -k mysql.ping
若提示:sh: mysqladmin: 未找到命令
需要: ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/	

zabbix_get -s 127.0.0.1 -p 10050 -k mysql.version
zabbix_get -s 127.0.0.1 -p 10050 -k mysql.size
添加主机和模板

Configuration -> Hosts -> Create host
Agent interfaces -> 127.0.0.1 10050
Templates -> Select -> Template DB MySQL -> select -> Add
Add

转载于:https://my.oschina.net/zenghong133/blog/3061031

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值