日志审计系统Agent项目创建——初始化数据库和日志文件(Linux版本)

这篇具有很好参考价值的文章主要介绍了日志审计系统Agent项目创建——初始化数据库和日志文件(Linux版本)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、定义和初始化函数:

bool Init(std::string ip);

1.1、获取ip地址,这里的ip地址是通过makefile文件直接设定的。

bool XAgent::Init(string ip)
{
    if (ip.empty())
    {
        cerr << "Agent::init failed! ip is empty" << endl;
        return false;
    }
}

1.2、调用动态链接库,这里的LXMysql是前面文章中讲过的

my = new LXMysql();

1.3、连接数据库,这里的Connect函数见 之前讲的这篇文章https://blog.csdn.net/wjl990316fddwjl/article/details/135379309

#ifdef _WIN32
    if (!my->Connect(ip.c_str(), "root", "990107Wjl@", "database_test"))
    {
        cerr << "Agent::init failed! Connect DB failed!" << endl;        
        return false;
    }
#else   
    //LINUX
    if (!my->Connect(ip.c_str(), "fdd", "990107Wjl@", "test_fdd"))
    {
        cerr << "Agent::init failed! Connect DB failed!" << endl;
        return false;
    }
#endif //!_WIN32
bool LXMysql::Connect(const char* host, const char* user, const char* password, const char* database, unsigned short port, unsigned short flag)
	{

		if (!Init())//防止内存泄露
		{
			cerr << "Connect faivertgled,mysql is not init!" << endl;
			return false;
		}
		if (!mysql_real_connect(mysql, host, user, password, database, port, 0, flag))
		{
			cerr << "mysql_real_connect failed!" << mysql_error(mysql) << endl;
			return false;
		}
		cout << "mysql connect success!" << endl;
		return true;
	}

1.4、日志文件地址

//日志的路径
#define LOGPATH "/var/log/auth.log"

1.5、 测试日志是否存在

//读取日志文件
    fp = fopen(LOGPATH, "rb");
    if (!fp)
    {
        cerr << "open" << LOGPATH << "failed" << endl;
        return false;
    }
    cout << "open" << LOGPATH << "success" << endl;

1.5、测试连接初始化

int main(int argc,char *argv[])
{
    //agrc当前执行路径
    if (argc < 2)
    {
        cout << "please set ip" << endl;
        cout << "./agent 192.168.122.128" << endl;
        return false;
    }
    //1、初始化agent 连接数据库
    if (!XAgent::Get()->Init(argv[1]))
    {
        //!XAgent::Get()->Init()通过::Get()访问静态函数,静态函数来调用Init(),
        cout << "agent Init failed!" << endl;
        return -1;
    }
    cout << "Agent Start!" << endl;
    std::cout << "Hello World!\n";
}

完结,下一篇主要是读取日志文件,并读取最新日志文件文章来源地址https://www.toymoban.com/news/detail-794696.html

到了这里,关于日志审计系统Agent项目创建——初始化数据库和日志文件(Linux版本)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • android系列-init 初始化日志

    1.FirstStageMain 2.InitKernelLogging  3.KernelLogger  4.OpenKmsg 

    2024年02月02日
    浏览(59)
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)一:项目规划及初始化

      使用vue3+Layui实现通用管理系统前端,使用vue3+layui搭建系统UI界面,使用nodejs搭建模拟web服务器,使用echarts实现系统可视化模块,可以此项目为基础进行扩展开发,快速搭建管理系统,具体内容如下:    1. 常见功能实现: 实现用户登录(用户名密码登录、手机验证码

    2024年02月13日
    浏览(29)
  • VMWare 虚拟机创建 + 初始化

    目录 概述 1. VMware创建虚拟机 2. IP 配置 nmtui nmcli 3. Yum 源配置 光盘的Packages作为Yum源 配置开机自动挂载(光盘) 配置私有Yum仓库 跟新私有yum仓库  报错和修复 4. 文件共享系统配置 跟新配置文件/etc/hosts + /etc/yum.repo.d/ftp.repo  同步配置文件 测试yum私有仓库 5. Ansible 安装配置  s

    2024年02月05日
    浏览(27)
  • Python如何创建二维数组和初始化

            严格意义上说,Python中并没有数组的概念,Python中表达一组数据有多种形式,例如list,tuple,set等数据结构都可以表达一组数,并且这组数也没有C和C++中数组的的同质限制,这些数可以是任何一种数据类型。         以list为例(list又叫列表),要想实现一个所

    2024年02月20日
    浏览(35)
  • 【Spring Boot 源码学习】ConditionEvaluationReport 日志记录上下文初始化器

    《Spring Boot 源码学习系列》 上篇博文《共享 MetadataReaderFactory 上下文初始化器》, Huazie 带大家详细分析了 SharedMetadataReaderFactoryContextInitializer 。而在 spring-boot-autoconfigure 子模块中预置的上下文初始化器中,除了共享 MetadataReaderFactory 上下文初始化器,还有一个尚未分析。 那么

    2024年04月13日
    浏览(33)
  • 如何创建 Xilinx BRAM 或 ROM 初始化文件(.COE)并实现初始化数据在 FPGA 上的载入

    如何创建 Xilinx BRAM 或 ROM 初始化文件(.COE)并实现初始化数据在 FPGA 上的载入 在 FPGA 开发中,初始化数据是一个非常重要的内容,它决定了电路从上电开始的初始状态,对于保证正确性和可靠性有着至关重要的作用。其中,BRAM(Block RAM)和 ROM(Read-Only Memory)是两种常见的

    2024年02月09日
    浏览(27)
  • Spring初始化顺序- RabbitMq 无法自动创建队列

    项目中使用了RabbitMq, 并配置了自动创建topic, exchange,binding 等,但是通过测试发现,有一个队列始终无法自动创建,在对spring 源码以及rabbitmq 源码debug 后发现问题。 rabbitmq 配置了两套环境 , 以下为代码示例 Queue, Exchange, Binding 自动生成配置: 通过运行项目,发现队列,交换机

    2024年02月13日
    浏览(33)
  • 【源码解析】聊聊SpringBean是如何初始化和创建

    我们知道通过类进行修复不同的属性,比如单例、原型等,而具体的流程是怎么样的呢,这一篇我们开始从源码的视角分析以下。 在刷新容器中有一个方法,其实就是 Bean创建的过程。 而BeanFactory中 preInstantiateSingletons是初始化所有的bean对象的核心流程。 而这里通过去遍历所

    2024年02月05日
    浏览(30)
  • Java创建数组、赋值的四种方式,声明+创建+初始化 详解

    以int数据类型为例 注意: new 数据类型[]{},其中花括号可以省去,但要在[ ]中填写数组的个数; 创建多维数组时 new后面第一个方括号中的元素数量不能省略 1、一维数组的声明方式: type[] arrayName; 或 type arrayName[]; 推荐使用第一种格式,因为第一种格式具有更好的可读性,表

    2024年04月11日
    浏览(41)
  • Spring初始化项目

    访问地址:https://start.spring.io idea配置:https://start.spring.io 访问地址:https://start.aliyun.com/bootstrap.html idea配置:https://start.aliyun.com 官网 阿里巴巴 版本 最新 稍旧 国内软件 大部分没有(mybatis plus) 有的支持(如:mybatis plus)

    2024年02月09日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包