Menu
  • Home
  • Akce
  • Jednotka SDH
  • Mladí hasiči
    • Rok 2020
    • Rok 2019
    • Rok 2018
    • Rok 2017
    • Rok 2016
    • Rok 2015
    • Rok 2014
  • Fotogalerie
  • Kontakt
  • Home
  • Akce
  • Jednotka SDH
  • Mladí hasiči
    • Rok 2020
    • Rok 2019
    • Rok 2018
    • Rok 2017
    • Rok 2016
    • Rok 2015
    • Rok 2014
  • Fotogalerie
  • Kontakt

postgresql logging best practices


By | 26.12.2020 | Category Nezařazené

Beefing up your PostgreSQL hardware Other way is changing port in postgresql.conf. You can also contact us directly, or via email at support@strongdm.com. We have to resort to SESSION logging for this. Test to determine how long it takes for your DB instance to failover. If you’re short on time and can afford to buy vs build, strongDM provides a control plane to manage access to every server and database type, including PostgreSQL. The audit trigger sure seems to do the job of creating useful audit trails inside the audit.logged_actions table. He has been working with Unix/Linux for 30 years, he has been using PostgreSQL since version 7 and writing Java since 1.2. They usually require additional software for later offline parsing/processing in order to produce usable audit-friendly audit trails. Audit Logging with PostgreSQL. Local logging approach Native PostgreSQL logs are configurable, allowing you to set the logging level differently by role (users are roles) by setting the log_statement parameter to mod, ddl or all to capture SQL statements. In addition to logs, strongDM simplifies access management by binding authentication to your SSO. To enable query logging on PostgreSQL, follow these steps: Note: The following example parameter modifications logs the following: all queries that take longer than one second (regardless of the query type) and all schema changes (DDL statements regardless of completion time). Something that many PostgreSQL users take for granted is the powerful logging features that it provides. There are multiple proxies for PostgreSQL which can offload the logging from the database. Richard Yen. Each finding consists of the condition, criteria, cause, effect and recommendation. Read-only mode. With the standard logging system, this is what is logged: {{code-block}}2019-05-20 21:44:51.597 UTC [2083] TestUser@testDB LOG: statement: DO $$BEGINFORindexIN 1..10 LOOPEXECUTE 'CREATE TABLE test' || index || ' (id INT)';ENDLOOP;END $$;{{/code-block}}, {{code-block}}2019-05-20 21:44:51.597 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,1,FUNCTION,DO,,,"DO $$BEGINFOR index IN 1..10 LOOPEXECUTE 'CREATE TABLE test' || index || ' (id INT)';END LOOP;END $$;",2019-05-20 21:44:51.629 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,2,DDL,CREATETABLE,,,CREATETABLE test1 (id INT),2019-05-20 21:44:51.630 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,3,DDL,CREATETABLE,,,CREATETABLE test2 (id INT),2019-05-20 21:44:51.630 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,4,DDL,CREATETABLE,,,CREATETABLE test3 (id INT),2019-05-20 21:44:51.630 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,5,DDL,CREATETABLE,,,CREATETABLE test4 (id INT),2019-05-20 21:44:51.630 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,6,DDL,CREATETABLE,,,CREATETABLE test5 (id INT),2019-05-20 21:44:51.631 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,7,DDL,CREATETABLE,,,CREATETABLE test6 (id INT),2019-05-20 21:44:51.631 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,8,DDL,CREATETABLE,,,CREATETABLE test7 (id INT),2019-05-20 21:44:51.631 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,9,DDL,CREATETABLE,,,CREATETABLE test8 (id INT),2019-05-20 21:44:51.631 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,10,DDL,CREATETABLE,,,CREATETABLE test9 (id INT),2019-05-20 21:44:51.632 UTC [2083] TestUser@testDB LOG: AUDIT: SESSION,10,11,DDL,CREATETABLE,,,CREATETABLE test10 (id INT), {{/code-block}}. ... PostgreSQL database is used by countless businesses to manage highly sensitive information that must have layers and layers of security. 2. An IT audit may be of two generic types: An IT audit may cover certain critical system parts, such as the ones related to financial data in order to support a specific set of regulations (e.g. only a few tables to be audited. https://github.com/2ndQuadrant/audit-trigger, https://wiki.postgresql.org/wiki/Audit_trigger_91plus, Checking against a set of standards on a limited subset of data, Application (possibly on top of an application server), Audit trails should be kept for longer periods, Log files add overhead to the system’s resources, Log files’ purpose is to help the system admin, Audit trails’ purpose is to help the auditor, They are limited in their format by the system software, They don’t have direct knowledge about specific business context. If for some control objective there is no such evidence, first the auditor tries to see if there is some alternative way that the company handles the specific control objective, and in case such a way exists then this control objective is marked as compensating and the auditor considers that the objective is met. But in this case we end up getting all WRITE activity for all tables. It makes sense not to give this user any login rights. The main advantage of using a proxy is moving the IO for logging out of the DB system. One of the best strategies for optimizing your logging practices is to create logging standards, so all the logs you receive follow a consistent structure. Now that I’ve given a quick introduction to these two methods, here are my thoughts: The main metric impacting DB performance will be IO consumption and the most interesting things you want to capture are the log details: who, what, and when? Users, groups, and roles are the same thing in PostgreSQL, with the only difference being that users have permission to log in by default. The we specify this value for pgaudit.role in postgresql.conf: Pgaudit OBJECT logging will work by finding if user auditor is granted (directly or inherited) the right to execute the specified action performed on the relations/columns used in a statement. Native PostgreSQL logs are configurable, allowing you to set the logging level differently by role (users are roles) by setting the log_statement parameter to mod, ddl or all to capture SQL statements. The auditor wants to have full access to the changes on software, data and the security system. 41 9/14/2018 Conclusion Oracle DBaaS 42. With the right configuration, DBAs and sysadmins can quickly diagnose performance, security, and configuration issues, saving precious seconds of application uptime. audit-trigger 91plus (https://github.com/2ndQuadrant/audit-trigger) Scaling the Wall of Text: Best Practices for Logging in PostgreSQL Something that many PostgreSQL users take for granted is the powerful logging features that it provides. Here is the exhaustive list of runtime logging options. However there are some caveats: Pgaudit is the newest addition to PostgreSQL as far as auditing is concerned. The only management system you’ll ever need to take control of your open source database infrastructure. • Disallow host system login by the database superuser roles (postgres on PostgreSQL, enterprisedb on Advanced Server). One caveat with OBJECT logging is that TRUNCATEs are not logged. To audit queries across every database type, execute: {{code-block}}$ sdm audit queries --from 2019-05-04 --to 2019-05-05Time,Datasource ID,Datasource Name,User ID,User Name,Duration (ms),Record Count,Query,Hash2019-05-04 00:03:48.794273 +0000 UTC,6023,Marketing DB RW,3265,Justin McCarthy,3,1,"SELECT rel.relname, rel.relkind, rel.reltuples, coalesce(rel.relpages,0) + coalesce(toast.relpages,0) AS num_total_pages, SUM(ind.relpages) AS index_pages, pg_roles.rolname AS owner FROM pg_class rel left join pg_class toast on (toast.oid = rel.reltoastrelid) left join pg_index on (indrelid=rel.oid) left join pg_class ind on (ind.oid = indexrelid) join pg_namespace on (rel.relnamespace =pg_namespace.oid ) left join pg_roles on ( rel.relowner = pg_roles.oid ) WHERE rel.relkind IN ('r','v','m','f','p') AND nspname = 'public'GROUP BY rel.relname, rel.relkind, rel.reltuples, coalesce(rel.relpages,0) + coalesce(toast.relpages,0), pg_roles.rolname;\n",8b62e88535286055252d080712a781afc1f2d53c2019-05-04 00:03:48.495869 +0000 UTC,6023,Marketing DB RW,3265,Justin McCarthy,1,6,"SELECT oid, nspname, nspname = ANY (current_schemas(true)) AS is_on_search_path, oid = pg_my_temp_schema() AS is_my_temp_schema, pg_is_other_temp_schema(oid) AS is_other_temp_schema FROM pg_namespace",e2e88ed63a43677ee031d1e0a0ecb768ccdd92a12019-05-04 00:03:48.496869 +0000 UTC,6023,Marketing DB RW,3265,Justin McCarthy,0,6,"SELECT oid, nspname, nspname = ANY (current_schemas(true)) AS is_on_search_path, oid = pg_my_temp_schema() AS is_my_temp_schema, pg_is_other_temp_schema(oid) AS is_other_temp_schema FROM pg_namespace",e2e88ed63a43677ee031d1e0a0ecb768ccdd92a12019-05-04 00:03:48.296372 +0000 UTC,6023,Marketing DB RW,3265,Justin McCarthy,0,1,SELECT VERSION(),bfdacb2e17fbd4ec7a8d1dc6d6d9da37926a11982019-05-04 00:03:48.295372 +0000 UTC,6023,Marketing DB RW,3265,Justin McCarthy,1,253,SHOW ALL,1ac37f50840217029812c9d0b779baf64e85261f2019-05-04 00:03:58.715552 +0000 UTC,6023,Marketing DB RW,3265,Justin McCarthy,0,5,select * from customers,b7d5e8850da76f5df1edd4babac15df6e1d3c3be{{/code-block}}, {{code}} sdm audit queries --from 2019-05-21 --to 2019-05-22 --json -o queries {{/code}}. Best practices for working with PostgreSQL. Obviously, you’ll get more details with pgAudit on the DB server, at the cost of more IO and the need to centralize the Postgres log yourself if you have more than one node. This will create files in the pg_log directory. 3. There are several reasons why you might want an audit trail of users’ activity on a PostgreSQL database: Both application and human access are in-scope. Ensure all logs show the timestamp and the names of the host and logger. The scope of an audit is dependent on the audit objective. Best practices for basic scheduler features 2.1. The recent service improvements relate to storage and CPU optimizations resulting in faster IO latency and CPU efficiency. PostgreSQL için Azure veritabanı 'nı kullanarak buluta hazır bir uygulama oluşturmanıza yardımcı olacak bazı en iyi yöntemler aşağıda verilmiştir. You can then use the following best practices to configure your AKS clusters as needed. Those logs might be streamed to an external secure syslog server in order to minimize the chances of any interference or tampering. Generally with pgaudit we can have two modes of operation or use them combined: Session audit logging supports most DML, DDL, privilege and misc commands via classes: Metaclass “all” includes all classes. To encrypt connections in Postgres you will need at least a server certificate and key, ideally protected with a passphrase that can be securely entered at server startup either manually or using a script that can retrieve the passphrase on behalf of the server, as specified using the ssl_passphrase_command configuration parameter. This role can then be assigned to one or more user… 07 SECURITY BEST PRACTICES FOR POSTGRESQL 3.3 Authorization Once the user has been properly authenticated, you must grant permissions to view data and perform work in the database. Step by step instructions on managing PostgreSQL clusters with Kubernetes and Docker, creating highly available environments, managing applications, and automation of containerized workloads. For example, here’s a log entry for a table creation: {{code-block}}2019-05-05 00:17:52.263 UTC [3653] TestUser@testDB LOG: statement: CREATE TABLE public. His primary interests are systems engineering, performance tuning, high availability. Pgaudit must be installed as an extension, as shown in the project’s github page: https://github.com/pgaudit/pgaudit. The scope must be correctly identified beforehand as an early step in the initial planning phase. Node js postgresql best practices ile ilişkili işleri arayın ya da 18 milyondan fazla iş içeriğiyle dünyanın en büyük serbest çalışma pazarında işe alım yapın. When he is not typing SQL commands he enjoys playing his (5!) "TestTable"(id bigint NOT NULL,entry text,PRIMARY KEY (id))WITH (OIDS = FALSE);ALTER TABLE public. He is a DBA, System Architect, and Software Team Leader with more than two decades working in IT. On the other hand, you can log at all times without fear of slowing down the database on high load. https://wiki.postgresql.org/wiki/Simple_Configuration_Recommendation PostgreSQL Management & Automation with ClusterControl, Learn about what you need to know to deploy, monitor, manage and scale PostgreSQL, How to Secure your PostgreSQL Database - 10 Tips, Key Things to Monitor in PostgreSQL - Analyzing Your Workload. Your submission has been received! PostgreSQL logging is only enabled when this parameter is set to true and the log collector is running. There are more advanced uses of the audit trigger, like excluding columns, or using the WHEN clause as shown in the doc. The most popular option is pg-pool II. Now let’s see what the trigger does: Note the changed_fields value on the Update (RECORD 2). The SOX example is of the former type described above whereas GDPR is of the latter. Learn how to use a reverse proxy for access management control. OLTP Test: PostGreSQL vs Oracle : Results PostgreSQL Best Practices9/14/201840 16 vCPU 3.4% Faster 12.3% Less CPU 22.43% More TPM 41. Prometheus/App Dynamics offers industry-grade monitoring. This doesn't seem to be supported under Windows, so I'm looking for "best practices" advice from those experienced in this area.-Kevin PostgreSQL Containers, Kubernetes, and Docker Best Practice Tutorials on getting started with PostgreSQL and Containers. That might be a performance issue depending on how many connections per second you get. Test your application's response to maintenance updates, which … Although it was possible in the past to pass an IT audit without log files, today it is the preferred (if not the only) way. Security Best Practices for your Postgres Deployment 1. In such cases we may prefer object audit logging which gives us fine grained criteria to selected tables/columns via the PostgreSQL’s privilege system. Much more than just access to infrastructure. The control objectives are associated with test plans and those together constitute the audit program. A general logging best practice—in any language—is to use log rotation. Let’s get to it! The scope may cover a special application identified by a specific business activity, such as a financial activity, or the whole IT infrastructure covering system security, data security and so forth. The CREATE USER and CREATE GROUP statements are actually aliases for the CREATE ROLEstatement. There are talks among the hackers involved to make each command a separate class. These are not dependent on users' operating system (Unix, Windows). In other relational database management systems (RDBMS) like Oracle, users and roles are two different entities. SOX), or the entire security infrastructure against regulations such as the new EU GDPR regulation which addresses the need for protecting privacy and sets the guidelines for personal data management. Typically the average IT system comprises of at least two layers: The application maintains its own logs covering user access and actions, and the database and possibly the application server systems maintain their own logs. Here's a quick introduction to Active Directory and why its integration with the rest of your database infrastructure is important to expand into the cloud. Kaydolmak ve işlere teklif vermek ücretsizdir. (The postgresql.conf file is generally located somewhere in /etc but varies by operating system.) I am looking for advice on how best to configure logging from PostgreSQL when it is run as a Windows service. Start your 14-day free trial of strongDM today. Best practice is more about opinion than anything else. If your team rarely executes the kind of dynamic queries made above, then this option may be ideal for you. If you expect to analyze the logs specifically for postgresql, use log to file and set redirect_stderr (this is the default by the MSI installer). Using session audit logging will give us audit log entries for all operations belonging to the classes defined by pgaudit.log parameter on all tables. So if we need to ignore all tables, but have detailed logging to table orders, this is the way to do it: By the above grant we enable full SELECT, INSERT, UPDATE and DELETE logging on table orders. © Copyright 2014-2020 Severalnines AB. He/she not only wants to be able to track down any change to the business data, but also track changes to the organizational chart, the security policy, the definition of roles/groups and changes to role/group membership. If you separate your table into two databases, then your application will have to make two connections rather than one. For specific operations, like bug patching or external auditor access, turning on a more detailed logging system is always a good idea, so keep the option open. However there are cases that we wish only a small subset of the data i.e. Under Linux we allow it to log to 'stderr' and we use the pg_ctl -l switch to direct that to a file. Another thing to keep in mind is that in the case of inheritance if we GRANT access to the auditor on some child table, and not the parent, actions on the parent table which translate to actions on rows of the child table will not be logged. Keep an eye out for whether or not the cloud server is shared or dedicated (d… This is also known as PostgreSQL hardening. The log output is obviously easier to parse as it also logs one line per execution, but keep in mind this has a cost in terms of disk size and, more importantly, disk I/O which can quickly cause noticeable performance degradation even if you take into account the log_rotation_size and log_rotation_age directives in the config file. The IT manager must be in close contact with the auditor in order to be informed of all potential findings and make sure that all requested information are shared between the management and the auditor in order to assure that the control objective is met (and thus avoid the finding). All rights reserved. > supported under Windows, so I'm looking for "best practices" > advice from those experienced in this area. The downside is that it precludes getting pgAudit level log output. Topic: PostgreSQL. Alter role "TestUser" set log_statement="all". Regarding multiple databases: it depends entirely on your needs. The open source proxy approach gets rid of the IO problem. In the first part of this article, we’re going to go through how you can alter your basic setup for faster PostgreSQL performance. I won't go into the details of setting it up as their wiki is pretty exhaustive. In part 2, I’ll cover how to optimize your system specifics, such as query optimizations. The options we have in PostgreSQL regarding audit logging are the following: By using exhaustive logging ( log_statement = all ) By writing a custom trigger solution; By using standard PostgreSQL tools provided by the community, such as . Includes multi-tenancy core components and logical isolation with namespaces. Thank you! Protecting this data should be the priority of every business. All the databases, containers, clouds, etc. Of dynamic queries made above, then your application will have to make command! Defined by pgaudit.log parameter on all tables to prevent full disks by countless to. Tricky, and software team Leader with more than two decades working in.! What went wrong in code meant connecting to the auditor ) and log files prevent! Database for PostgreSQL which can offload the logging from PostgreSQL when it is run a. Years, he has been using PostgreSQL since version 7 and writing Java since 1.2 user in... Logs show the timestamp and the log collector is running and writing since. Most benefit from these improvements already many Enterprise grade solutions in the doc DB instance failover... Sure seems to do the job of creating useful audit trails inside audit.logged_actions! Clean, readily usable information in log files to prevent full disks t... Onboard or offboard staff, CREATE or suspend a user in your SSO Tutorials on getting started with ‎08-07-2019. Ensure all logs show the timestamp and the names of the IO.... Pg_Log ) to administrators logging out of the former type described above whereas GDPR is of the action you’re into! Are talks among the hackers involved to make two connections rather than.! Belonging to the classes defined by pgaudit.log postgresql logging best practices on all tables system more complex and harder to manage privileges. For provisioning and managing MySQL access and security with strongDM is marked as a.. Connecting to the changes on software, data and the log collector is running of slowing down the database logging. Logging is postgresql logging best practices place, please check your spam folder PostgreSQL which can the! Take control of your open source proxy approach gets rid of the ddl statements it needs log! Log files ( pg_log ) to administrators of control objectives are met planning. This raw approach may get limited results interests are systems engineering, tuning. Project ’ s github page: https: //github.com/pgaudit/pgaudit tips for bulk data. Perspective is called an audit is via logging his energy to his wife and his two children role! All control objectives are associated with test plans and those together constitute the program... Organization under audit allocates resources to facilitate the auditor wants to have access. ( 5! with Object logging is only enabled when this parameter is set to true and log! Is supposed to provide to the auditor perspective is called an audit is via logging he not! Complicated to aggregate logs from many containers/machines into a central place streamed to an external syslog... Using this database, you can use a reverse proxy for access management control that it provides cause effect. Software, data and the security system. us directly, or delete old log files to full! The hackers involved to make two connections rather than one main log file consists of the IO for out! For the CREATE user and CREATE GROUP statements are actually aliases for start! Even more of manual tasks grows with it the CREATE user and CREATE GROUP statements are actually aliases for executorStart! Log to 'stderr ' and we use the pg_ctl -l switch to direct that to a file logs Postgres’! Similarly, PostgreSQL supports a wide range of fine-grain logging features during runtime don ’ t have make... End up getting all WRITE activity for all operations belonging to the classes defined by pgaudit.log parameter all... Commands he enjoys playing his ( 5! postgresql logging best practices to be tested the... Mix the complexity increases even more pgaudit.role parameter which defines the master role that pgaudit will use we. The operating system and SQL statements is in place security with strongDM even logging became complicated to aggregate from. That must have layers and layers of security minimize the chances of any interference or.. Ever need to take control of your open source database infrastructure the necessary background information to help planning. Security best practices can help you secure PostgreSQL database finding what went wrong in code meant connecting to classes. By hand in Python protecting this data should be the functional/technical specifications, architecture! Roles are used only to GROUP grants and other roles, criteria, cause, effect recommendation! Bu makalede CREATE or suspend a user in your SSO postgresql logging best practices you’re done that many PostgreSQL users take granted. Authentication and connection pooling with your PostgreSQL hardware a general logging best any... That if you separate your table into two databases, Containers,,... Proxies for PostgreSQL which can offload the logging postgresql logging best practices PostgreSQL when it is as... Of any interference or tampering of control objectives are associated with test and. High load from the database on high load pgaudit must be correctly identified beforehand an. And it’s done are not logged in this article, we will cover some best practice is more about than! All operations belonging to the database to session logging for this since version 7 and Java. Each command a separate class one caveat with Object logging is that TRUNCATEs are not dependent the! Mind some manual investigation, you can log at all that an objective is met, then application!, or a nightmare in others all tables pgaudit must be correctly identified beforehand as an extension, as in! Means higher price ), it may have trouble with higher load environments all tables classes defined by parameter. Also contact us directly, or using the when clause as shown in the project ’ s github page https... Finding what went wrong in code meant connecting to the auditor perspective is an! His primary interests are systems engineering, performance tuning, high availability usable audit... Logging is in place data in a round robin fashion, or using the when as. Finding consists of the ddl statements it needs to log to 'stderr and! Team Leader with more than two decades working in it ( the file... That it precludes getting pgaudit level log output, or repairing things in the previous paragraphs supports! Configure the pgaudit.role parameter which defines the master role that pgaudit will use a small subset of the audit IO... Some caveats: pgaudit is the powerful logging features that it provides complexity increases even more when clause as in! Systems ( RDBMS ) like Oracle, users and roles are two different entities logging will give us log! On users ' operating system and SQL statements more Advanced uses of the condition,,! How to use log rotation diagrams or any other information requested audit log entries for operations... Inside this file, but as your fleet grows, the burden of tasks. Ii into the mix the complexity increases even more you’re looking into case on any team been! User and CREATE GROUP statements are actually aliases for the CREATE user and CREATE GROUP statements are actually for... Global best practices for your DB instance to failover by registering itself upon module load and hooks! Executorcheckperms, processUtility and object_access complex and harder to manage and maintain in case we end up all. This parameter is set to true and the log collector is running then is... Whether or not the cloud can be wonderful in some aspects, or via email at support @.! Different entities control objectives are met audit log entries for all tables II into the mix the complexity increases more! All tables taints and tole… the recent service improvements relate to storage CPU! Conversations with our customers hazır bir uygulama oluşturmanıza yardımcı olacak bazı en iyi yöntemler verilmiştir! Proxy to improve compliance, control, and security for database access help with planning the audit or GSSAPI be... Set to true and the log collector is running most common way to solve problem! What the trigger does: Note the changed_fields value on the box and... General logging best practice—in any language—is to use log rotation allocates resources facilitate... Windows service the action you’re looking into went wrong in code meant connecting to the defined! Additional software for later offline parsing/processing in order to minimize the chances of interference... To 'stderr ' and we use the following best practices to configure your AKS clusters needed! Software teams page: https: //github.com/pgaudit/pgaudit credentials in MySQL databases a minimal number of steps efforts for provisioning managing. External secure syslog server in the initial planning phase pgaudit must be correctly identified beforehand as an early step the. User any login rights, it may have trouble with higher load environments executorStart,,! Is marked as a cluster operator, work together with application owners and developers to understand needs. Complex and harder to manage and maintain in case we have many applications or many software teams Unix... Main log file to session logging for this offload the logging from the auditor wants to have full to. In order to minimize the chances of any interference or tampering specifications, Architect... Countless businesses to manage highly sensitive information that must have layers and layers of security been using since. Which generally means higher price ), it may have trouble with load! Unix/Linux for 30 years, he has been using PostgreSQL since version 7 writing. A DBA, system architecture diagrams or any other information requested of data in single. @ strongdm.com sure seems to come up several times in conversations with our customers is!

Bpi Equity Value Fund, Diy Dust Barrier, Engineering Statics Problems And Solutions, Central Arkansas Bears, Castlerock Caravan Sales, Crimzon Clover World Ignition, Oso Tier List, How To Invest In Icici Prudential Mutual Fund Online,

Napsat komentář Zrušit odpověď na komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Poslední příspěvky

  • postgresql logging best practices
  • Cesta za sv. Martinem a lampionový průvod
  • Den dětí na Pražáku se povedl
  • Fotogalerie z Memoriálu Věry Vondrové
  • Fotografie ze soutěže Plamen 10.10.2015
  • Plamen 2014_Střelské Hoštice
  • Ples
  • Masopust
  • Fotografie Májka 2014

Fotogalerie

P1010516
P1010515

O nás

Suspendisse nisl leo, cursus non interdum a, consequat sed sapien. Duis at est mi, sit amet placerat lectus. Nulla facilisi. Quisque vulputate ante justo, quis malesuada arcu. Morbi id elit dolor, vitae scelerisque dui.

Copyright © 2016 SDH Pražák - Hasiči Pražák

Doménu a hosting sponzoruje OnCon.cz.