「ANALYSIS-AND-TROUBLESHOOTING」- 分析与调试

strace
Reverse Engineering
软件分析技术整理
为了CTF比赛,如何学习逆向和反汇编?
基于 x86 指令集的 Windows PC 平台
学习路线: 1)汇编:先学汇编!!必须学!!从 8086 汇编开始学,再到 32 位,有兴趣可以玩玩64位。 2)调试技能(OD、Windbg这些) 3)编程:编程技能(WinAPI多多少少要知道一点,MSDN文档一定要会看) 4)脱壳 5)漏洞分析
编程 => 密码学 => 软件工程 => 编译器
非编译型语言:逆向的难度要小很多
书籍推荐: 1)《汇编语言 第三版 王爽》 2)《x86 汇编语言 从实模式到保护模式》(可选) 3)《加密与解密》 4)《0day安全:软件漏洞分析技术》 5)”Reverse Engineering for Beginners” free book
https://beginners.re/RE4B-CN-partial/html/RE4B-CN-partial.html%20
1)Intel 微处理器
2)Windows 环境下 32 位汇编语言程序设计
3)Windows PE 权威指南
4)C++ 反汇编与逆向分析技术揭秘
5)加密与解密第三版
6)IDA Pro 权威指南

需要掌握的工具: 静态反汇编工具: IDA Pro 动态反汇编工具: ollydbg 内核调试工具: windbg (Windows)
实战操作: 1)逆向水平通过看书是无法提升的,唯一的捷径就是多练习; 2)在逆向完后,尽量写分析文章整理思路,这属于学习总结的一个过程; 3)平时多看分析文章,吾爱,看雪,安全博客-阿里聚安全、百度安全应急响应中心、安全客 – 有思想的安全新媒体;
基于 ARM 指令集的 Android 平台
1)熟知多种编程语言 众所周知,Android 是基于 Linux 内核的,App大部分要用 Java 开发,小部分会用到jni,其中涉及到 Java、C/C++,意味着你需要学习多门“汇编”语言。
2)学习 Smali 语法 Android App 大部分是基于 Java 开发的,实际上并不是用的Java的原生虚拟机,Android的解释器是Google自己开发的,叫做Dalvik(不谈ART), 名字由来很玄学,这里不过多探讨。Dalvik虚拟机跑的指令集是Dalvik指令集,一般反编译后用smali语法来表示。所以学习 Android 逆向的第一件事情就是学习 Smali 语法。
3)需要使用多种工具 如何反编译一个APK? 如果你去网上搜索的话,一般博客都会写各种命令行工具,一言以蔽之就是要用[……]

READ MORE

「ANALYSIS-AND-TROUBLESHOOTING」- 概念术语

概念术语
调试(Debug)
Debug,可以定义为 Troubleshoot 的一个子集。调试要求开发人员查找并修复与计算机软件相关的问题。
排障(Troubleshoot)
故障排除,被定义为允许程序员识别给定系统中发生的问题的过程。它明显存在于比 Debug 更高的级别,因为它适用于所述系统中的更多元素。
追溯(Trace)
1)其是指从问题点回溯到起始位置(Begin <- Current); 2)用于追踪问题,找到具体原因(起始点);
追踪(Track)
1)其是指从起始点追踪到当前位置(Begin -> Current);
程序分析(Program Aanalysis)
目的:自动分析计算机程序关于正确性、健壮性、安全性、活性等属性的行为的过程;
程序分析侧重于两个主要领域: 1)程序优化:侧重于提高程序的性能,同时减少资源使用; 2)程序正确:侧重于确保程序按预期进行;
程序分析的两种方式: 1)static program analysis: without executing the program 2)dynamic program analysis: during runtime
应用性能监控(Application Performance Monitoring)
The role of APM and distributed tracing in observability | Sumo Logic Track & Trace | Odette Why APM distributed tracing is not enough for developers – Helios
功能作用
性能追踪,以系统组件为单位,其重点落在系统组件问题的排查;
已知问题
在某些情况下,现有的 APM 解决方案已经足够好了——比如在解决性能瓶颈或定位错误的 API 调用时;
但在许多情况下,所收集数据的粒度以及可视化功能根本无法满足开发人员的调查需求。因此,在开发微服务时,开发人员仍然一无所知。他们仍然需要手动查看日志或继续尝试在本地环境中重现问题,试图找到并解决这些问题;
针对分布式追踪,其跟踪整个应用程序、RPC 调用、队列等请求的路径,能够提供单次操作相关的详细描述。
分布式追踪系统(Distributed Tracing System)
功能作用
跟踪对于查明性能问题的根源至关重要,其以事务为单位,其重点落在特定事务问题的排查;[……]

READ MORE

「ANALYSIS-AND-TROUBLESHOOTING」- 其他分析工具

YARA (for Malware Researchers)
YARA – The pattern matching swiss knife for malware researchers
YARA is a tool aimed at (but not limited to) helping malware researchers to identify and classify malware samples. With YARA you can create descriptions of malware families (or whatever you want to describe) based on textual or binary patterns. Each description, a.k.a rule, consists of a set of strings and a boolean expression which determine its logic.
edb and edb-debugger
eteran/edb-debugger: edb is a cross-platform AArch32/x86/x86-64 debugger.
edb is a cross platform AArch32/x86/x86-64 debugger. It was inspired by Ollydbg, but aims to function on AArch32, x86, and x86-64 as well as multiple OS’s. Linux is the only officially supported platform at the moment, but FreeBSD, OpenBSD, OSX and Windows ports are underway with varying degrees of functionality.
distorm (Powerful Disassembler Library For x86/AMD64)
gdabah/distorm: Powerful Disassembler Library For x86/AMD64
FLASM
no|wrap.de – Flasm
FLASM is a tool that is capable of decompressing and disassembling SWF files. It can be downloaded from http://nowrap.de/flasm.html[……]

READ MORE

「PROGRAMMING」- 静态代码分析

PMD
Github Repo: https://github.com/pmd/pmd Homepage: https://pmd.github.io/
Orizon
OWASP Orizon Project: https://www.owasp.org/index.php/Category:OWASP_Orizon_Project SourceForge / Orizon: http://orizon.sourceforge.net/download.shtml Github Repo: https://github.com/thesp0nge/owasp-orizon
LapsePlus
OWASP LAPSE Project: https://www.owasp.org/index.php/OWASP_LAPSE_Project OWASP / Download: https://www.owasp.org/index.php/Projects/OWASP_LAPSE_Project/Releases/LapsePlus_2.8.1 http://www.securityinternal.com/2016/03/static-source-code-analysis-with-owasp.html http://blog.7-a.org/2013/01/installing-and-using-lapse-plus-in.html Code Google: https://code.google.com/archive/p/lapse-plus/downloads
Imagix 4D
https://www.imagix.com/download/info/README_UNIX Homepage: https://www.imagix.com/index.html
FindBugs
Homepage: http://findbugs.sourceforge.net/
参考文献
OWASP / Static Code Analysis Wikipedia / List of tools for static code analysis NIST / Source Code Security Analyzers[……]

READ MORE

「GDB」

参考文献
Homepage: https://www.gnu.org/software/gdb/[……]

READ MORE

「Valgrind」

[……]

READ MORE

「radare2」

radare2,命令行的十六进制编辑器。
The project aims to create a complete, portable, multi-architecture, unix-like toolchain for reverse engineering. . It is composed by an hexadecimal editor (radare) with a wrapped IO layer supporting multiple backends for local/remote files, debugger (OS X, BSD, Linux, W32), stream analyzer, assembler/disassembler (rasm) for x86, ARM, PPC, m68k, Java, MSIL, SPARC, code analysis modules and scripting facilities. A bindiffer named radiff, base converter (rax), shellcode development helper (rasc), a binary information extractor supporting PE, mach0, ELF, class, etc. named rabin, and a block-based hash utility called rahash.
参考文献
Homepage: https://www.radare.org[……]

READ MORE

「strace」

STRACE(1) General Commands Manual STRACE(1)
更新日期:2020年09月11日 @IGNORECHANGE

strace – trace system calls and signals

SYNOPSIS

strace [-CdffhikqrtttTvVxxy] [-In] [-bexecve] [-eexpr]… [-acolumn] [-ofile] [-sstrsize] [-Ppath]…
-ppid… / [-D] [-Evar[=val]]… [-uusername] command [args]

strace -c[df] [-In] [-bexecve] [-eexpr]… [-Ooverhead] [-Ssortby] -ppid… / [-D] [-Evar[=val]]…
[-uusername] command [args]

DESCRIPTION

In the simplest case strace runs the specified command until it exits. It intercepts and records the sys‐
tem calls which are called by a process and the signals which are received by a process. The name of each
system call, its arguments and its return value are printed on standard error or to the file specified with
the -o option.

strace is a useful diagnostic, instructional, and debugging tool. System administrators, diagnosticians
and trouble-shooters will find it invaluable for solving problems with programs for which the source is not
readily available since they do not need to be recompiled in order to trace them. Students, hackers and
the overly-curi[……]

READ MORE

「Erlang」- 安装

CentOS 7.4 with Erlang 20.3
ERLANG/DOWNLOAD OTP 22.3 Erlang SOLUTIONS/Download Erlang Packages
系统默认 03.18.el7 版本,无法运行 RabbitMQ 3.7.10 版本,需要升级:

# rpm -ivh https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_20.3.8.26-1~centos~7_amd64.rpm[……]

READ MORE

「HTML」- 学习笔记

网站的ICON使用base64图片:(Adding a favicon to a static HTML page)

<link href=”data:image/x-icon;base64,YourBase64StringHere” rel=”icon” type=”image/x-icon” />[……]

READ MORE

「CMDB」- 配置管理数据库

CMDB – Configuration Management Database
配置管理数据库。用于存储与管理企业 IT 架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转,发挥配置信息的价值,同时依赖于相关流程并保证数据的准确性;
在实际的项目中,CMDB 常常被认为是构建其它 ITIL 流程的基础而优先考虑,ITIL 项目的成败与是否成功建立 CMDB 有非常大的关系;
70%~80% 的 IT 相关问题与环境的变更有着直接的关系。实施变更管理的难点和重点并不是工具,而是流程。即通过一个自动化的、可重复的流程管理变更,使得当变更发生的时候,有一个标准化的流程去执行,能够预测到这个变更对整个系统管理产生的影响,并对这些影响进行评估和控制。而变更管理流程自动化的实现关键就是 CMDB;
阿里 Armory;iTop;
ITIL – Information Technology Infrastructure Library
https://baike.baidu.com/item/ITIL/10498690?fr=aladdin https://www.cnblogs.com/sanyuanempire/p/6169508.html https://baike.baidu.com/item/CMDB/5403317
ITIL 最大的价值是提供了一套最佳实践的标准和规范;
ITIL[……]

READ MORE

「Fluentd」- 日志收集

章节列表
「Fluentd」- 安装 「Fluentd」- 概念及架构 「Fluentd」- 配置文件(学习笔记) 「Fluentd」- 安装(CentOS 7.x)[……]

READ MORE

「Fluentd」- 概念及架构

整体工作流程
Input => Source => Filter => Match => Output
Input 是输入,通常是日志,即发往 Fluentd 的内容 Source 是来源,定义日志来源。比如从配置文件读取、监听HTTP端口等待调用者提交日志 Filter 是过滤器,用于过滤日志。比如添加字段、修改信息等等; Match 是匹配,用于路由日志。将不同的日志发送到不同的输出; Output 是输出,实际上是在 Match 中定义。比如 Elasticsearch、Stdout、S3 等等服务
注意事项,上图的 Input、Output 不是 Fluentd 的组成部分: 1)Input 代表请求 Fluentd 的客户端(或者内容); 2)Output 代表后端存储,即 Fluentd 将日志发往的地方;
What is Events ?
在 Source => Filter => Match 间,传递的是某种被称之为 Event 的东西。
Event 由 tag、time、time 三部分组成: tag:日志标签,实际上只是日志属性,可能由客户端提交; time:时间,由 Source 添加,毕竟 Event 也是由 Source 发出; record:日志内容,由客户端提交;
参考文献
Life of a Fluentd event[……]

READ MORE

「Fluentd」- 安装

Fluentd vs td-agent
td-agent: the stable Fluentd distribution package maintained by Treasure Data, Inc.
What are the differences between td-agent and Fluentd?
我们选择使用 td-agent 版本,理由如下: 1)受到 Fluentd 官方推荐; 2)经好良好 QA 测试,而非社区驱动; 3)提供服务管理脚本; 4)使用 jemalloc 避免内存碎片问题;
如果系统不支持,则可以考虑使用 Gem 安装,参考 Install by Ruby Gem 文档。[……]

READ MORE

「Fluentd」- 配置文件(学习笔记)

学习方法
学习目标:1)理解 Fluentd 概念;2)熟悉工作原理;3)理解配置文件; 方法途径:阅读 Fluentd 1.0 文档的 Overview Installation Configuration Deployment Container Deployment 部分
配置文件路径
对于 td-agent 部署,配置文件路径:/etc/td-agent/td-agent.conf
配置文件指令
source,输入源
filter,过滤并处理输入
match,输出,目标位置,日志将要写入的位置
system,用于控制服务的变量
label,用于合并 filter 与 match 指令,然后在 source 中使用该 label 名称。
为什么使用 label 指令 1)使用 filter 与 match 指令,需要关注顺序。通过 label 可以避免出现配置错误。 2)将配置“块化”,便于维护与管理;
@include,用于引入配置文件
相关文档
Fluentd 1.0/Routing Examples 路由示例,决定数据最后流向哪里
Fluentd 1.0/Config: Common Parameters 公共的配置参数
Fluentd 1.0/Config: Parse Section 处理原始数据,操纵、生成特定格式的 Event 数据。
Fluentd 1.0/Config: Buffer Section 配置缓冲,将 Event 以块为单位进行处理。
Fluentd 1.0/Config: Format Section 修改 Record 格式,使用 JSON、CVS 等格式输出。
Fluentd 1.0/Config: Config: Inject Section 用于向 Recode 中注入数据。
Fluentd 1.0/Config: Extract Section 用于从 Record 中提取数据。
Fluentd 1.0/Config: Transport Section 某些插件,比如 server/http_server 支持 transport 部分,可以指定 udp tcp tls 等等。
Fluentd 1.0/Storage Plugins 用于保存插件状态
Fluentd 1.0/Config: Service Discovery Section 通过配置文件、SRV 等等方式,实时获取访问目标,而无需重启。
参考文献
Fluentd 1.0/Config File Syntax[……]

READ MORE

「Pinpoint」- 分布式系统分析工具

Pinpoint,是一个「应用性能管理」工具。在部署Pinpoint后,你可以了解到你的应用程序访问了哪些服务、访问量是多少等等。
本部分将介绍Pinpoint的安装及使用。
功能简介
受「Dapper」启发,Pinpoint用于「分析大型分布式应用的各组件间的访问关系」,主要用于 Java/PHP 编写的应用程序。
它具有如下特性: 1)帮助你理解应用程序拓扑; 2)实时监控应用程序; 3)获得每个事务的代码级可见性; 4)无需修改应用程序代码(因为它是插入到运行环境中的); 5)对系统性能损耗较少(大约3%左右);
详细参考「Pinpoint」官方主页。
架构图
-「Overview/Architecture」
Agent -> Collector -> HBase Storage -> Web UI
「Agent」:嵌入到运行环境中,比如以PHP扩展或Java Agent形式存在,用于采集数据。并将采集的数据发送给「Collector」组件。
「Collector」:负责收集与处理Agent发送来的数据,并将这些数据写入「HBase」存储中。
「HBase」:负责存储数据。
「Web UI」:从「HBase」中读取数据并进行展示。
相关连接
Offical: http://naver.github.io/pinpoint GitHub: https://github.com/naver/pinpoint-c-agent
Dapper: https://ai.google/research/pubs/pub36356[……]

READ MORE

「Pinpoint」- 架构拓扑与技术细节

技术细节
TODO GitHub/pinpoint技术概述 TODO Technical Details
快速开始
Quick-start guide(Lastest Snapshot) for simple test run of Pinpoint Installation guide(Lastest Snapshot) for further instructions
相关链接
Overview/Architecture Pinpoint/Videos
http://naver.github.io/pinpoint/overview.html https://github.com/naver/pinpoint http://naver.github.io/pinpoint/installation.html#configuration https://naver.github.io/pinpoint/resources https://www.google.com/search?newwindow=1&client=firefox-b-d&biw=1271&bih=561&ei=QmetXJmTIsHAjwTg55mABw&q=pinpoint+Collector+Span+Ip&oq=pinpoint+Collector+Span+Ip&gs_l=psy-ab.3..35i39.158300.159520..159858…0.0..0.283.500.2-2……0….1..gws-wiz.yYHoMSmmwEk https://www.jianshu.com/p/266f0c15f691 https://github.com/naver/pinpoint-c-agent/issues/60 https://www.google.com/search?client=firefox-b-d&q=pinpoint+docker https://github.com/naver/pinpoint-docker https://github.com/naver/pinpoint-docker/tree/1.8.3/pinpoint-agent[……]

READ MORE

「Pinpoint」- Agent,PHP,安装,CentOS 6.5 (Final)

解决方案
安装比较复杂,尤其是在旧系统上,比如 CentOS 6.5,主要问题是它所依赖的Thrift库的安装。
#1 安装Boost库

#!/bin/sh

# Install Boost 1.6.3+

################################################################################
# download
################################################################################
wget https://jaist.dl.sourceforge.net/project/boost/boost/1.63.0/boost_1_63_0.tar.gz
tar -zxvf boost_1_63_0.tar.gz
cd boost_1_63_0

################################################################################
# install
################################################################################
./bootstrap.sh
./b2 install –prefix=/usr/local

#2 安装Thrift库

#!/bin/sh

# Install Thrift 0.11.0+

################################################################################
# download
################################################################################
wget http://apache.fayea.com/thrift/0.11.0/thrift-0.11.0.tar.gz
tar zxvf thrift-0.11.0.tar.gz
cd thrift-0.11.0

################################################################################
# configure
################################################################################
./configure \
–with-lua=no \[……]

READ MORE

「Zabbix」- 企业级的监控解决方案

企业级开源分布式监控解决方案。最终的企业级软件,专为实时监控从数万台服务器、虚拟机、网络设备收集的数百万个指标而设计。
用于解决那些问题?
指标收集、问题发现、数据可视化、通知与自治、权限与加密、轻松部署、自动发现、分布式监控、编程接口。
能解决如下问题:

数据收集:监控网络的众多参数以及服务器的健康和完整性。
触发器以及告警:Zabbix使用灵活的通知机制,允许用户配置电子邮件的警报。这样可以快速反应服务器问题。
可视化数据及拓扑图:基于存储的数据的方式提供出色的报告和数据可视化功能。这使Zabbix成为容量规划的理想选择。
自动发现:支持设备和服务的自动发现。
Web监控:模拟HTTP请求,监控业务中的某些站点及响应。
历史数据存储:对历史的监控数据进行存储。
具有模板且易于配置
Web前端访问
API
权限管理
大型环境的支持:核心功能由C语言编写,性能好且内存开销小。

Zabbix支持轮询和捕获。所有Zabbix的报告、统计信息以及配置参数都可通过基于Web前端进行访问。基于Web前端的方式确保在任何地方对网络状态和服务器的运行状进行评估。正确的配置Zabbix可以在监控设备方面发挥重要作用。对于具有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此。
工作原理
这里先简单的描述一下Zabbix的工作原理。为了简单描述问题,对于原理的解释会有一些错误的地方,但这便于解释和理解原理,至于错误的地方,之后会注明。
Zabbix的运行需要三台主机,一台运行Zabbix Server,一台运行Zabbix Proxy,一台运行Zabbix Agent。(实际上一台机器就足够了,具体依赖于环境)。
Zabbix Agent:所在的主机是被监控的主机,Zabbix Agent用于收集被监控主机上数据。
Zabbix Proxy:所在的主机是代理主机,用来代表Zabbix Server工作的。可以从多个受监控设备收集监控数据,并将信息发送给Zabbix Server。所有收集的数据都在本地进行缓存,然后再传输到Zabbix Proxy所属的Zabbix Server。因为Zabbix Proxy需要在本地缓存数据,运行Zabbix Proxy需要数据库。Zabbix Proxy是可选的,如果没有的话,Zabbix Agent可以把数据直接发送给Zabbix Server。
Zabbix Server:执行轮询和捕获数据、计算触发器、向用户发送通知。是用于接收Zabbix Proxy和Zabbix Agent报告数据的核心组件。所有的数据最终都由Zabbix Server保存在数据库中。
相关[……]

READ MORE

「Zabbix」- 自动发现

Network discovery
Low-level discovery
参考文献
Zabbix Features / Auto Discovery

章节列表
「Zabbix」- zabbix agent 自动注册[……]

READ MORE

「Zabbix」- zabbix agent 自动注册

Active agent autoregistration,主动检查自动注册,将主动检查的 zabbix agent 主机自动添加到 zabbix server 中,无需手动配置。
关于自动注册
当 zabbix agent 为主动模式时,可以自动注册到 zabbix server 中,无需手动配置主机。
当 zabbix agent 为被动模式时,主机也可以自动发现,但是依旧需要借助主动检查(因为主动模式与被动模式可以并存)。
何时发生自动注册
自动注册发生在 未知 agent 请求检查条目时(在获取监控项时):在主动检查中,zabbix agent 会向 zabbix server 请求获取监控项,此时会发生自动注册。
也就是说每次 zabbix agent 请求刷新监控项时,都会尝试触发自动注册。参数 RefreshActiveChecks 可以控制监控项的刷新频率,即可以间接控制自动注册频率。
在启动时 zabbix agent 会请求监控项,此时会立即触发自动注册。
自动注册流程
在主动检查时,zabxxi agent 会同时向 zabbix server 提供 ListenIP/ListenPort 参数(多个 IP 则只发送第一个)
然后 zabbix server 使用提供的 ListenIP/ListenPort 参数来注册 zabbix agent 主机。如果没有提供 ListenIP 则使用传入连接的地址;如果没有提供 ListenPort 则使用 10050(默认端口)。
自动注册需要哪些配置?
调整 zabbix agent 配置
修改 zabbix_agentd.conf 配置:

# 配置主动检查
ServerActive=10.0.0.1

#(可选)注意主机名重复问题
HostnameItem=system.hostname

然后,重启 zabbix agent 服务,以使配置生效。
用于 zabbix agent 自动注册的 Action
当 zabbix server 收到自动注册请求时,zabbix server 会调用 Action,事件源为 Auto registration 的 Action 必须被配置:

=> Zabbix frontend => Configuration => Actions => Auto registration => Create
=> 填写 Name
=> 如果有必要,则填写过滤条件
=> Operations 添加相关操作。自动发现主机默认添加到 Discovered[……]

READ MORE

「Zabbix」- 告警通知配置

发送消息方式
E-mail、SMS、Script、Webhook
配置步骤
第一步、定义告警方式
Administration => Media types
第二步、为用户设置告警方式
User => Media => Media
第三步、配置动作(Action)
Configuration => Actions => Create action (Trigger) => Operation => Operation type: Send messsage
参考文献
Notifications & Automatic actions zabbix配置邮件告警 Zabbix Documentation 4.4/9 Notifications upon events[……]

READ MORE

「Zabbix」- 常见错误汇总

#1 cannot set resource limit: [13] Permission denied
cannot set resource limit: [13] Permission denied – SELinux & Zabbix Agent
关闭SELinux即可。[……]

READ MORE

「Zabbix」- Web API

当有大批量数据需要导入 Zabbix 时,或者需要管理 Zabbix 服务时,可以通过 Zabbix 的 WebAPI 进行进行批量操作,而不是手动添加。
通过接口操作 Zabbix 的基本流程
Zabbix Documentation 4.4 / 19. API
第一步、测试接口是否可用(可选)
该步骤是可选的,目的是测试接口是否可用:

# curl -s –header ‘Content-Type: application/json-rpc’ http://zabbix.example.com/api_jsonrpc.php | jq
{
“jsonrpc”: “2.0”,
“error”: {
“code”: -32600,
“message”: “Invalid Request.”,
“data”: “The received JSON is not a valid JSON-RPC Request.”
},
“id”: null
}

第二步、用户登录,以获取凭证信息
如下为请求信息:

POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc

{
“jsonrpc”: “2.0”,
“method”: “user.login”,
“params”: {
“user”: “Admin”,
“password”: “zabbix”
},
“id”: 1,
“auth”: null
}

响应信息如下:

{
“jsonrpc”: “2.0”,
“result”: “0424bd59b807674191e7d77572075f33”,
“id”: 1
}

第三步、使用凭证信息请求数据接口
这里我们使用主机接口作为示例,获取所有主机信息
如下为请求信息:

{
“jsonrpc”: “2.0”,
“method”: “host.get”,
“params”: {
“output”: [
“hostid”,
“host”
],
“selectInterfaces”: [
“interfaceid”,
“ip”
]
},
“id”: 2,
“auth”: “04[……]

READ MORE

「Zabbix」- Number of CPUs [no data](未解决)

问题描述
在 Zabbix 4.4.3 中,监控项 Number of CPUs [no data] 即没有数据,使用 zabbix_get -k system.cpu.num 可以获取数据。
CentOS Linux release 7.4.1708 (Core)
07/13/2020
今天首次发现这个问题。当我们需要观察 System load 指标时,发现 Number of CPUs 没有数据。
问题原因:我们没有找到原因。我们将 DebugLevel 调整到最高(5),也没有什么错误信息,像是一切正常(也可能是我们忽略某些东西)。
解决办法:我们尝试禁用 Number of CPUs 监控项,居然显示出来了,然后我们又继续启用 Number of CPUs 监控项。
07/15/2020
今天再次遇到这个问题,我们没有找到原因。我们也观察日志,各方面都正常。
我们尝试创建自己 system.cpu.num 指标,发现完全可以正常工作。
Zabbix Server / Debug Level = 5 | Zabbix Agent / Debug Level = 5
Zabbix Agent:

grep -F ‘system.cpu.num[online]’ zabbix_agentd.log | grep ‘JSON befor’ | less -S

Zabbix Server:

grep -F ‘system.cpu.num[online]’ zabbix_server.log | grep ‘trapper got’ | grep cmdb | less -S

DFWS ORIG
2020-07-15 18:41:04 2020-07-15 18:41:04 2020-07-15 18:42:04 2020-07-15 18:43:04 2020-07-15 18:44:04 2020-07-15 18:45:04 2020-07-15 18:46:04

6141:20200715:184109.866 query [txnlev:1] [insert into history_uint (itemid,clock,ns,value) values (31809,1594809664,152717168,1),(31811,1594809664,153627571,382168),(31812,1594809664,154
024418,32768),(31821,1594809664,168139393,1),(31822,1594809664,168631715,1593600656)[……]

READ MORE

「Zabbix」- please increase CacheSize configuration parameter

问题描述
启动 Zabbix Server 产生如下错误:

17731:20200427:154606.042 Starting Zabbix Server. Zabbix 4.4.3 (revision 6cad6f888e).
17731:20200427:154606.043 ****** Enabled features ******
17731:20200427:154606.043 SNMP monitoring: YES
17731:20200427:154606.043 IPMI monitoring: YES
17731:20200427:154606.043 Web monitoring: YES
17731:20200427:154606.043 VMware monitoring: YES
17731:20200427:154606.043 SMTP authentication: YES
17731:20200427:154606.043 ODBC: YES
17731:20200427:154606.043 SSH2 support: YES
17731:20200427:154606.043 IPv6 support: YES
17731:20200427:154606.043 TLS support: YES
17731:20200427:154606.043 ******************************
17731:20200427:154606.043 using configuration file: /etc/zabbix/zabbix_server.conf
17731:20200427:154606.051 current database version (mandatory/optional): 04040000/04040000
17731:20200427:154606.051 required mandatory version: 04040000
17731:20200427:154606.648 __mem_malloc: skipped 0 asked 24 skip_min 18446744073709551615 skip_max 0
17731:20200427:154606.648 [file:dbconfig.c,line:94] __zbx_mem_realloc(): out of memory (reque[……]

READ MORE

「PHP」- require once Permission denied

内容简介
处理Warning: require_once(/etc/zabbix/web/maintenance.inc.php): failed to open stream: Permission denied in /usr/share/zabbix/include/classes/core/ZBase.php on line 279错误。
问题简述
部署Zabbix服务后,访问前端页面时,产生如下错误:

Warning: require_once(/etc/zabbix/web/maintenance.inc.php): failed to open stream: Permission denied in /usr/share/zabbix/include/classes/core/ZBase.php on line 279

Fatal error: require_once(): Failed opening required ‘/etc/zabbix/web/maintenance.inc.php’ (include_path=’.:/usr/local/php/share/pear’) in /usr/share/zabbix/include/classes/core/ZBase.php on line 2

问题原因
道理上讲,修改文件权限就可以了,以www用户运行了PHP-PFM程序,那给予它文件访问权限就可以了。
但是,文件权限修改成777依旧没有解决问题。
傻了,只修改文件的权限是不够的,还需要修改目录的权限,要保证用户能够进入该目录中。
解决办法
修改目录的权限,以保证www用户可以访问该目录。[……]

READ MORE

「syslog」- 杂记

解决方案
Syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。
该协议从最初的加州大学伯克利分校软件中心整理,后来由于其操作管理的实用性迅速成为很多网络设备操作管理协议的一部分。现在已经有相应的RFC3164,RFC3195进行通用的定义。前者定义的是使用UDP形式传输,后者定义的是使用TCP形式传输。
原理简述

角色分类 发送者 sender:产生syslog message的网元; 中继 relay:能接收到后进行转发syslog message的网元或其他设备; 收集者 collector:接收了不再转发syslog message的syslog server;
特性说明
Syslog协议提供了一种通过IP网络传送事件消息的机制,它允许主机将事件消息通过IP网络传输到接收消息的主机上,这些主机通常称为syslog server。
几乎所有的网络设备都可以通过syslog protocol将日志信息以UDP方式传送到远端服务器,远端接收日志服务器必须通过syslogd来监听 UDP Port 514,并且根据syslog.conf中的配置来处理本机和接收访问系统的日志信息,把指定的事件写入特定档案中,供后台数据库管理和响应之用。
应用场景
WIP
概念术语
syslog
一个函数? syslog(2) 与 syslog(3),一个是系统调用,一个是函数库。syslog(3) 产生的日志由syslogd(8)进行分发。
一个标准 在计算中,syslog 是消息记录的标准。 它允许分离生成消息的软件、存储消息的系统、报告和分析消息的软件。每条消息都标有设施代码,表示生成消息的软件类型,并分配了严重性级别。
计算机系统设计人员可以使用syslog进行系统管理和安全审计以及一般信息,分析和调试消息。 许多平台上的各种设备(如打印机,路由器和消息接收器)都使用syslog标准。 这允许从中央存储库中的不同类型的系统合并日志数据。许多操作系统都存在syslog的实现。
rsyslog
一个开源软件,在UNIX和类Unix计算机系统中使用,用于在 IP Network 中转发日志消息。它实现基本的 syslog 协议,通过基于内容的过滤,丰富的过滤功能,灵活的配置选项扩展了它,并添加了诸如使用TCP进行传输等功能。

多线程
TCP,SSL,TLS,RELP
MySQL,PostgreSQL,Oracle等
过滤系统日志消息的任何部分
完全可配置的输[……]

READ MORE

「RSYSLOG」- Facility & Priority

Facility
auth
安全和认证信息。
authpriv
安全和认证信息(私有)。
cron
定时任务(cron和at)
daemon
系统的守护进程,但是未指定Facility值。
kern
内核消息(无法由用户进程产生)
lpr
行打印机子系统
mail
邮件子系统
news
USENET新闻子系统。
syslog
由syslogd(8)生成的内部消息。
user
一般用户层级的消息
uucp
UUCP子系统
local0 – local7
保留,用作本地
security (same as auth)
不应该再使用。
mark
仅内部使用,不应该用于应用程序。
Priority
debug
调试级别的信息
info
通知性消息
notice
正常,但显著
warning
警告
err
错误
crit
关键,严重,极为重要
alert
必须采取行动
emerg
系统出于不可用状态
warn (same as warning)
不建议使用。
error (same as err)
不建议使用。
panic (same as emerg)
不建议使用。
参考文献
man 5 rsyslog.conf man 3 syslog[……]

READ MORE

「Dell」- PowerEdge R410

问题描述
该笔记将记录:与 Dell PowerEdge R410 服务器,及在其上安装 ESXi 系统有关的内容;
第一步、获取硬件信息
How to find hardware and other computer specifications Check Hardware; no OS
该部分将记录:如何获取 Dell PowerEdge R410 服务器的硬件信息;
为什么要获取硬件信息?
由于我们要在服务器上部署 ESXi 虚拟化,因此我们需要知道服务器型号及硬件信息;
查看硬件信息的原因之一是:服务器的型号决定了要使用的 ESXi 版本。如果 CPU 系列不同,那么兼容的 ESXi 版本也可能不同;
获取硬件信息的方法?
以下是查看硬件配置的几种方法: 1)你自己买的机器,你自己知道是什么配置; 2)使用 Ubuntu 等带有体验功能(Live)的镜像,启动后查看硬件信息; 3)在物理机器上,一般贴有服务标签(Service Tag),但是没有查到具体的 CPU 信息。 4)拆机就优点夸张了,这点小事情还不至于拆机;
当然,也可以使用一些其他的方法。但是如果没有操作系统的帮助,一般很难获取硬件信息;
附件说明
至少对于 DELL 服务器而言,如果型号相同,即使 CPU 系列不同,也能找到同时兼容“同种型号但不同 CPU 系列的服务器”的 ESXi 版本。这是通过观察 Server Device and Model Information 列表得出的结论;
因此也不需要极度关注 CPU 系列,一般通过服务器型号查找 ESXi 的版本即可;
有些服务器厂商的官网也提供了定制的 ESXi 安装镜像。比如,戴尔官方提供了定制版的 VMware ESXi 5.5 Update 3 镜像;
第二步、进行 RAID 设置
戴尔PowerEdge R410服务器怎么做raid 5?
该部分将记录在 Dell PowerEdge R410 服务器上设置 RAID 5 阵列,其是对 戴尔 PowerEdge R410 服务器怎么做 raid 5? 回答的整理;
主机:Dell PowerEdge R410 磁盘:500G x 4
第一步、磁盘检查
确认磁盘是正常的无损坏的;
确认磁盘中没有包含重要数据;
第二步、检查阵列卡
检查阵列卡的型号,确定这列卡可以被识别;
在 PowerEdge R410 中,多数配置 H700 或 PERC 6 型号的阵列卡,操作界面类似的(其他 H710,H710P,H310 等阵列卡的界面也基本相同);
第三步、(关键步骤)进入阵列卡设置
在加电开机自检过程中,会[……]

READ MORE