日志分类:运维技术

Zabbix 3.2 agentd自动发现监控资源占用TOP 10进程

分类:运维技术日期:2018-06-13 - 19:34:41评论:1条作者:老谢

创建top.sh
#!/bin/sh
top -n 1 -b> /tmp/top.txt

#注: 所有脚本请放至/usr/local/zabbix/share/scripts中
#注: 该脚本的意思是执行一次top命令并将结果重定向到top.txt

crontab -e
*/1 * * * * /usr/local/zabbix/share/scripts/top.sh > /dev/null

#注: 使用crond每分钟执行一次脚本,输出最新top数据到top.txt

创建check_process.sh获取进程名
#!/bin/bash
TABLESPACE=`tail -n +8 /tmp/top.txt|awk '{a[$NF]+=$6}END{for(k in a)print a[k]/1024,k}'|sort -gr|head -10|cut -d" " -f2`
        COUNT=`echo "$TABLESPACE" |wc -l`
INDEX=0
echo '{"data":['
echo "$TABLESPACE" | while read LINE; do
        echo -n '{"{#PROCESSNAME}":"'$LINE'"}'
        INDEX=`expr $INDEX + 1`
        if [ $INDEX -lt $COUNT ]; then
                echo ','
        fi
done
echo ']}'

  注: 最关键的是tail -n +8 /tmp/top.txt|awk ‘{a[NF]+=6}END{for(k in a)print a[k]/1024,k}’|sort -gr|head -10|cut -d” ” -f2这条命令:这条命令的意思是从top.txt文件中取出从第八行到末尾行的数据,然后使用awk对这些数据进行累加,效果是以最后一列为关键字,每个关键字对应的第6列的数值进行累加,输出第六列数据的累加结果和最后一列数据,然后使用sort进行排序,注意这里的参数是使用-gr而不是使用-nr是因为获取到的第六列的值是以KB为单位的,假如某进程占用内存大于10G的话,将会使用科学记数法计数,sort -nr参数无法对科学记数法进行计数,需要将参数改成-gr才行,其中的-r是进行反向排序,同时为了防止zabbix获取到该值是科学记数法获取的值从而无法识别,先将该值/1024将单位变成MB,当zabbix获取到数据后再*1024*1024将该值还原成BYTE单位。head -10是取出占用内存最大的十个进程,然后使用cut对数据进行切分,获得十个进程的进程名。

继续阅读…

Tags: ,

Zabbix 3.2 agentd使用自带模板监控MySQL性能

分类:运维技术日期:2018-06-11 - 20:58:49评论:0条作者:老谢

MySQL基础监控

  通过SHOW STATUS 可以提供服务器状态信息,也可以使用mysqladmin extendedstatus 命令获得。

以下几个参数对Myisam 和Innodb 存储引擎都计数:

  • Com_select 执行select 操作的次数,一次查询只累加1
  • Com_insert 执行insert 操作的次数,对于批量插入的insert 操作,只累加一次
  • Com_update 执行update 操作的次数
  • Com_delete 执行delete 操作的次数

以下几个参数是针对Innodb 存储引擎计数的:

  • Innodb_rows_read select 查询返回的行数
  • Innodb_rows_inserted 执行Insert 操作插入的行数
  • Innodb_rows_updated 执行update 操作更新的行数
  • Innodb_rows_deleted 执行delete 操作删除的行数

  通过以上几个参数,可以很容易的了解当前数据库的应用是以插入更新为主还是以查询操作为主,以及各种类型的SQL 大致的执行比例是多少。对于更新操作的计数,是对执行次数的计数,不论提交还是回滚都会累加。对于事务型的应用,通过Com_commit 和Com_rollback 可以了解事务提交和回滚的情况,对于回滚操作非常频繁的数据库,可能应用编写存在问题。

另外还有几个参数可以了解数据库的基本信息:

  • Connections 试图连接Mysql 服务器的次数
  • Uptime 服务器工作时间
  • Slow_queries 慢查询的次数

继续阅读…

Tags: ,

Zabbix 3.2 agentd监控Nginx性能

分类:运维技术日期:2018-06-11 - 13:00:59评论:0条作者:老谢

#nginx需要编译http_stub_status_module模块,编译参数:with-http_stub_status_module
#确保curl localhost/nginx_status输出如下:
 
[root@iZ237lzm354Z scripts]# curl www.baidu.com/nginx-status
Active connections: 979 
server accepts handled requests
 756072922 756072922 1136799890 
Reading: 0 Writing: 4 Waiting: 975
 
#Active connections –当前活跃的连接数量  
#server accepts handled requests — 总共处理了756072922个连接 , 成功创建 756072922次握手, 总共处理了1136799890个请求
#reading — 读取客户端的连接数.
#writing — 响应数据到客户端的数量
#waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

继续阅读…

Tags: ,

Centos 6.9升级openssh到7.7p1

分类:linux日期:2018-05-23 - 13:56:49评论:1条作者:老谢

开启telnet
yum install telnet-server
vi /etc/xinetd.d/telnet 
#默认telnet禁用root账户登陆,修改telnet配置文件,将配置文件中的disable         = no<修改为yes
 
vi /etc/securetty
 
#增加
#pts/0
#pts/1
#pts/2
#如果登录用户较多,需要更多的pts/*
 
/etc/init.d/xinetd start #启动xinetd进程。
安装相关组件并升级openssh
yum install -y gcc openssl-devel pam-devel rpm-build pam-devel 
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.7p1.tar.gz
rpm -e `rpm -qa | grep openssh` --nodeps
tar -zxvf openssh-7.7p1.tar.gz 
cd openssh-7.7p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers
make && make install
 
vi /etc/ssh/sshd_config
#sed -i '/^#PermitRootLogin/s/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config
#或手动修改PermitRootLogin no 修改为 PermitRootLogin yes 允许root远程登陆
 
service sshd restart 
#重启openssh
ssh -V
#查看版本
 
cp contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
service sshd start
service sshd restart
chkconfig --list sshd
关闭telnet
/etc/init.d/xinetd stop && vi /etc/xinetd.d/telnet
将之前改过的disable=yes又改回去成no.
随后再将修改iptables将23端口关闭,并重启iptables服务.
至此,可以再开ssh登录,用ssh -V查看版本号.
Tags: , ,

Zabbix 3.2.11配置zabbix_proxy实现分布式监控

分类:运维技术日期:2018-05-16 - 15:13:15评论:0条作者:老谢

zabbix_proxy编译安装
groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix
yum -y install net-snmp net-snmp-devel curl curl-devel perl-DBI net-snmp-utils
wget https://netix.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.11/zabbix-3.2.11.tar.gz
tar -zxf zabbix-3.2.11.tar.gz
mysql -uroot -proot -e "create database zabbix_proxy character set utf8"
 
cd zabbix-3.2.11
./configure --prefix=/usr/local/zabbix \
--enable-proxy \
--enable-agent \
--with-mysql=/usr/bin/mysql_config \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--with-openssl
 
make install
 
mysql -uroot -proot zabbix_proxy < database/mysql/schema.sql
修改/usr/local/zabbix/etc/zabbix_proxy.conf配置文件
Server=IP                    # zabbix服务端IP
Hostname=wyy_proxy           # 必须和WEB页面添加代理时设置的名称一致
LogFile=/tmp/zabbix_proxy.log  # 日志文件
DBHost=IP                    # 数据库IP
DBName=zabbix_proxy          # 数据库名
DBUser=user                   # 数据库用户名
DBPassword=password           # 数据库密码
启动proxy服务
/usr/local/zabbix/sbin/zabbix_proxy
iptables开放端口
iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 10050 -j ACCEPT
iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 10051 -j ACCEPT
/etc/init.d/iptables save
修改/usr/local/zabbix/etc/zabbix_agentd.conf配置文件
Server=proxyIP    #proxyIP为proxy服务器IP
#重启agent端,使配置生效
service zabbix_agentd start

zabbix_agentd及zabbix_proxy的主机名要与zabbix_server中添加的主机名一致,zabbix_agent的server地址填proxy的地址。

下面是重点

ConfigFrequency=60 #zabbix proxy从zabbix server取得配置数据的频率(秒),默认1小时同步一次!

Tags:

bash中使用awk命令配合正则处理字符串只保留数字

分类:linux日期:2018-05-08 - 19:39:15评论:0条作者:老谢

  在配置zabbix主机的时候,有个items抓snmp的oid输出的是字符串,zabbix3.4可以直接通过正则处理snmp抓到的数据,但是为了oneoaas已经降级到了zabbix 3.2,经过一番搜索可以通过外部脚本来处理抓到的字符串,首先编辑vim /usr/local/zabbix/etc/zabbix_server.conf,关掉externalscripts的注释,然后修改为正确路即可。

  snmpwalk -v 2c -c public 192.168.1.1 1.3.6.1.4.1.35047.2.10.7.0抓取到的值为SNMPv2-SMI::enterprises.35047.2.10.7.0 = STRING: “35 loginned users in all”,处理脚本如下:

#!/bin/bash
test=$(snmpwalk -v 2c -c public 192.168.1.1 1.3.6.1.4.1.35047.2.10.7.0)
#test1=`$test  | grep '"\d+'`
echo $test | awk '
{
string=$0
len=length(string)
for(i=50; i<=len; i++)
{
tmp=substr(string,i,1)
if(tmp ~ /[0-9]/)
{
str=tmp
str1=(str1 str)
}
}
print str1
}'
Tags: ,

zabbix安装配置简要记录

分类:linux日期:2018-04-10 - 10:45:17评论:0条作者:老谢

请优先参考:LNMP安装配置Zabbix搭建企业级监控平台

安装zabbix(CentOS 6.9 X64)
groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix
yum -y install net-snmp net-snmp-devel curl curl-devel perl-DBI net-snmp-utils
wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.8/zabbix-3.4.8.tar.gz
tar -zxf zabbix-3.4.8.tar.gz
mysql -uroot -proot -e "create database zabbix character set utf8"
cd zabbix-3.4.8
mysql -uroot -proot  zabbix < database/mysql/schema.sql
mysql -uroot -proot  zabbix < database/mysql/images.sql
mysql -uroot -proot  zabbix < database/mysql/data.sql
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-openssl
make install
vim /etc/services
 
#添加下面的字段
zabbix-agent    10050/tcp                       #Zabbix Agent
zabbix-agent    10050/udp                       #Zabbix Agent
zabbix-trapper  10051/tcp                       #Zabbix Trapper
zabbix-trapper  10051/udp                       #Zabbix Trapper
 
#修改 zabbix server 配置文件
#注意:DBUser和DBPassword请自行根据实际情况填写数据库用户名及密码
vim /usr/local/zabbix/etc/zabbix_server.conf
DBUser=zabbix
DBPassword=zabbix
 
cp misc/init.d/fedora/core/zabbix_* /etc/init.d/
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd
chmod +x /etc/init.d/zabbix_server
chmod +x /etc/init.d/zabbix_agentd
 
#添加mysql client库到系统默认库中:
vim /etc/ld.so.conf
 
#添加:
/usr/local/mysql/lib
 
#启动
/etc/init.d/zabbix_server start
 
mkdir /home/wwwroot/zabbix
cp -r -a frontends/php/* /home/wwwroot/zabbix
配置fping
yum install epel-release.noarch
yum update
yum install fping
chown root:zabbix /usr/sbin/fping
chmod 710 /usr/sbin/fping
chmod ug+s /usr/sbin/fping
#修改/usr/local/zabbix/etc/zabbix_server.conf,删除FpingLocation=/usr/sbin/fping前的注释。

CentOS设置网卡DHCP自动获取IP地址

分类:linux日期:2017-10-29 - 0:06:12评论:0条作者:老谢

  抽空给一台闲置的笔记本装了CentOS,完事插网线发现ifconfig没有eth0地址,做出如下调整后可以正常从HDCP获取到IP地址,编辑网络接口配置文件:

/etc/sysconfig/network-scripts/ifcfg-eth0

  将ONBOOT改为yes,NM_CONTROLLED改为no,BOOTPROTO改为dhcp之后,重启网络连接即可:service network restart。

CentOS设置网卡DHCP自动获取IP地址

为树莓派3B添加LCD1602液晶屏

分类:linux日期:2017-08-13 - 17:09:15评论:19条作者:老谢

树莓派3B针脚说明

为树莓派3B添加LCD1602液晶屏

继续阅读…

Raspberry Pi 树莓派安装系统及基本设置

分类:linux日期:2017-08-10 - 16:47:30评论:1条作者:老谢

安装系统
  • SDFormatter
  • win32diskimager

  请从树莓派官网下载系统镜像,然后使用SDFormatter对TF卡进行格式化,格式化以后运行win32diskimager,选择系统镜像以及盘符以后,点击write,等待写入完全,等到出现对话框write successful就说明成功了。

Raspberry Pi 树莓派安装系统及基本设置

继续阅读…