自动化---zabbbix监控

《架构师之运维监控》

PS:监控是什么,运维喝茶之道。

(凡人)

1.识别监控对象(分级)

2.理解监控对象(理论知识)

3.细分监控对象的指标

4.确定告警的基准线

预中级(筑基)

1.工具化和监控分离

2.监控对象的分类:

2.1硬件监控(方法:机房巡检,IPMI,SNMP)   https://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html      # yum install OpenIPMI ipmitool  -y    systemctl start ipmi

2.2系统监控(对象:CPU,内存,IO(磁盘,网络)

2.3服务监控(对象:各类服务(nginx|tomcat|RabbitMQ|mysql..)

2.4日志监控(方法:Elastic Stack)

2.5网络监控(方法:第三方,smokeping)

2.6APM应用性能管理(工具:PINpoint)

2.7流量监控(工具:piwik,XX统计,XX分析)

2.8其他监控(APP监控,安全监控,业务监控,舆论监控,等等)

3.掌握一个监控工具,例如zabbix

中级(元婴)

1.标准化监控(标准化的脚本,模板)

2.分布式监控(主动,被动,分布式)

3.性能优化(数据采集,数据存储,数据查询)

4.二次开发(定制报表,API调用,XXX)

进阶(渡劫  从精通到放弃)

1.告警阈值动态化

2.智能告警:1告警去重 2.依赖

3.故障自愈(事件驱动,主动控住)

4.大规模

#####################通过硬件来监控

 https://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html     

# yum install OpenIPMI ipmitool  -y   

#systemctl start ipmi

###############通过snmp监控

root@cobbler ~]# yum install -y net-snmp net-snmp-libs -y

[root@cobbler ~]# vim /etc/snmp/snmpd.conf

 41 com2sec admin  default       admin                             #####                   配置的用户      团体名称

 48 group   admin v2c           admin                                   #####     定义组 把用户放入组里   第一个admin是用户   v2c是协议    第二个admin是组

 57 view    admin    included   .1 80                          ####    赋予权限因为是树结构 .1是所有权限

 64 access  admin ""      any       noauth    exact  admin admin none        ####用户组admin       ##不需要验证    ####admin用户

[root@cobbler ~]# systemctl start snmpd                                                 ######开启服务 [root@cobbler ~]# ss -ln |grep 161 udp    UNCONN     0      0         *:161                   *:*                              #####snmp 默认是UDP协议,161端口

[root@cobbler ~]# snmpget -v2c -c admin 192.168.1.102 .1.3.6.1.4.1.2021.10.1.3.1     ###检测CPU

 https://blog.csdn.net/apple_llb/article/details/50494787     #####具体一些监控项看这个网页内容

   

########系统监控

CPU :

   进程:每一个进程,至少有一个线程。

             每个进程可以有多个线程

   负载:单位时间内运行队列中就绪等待的进程

内存:

    虚拟内存,swap,物理内存

     内存页

IO     需要yum安装

   iotop

   iftop

   nethogs

zabbix部署

1.时间同步

[root@cobbler ~]# yum install -y ntpdate

[root@cobbler ~]# echo '* * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >> /var/spool/cron/root

[root@cobbler ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm   ###下载安装包

 [root@cobbler yum.repos.d]# yum install -y http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm             ####将zabbix加入yum源

[root@cobbler yum.repos.d]# yum install -y zabbix-server-mysql zabbix-web-mysql    zabbix-agent#########zabbixweb前端程序   zabbix服务端程序

[root@cobbler yum.repos.d]# yum install -y mariadb-server                                    ###########安装数据库

[root@cobbler yum.repos.d]# systemctl  enable mariadb.service              ##########开机自启
[root@cobbler yum.repos.d]# systemctl start mariadb.service                      ##########启动数据库

[root@cobbler yum.repos.d]# ss -ln|grep 3306                                   #####查看端口

[root@cobbler yum.repos.d]# mysql_secure_installation     ########初始化设置密码

[root@cobbler yum.repos.d]#mysql -u root -p   密码 进数据库

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;  ### 创建数据库zabbix设置字符集编码utf-8

MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost'identified by '123.com'; Query OK, 0 rows affected (0.00 sec)  ############设置用户  以及密码

MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec)       #####跟新权限

[root@cobbler yum.repos.d]# zcat /usr/share/doc/zabbix-server-mysql-3.4.8/create.sql.gz|mysql -uzabbix -p123.com zabbix        ########导入数据库 以及zabbix登录

[root@cobbler yum.repos.d]# vim /etc/httpd/conf/httpd.conf    ####

ServerName 127.0.0.1:80                     更改95行

[root@cobbler yum.repos.d]# systemctl enable httpd
[root@cobbler yum.repos.d]# systemctl start httpd
[root@cobbler yum.repos.d]# vim /etc/httpd/conf.d/zabbix.conf   ###################更改时区

 19         php_value date.timezone Asia/Shanghai

[root@node1 ~]# systemctl restart httpd

 浏览器打开  http://192.168.1.102/zabbix/setup.php

 

因为倒入数据库    zabbix登录的初始密码是Admin  zabbix

[root@cobbler yum.repos.d]# vim /etc/zabbix/zabbix_server.conf    #########配置zabbixserver密码

126 DBPassword=123.com

[root@cobbler yum.repos.d]# systemctl enable zabbix-server.service    #######  开机自启
[root@cobbler yum.repos.d]# systemctl start zabbix-server.service        #####启动

##############如果页面一直zabbix-server报错没启动的话 就得重启服务了,这个鬼无解 看日志还是

 [root@cobbler yum.repos.d]# vim /etc/zabbix/zabbix_agentd.conf    ###### 编辑文件

 97 Server=127.0.0.1                                   ##########指的是谁可以拿到数据 写server主机IP

138 ServerActive=127.0.0.1                          #################   主动模式下  写的也是服务器主机IP

 [root@cobbler yum.repos.d]# systemctl enable zabbix-agent.service
[root@cobbler yum.repos.d]# systemctl start zabbix-agent.service

##########在配置界面选择configuration-----hosts----create-----添加主机------templates选择模板----创建

[root@node1 ~]# zabbix_get -s node2 -k agent.ping    #############如果不通可以手动检测

############添加自定义的items

cd  /etc/zabbix/zabbix_agentd.d

 [root@node2 zabbix_agentd.d]# vim monitor_file.conf     自定义模板文件

 UserParameter=monitor_file,stat -c %s /etc/services   ####监控文件大小

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

开始创建itmes------------configuration-----hosts---itmes---create-itmes

 

##########想查看自己添加的是否成功可以---monitoring---latestdata

 ###创建triggers ----configuration---host---triggers--create-

###########定义监控级别


##############定义监控用什么发

 

 ####定义邮箱地址

 

 #################用什么账号发

 

3.监控web,mysql三部曲

 


监控mysql

[root@node2 ~]# yum install -y mariadb-server

带密码的监控

 root@node2 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

mysql

MariaDB [(none)]> grant all on *.* to zabbix@'localhost' identified by '123.com';

MariaDB [(none)]> flush privileges;

[root@node2 ~]# systemctl  restart zabbix-agent.service

 


多个数据监控修改配置文件使用¥化

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

UserParameter=mysql.status[*],echo "show global status where Variable_name='$3';" | HOME=/var/lib/zabbix mysql -u$1 -p$2 -N | awk '{print $$2}'

UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -u$1 -p$2 ping | grep -c alive

[root@node2 ~]# systemctl  restart zabbix-agent.service

[root@node1 ~]# zabbix_get -s 192.168.1.104 -k mysql.status[zabbix,123.com,Uptime]

 

 

TCP监控

root@node2 zabbix_agentd.d]# vim TCP_status.conf

UserParameter=TCP_status[*],netstat -ant|grep -c $1

[root@node1 ~]# zabbix_get -s 192.168.1.104 -k TCP_status[TIME_WAIT]


克隆来依次创建tcp的状态 ##ESTABLISHED
SYN_SENT
SYN_RECV
FIN_WAIT1
FIN_WAIT2
TIME_WAIT
CLOSE
CLOSE_WAIT
LAST_ACK
LISTEN
CLOSING
UNKNOWN


####监控nginx

原文地址:https://www.cnblogs.com/zhaobin-diray/p/8994333.html