日志分类:运维技术

超微主板使用ipmicfg重置IPMI密码

分类:运维技术日期:2019-05-08 - 2:47:37评论:1条作者:老谢

  有一台Xenserver服务器由于思杰停止授权,需要升级,但是忘记了IPMI密码,所以需要进行重置,超微主板官方提供了ipmicfg工具可以进行重置,运行平台支持DOS、Windows、Linux。工具下载链接:ftp://ftp.supermicro.com/utility/IPMICFG/IPMICFG_1.27.1_build.170901.zip,下载完了上传到Xenserver的根目录,通过getconf LONG_BIT看一下系统是32还是64位,然后使用对应版本的ipmicfg程序。

  详情:https://www.supermicro.org.cn/en/solutions/management-software/ipmi-utilities

查看IPMI的IP配置信息
[root@localhost 32bit]# ./IPMICFG-Linux.x86 -m
IP=1.1.1.1
MAC=00:25:90:D2:E4:4B
查看当前用户列表
[root@localhost 32bit]# ./IPMICFG-Linux.x86 -user list
Maximum number of Users          : 10
Count of currently enabled Users : 2
User ID | User Name        | Privilege Level | Enable
------- | ---------        | --------------- | ------
      2 | ADMIN            | Administrator   | Yes
查看用户级别
[root@localhost 32bit]# ./IPMICFG-Linux.x86 -user help
For privilege level:
Administrator level : 4
Operator level      : 3
User level          : 2
Callback level      : 1

继续阅读…

Zabbix 数据库备份

分类:运维技术日期:2019-01-15 - 10:25:14评论:4条作者:老谢

  脚本主要是过滤掉保存监控数据的几个大表,因人而异,对我来说监控数据没了就没了,可以重新采集,但是剩下的监控配置,模板(我自建模板就100多个,如果丢了,我会哭的。),Action(这种东西都是各种匹配,调用丢了的话,真没法回逆),用户信息这些配置真的是非常重要。这样备份的好处,备份速度快,量小,重要的数据都备份了。恢复的时候呢,先建库,按照安装zabbix的时候导入数据库,导入那个主要就是为了创建几个历史表的结构,然后在拿这个备份导入,覆盖一下就行了。

#!/bin/bash
# @Date : 2016-06-07 09:25:56
# @Author : ukyomud (ukyomud@qq.com)
# @Filename :
# @Description :
PATH="/sbin:/usr/sbin:/bin:/usr/bin"
export PATH
# 数据库账号
NAME='zabbix'
# 登录密码
PASSWD='密码'
# 数据库备份路径
BAK_DIR="/workspace/zabbix_backup/zabbix_sql_backup"
# 备份日志的log
BAK_LOG_FILE="/var/log/zabbix_bk_log"
# 备份数据轮转天数
DEL_FILE_DAYS=7
# 当前时间
DATE_NOW=$(date +'%Y-%m-%d')
# 数据库主机
HOSTSER="数据库主机"
# 要过滤掉的数据表,这个可以根据自己的情况变更
FILTER_TABLE="history_uint|history|trends_uint|trends|history_text|alerts|events"
# 数据库连接端口
PORT=3306
# 判断有没有备份目录,没有的话创建一下。
[ -d $BAK_DIR ] || mkdir -p $BAK_DIR
# 过滤出要备份的表,一次备份。
for tablename in $(mysql -h"$HOSTSER" -u"$NAME" -p"$PASSWD" -P"$PORT" zabbix -e "show tables;" 2>/dev/null | grep -Ev "$FILTER_TABLE");do
 /usr/bin/mysqldump -N -h"$HOSTSER" -u"$NAME" -p"$PASSWD" -P"$PORT" zabbix ${tablename} >>${BAK_DIR}/zabbixdb.${DATE_NOW}.sql 2>>${BAK_LOG_FILE}
done
# 我个人习惯是单独有个zabbix目录,用来保存zabbix 调用的脚本。
# 所以这里顺道做了备份。
cd /workspace/zabbix_backup/zabbix_scripts_backup
tar czvf zabbix.tgz.$(date +%F) /workspace/zabbix
# 查找7天前的日志,进行删除。
find $BAK_DIR -type f -ctime +${DEL_FILE_DAYS} | xargs rm -f
find /workspace/zabbix_backup/zabbix_scripts_backup -type f -ctime +${DEL_FILE_DAYS} | xargs rm -f

内容更新于: 2017-07-26 18:06:58
链接地址: http://blog.leanote.com/post/xiaomi/Zabbix-%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E4%BB%BD

Tags:

Zabbix监控Bind(DNS)解析状态状态

分类:linux日期:2018-12-12 - 22:06:09评论:0条作者:老谢

  通过BIND内置的监控模块提供统计数据,需在named.conf加入以下行打开该功能:

statistics-channels {
  inet 127.0.0.1 port 8053 allow { 127.0.0.1; };
};

  编辑/usr/local/zabbix/etc,加入:

UserParameter=bind.queries.in[*],curl http://127.0.0.1:8053/ 2>/dev/null | /usr/bin/xml2 | grep -A1 "/isc/bind/statistics/server/queries-in/rdtype/name=$1$" | tail -1 | cut -d= -f2
UserParameter=bind.queries.out[*],curl http://127.0.0.1:8053/ 2>/dev/null | /usr/bin/xml2 | grep -A1 "/isc/bind/statistics/views/view/rdtype/name=$1$" | tail -1 | cut -d= -f2
 
#注意,需要安装xml2,可以使用yum install xml2来安装

  PS:折腾一圈发现,模板里没有包含OUT的监控,而且命令执行后OUT是空的,不太熟悉bind-statistics输出的内容,以后再研究吧……

继续阅读…

Tags: , ,

Zabbix监控Apache性能

分类:linux, 运维技术日期:2018-11-24 - 14:39:19评论:0条作者:老谢

  和之前写过的Zabbix 3.2 agentd监控Nginx性能原理差不多,都是通过web引擎输出status信息来进行性能监控,一般情况下我们需要对ReqPerSec、BytesPerSec、BusyWorkers、IdleWorkers四个数据进行关注。

开启Apache Status
Listen 80
<VirtualHost *:80>
    CustomLog /dev/null common
    ErrorLog /dev/null
    <Location "/server-status">
        SetHandler server-status
        Require ip 127.0.0.1
    </Location>
</VirtualHost>

  我这里生产环境监控的是一台WHM服务器,默认开启apache status,访问地址为http://127.0.0.1:80/whm-server-status?auto,正常情况下应该如下页面内容:

Apache Server Status for 127.0.0.1 (via 127.0.0.1)
Server Version: Apache/2.4.37 (cPanel) OpenSSL/1.0.2p mod_bwlimited/1.4
Server MPM: prefork
Server Built: Oct 29 2018 18:29:24
Current Time: Thursday, 22-Nov-2018 13:48:50 CST
Restart Time: Thursday, 22-Nov-2018 13:48:35 CST
Parent Server Config. Generation: 1
Parent Server MPM Generation: 0
Server uptime: 15 seconds
Server load: 0.05 0.09 0.08
Total accesses: 7 – Total Traffic: 54 kB – Total Duration: 19687
CPU Usage: u.02 s0 cu0 cs0 – .133% CPU load
.467 requests/sec – 3686 B/second – 7.7 kB/request – 2812.43 ms/request
7 requests currently being processed, 4 idle workers

……………

继续阅读…

Tags: ,

Zabbix通过PSK共享密钥实现Server和Agent的通信加密

分类:linux, 运维技术日期:2018-11-22 - 14:23:58评论:1条作者:老谢

  Zabbix版本从3.0之后,开始支持Zabbix server, Zabbix proxy, Zabbix agent, zabbix_sender and zabbix_get之间的通信加密,加密方式有预共享密钥(PSK)和证书加密,加密配置是可选项,一些proxies和agents可以使用证书认证加密通信,另外一些可以使用PSK加密通信,而剩余的可以不使用加密进行通信,需要注意的是如果希望使用加密通信,编译的时候必须加入 –with-openssl参数。

生成并添加PSK共享密钥

  使用命令openssl rand -hex 32生产一串密钥,配置步骤如下:

[root@zabbix scripts]# openssl rand -hex 32
ef52cbe2d1a35e6bb3c43b22bd4f1a1d7bf24d1ccb7c47f6a602425970da5432
 
# 将生成的密钥写入该文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_agentd.psk
 
vim /usr/local/zabbix/etc/zabbix_agentd.conf
 
#加入
TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_agentd.psk
TLSPSKIdentity=PSKTest
 
#配置完成后重启zabbix_agent进程
在zabbix web gui中添加

Zabbix通过PSK共享密钥实现Server和Agent的通信加密

测试命令
zabbix_get -s 127.0.0.1 -k "system.cpu.load[all,avg1]" --tls-connect=psk --tls-psk-identity="PSK 001" --tls-psk-file=/etc/zabbix/zabbix_agentd.conf.d/zabbix_agentd.psk
Tags: ,

Grafana 5.3 安装及配置

分类:linux日期:2018-11-21 - 19:36:01评论:0条作者:老谢

Zabbix 4.0 LTS

  2018年10月1日,Zabbix官方正式发布Zabbix 4.0 LTS版本,作为长期支持版本,意味着可以获得官方5年的支持。其中完全支持到2021年10月31日,以及有限支持到2023年10月31日,同时官方4.0文档已经更新。
最直观的感受就是重新设计了图形展示,新增了Kiosk模式实现真正意义上的全屏,可以直接做大屏展示,时间选择器做的和Kibana类似;

  Zabbix 4.0 LTS对分布式监控Proxy方式也做了优化,引入了与Proxy通信的压缩,大大减少了传输数据的大小。从而提高了性能。

Zabbix 4.0 LTS 详细了解优化及新增功能参考如下:
新增功能[:https://www.zabbix.com/whats_new]
官方文档:[https://www.zabbix.com/documentation/4.0/manual].

Grafana v5.3
  • Grafana v5.3带来了新功能,许多增强功能和错误修复。
  • Google Stackdriver作为核心数据源;
  • 电视模式得到改善,更易于访问
  • 提醒通知提醒;
  • Postgres获得了一个新的查询构建器;
  • 改进了对Gitlab的OAuth支持;
  • 带模板变量过滤的注释;
  • 具有自由文本支持的变量。

Grafana5.3 详细了解优化及新增功能参考如下:
新增功能:http://docs.grafana.org/guides/whats-new-in-v5-3/

安装
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.0-1.x86_64.rpm
yum -y install fontconfig freetype* urw-fonts
yum -y install grafana-5.3.0-1.x86_64.rpm 
chkconfig --add grafana-server
chkconfig grafana-server on
grafana-cli plugins install alexanderzobnin-zabbix-app
/etc/init.d/grafana-server restart
 
#zabix的api地址是根目录下的<em>api_jsonrpc.php</em>,grafana默认端口号3000,抄自:http://blog.51cto.com/10880347/2306804。

Bind9+NamedManager构建高可用DNS服务器

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

  这两天在学习DNS,经过两天的折腾对DNS终于有了一些了解,以下内容大部分来自网络,本文只是整理记录以便自己回顾学习的目的,本文建立在已知DNS作用的情况下。

1. 基本概念

1.1 域名

  域名分为三个部分,用“.”(点)分割。严格的域名最后还有一个”.”,但一般省略不写。

  举例来说,www.example.com真正的域名是www.example.com.root,简写为www.example.com.。因为,根域名.root对于所有域名都是一样的,所以平时是省略的。

  根域名的下一级,叫做”顶级域名”(top-level domain,缩写为TLD),比如.com、.net;再下一级叫做”次级域名”(second-level domain,缩写为SLD),比如www.example.com里面的.example,这一级域名是用户可以注册的;再下  一级是主机名(host),比如www.example.com里面的www,又称为”三级域名”,这是用户在自己的域里面为服务器分配的名称,是用户可以任意分配的。

总结一下,域名的层级结构如下。
主机名.次级域名.顶级域名.根域名

# 即

host.sld.tld.root
 
  -类型     标识此域名的类型(com/net/org/edu/gov/info/xyz/cc/...)
  -域名     域名称
  -主机名  该域中的某台主机名称
 
例如:laoxie.me
 
www: 主机名
xj123:域名称
info: 类型

继续阅读…

Tags: ,

ESXi 6.7 使用NUT Client连接群晖UPS服务器

分类:运维技术日期:2018-10-21 - 19:53:49评论:4条作者:老谢

  进来增加了一台工控机,上面跑了如软路由等业务,万一突然断电ESXi坏了启不了,估计就得废好大劲折腾了,以前有给群晖配过一台APC BK650的UPS,目前UPS的COM数据输出直接给到了群晖,毕竟无论如何也得优先保障群晖的可靠性,在群晖的设置里面看到过UPS服务器的选项,所以想着能不能ESXi能不能连接群晖的UPS服务器实现断电自动关机以保证数据安全。

  搜了一圈,果然有相关资料,一看有戏果断继续折腾,先是搜到一篇论坛中文的教程,坑的是相关软件上传到百度网盘,密码还得回帖看见,注册吧还得要邀请码,邀请码把还要钱,我擦这不能忍,开源精神都被你们玩哪去了,百度靠不住了,祭出google大神,果不其然有一堆教程,折腾开始~

  群晖关于UPS服务器的相关参数定义,放在/usr/syno/etc/ups/ups.conf文件中,默认如下:

UserVars.NutUpsName : UPS name on remote NUT server (ups_name@server_name),
can be a space separated list of NUT servers. In our case the servername is defined on the Synology (ups@10.0.1.22).
UserVars.NutUser : Username to connect to NUT server. If more that one NUT
server is declared, all need to use the same user/password.
The Synology default is “monuser”
UserVars.NutPassword : Username password on NUT server
The Synology default is “secret”.
UserVars.NutFinalDelay : Seconds to wait on low battery event before shutting down
UserVars.NutSendMail : Set to 1 if you want a mail to be sent on UPS event
UserVars.NutMailTo : Email address to send mail to on UPS event

继续阅读…

Zabbix Proxy进程管理bash脚本

分类:linux日期:2018-07-05 - 22:15:57评论:0条作者:老谢

#!/bin/bash
#processname: zabbix_proxy
 
case $1 in
       start)
              echo -n "Starting zabbix_proxy"
              /usr/local/zabbix/sbin/zabbix_proxy
              echo " done"
       ;;
 
       stop)
              echo -n "Stopping zabbix_proxy"
              killall -9 zabbix_proxy
              echo " done"
       ;;
 
        restart)
                $0 stop
                $0 start
       ;;
 
       show)
              ps -aux|grep zabbix_proxy
       ;;
 
       *)
              echo -n "Usage: $0 {start|stop|restart|show}"
       ;;
 
esac
Tags:

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: ,